"Yinghai Lu" yhlu@tyan.com writes:
Eric,
Thanks for the quick response.
- If enable RELOCATION: got error: It can not calculate the file
size, and
keep print " 61:rom_read_bytes() - skipping block 16"
The only difference in the loader that looks relevant is the second PT_LOAD segment now has a size. You are not running mkelfImage on the etherboot file are you? That is only need for the Linux kernel.
Yes, I didn't mkelfImage, I only use that to transfer kernel and add some tags, at last the ELF files is put into the boot server's /tftpboot.
Hmm. Then you have something corrupted.
In the Config, You said that 5.2 need all drivers to support RELOCATION. So Does the E1000 driver support RELOCATION yet?
Yes.
Your snippet is for RELOCATION or not?
RELOCATION but that should not matter this early in the startup because you die before the code is relocated.
Seriously the ELF header information was very wrong. Multiple PT_LOAD segments. And addresses and sizes that don't make any sense at all. I don't know where to start but it looks very strongly like your ELF image is corrupted.
Eric