[Etherboot-developers] EFI/Itanium port starting....
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ebi...@ln...> - 2002-11-14 06:38:01
|
For various interesting reasons it has been decided that we need an
Itanium port of etherboot. The initial version will rely on EFI quite
a bit, but I should have something working in the next couple of
weeks.
As part of this I am splitting up etherboot into multiple directories
so I can keep track of the code, and so I can have code for different
architectures in different directories.
My current directory structure:
./bin
For the binaries as previously discussed we will be able to override
this, in the Config file.
./include
The general purpose include files go here (updating genrules.pl for
this was interesting.
./arch/i386/include
./arch/ia64/include
The architecture specific include files go here.
./core
main.c nic.c and all of the protocols all go here. Basically the
core of etherboot.
./util
The helper programs mkrom and kin go here.
./drivers
./drivers/net
The network drivers go here.
./drivers/disk
The disk drivers go here.
./firmware
./firmware/efi
Efi specific code.
./firmware/pcbios
pcbios specific code.
./firmware/linuxbios
linuxbios specific code.
./arch
Everything that is assembly or the least bit archtecture specific
gets filed in here.
./arch/i386
./arch/i386/core
Startup entry/exit type code. Core etherboot code that is
archtecture specific.
./arch/i386/util
Utilities that are only applicable to x86 go here.
./arch/i386/firmware
./arch/i386/firmware/pcbios
./arch/i386/prefix
The prefixes (lilo, com, pxe, loader, etc) that are prepended
onto etherboot to allow it to boot in various ways go here.
./arch/ia64
The itanium code will go here.
At the moment I have just made the first pass at shuffling around the
directories. And getting the code to build again.
I am hoping that virt_to_bus and bus_to_virt are sufficient for
etherboot to port reliably to ia64 but it might not be.
This will certainly shake out the 32bit size assumptions.
Comments on the directory structure are welcome. It is a first pass
and I intend to tweak it I uncover problems.
I have reorganized the Makefiles too there is now:
Makefile
Config
Makefile.main
arch/i386/Makfile
arch/i386/Config
arch/ia64/Makefile
arch/ia64/Config
With the include order being:
Makefile -> arch/i386/Config -> Config -> Makefile.main -> arch/i386/Makefile
This should allow having special config files for building without
replacing the default as previously discussed.
When the structure looks stable, or I have a moment I will merge it
into the development tree.
Eric
|