pci-expmem-hack
CFE 1.2.5 and earlier fails to turn on the ExpMemEn bit in the PCIFeatureControl register, which means that DMA does not work beyond physical address 01_0000_0000, ergo to DRAM beyond 1GB. With ExpMemEn turned on, 01_0000_0000-0f_ffff_ffff is mapped, so DMA works for up to 61 GB of DRAM. Will be fixed in CFE 1.2.6 (yet to be released). Signed-Off-By: Andy Isaacson <adi@broadcom.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
8a1417de9e
commit
cb4262481f
1 changed files with 8 additions and 0 deletions
|
@ -232,6 +232,14 @@ static int __init bcm1480_pcibios_init(void)
|
|||
bcm1480_bus_status |= PCI_BUS_ENABLED;
|
||||
}
|
||||
|
||||
/* turn on ExpMemEn */
|
||||
cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0), 0x40));
|
||||
printk("PCIFeatureCtrl = %x\n", cmdreg);
|
||||
WRITECFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0), 0x40),
|
||||
cmdreg | 0x10);
|
||||
cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0), 0x40));
|
||||
printk("PCIFeatureCtrl = %x\n", cmdreg);
|
||||
|
||||
/*
|
||||
* Establish mappings in KSEG2 (kernel virtual) to PCI I/O
|
||||
* space. Use "match bytes" policy to make everything look
|
||||
|
|
Loading…
Reference in a new issue