There currently isn’t official multikernel support in seL4 yet. That is, we have added syscalls to send IPIs to other cores for Arm GICv2 and v3, and on RISC-V it can be done via an SBI call. Adding IPI support to x86 would be more complicated and no one is working on that as far as I know (the people using multikernel on x86 don’t need it for their use case).
The current state is that people have been using single-core builds of seL4 and manually created a multikernel setup. The two approaches used are either building the kernel multiple times with different DTS files to partition RAM, or use custom loaders and hack the seL4 init code to tell it what the partitioning is.
There is a multikernel Mattermost channel, but it’s sadly not very active.
I think upstream support for a more flexible boot interface so people don’t need to hack the init code themselves would help. Now everyone does their own version of that, it would be better to consolidate.
For official support the verification side needs to be finished.
Main practical open issues are partitioning and how to deal with shared hardware, like interrupt controllers. That currently works mostly by chance.
If frameworks like Camkes or Microkit support mulitkernel, then the user changes are minimal. But in your case you use Genode and can’t use such frameworks and need to do the grunt work yourself.
From a practical point of view, I always recommend getting SMP working first, as that is trivial compared to multikernel. If you avoid cross-core IPC calls, then your user space software is ready for multikernel. Notifications can be done cross core via IPI support, you just need to tie the right IPI to the right notification. If you can’t do this 1:1 then things get more complicated and you need to multiplex signals in user space on both cores (once you have that, you can also implement cross-core IPC calls). Once you have SMP working, you can add multikernel support on top of that. It’s mostly additional orthogonal work. If you run into any issues, you can switch between the two configurations to see whether the problem is common or specific to one of them.
But to answer your original question: No, there are currently no docs about this.
Main limitation of SMP is that it will never be verified and that it breaks assumptions made in the code which are not easy to spot and can lead to bugs. Things are a lot more stable now than they used to be, but still. The big kernel lock also slows down syscalls and makes things less deterministic.
Multikernel isn’t verified yet, and not all changes necessary for proper multikernel support have been done yet (IRQ controller), the burden now is mostly all on the toolkit (compile, configuration and boot) side. That said, the current verification still mostly applies, IMHO running a different seL4 kernel on another core isn’t that different than having another bus master: Correctness depends mostly on partitioning. If you get that right, then the safety and security story is still pretty good.