[COMMIT] freebios2 How much have I broken?
Eric W. Biederman
ebiederman at lnxi.com
Mon Oct 13 21:26:01 CEST 2003
YhLu <YhLu at tyan.com> 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
More information about the coreboot
mailing list