[PATCH] ppc32: Fix static IO mapping for Freescale MPC52xx
authorSylvain Munaut <tnt@246tNt.com>
Fri, 6 Jan 2006 08:11:34 +0000 (00:11 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:33:31 +0000 (08:33 -0800)
The current iomapping used MBAR_SIZE for the size argument of
io_block_mapping, resulting in a call to setbat with a size argument of 64k
which is invalid.

This patch correct this and maps the whole 0xf0000000->0xffffffff range so
that devices on the local bus are also included in the BAT mapping.

Thanks to Bernhard Kuhn from Metrowerks for pointing this out.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc/syslib/mpc52xx_setup.c

index bb23745..a4a4b02 100644 (file)
@@ -84,9 +84,11 @@ mpc52xx_set_bat(void)
 void __init
 mpc52xx_map_io(void)
 {
-       /* Here we only map the MBAR */
+       /* Here we map the MBAR and the whole upper zone. MBAR is only
+          64k but we can't map only 64k with BATs. Map the whole
+          0xf0000000 range is ok and helps eventual lpb devices placed there */
        io_block_mapping(
-               MPC52xx_MBAR_VIRT, MPC52xx_MBAR, MPC52xx_MBAR_SIZE, _PAGE_IO);
+               MPC52xx_MBAR_VIRT, MPC52xx_MBAR, 0x10000000, _PAGE_IO);
 }