seL4 / docs

This is the source of the seL4 docs.
https://docs.sel4.systems
16 stars 52 forks source link

SMP on Odroid-C2 #52

Closed OYTIS closed 4 years ago

OYTIS commented 4 years ago

Is it still not supported as per documentation? PSCI is supported in elfloader, and Amlogic S905 uses PSCI. Short test with setting KernelMaxNumNodes to 4 and specifying affinity in camkes assembly file worked. Not sure how to get the current cpu from the thread though, getcpu syscall seems to be not implemented

xurtis commented 4 years ago

Is it still not supported as per documentation? PSCI is supported in elfloader, and Amlogic S905 uses PSCI. Short test with setting KernelMaxNumNodes to 4 and specifying affinity in camkes assembly file worked.

Thanks for bringing this to our attention @OYTIS. SMP does work on the ODroidC2.

Some outdated documentation we had recommended using 0x10000000 as the physical load address of the boot image when using u-boot. This would lead to the boot image overwriting the secure monitor causing subsequent cores not to boot (amongst an unknown number of other issues).

Using 0x20000000 as the load address in u-boot (as the current documentation suggests) resolves these issues.

Not sure how to get the current cpu from the thread though, getcpu syscall seems to be not implemented.

There is no way to do this in the verified kernel but if all you're looking for is to verify that the code is actually running on the intended core a combination of seL4_DebugRun and assembly code to read the multiprocessor affinity register should work.