Committed.
Please check it.
i wonder what the different between offs = ( pci_read_config16(dev, pos + PCI_CAP_FLAGS) & (1<<10)) ? PCI_HT_SLAVE1_OFFS : PCI_HT_SLAVE0_OFFS;
and
offs = ( (pci_read_config16(dev, pos + PCI_CAP_FLAGS) >> 10) & 1) ? PCI_HT_SLAVE1_OFFS : PCI_HT_SLAVE0_OFFS;
* YhLu YhLu@tyan.com [050119 02:35]:
i wonder what the different between offs = ( pci_read_config16(dev, pos + PCI_CAP_FLAGS) & (1<<10)) ? PCI_HT_SLAVE1_OFFS : PCI_HT_SLAVE0_OFFS;
and
offs = ( (pci_read_config16(dev, pos + PCI_CAP_FLAGS) >> 10) & 1) ? PCI_HT_SLAVE1_OFFS : PCI_HT_SLAVE0_OFFS;
It won't configure the second 8131 correctly, still.
It boots fine though if I put my swap_links macro back in and call it for the second 8131
#define swap_links(bus,dev,fn) \ do { \ unsigned reg1,reg2; \ device_t b=PCI_DEV(bus,dev,fn); \ reg1=pci_read_config32(b, 0xCC); \ reg2=pci_read_config32(b, 0xD0); \ pci_write_config32(b, 0xCC, (reg1 & 0xffff00ff)|(reg2&0x0000ff00)); \ pci_write_config32(b, 0xD0, (reg2 & 0xffff00ff)|(reg1&0x0000ff00)); \ } while(0)
Stefan