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'

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

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!


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