Hi, I was looking into the arm64 boot code lately and stumbled upon some issues. Also Nishanth brought back memories of a lengthy debug session, which was caused due to U-Boot keeping SErrors masked. As the resulting patches are all somewhat related, I gathered this series here to address those problems.
Patches 1 to 3 address exception handling issues, with the SError enablement being the most prominent fix here. Patch 4 cleans up asm/io.h. This was on the list before[1], but was somehow lost when it was intercepted by a shorter version of itself. Patches 5 and 6 clean up some unnecessarily complicated AArch64 assembly code. I did only some light testing, as some code paths do not apply to boards I have (ARMV8_MULTIENTRY). Please have a look and test! Cheers, Andre [1] https://lists.denx.de/pipermail/u-boot/2019-January/354296.html Andre Przywara (6): cmd: exception: arm64: fix undefined, add faults armv8: Always unmask SErrors armv8: Force SP_ELx stack pointer usage arm: Clean up asm/io.h armv8: Simplify switch_el macro armv8: Fix and simplify branch_if_master/branch_if_slave arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S | 11 +-- arch/arm/cpu/armv8/start.S | 10 +- arch/arm/include/asm/io.h | 98 +------------------- arch/arm/include/asm/macro.h | 37 +++----- arch/arm/include/asm/system.h | 1 + arch/arm/mach-rmobile/lowlevel_init_gen3.S | 2 +- arch/arm/mach-socfpga/lowlevel_init_soc64.S | 2 +- board/cortina/presidio-asic/lowlevel_init.S | 2 +- cmd/arm/exception64.c | 42 ++++++++- 9 files changed, 63 insertions(+), 142 deletions(-) -- 2.17.6