On Tue, 3 Jan 2023 at 16:10, Stefan Kalkowski stefan.kalkowski@genode-labs.com wrote:
Hello Michael,
Hello Stefan and thanks for the answer.
On Tue, Jan 03, 2023 at 12:29:31PM +0100, Michael Grunditz wrote:
Hi
Where does Genode/base-hw write the exception vector to the address that hypervisor_exception_vector reports it?
The hypervisor_exception_vector gets mapped at a later point during kernel initialization. But it needs to be set in the corresponding EL2 register while the bootstrap code is still in EL2 to be able to return later to it. It is not useable for debugging kernel/bootstrap issues anyway. So do not mind, if you cannot see anything useful when provoking a machine exception in this stage. If you want to use it as debug utility, you can use the u-boot exception vector, like you already did.
I see. Thanks for the explanation.
The el2_stack seems like a very high address.
This is correct, but it is simply at the higher area of the virtual 64-bit address space, like the whole kernel/hypervisor code too.
I figured that. It is just that I was unsure about el2_stack because of , set before mmu.
I am pretty much stuck in the EL dropping from EL2. It worked for RK3399 but that was with A53. I have cross referenced the manuals and studied the uboot macro asm. No difference , and the uboot switch works just fine. I am currently comparing Genode and uboot setup before EL switching.If I don't set the EL2 stack I get an exception ESR: 0x3a000000. Exception from an Illegal execution state. In uboot it isn't changed (Obvisually ). I am also going to rebase once again. Good as a sanity check.
Thanks,
Michael