On Thu, Aug 26, 2010 at 9:31 AM, Juhana Helovuo juhe@iki.fi wrote:
On Thu, 2010-08-19 at 14:39 -0600, Myles Watson wrote:
It is still somewhat unclear where and how all of these memory maps are transmitted from Coreboot to Linux. I could not find the callback for BIOS e820 calls in Coreboot sources.
Coreboot doesn't do callbacks. If you're using SeaBIOS, it handles the callbacks and gets the information from the Coreboot tables. Grub2 got its information from the multiboot tables last time I looked.
Ok, I see. So there has to be a boot loader or BIOS between Coreboot and Linux to set up BIOS e820 callbacks, or find some other way to explain the memory layout to Linux.
Have you tried SeaBIOS again now that the UMA area and high tables are right?
Yes, I just did. For some reason it still does not do anything at all. The last output I see is from Coreboot:
Jumping to boot code at fdf82 POST: 0xfe entry = 0x000fdf82 lb_start = 0x00200000 lb_size = 0x00128000 adjust = 0x6fcc8000 buffer = 0x6fda0000 elf_boot_notes = 0x00219e24 adjusted_boot_notes = 0x6fee1e24
Then nothing after this, both on serial port and VGA. The SeaBIOS image was precompiled 0.6.0 ELF from the SeaBIOS "home page".
So far I have Grub2 more or less working, so is Coreinfo, and I can also get response (VGA & keyboard) from FILO, although it does not find my disks. Grub2 sees my IDE disk and cdrom as "ata6" and "ata7".
Multiboot Information structure has been written. POST: 0x9d Adding CBMEM entry as no. 5 Writing high table forward entry at 0x00000500 Wrote coreboot table at: 00000500 - 00000518 checksum 9fde New low_table_end: 0x00000518 Now going to write high coreboot table at 0x7fffe000 rom_table_end = 0x7fffe000 Adjust low_table_end from 0x00000518 to 0x00001000 Adjust rom_table_end from 0x7fffe000 to 0x80000000 Adding high table area uma_memory_start=0x70000000, uma_memory_size=0x10000000 coreboot memory table: 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES 1. 0000000000001000-000000000009ffff: RAM 2. 00000000000c0000-000000006fffffff: RAM 3. 0000000070000000-000000007fffffff: RESERVED Wrote coreboot table at: 7fffe000 - 7fffe8bc checksum 3af4 coreboot table: 2236 bytes.
It doesn't seem good that the Multiboot table gets written before the UMA and high table areas are added. I would think that's why they don't show up.
I don't have a good reason why SeaBIOS isn't working.
Thanks, Myles