ron minnich wrote:
make reset a rel jump to 0xfffffff0 - (sizeof entry16). Then put entry 16 right before 0xfffffff0. Entry16 code turns on 32-bit mode and then jumps to the real start of the linuxbios image -- which can now be anywhere in the flash image. I could use this now, as could others.
I suggested this last year, with the comment that this is a more traditional way that embedded systems start up. Your objections at the time were that it would cause trouble with some motherboards, but I don't remember the specifics. I was wanting to do this since it is clear that we will be getting 2 Mbyte LPC soon and be able to boot Linux easily out of flash (as I think you have already done).
One caveat I discovered, I could never get Linux to boot with a gdt located higher than 1M. So even if you put a linux compatible gdt high, it has to be moved to ram < 1M or linux hangs on boot. Never figured out why (true for 2.4 anyway).
Also, on the dynamic/static trees, one thing to consider in the mix is the serial ATA. I think it is an external chip now but will be subsumed into the bridge chips at some point. Not sure how a chip function moving around like this affects the software design.
-Steve