|Subject:||How to start an armv8 machine in EL3?|
|Date:||Wed, 3 Mar 2021 17:06:22 +0900|
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).
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.
|[Prev in Thread]||Current Thread||[Next in Thread]|