Hi Ahmad, I've also tried the arm_v7_defconfig + my board specific code but it does not solve the problem. The setup I'm using to build barebox just include support for my board; in my board code, under arch/arm/boards/kontron-samx7, I've nothing special, just a custom init script in the environment. To trigger the code that makes barebox hang I use now the command 'smc -n': it calls armv7_secure_monitor_install() and then __mmu_cache_on() that finally jumps to 'v7_mmu_cache_on'. Searching in the Armv7-A ref. man. here: https://static.docs.arm.com/ddi0406/cd/DDI0406C_d_armv7ar_arm.pdf at B4.1.43 (page B4 - 1554) I found that the reset value of this cp15 reg. is UNKNOWN and I can also verify this. Moreover the reg. must also be banked: there is a copy in secure mode and one in nonsecure mode. My test consists in reading the register just before and just after the call to arm_smccc_smc(0, 0, 0, 0, 0, 0, 0, 0, &res): static u32 read_dacr(void) { unsigned int reg; asm volatile ("mrc p15, 0, %0, c3, c0, 0\n" : "=r"(reg)); return reg; } ... int __armv7_secure_monitor_install(void) { ... printf("%s: 1) dacr: 0x%08x\n",__func__,read_dacr()); /* Initialize the secure monitor */ arm_smccc_smc(0, 0, 0, 0, 0, 0, 0, 0, &res); /* We're in nonsecure mode now */ printf("%s: 2) dacr: 0x%08x\n",__func__,read_dacr()); return 0; } and here is what I get: samx7: / smc -n __armv7_secure_monitor_install: 1) dacr: 0x00000001 __armv7_secure_monitor_install: 2) dacr: 0xdbf7afaa If I write a 0x1 or a 0x3 to DACR just before enabling the MMU in nonsecure mode then barebox does not hang. giorgio On 2020-04-06 08:16, Ahmad Fatoum wrote: > Hello Giorgio, > > On 4/3/20 3:47 PM, Giorgio wrote: >> Hi Ahmad, >> >> thank you for the detailed explanations, I'll have a look >> at the armv7 ref. manual for more background. >> >> I wanted just to note, the problem is specifically linked >> to enabling the MMU: >> >> in arch/arm/cpu/cache-armv7.S: >> >> >> orrne r0, r0, #1 @ MMU enabled >> ... >> mcr p15, 0, r0, c1, c0, 0 @ load control register >> >> without the 'orrne ...' the imx7 does not hang. > > I can't reproduce this exact problem. My setup: > > - i.MX7D sabresd board, > - imx_v7_defconfig > - check out of upstream/next, commit 5931fe40 ("Merge branch 'for-next/zii' into next") > - revert of commit 8b2104d ("driver: Call of_clk_set_defaults for each probed device") > - nv bootm.secure_state=nonsecure > > With this, I didn't observe any barebox hangs[1] while preparing a Linux net boot. > What's your setup? > > [1]: Linux still hangs due to what I assume to be a psci issue, kernel log says > "unsupported enable-method property: psci" before getting stuck durcing SDHCI probe > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox