|
From: | ckim |
Subject: | How to start an armv8 machine in EL3? |
Date: | Wed, 3 Mar 2021 17:06:22 +0900 |
Hello all, I found out in a baremetal program I run for qemu aarch64 ‘virt’ machine (cpu is cortex-a72), the “msr sp_el1, x0” instruction causes trap making PC jump to 0x200 which is the vector address for synchronous exception, from current EL while using SP_ELx (if the vector base address was 0, which is the case). (Ref : https://developer.arm.com/documentation/102412/0100/The-vector-tables ) When I read the ‘EL’ value by ‘msr x8, currentel’, x8 became ‘0x4’ so it is EL1 (https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/10303/armv8-a-currentel-register-definition) How come cortex-a72 machines started at EL1? And if I want to make the virtual machine start at EL3 (this baremetal code assumes it should be in EL3 after reset, and it runs ok in rtl sim.), what should I do? Thank you very much for reading. Chan Kim |
[Prev in Thread] | Current Thread | [Next in Thread] |