Hello Michael,
On Tue, Jan 17, 2023 at 11:14:52AM +0100, Michael Grunditz wrote:
Hi
I am testing starting from the big cpu on rk3588. The cpu id is 0x400. Starting is fine up to core entry. But there it stops. EL switching works.
I'm a bit puzzled what you mean exactly by "... fine up to core entry." In this case you do not mean CPU core, but Genode's core component entry, don't you?
The question is , every other core is compared to NR_OF_CPUS, which is from 0 and up. What do I need to change?
You have said cpu id is 0x400? Is this what `Cpu::current_core_id()` has returned? I'm wondering because the implementation should always return values below 256. Or do you mean the raw hardware value from register MPIDR? Could you please provide that register's value by printing `Cpu::Mpidr::read()`?
Actually, this function is meant to map the CPU topology to a continuous range of natural numbers beginning from zero.
Michael
( will try now with core 1 , since obvisually core 0 isn't set up so that el switching works. I still thinks we should do core init so that we get a common state , regardless how u-boot leaves us. )
This is what we try to do actually, but of course the environment bootstrap starts in depends on the state the bootloader has left us. The claim that for instance Linux kernel resets every possible system register isn't true either. We cannot forsee every potential hardware configuration, but of course things are getting more easy the more different SoC and boards are getting ported.
Regards Stefan
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users