Seen this when interrupts in irq.c were wrong based on The motherboard. In our case we'd use etherboot to Load the kernel (which doesn't handle interrupts) then Once kernel was loaded we'd see the problem. This Was fixed by fixing the irq table.
Thanks for the hint. I am able to load the kernel now. It just executes commands very slowly.
One question for the irq_routing table(is that what you mean by irq.c?). The getpir util generates a routing table by looking at the memory config of my "developing" machine. How's it related to my target machine?
Any document I can reference? This link mentioned on irq_tables.c http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM doesn't work.
gin