u boot 32bit - MarekBykowski/readme GitHub Wiki

Add symbols and tell the debugger where the sources are

add-symbol-file /home/ubuntu/yocto/poky/arm32-aem-build/tmp/work/fvp_base_arm32-poky-linux-gnueabi/u-boot/1_2022.04-r0/build/u-boot
directory /home/ubuntu/yocto/poky/arm-aem-build/tmp/work/fvp_base-poky-linux/u-boot/2024.01/git

If u-boot relocated add relocation offset to the symbols. Read it from the console.

add-symbol-file /home/ubuntu/yocto/poky/arm32-aem-build/tmp/work/fvp_base_arm32-poky-linux-gnueabi/u-boot/1_2022.04-r0/build/u-boot 0x76fb4000

Fix mmu translations in u-boot

hbreak -p cache-cp15.c:mmu_enabled
  • First, find out how to write/read on the c15 system/control registers. Look up for VMSA CP15 c15 register summary, IMPLEMENTATION DEFINED registers
  • For short-descriptor translation, CONFIG_CPU_V7A in u-boot, c2 0 c0 2 TTBCR 32-bit Translation Table Base Control Register decides if ttbr0 or ttbr1 in use. From armds
print /x $ttbcr

From C

asm volatile("mrc p15, 0, %0, c2, c0, 2" : "=r" (ttbcr) : : "memory");

From armds check if system control reg.M is set print /t $sctlr

print /x $HTTBR
print /x $HTCR
print /x $HSCTLR