Hello
I'm trying to port Genode on to pandaboard on Fiasco.OC. In base-foc/config there a list of platform specific kernel, user (panda.kernel and panda.user) files generated. How are those files generated?
Also, in certain folders of os/src/drivers/ and os/include/ have platform specific files coded. How are they related/utilised to/in the build process?
Thanks and regards Aditya
Hello Aditya,
thanks for trying out Genode and welcome to the list!
I'm trying to port Genode on to pandaboard on Fiasco.OC. In base-foc/config there a list of platform specific kernel, user (panda.kernel and panda.user) files generated. How are those files generated?
Those files are generated by the configuration system of the Fiasco.OC kernel and the L4re userland (from which we use some minor parts) respectively.
The 'panda.kernel' file a copy of a known-good Fiasco.OC configuration for the Pandaboard. When issuing 'make kernel' from the Genode build directly (created for the foc_panda), the kernel will be configured and built using this configuration. You can find the result at '<build-dir>/kernel/fiasco.oc'. If you like, you can modify the configuration using the kernel's interactive configuration system via:
make SYSTEM_TARGET=/usr/local/genode-gcc/bin/genode-arm
(invoked from within '<build-dir>/kernel/fiasco.oc') After exiting the configuration interface, the new configuration will be written to 'globalconfig.out'. This file corresponds to the 'panda.kernel' file that you just discovered. The 'panda.user' file is similar, but contains the known-good configuration for the L4re build system.
Also, in certain folders of os/src/drivers/ and os/include/ have platform specific files coded. How are they related/utilised to/in the build process?
Please let me point you to the documentation of the build system:
http://genode.org/documentation/developer-resources/build_system
In short, the build process is steered by so-called SPEC values defined per build directory. Those values describe the platform and are used to select the proper targets and libraries. If there remain specific questions unanswered by the documentation, please do not hesitate to post them here. So we can improve the documentation accordingly.
Cheers Norman