IORESOURCE_IO, IORESOURCE_IO);
pci_write_config8(dev, PCI_IO_BASE, base >> 8);
pci_write_config8(dev, PCI_IO_LIMIT, limit >> 8);
+ pci_write_config16(dev, PCI_IO_BASE_UPPER16, 0);
+ pci_write_config16(dev, PCI_IO_LIMIT_UPPER16, 0);
}
else if (resource->index == PCI_MEMORY_BASE) {
/* set the memory range
IORESOURCE_MEM | IORESOURCE_PREFETCH);
pci_write_config16(dev, PCI_PREF_MEMORY_BASE, base >> 16);
pci_write_config16(dev, PCI_PREF_MEMORY_LIMIT, limit >> 16);
+ pci_write_config32(dev, PCI_PREF_BASE_UPPER32, 0);
+ pci_write_config32(dev, PCI_PREF_LIMIT_UPPER32, 0);
}
else {
printk_err("ERROR: invalid resource->index %x\n",
print_debug("Disabling read/write/fill probes for UP... ");
val=pci_read_config32(NODE_HT(0), 0x68);
- val |= 0x0000040f;
+ val |= (1<<10)|(1<<9)|(1<<8)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1 << 0);
pci_write_config32(NODE_HT(0), 0x68, val);
print_debug("done.\r\n");
{
/* this function does 2 things:
* 1) detect whether the coherent HT link is connected.
- * After this step follows a small idle loop.
* 2) verify that the coherent hypertransport link
* is established and actually working by reading the
* remote node's vendor/device id
if ( (val&0x17) != 0x03)
return 0;
- /* idle loop to make sure the link is established */
- for (val=0;val<16;val++);
-
/* 2) */
val=pci_read_config32(NODE_HT(dest),0);
if(val != 0x11001022)
PCI_ADDR(0, 0x18, 1, 0xA4), 0x00000048, 0x00000000,
PCI_ADDR(0, 0x18, 1, 0xAC), 0x00000048, 0x00000000,
PCI_ADDR(0, 0x18, 1, 0xB4), 0x00000048, 0x00000000,
- PCI_ADDR(0, 0x18, 1, 0xBC), 0x00000048, 0x00000000,
+ PCI_ADDR(0, 0x18, 1, 0xBC), 0x00000048, 0x00ffff00,
/* Memory-Mapped I/O Base i Registers
* F1:0x80 i = 0
PCI_ADDR(0, 0x18, 1, 0xA0), 0x000000f0, 0x00000000,
PCI_ADDR(0, 0x18, 1, 0xA8), 0x000000f0, 0x00000000,
PCI_ADDR(0, 0x18, 1, 0xB0), 0x000000f0, 0x00000000,
- PCI_ADDR(0, 0x18, 1, 0xB8), 0x000000f0, 0x00000000,
+ PCI_ADDR(0, 0x18, 1, 0xB8), 0x000000f0, 0x00fc0003,
/* PCI I/O Limit i Registers
* F1:0xC4 i = 0