On Sun, 8 Nov 2020 at 00:32, Michael Grunditz michael.grunditz@gmail.com wrote:
On Sat, 7 Nov 2020 at 15:57, Michael Grunditz michael.grunditz@gmail.com wrote:
snip
I am facing below:
Error: Assertion failed: id < _count && _cpus[id].constructed() Error: File: /home/micken/genode/repos/base-hw//src/core/kernel/cpu.cc:198 Error: Function: Kernel::Cpu& Kernel::Cpu_pool::cpu(unsigned int) The call that gets me there originates from core/kernel. I have configured one cpu , so id is always 0. The construct function is called prior to this, but the util method doesn't return * I THINK * .
Any thoughts?
After a lot of headache I found this:
This functioncall does not return:
_cpus[id].construct(id, _global_work_list);
A exception was generated and resulted in a call to kernel() when no cpu's where configured. Possible case for exception is changing in EL, starting cpus (psci), I hope/think that uboot handles it.. but need to investigate more. Booting from uImage fails, at first right before starting and decompressing, then after applied patch from imx8q , goes to "no atag builtin...etc". I removed that hang()... uboot bails out on decompression . I disabled compression and can now see exception directly after "starting kernel" ESR is image entry/load.
Which EL is best to start with? when testing with running genode with 'go' things worked quite well. With bootm it can switch to EL1.
I hacked in EL1 into 'go' Result: same issue.. get exception calls kernel().. probably exception from mmu init. What are the requirement for RAM , in terms of start and size? Should it include the Genode image?
OK I think I got most in this mail.. been writing on it all day! :-)
Btw if someone want to chat .. I am on irc
. Just want to confirm that I found the place of crash:
cpus[id].construct(id, _global_work_list); , just as I thought from start. I changed exception return to B .
From that I could narrow it down.
Thanks for reading!