[LinuxBIOS] PCI IRQ routing issues with qemu
Ed Swierk
eswierk at arastra.com
Wed Sep 13 01:55:55 CEST 2006
On 9/12/06, Richard Smith <smithbone at gmail.com> wrote:
> What does Qemu do when the BIOS attempts to write to that area?
> Normally this range of memory is write protected.
Good question--I was scratching my head over this chunk of code in
qemu yesterday:
/* map the last 128KB of the BIOS in ISA space */
isa_bios_size = bios_size;
if (isa_bios_size > (128 * 1024))
isa_bios_size = 128 * 1024;
cpu_register_physical_memory(0xd0000, (192 * 1024) - isa_bios_size,
IO_MEM_UNASSIGNED);
cpu_register_physical_memory(0x100000 - isa_bios_size,
isa_bios_size,
(bios_offset + bios_size -
isa_bios_size) | IO_MEM_ROM);
Turns out that commenting out this code not only doesn't cause any
harm, it lets LinuxBIOS write the IRQ table.
The next problem I ran into was LinuxBIOS complaining about the size
and checksum of the table not matching. I solved this by adding
"option IRQ_SLOT_COUNT=6" to my Config.lb.
Now Linux happily finds IRQs and can talk to the Ethernet and USB
devices just fine.
Thanks for your help!
--Ed
More information about the coreboot
mailing list