Ron and James, thanks for clueing me in on the fallback image stuff. I'm still not quite doing something right though, it seems.
My config files are below. I based these on the samples in mainboard/supermicro/p4dpe. The fallback image is 81k and contains the etherboot payload...this doesn't seem right to me but I don't know what else to do. If I don't specify the etherboot payload, it tries to use vmlinux which is much, much bigger.
So I run the config script on both files, then go to the fallback/ and primary/ directories and run make, and I get a primary romimage of 458752 bytes and a fallback image of 81920 bytes. That doesn't seem right. What am I doing wrong? Oh and though I was doubtful, I did do a "cat primary/romimage fallback/romimage > finalimage" and burned the final image.
Also, from the looks of the makeprocess my two image files are basically the same binary stuff but one has a lot of null padding. They both contain the eepro100 elf image and linuxbios.rom...
Anyone see what is wrong with this picture?
-Steve
fallback.config --------------------------------------------
target ./fallback mainboard supermicro/p4dpe option USE_FALLBACK_IMAGE=1 option ROM_SIZE=524288 option ROM_IMAGE_SIZE=49152 option SERIAL_CONSOLE=1 option TTYS0_BAUD=9600 option TTYS0_BASE=0x3f8 option TTYS0_LCS=0x3 option DEFAULT_CONSOLE_LOGLEVEL=9 option MAXIMUM_CONSOLE_LOGLEVEL=6 option USE_ELF_BOOT=1 option USE_GENERIC_ROM=1 payload ../eepro100.elf option CPU_CLOCK_MULTIPLIER=XEON_X8 option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON
primary.config --------------------------------------------------
target primary mainboard supermicro/p4dpe linux /usr/src/linux-2.4.18-14 commandline root=/dev/hda2 console=ttyS0,9600 single option USE_FALLBACK_IMAGE=0 option ROM_SIZE=524288 option ROM_IMAGE_SIZE=49152 option SERIAL_CONSOLE=1 option TTYS0_BAUD=9600 option TTYS0_BASE=0x3f8 option TTYS0_LCS=0x3 option DEFAULT_CONSOLE_LOGLEVEL=9 option MAXIMUM_CONSOLE_LOGLEVEL=8 option USE_ELF_BOOT=1 option BOOT_IDE=1 payload ../eepro100.elf option CPU_CLOCK_MULTIPLIER=XEON_X8 option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON
Greetings,
It looks like the fallback image is being built wrong.
This can be hacked together manually. linuxbios.strip should be the actual LinuxBIOS code. The objective is to assemble a 64K (exactly) block containing:
1. etherboot 2. null padding (can be generated with dd if=/dev/zero) 3. linuxbios.strip.
I just use calctool to figure out how much padding to use and cat eepro100.elf pad linuxbios.strip >fallback.bin
the 64K fallback.bin can then be appended to the primary image to get the full rom image.
That's a little ugly, but it should get the job done.
Just as a final verification, in linuxbios.map, ZKERNEL_START for the fallback image should be 0xffff0000. That is whjere it will look for the fallback etherboot. Also, it will ljmp to ZKERNEL_START-8 to transfer control to the primary image. I'm slowly trying to disentangle that on the boards I have. Unfortunatly, I don't have a P4DPE.
G'day, sjames
On Fri, 11 Apr 2003, Atherton, Stephen wrote:
Ron and James, thanks for clueing me in on the fallback image stuff. I'm still not quite doing something right though, it seems.
My config files are below. I based these on the samples in mainboard/supermicro/p4dpe. The fallback image is 81k and contains the etherboot payload...this doesn't seem right to me but I don't know what else to do. If I don't specify the etherboot payload, it tries to use vmlinux which is much, much bigger.
So I run the config script on both files, then go to the fallback/ and primary/ directories and run make, and I get a primary romimage of 458752 bytes and a fallback image of 81920 bytes. That doesn't seem right. What am I doing wrong? Oh and though I was doubtful, I did do a "cat primary/romimage fallback/romimage > finalimage" and burned the final image.
Also, from the looks of the makeprocess my two image files are basically the same binary stuff but one has a lot of null padding. They both contain the eepro100 elf image and linuxbios.rom...
Anyone see what is wrong with this picture?
-Steve
fallback.config --------------------------------------------
target ./fallback mainboard supermicro/p4dpe option USE_FALLBACK_IMAGE=1 option ROM_SIZE=524288 option ROM_IMAGE_SIZE=49152 option SERIAL_CONSOLE=1 option TTYS0_BAUD=9600 option TTYS0_BASE=0x3f8 option TTYS0_LCS=0x3 option DEFAULT_CONSOLE_LOGLEVEL=9 option MAXIMUM_CONSOLE_LOGLEVEL=6 option USE_ELF_BOOT=1 option USE_GENERIC_ROM=1 payload ../eepro100.elf option CPU_CLOCK_MULTIPLIER=XEON_X8 option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON
primary.config --------------------------------------------------
target primary mainboard supermicro/p4dpe linux /usr/src/linux-2.4.18-14 commandline root=/dev/hda2 console=ttyS0,9600 single option USE_FALLBACK_IMAGE=0 option ROM_SIZE=524288 option ROM_IMAGE_SIZE=49152 option SERIAL_CONSOLE=1 option TTYS0_BAUD=9600 option TTYS0_BASE=0x3f8 option TTYS0_LCS=0x3 option DEFAULT_CONSOLE_LOGLEVEL=9 option MAXIMUM_CONSOLE_LOGLEVEL=8 option USE_ELF_BOOT=1 option BOOT_IDE=1 payload ../eepro100.elf option CPU_CLOCK_MULTIPLIER=XEON_X8 option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON
to simplify this I'm going to just show you my files, which work. I just built a linuxbios yesterday that worked fine on the P4DPE-G2.
my romimage sizes for this are 64K and (512k-64k)
Note that fallback size is 40K which with the 24k etherbooth gives you 64k.
I think your normal file has a typo on the rom image size.
ron --- fallback ## This will make a target directory of ./fallback ## This is relative to where the configuration file resides in the filesystem target ./p4dpe-g2-fallback
mainboard supermicro/p4dpe/g2
## Build a fallback not a normal image. option USE_FALLBACK_IMAGE=1
## Build an image for a 512KB rom ## ./fallback/romimage is just the last 64KB which we reserve for the fallback image. option ROM_SIZE=524288 #option ROM_SIZE=1048576
## Select the maximum size the linuxBIOS code can compile to. ## Allow linuxBIOS to be up to 48KB in size option ROM_IMAGE_SIZE=40960
## ### The Serial Console ## ## Hardware flow control is currently ignored.
## Enable the Serial Console option SERIAL_CONSOLE=1
## Select the serial console baud rate. option TTYS0_BAUD=115200 #option TTYS0_BAUD=57600 #option TTYS0_BAUD=38400 #option TTYS0_BAUD=19200 #option TTYS0_BAUD=9600 #option TTYS0_BAUD=4800 #option TTYS0_BAUD=2400 #option TTYS0_BAUD=1200
# Select the serial console base port option TTYS0_BASE=0x3f8
# Select the serial protocol # This defaults to 8 data bits, 1 stop bit, and no parity option TTYS0_LCS=0x3
## ### Select the linuxBIOS loglevel ## ## EMERG 1 system is unusable ## ALERT 2 action must be taken immediately ## CRIT 3 critical conditions ## ERR 4 error conditions ## WARNING 5 warning conditions ## NOTICE 6 normal but significant condition ## INFO 7 informational ## DEBUG 8 debug-level messages ## SPEW 9 Way too many details
## Request this level of debugging output option DEFAULT_CONSOLE_LOGLEVEL=7 ## At a maximum only compile in this level of debugging option MAXIMUM_CONSOLE_LOGLEVEL=7
## Use the elf bootloader option USE_ELF_BOOT=1
## Select the boot device option USE_GENERIC_ROM=1 #option BOOT_FLOPPY=1 #option USE_SERIAL_FILL_INBUF=1 #option BOOT_IDE=1
# Load etherboot with the elf bootloader # The payload command is relative the build directory # So .. is the directory this config file resides in payload ../lnxieepro100.ebi
## ## Cpu Speed ## option CPU_CLOCK_MULTIPLIER=XEON_X8 #option CPU_CLOCK_MULTIPLIER=XEON_X9 #option CPU_CLOCK_MULTIPLIER=XEON_X10 #option CPU_CLOCK_MULTIPLIER=XEON_X11 #option CPU_CLOCK_MULTIPLIER=XEON_X12 #option CPU_CLOCK_MULTIPLIER=XEON_X13 #option CPU_CLOCK_MULTIPLIER=XEON_X14 #option CPU_CLOCK_MULTIPLIER=XEON_X15 #option CPU_CLOCK_MULTIPLIER=XEON_X16 #option CPU_CLOCK_MULTIPLIER=XEON_X17 #option CPU_CLOCK_MULTIPLIER=XEON_X18 #option CPU_CLOCK_MULTIPLIER=XEON_X19 #option CPU_CLOCK_MULTIPLIER=XEON_X19 #option CPU_CLOCK_MULTIPLIER=XEON_X20 #option CPU_CLOCK_MULTIPLIER=XEON_X21 #option CPU_CLOCK_MULTIPLIER=XEON_X22 #option CPU_CLOCK_MULTIPLIER=XEON_X23
## ## Select power on after power fail setting option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON #option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON
--- normal
## This will make a target directory of ./normal ## This is relative to where the configuration file resides in the filesystem target ./p4dpe-g2-normal
mainboard supermicro/p4dpe/g2
## Build a normal not a fallback image. option USE_FALLBACK_IMAGE=0
## Build an image for a 512KB rom ## ./normal/romimage is the entire rom image except for the last 64KB ## which are reserved for the fallback image. option ROM_SIZE=524288 #option ROM_SIZE=1048576
## Select the maximum size the linuxBIOS code can compile to. ## Allow linuxBIOS to be up to 48KB in size option ROM_IMAGE_SIZE=49152
## ### The Serial Console ## ## Hardware flow control is currently ignored.
## Enable the Serial Console option SERIAL_CONSOLE=1
## Select the serial console baud rate. option TTYS0_BAUD=115200 #option TTYS0_BAUD=57600 #option TTYS0_BAUD=38400 #option TTYS0_BAUD=19200 #option TTYS0_BAUD=9600 #option TTYS0_BAUD=4800 #option TTYS0_BAUD=2400 #option TTYS0_BAUD=1200
# Select the serial console base port option TTYS0_BASE=0x3f8
# Select the serial protocol # This defaults to 8 data bits, 1 stop bit, and no parity option TTYS0_LCS=0x3
## ### Select the linuxBIOS loglevel ## ## EMERG 1 system is unusable ## ALERT 2 action must be taken immediately ## CRIT 3 critical conditions ## ERR 4 error conditions ## WARNING 5 warning conditions ## NOTICE 6 normal but significant condition ## INFO 7 informational ## DEBUG 8 debug-level messages ## SPEW 9 Way too many details
## Request this level of debugging output option DEFAULT_CONSOLE_LOGLEVEL=4 ## At a maximum only compile in this level of debugging option MAXIMUM_CONSOLE_LOGLEVEL=5
## Use the elf bootloader option USE_ELF_BOOT=1
## Select the boot device option USE_GENERIC_ROM=1 #option BOOT_FLOPPY=1 #option USE_SERIAL_FILL_INBUF=1 #option BOOT_IDE=1
# Load etherboot with the elf bootloader # The payload command is relative the build directory # So .. is the directory this config file resides in payload ../lnxieepro100.ebi
## ## Cpu Speed ## #option CPU_CLOCK_MULTIPLIER=XEON_X8 #option CPU_CLOCK_MULTIPLIER=XEON_X9 #option CPU_CLOCK_MULTIPLIER=XEON_X10 #option CPU_CLOCK_MULTIPLIER=XEON_X11 #option CPU_CLOCK_MULTIPLIER=XEON_X12 #option CPU_CLOCK_MULTIPLIER=XEON_X13 #option CPU_CLOCK_MULTIPLIER=XEON_X14 #option CPU_CLOCK_MULTIPLIER=XEON_X15 #option CPU_CLOCK_MULTIPLIER=XEON_X16 option CPU_CLOCK_MULTIPLIER=XEON_X17 #option CPU_CLOCK_MULTIPLIER=XEON_X18 #option CPU_CLOCK_MULTIPLIER=XEON_X19 #option CPU_CLOCK_MULTIPLIER=XEON_X19 #option CPU_CLOCK_MULTIPLIER=XEON_X20 #option CPU_CLOCK_MULTIPLIER=XEON_X21 #option CPU_CLOCK_MULTIPLIER=XEON_X22 #option CPU_CLOCK_MULTIPLIER=XEON_X23
## ## Select power on after power fail setting option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON #option MAINBOARD_POWER_ON_AFTER_POWER_FAIL=MAINBOARD_POWER_ON