[coreboot] MSI 7250 (MCP55 based) pci slots Interrupts problem

George V. Adamov george at kami.ru
Wed Mar 26 13:29:36 CET 2008

MSI MS7250 - MCP 55 based motherboard.  
I have troubles with interrupts of devices plug in PCI slots.
If  I use irq_tables.c with only record for irq router (just like it is 
for Gigabyte based on MCP55 and MSI7260 ):
write_pirq_info(pirq_info, bus_mcp55[0], ((sbdn+6)<<3)|0, 0x1, 0xdef8, 
0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0);
Linux says that no interrupt for pin A assigned for devices in pcis slots.
I grubbed IRQ table with getpir and added records for other devices.
As for pci slots it looks like
write_pirq_info(pirq_info, 0x01, ((sbdn+0x00)<<3)|0, 0x80/*80*/, 0x0800, 
0x00, 0x0000, 0x00, 0x0000, 0x00, 0x00000, 0x1, 0x0);
 pirq_info++; slot_num++;
 write_pirq_info(pirq_info, 0x01, ((sbdn+0x01)<<3)|0, 
0x81/*81*/,/*0x0800*/ 0x0800, 0x00,/*0x0*/ 0x0000, 0x00,/*0x0*/ 0x0000, 
0x00, 0x00000, 0x2, 0x0);
 pirq_info++; slot_num++;
 write_pirq_info(pirq_info, 0x01, ((sbdn+0x02)<<3)|0, 0x82,/*0x4ca0*/  
0x4c80, 0x83, 0x4ca0, 0x80, 0x4ca0, 0x81, 0x04ca0, 0x3, 0x0);
And I also used function pci_assign_irqs - to write irqs from the table 
into configuration space of each device
After this the device plug  in  pci slot0 starts up (it was a network 
card), but running cat /proc/interrupts - showed strange CPU time for 
eth0 (at least 3 orders higher than any other device) it was also easy 
to note that system was a bit slow with ethernet card pluged. But at 
least card worked ;)
I tried to plug it to slot1 and slot2 - when Linux tried to load module 
for the card I got NMI ((((  
Any ideas what the trouble is ?

More information about the coreboot mailing list