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

yhlu yinghailu at gmail.com
Thu Apr 10 20:15:08 CEST 2008


On Thu, Apr 10, 2008 at 6:40 AM, Carl-Daniel Hailfinger
<c-d.hailfinger.devel.2006 at gmx.net> wrote:
> Hi,
>
>
>  On 10.04.2008 14:16, George V. Adamov wrote:
>  > Hi evrybody!
>  > I have already asked once about this problem, but no responce resieved,
>  > so the question is - are the motherboards ms-7260 amd Gigabyte based on
>  > MCP 55 truly full functional? I mean devices pluged in their pci slots -
>  > are they really  operatable?
>  >
>
>  This depends a lot on the boards. Unfortunately, there is not public
>  documentation about MCP55 internals.
>
>
>
>  > /*here is the old message, perhaps somebody could give an idea what the
>  > trouble with pci slots could be*/
>  >
>  > 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
>  >
>  > /*slot0*/
>  > 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++;
>  >
>  >  /*slot1*/
>  >  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++;
>  >
>  > /*slot2*/
>  >  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 ?
>  >
>
>  Can you post a full boot log with debugging enabled? Please post a patch
>  against current svn HEAD as well. That way, we have a chance to help you.

please make sure you are using 64bit SMP kernel.

BTW. the irq_tables.c is only used for discovering of peer root bus
other than bus0 when acpi is not there.

YH

YH




More information about the coreboot mailing list