[ARM] iop: iop3xx needs registers mapped uncached+unbuffered
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 9 Nov 2008 11:18:36 +0000 (11:18 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 9 Nov 2008 11:18:36 +0000 (11:18 +0000)
commitebb4c65869db7213280ad9c510637683939b5ff8
treee9aa372c806fad73a04ba2f9d16d1f17491a11cf
parent7bfc0b2e266dd4cd3d3f27a3ad31bf79974190b1
[ARM] iop: iop3xx needs registers mapped uncached+unbuffered

Mikael Pettersson reported:

   The 2.6.28-rc kernels fail to detect PCI device 0000:00:01.0
   (the first ethernet port) on my Thecus n2100 XScale box.

   There is however still a strange "ghost" device that gets partially
   detected in 2.6.28-rc2 vanilla.

The IOP321 manual says:

  The user designates the memory region containing the OCCDR as
  non-cacheable and non-bufferable from the IntelR XScaleTM core.
  This guarantees that all load/stores to the OCCDR are only of
  DWORD quantities.

Ensure that the OCCDR is so mapped.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/mach/map.h
arch/arm/mm/mmu.c
arch/arm/plat-iop/setup.c