Interrupts are very obviously broken. In this case, its waiting for an interrupt to verify that the 'hlt' instruction works. You can work around this as well, if you want, but its really going to be in your best interest to figure out whats wrong in the BIOS.
Copying IRQ routing tables to 0xf0000...done. Verifing copy of IRQ routing tables at 0xf0000...done Checking IRQ routing table consistency... check_pirq_routing_table() - irq_routing_table located at: 0x000f0000 done. Moving GDT to 0x500...ok Adjust low_table_end from 0x00000530 to 0x00001000 Adjust rom_table_end from 0x000f0400 to 0x00100000 Wrote linuxbios table at: 00000530 - 000006ec checksum 622a
So it looks like the IRQ routing tables are copied to 0xf0000. This is the Upper Bios Area 0x0F0000(960K) - 0x0FFFFF(1MB) Correct?? Could this area be write only? I have the PAM register set to R/W. This is also the "shadow" Bios area, could that be the issue? Is there a way to dump this area in human readable format right after the check_pirq_routing_table() function, so I can see what the heck is going on here? By the way I used getpir.c to get my irq_tables.c file. Could this be messed up? If so how come the functions above do not detect any errors?
Thanks - Joe