port samsung exynos 5
Norman Feske
norman.feske at ...1...
Sat Jan 10 18:14:42 CET 2015
Hello Waldo,
> neither option serves me because I'm working with YSE5250 card, and
> really what I want to know is if Genode supports that card.
this board is not supported out of the box. But since it is very similar
to the Arndale board, it should be fairly simple to add support for it
by following the existing patterns for the Arndale platforms.
To get an overview of the potential construction sites, I would grep the
Genode source tree for code that is Arndale-specific:
cd genode
grep -ri "arndale" tool repos/base repos/base-hw
Let me highlight some specific places that will need your attention:
Extend 'tool/create_builddir'
Add support for creating a build directory for your platform. Look
for 'hw_arndale' and add analogous snippets for your 'hw_yse5250'
platform.
Add 'repos/base/mk/spec-platform_hw_yse5250.mk'
This file characterizes the feature set of your board. Take
'spec-platform_hw_arndale.mk' as reference.
Add 'repos/base/include/platform/yse5250/drivers/board_base.h'
This file tells Genode the MMIO addresses and IRQ numbers of
various peripherals. Again, you may take the Arndale version
('platform/arndale/drivers/board_base.h') as reference. Since
both boards are based on the same SoC, I do not expect many
differences.
Add 'repos/base-hw/mk/spec-hw_yse5250.mk'
This file contains base-hw-specific parameters for building
Genode components. Take 'repos/base-hw/mk/spec-hw_arndale.mk'
as reference.
Add 'repos/base-hw/src/core/spec/yse5250/platform_support.cc'
This file defines which parts of the physical address space
are RAM or MMIO regions. I think you may be able to just copy
the Arndale version ('core/spec/arndale/platform_support.cc').
Add 'repos/base-hw/lib/mk/platform_yse5250/core.mk'
This file describes how Genode's core/kernel is built. Just
follow the pattern found in 'core/platform_arndale/core.mk'.
Altogether, these are less that 100 lines of code to add.
After these steps, you should be able to run a simple scenario on your
board (e.g., 'repos/base/run/printf.run'). The next step would be to
enable the timer service. To do that, follow the approach above. Take
'repos/os/lib/mk/hw_arndale/timer.mk' as a blue print.
The final step to enable more sophisticated device drivers is the
so-called platform driver found at 'repos/os/src/drivers/platform' and
'repos/os/include/platform'. Again, you may take the Arndale version as
starting point. Maybe, the yse5250 version may be even identical to that.
Happy hacking!
Norman
--
Dr.-Ing. Norman Feske
Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
More information about the users
mailing list