[U-Boot] [PATCH] powerpc/mpc85xx: SECURE BOOT - Bypass PAMU in case of secure boot

By default, PAMU's (IOMMU) are enabled in case of secure boot. Disable/bypass them , once the control reached the bootloader.
For non-secure boot, PAMU's are already bypassed in the default SoC configuration
Signed-off-by: Ruchika Gupta ruchika.gupta@freescale.com CC: York Sun yorksun@freescale.com --- arch/powerpc/cpu/mpc85xx/cpu_init.c | 6 +++++- arch/powerpc/include/asm/immap_85xx.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c index 21c3194..15a7771 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu_init.c +++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c @@ -424,7 +424,7 @@ ulong cpu_init_f(void) { ulong flag = 0; extern void m8560_cpm_reset (void); -#ifdef CONFIG_SYS_DCSRBAR_PHYS +#if defined(CONFIG_SYS_DCSRBAR_PHYS) || defined(CONFIG_SECURE_BOOT) ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); #endif #if defined(CONFIG_SECURE_BOOT) @@ -456,6 +456,10 @@ ulong cpu_init_f(void) #if defined(CONFIG_SYS_CPC_REINIT_F) disable_cpc_sram(); #endif + + /* Put PAMU in bypass mode */ + out_be32(&gur->pamubypenr, FSL_CORENET_PAMU_BYPASS); + #endif
#ifdef CONFIG_CPM2 diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h index 88c1e08..0264523 100644 --- a/arch/powerpc/include/asm/immap_85xx.h +++ b/arch/powerpc/include/asm/immap_85xx.h @@ -1912,6 +1912,7 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022) u8 res24[64]; u32 pblsr; /* Preboot loader status */ u32 pamubypenr; /* PAMU bypass enable */ +#define FSL_CORENET_PAMU_BYPASS 0xffff0000 u32 dmacr1; /* DMA control */ u8 res25[4]; u32 gensr1; /* General status */

On 09/17/2014 03:35 AM, Ruchika Gupta wrote:
By default, PAMU's (IOMMU) are enabled in case of secure boot. Disable/bypass them , once the control reached the bootloader.
For non-secure boot, PAMU's are already bypassed in the default SoC configuration
Signed-off-by: Ruchika Gupta ruchika.gupta@freescale.com CC: York Sun yorksun@freescale.com
arch/powerpc/cpu/mpc85xx/cpu_init.c | 6 +++++- arch/powerpc/include/asm/immap_85xx.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-)
Ruchika,
This patch broken these boards
BSC9132QDS_SDCARD_DDRCLK133_SECURE BSC9132QDS_SDCARD_DDRCLK100_SECURE BSC9132QDS_NAND_DDRCLK133_SECURE P1010RDB-PA_36BIT_SPIFLASH_SECBOOT P1010RDB-PA_SPIFLASH_SECBOOT P1010RDB-PB_36BIT_NOR_SECBOOT BSC9132QDS_NOR_DDRCLK100_SECURE P1010RDB-PB_NAND_SECBOOT BSC9132QDS_SPIFLASH_DDRCLK100_SECURE P1010RDB-PA_36BIT_NOR_SECBOOT P1010RDB-PB_36BIT_NAND_SECBOOT BSC9132QDS_NAND_DDRCLK100_SECURE P1010RDB-PB_NOR_SECBOOT BSC9132QDS_NOR_DDRCLK133_SECURE P1010RDB-PA_NAND_SECBOOT BSC9132QDS_SPIFLASH_DDRCLK133_SECURE P1010RDB-PA_NOR_SECBOOT P1010RDB-PA_36BIT_NAND_SECBOOT
Please check.
York
participants (2)
-
Ruchika Gupta
-
York Sun