Hi,
I have done some testing to get seL4 and Genode boot on an ARM device (AM335x based). I have a branch on github that got into the Genode userland code, but it sadly isn't that up to date (from december 2016). I just broke x86 support for testing purposes (as it is more or less hard coded in Genode's seL4 code).
https://github.com/N8Fear/genode/tree/sel4-am335x
There are a few more things to consider: - my board uses barebox as bootloader (an uboot fork, so I guess much would work for uboot, too) - I also used a somewhat hacked version of seL4's elfloader to get an image, that combines the seL4 kernel and the genode userland to use with uboot. I guess it also may work using the Genode image as initramfs, but I never really tried that. - The branch referenced above does get into the Genode userland, but fails relatively early on due to a cap fault. (You can read the simple_root_task.txt from the documentation directory in base-sel4 - there is a part about GS-relative addressing of a thread-local-storage facility. My guess is, that that's the point were it fails on my branch).
I guess the real question is, considering that Genode+seL4 on ARM is planned for this year, how much work makes sense. Especially because it would really only make sense, if one has a concept to split the code in a way that allows to build seL4 for different architectures at the same time, which essentially means, that the code could be upstreamed. To get that done, likely would required a certain ammount of coordination with upstream...
WKR Hinnerk
On Mon, Apr 03, 2017 at 10:36:48AM +0200, Alexander Boettcher wrote:
Hi,
On 03.04.2017 04:49, Yevgeny Lavrov wrote:
This did the trick and sd_card_bench successfully executed :)
Good !
On seL4 side I got this far: The error occurs once the build process hits one of the files within this directory: base-sel4/src/core and these files appear to be Genode specific. I was able to clear out errors that are caused by wrong object types, but I hit dead end once I reach io_port_session_support.c
io_ports are a speciality on x86, so on ARM you have to skip the io_port* files completely. (On base-hw, which runs x86 and arm, look there into the mk files, where the io_port* files depended on the platform are added or not).
Cheers,
Alex.
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main