"Hieu T. Tran" htran@viosoft.com writes:
Ron and Eric,
Thank you for the response.
The problem that we're having is that the generated romimage positions reset_vector / ROMTOP at 0xFFFF0, resulting in an image size of ~ 1MB. Put another way, reset_vector is at offset 1MB on the flash device. At boot, the system fetches the address at 0xFFFF0, and executes the code there. As this address is truncated to 0x7FFF0 on our platform, or offset 512KB of flash, which is more or less random junk rather than the intended reset_vector.
To work around this problem, we're trying various methods to force reset_vector / ROMTOP to 0x7FFF0. It appears that there are several ways to do this, ranging from adorning the build config file with various ROMTOP, ROMSIZE, and PAYLOAD_SIZE settings, to providing a customized ldscript.ld file for the mainboard.
What I'd like to know is if there is a simple way to accomplish this. Also, I would be much oblidged for pointer to any document, if exists, that prescribes how to construct Config file for a given platform. I suspect other developers would enjoy this as well.
For the linuxbios part of the rom: PAYLOAD_SIZE+ROM_IMAGE_SIZE == bytes in romimage PAYLOAD_SIZE is the amount of space reserved for your bootloader. _ROMBASE is the start address (of the ROM) ROM_IMAGE_SIZE is far long you go after that, often 64K.
So something like: option PAYLOAD_SIZE=458752 option ROM_IMAGE_SIZE=65536 option _ROMBASE=0xf0000
Should achieve what you are trying to do...
Eric