YhLu <[EMAIL PROTECTED]> writes:

> Eric,
> 
> After changed to following,
>       PCI_ADDR(0, 0x18, 1, 0xE0), 0x0000FC88, 0x00000003,
>       PCI_ADDR(0, 0x18, 1, 0xE4), 0x0000FC88, 0x00000000,
>       PCI_ADDR(0, 0x18, 1, 0xE8), 0x0000FC88, 0x00000000,
>       PCI_ADDR(0, 0x18, 1, 0xEC), 0x0000FC88, 0x00000000,


And below is the code that I think will unconditionally fix the weird cases.
It does not hurt anything here, but I don't have a board with a second link
handy, so I can't reproduce the failure case.  I just get strange hangs
when I attempt to route resources out an invalid link.

It goes in in src/northbridge/amd/amdk8/northbridge.c

unsigned int amdk8_scan_root_bus(device_t root, unsigned int max)
{
        unsigned reg;
        max = pci_scan_bus(&root->link[0], PCI_DEVFN(0x18, 0), 0xff, max);
        /* Unmap all of the other pci busses */
        for(reg = 0xe0; reg <= 0xec; reg += 4) {
                f1_write_config32(reg, 0);
        }
        return max;
}

Eric

_______________________________________________
Linuxbios mailing list
[EMAIL PROTECTED]
http://www.clustermatic.org/mailman/listinfo/linuxbios

Reply via email to