Index: work-powerpc.git/arch/ppc/syslib/mpc52xx_setup.c =================================================================== --- work-powerpc.git.orig/arch/ppc/syslib/mpc52xx_setup.c +++ work-powerpc.git/arch/ppc/syslib/mpc52xx_setup.c @@ -86,8 +86,11 @@ mpc52xx_map_io(void) /* 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 */ + /* Disable guarded bit, so we can execute code from SRAM. + * Unfortunately, mappings are >= 2**17, so we "unguard" MBAR registers + * too. This probably isn't a problem. */ io_block_mapping( - MPC52xx_MBAR_VIRT, MPC52xx_MBAR, 0x10000000, _PAGE_IO); + MPC52xx_MBAR_VIRT, MPC52xx_MBAR, 0x10000000, _PAGE_IO & ~_PAGE_GUARDED); }