cpu id for big cpu 0x400

Stefan Kalkowski stefan.kalkowski at genode-labs.com
Thu Jan 19 11:23:42 CET 2023


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 at lists.genode.org
> https://lists.genode.org/listinfo/users

-- 
Stefan Kalkowski
Genode labs

https://github.com/skalk | https://genode.org



More information about the users mailing list