* Uwe Hermann uwe@hermann-uwe.de [070530 22:46]:
Rework payload handling to only provide two options:
Payload file
No payload
Document the current procedure in the README. Minor cosmetic fixes.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de
Index: Kconfig
--- Kconfig (Revision 338) +++ Kconfig (Arbeitskopie) @@ -78,69 +78,30 @@ prompt "Payload type" default PAYLOAD_ELF
-config PAYLOAD_FILO
- bool "FILO"
+config PAYLOAD_ELF
- bool "An ELF executable payload file" help
TODO
Select this option if you have a payload image (an ELF file)
which LinuxBIOS should run as soon as the basic hardware
initialization is completed.
-config PAYLOAD_ETHERBOOT
- bool "Etherboot"
- help
TODO
You will be able to specify the location and file name of the
payload image later.
-config PAYLOAD_MEMTEST86
- bool "Memtest86"
+config PAYLOAD_NONE
- bool "No payload" help
TODO
Select this option if you want to create an "empty" LinuxBIOS
ROM image for a certain mainboard, i.e. a LinuxBIOS ROM image
which does not yet contain a payload.
-config PAYLOAD_LINUX
- bool "Linux kernel"
- help
TODO
For such an image to be useful, you have to use the 'lar' tool
to add a payload to the ROM image later.
-config PAYLOAD_ELF
- bool "Any ELF executable"
- help
TODO
-config PAYLOAD_DUMMY
- bool "Dummy payload"
- help
For testing purposes only.
endchoice
-config PAYLOAD_FILO_DIR
- string "FILO source code directory"
- depends PAYLOAD_FILO
- default "/tmp/filo-0.5"
- help
The directory where the FILO source code is located.
-config PAYLOAD_FILO_CONFIGFILE
- string "Filename of the FILO 'Config' file"
- depends PAYLOAD_FILO
- default "Config"
- help
The filename of the FILO 'Config' file to use. This file must reside
in the directory specified via PAYLOAD_FILO_DIR.
-config PAYLOAD_LINUX_DIR
- string "Linux kernel source code directory"
- depends PAYLOAD_LINUX
- default "/usr/src/linux"
- help
The directory where the Linux kernel source code is located.
-config PAYLOAD_LINUX_CONFIGFILE
- string "Path and filename of the Linux .config file to use"
- depends PAYLOAD_LINUX
- default ".config" # FIXME!
- help
The path and filename of the Linux .config file to use.
-config PAYLOAD_ELF_FILE
- string "Path and filename of the ELF file to use as payload"
+config PAYLOAD_FILE
- string "Payload path and filename" depends PAYLOAD_ELF default "payload.elf" help
I think its fine up to here.
Index: Makefile
--- Makefile (Revision 338) +++ Makefile (Arbeitskopie) doxygen: $(Q)$(DOXYGEN) util/doxygen/Doxyfile.LinuxBIOS
+payload:
- $(Q)printf "Not yet implemented. This will invoke a helper tool.\n"
I'd wait checking this stuff in until we really do something here.
- $(Q)cp $(CONFIG_PAYLOAD) $(obj)/lar.tmp/normal/payload
- $(Q)# TODO: Copy no payload or empty payload if CONFIG_PAYLOAD_NONE.
- $(Q)cp $(CONFIG_PAYLOAD_FILE) $(obj)/lar.tmp/normal/payload
maybe something like if [ -r $(CONFIG_PAYLOAD_FILE) ]; then cp .... ; fi
-STAGE2_LIB_OBJ = stage2.o clog2.o mem.o malloc.o tables.o delay.o compute_ip_checksum.o +STAGE2_LIB_OBJ = stage2.o clog2.o mem.o malloc.o tables.o delay.o \
compute_ip_checksum.o
Uh oh, lots of unrelated whitespace stuff in this patch.
+# TODO: Compress the payload (CONFIG_PAYLOAD_FILE) with the default compressor. # -# TODO: This is not implemented yet. -# TODO: This needs to be compressed with the default compressor.
- $(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< \
-o $(obj)/arch/x86/stage0_asm.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 \
-DDATE=\"`date +%Y/%m/%d`\"
- $(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< -o $(obj)/arch/x86/stage0_asm.s \
-DBOOTBLK=0x1f00 -DRESRVED=0xf0 -DDATE=\"`date +%Y/%m/%d`\"
... and reformatting.