Commit 8419c013 authored by Wolfgang Denk's avatar Wolfgang Denk

MPC5200: enable snooping of DMA transactions on XLB even if no PCI

is configured; othrwise DMA accesses aren't cache coherent which
causes for example USB to fail.
parent cf48eb9a
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
Changes since U-Boot 1.1.4: Changes since U-Boot 1.1.4:
====================================================================== ======================================================================
* MPC5200: enable snooping of DMA transactions on XLB even if no PCI
is configured; othrwise DMA accesses aren't cache coherent which
causes for example USB to fail.
* Some code cleanup * Some code cleanup
* Fix dbau1x00 boards broken by dbau1550 patch * Fix dbau1x00 boards broken by dbau1550 patch
......
...@@ -152,6 +152,10 @@ void cpu_init_f (void) ...@@ -152,6 +152,10 @@ void cpu_init_f (void)
/* enable timebase */ /* enable timebase */
*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 13); *(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 13);
/* Enable snooping for RAM */
*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 15);
*(vu_long *)(MPC5XXX_XLBARB + 0x70) = CFG_SDRAM_BASE | 0x1d;
# if defined(CFG_IPBSPEED_133) # if defined(CFG_IPBSPEED_133)
/* Motorola reports IPB should better run at 133 MHz. */ /* Motorola reports IPB should better run at 133 MHz. */
*(vu_long *)MPC5XXX_ADDECR |= 1; *(vu_long *)MPC5XXX_ADDECR |= 1;
......
...@@ -135,10 +135,6 @@ void pci_mpc5xxx_init (struct pci_controller *hose) ...@@ -135,10 +135,6 @@ void pci_mpc5xxx_init (struct pci_controller *hose)
*(vu_long *)MPC5XXX_PCI_BAR1 = CONFIG_PCI_MEMORY_BUS | (1 << 3); *(vu_long *)MPC5XXX_PCI_BAR1 = CONFIG_PCI_MEMORY_BUS | (1 << 3);
*(vu_long *)MPC5XXX_PCI_TBATR1 = CONFIG_PCI_MEMORY_PHYS | 1; *(vu_long *)MPC5XXX_PCI_TBATR1 = CONFIG_PCI_MEMORY_PHYS | 1;
/* Enable snooping for RAM */
*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 15);
*(vu_long *)(MPC5XXX_XLBARB + 0x70) = CONFIG_PCI_MEMORY_PHYS | 0x1d;
/* Park XLB on PCI */ /* Park XLB on PCI */
*(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~((7 << 8) | (3 << 5)); *(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~((7 << 8) | (3 << 5));
*(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (3 << 8) | (3 << 5); *(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (3 << 8) | (3 << 5);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment