Coreboot seems to require a minimum of 64MB to run, but I would like to port it to a platform with only 32MB. I noticed in:
targets/emulation/qemu-x86/qemu-x86/normal/crt0.S
there is the line:
movl $0x4000000, %esp
which I have changed to
movl $0x2000000, %esp
The boot now gets a lot further, but my payload (FILO) still doesn't appear to run.
Is there some fundamental reason why platforms with <64MB are not supported?
The last thing I see is:
Copying Interrupt Routing Table to 0x000f0000... done. Copying Interrupt Routing Table to 0x03ff0000... done. Moving GDT to 0x3ff0400...ok Multiboot Information structure has been written. Writing high table forward entry at 0x00000500 Wrote coreboot table at: 00000500 - 00000518 checksum f3df New low_table_end: 0x00000500 Now going to write high coreboot table at 0x03ff0800 rom_table_end = 0x03ff0800 Adjust low_table_end from 0x00000500 to 0x00001000 Adjust rom_table_end from 0x03ff0800 to 0x04000000
So no surprise that it doesn't work, but how/where do I change these values?
thanks Biff.
bifferos wrote:
Is there some fundamental reason why platforms with <64MB are not supported?
No. Some addresses are hardcoded in places where there could be more clever algorithms.
More clever algorithms come with the risk of error, which is nice to avoid as far as possible in firmware, but yeah..
//Peter
On Sun, May 17, 2009 at 8:04 AM, bifferos bifferos@yahoo.co.uk wrote:
So no surprise that it doesn't work, but how/where do I change these values?
It's hard to get a machine with that little memory any more. I think that's the reason for the high number.
I'll take a look today or tomorrow unless someone beats me to it. Sorry for the inconvenience!
ron