xiongyi04 at gmail.com
Tue Jun 12 21:45:10 CEST 2007
I am also figuring out about the hand-off between LB and the payload these
days. Till now, I haven't found any specification about this issue. But I
think the source code files explain it clearly.
For example, the "struct lb_memory *write_tables(void)" in the file of
/src/arch/i386/boot/tables.c can answer some issues you mentioned.
There's some doxygen documentation of LinuxBIOS here:
http://qa.linuxbios.org/docs/doxygen/. It is sometimes useful to follow the
code flow more easily.
I also care much about this subject you submitted.
发件人: linuxbios-bounces at linuxbios.org [mailto:linuxbios-bounces at linuxbios.
org] 代表 Brendan Trotter
发送时间: 2007年6月11日 21:24
收件人: linuxbios at linuxbios.org
主题: [LinuxBIOS] Specifications?
I'm wondering if there's a specification describing the state of the
computer at the hand-off between LinuxBIOS and a payload.
So far I've got LinxBIOS booting a dummy "for(;;)" payload in Bochs,
and I've found out there's a "LinuxBIOS Table" and that it can be
found by searching for "LBIO" in the first 4 KB of RAM and in the area
between 0xF000 and 0xFFFFF. I don't know if there's a checksum or any
other validation, and have been unable to find anything describing
what this table contains.
I assume there may also be ACPI, MP specification, PIRQ routing and/or
(possibly) SMI/DMI tables, and I'm guessing that (if present) these
tables can be searched for using the same methods as described in
their corresponding specifications.
There's also other issues, for e.g:
- will an 80x86 system always be in 32-bit protected mode for 32-bit
ELF payloads, and is long mode possible for ELF64 payloads (and if so,
how is paging setup)?
- are any parameters passed on the stack to the payload's entry function?
- are AP CPUs started (or waiting for a SIPI sequence)?
- can the payload assume anything about the state of the PIC, I/O
APIC/s and local APIC/s, PIT, RTC, ISA DMA controllers, serial ports,
- what state are PCI buses and devices left in (would a payload need
to do full PCI bus enumeration, or..)?
- is there anything in the LinuxBIOS table that could be used to
determine if the computer is "headless" and which serial port or other
device to use if it is?
- can anything be assumed about AGP and the first video card (if the
computer isn't headless)?
- is there any form of "LinuxBIOS API" that can be used by the payload
for generic low level disk access (floppy/ATA/ATAPI/SCSI)?
linuxbios mailing list
linuxbios at linuxbios.org
More information about the coreboot