Porting on i.MX6

Stefan Kalkowski stefan.kalkowski at ...1...
Wed Jul 10 10:53:11 CEST 2013

Hello Aditya,

On 07/10/2013 05:23 AM, Aditya Kousik wrote:
> Hello
> Firstly, thank you for patiently replying to our queries and debugging
> issues so far.

you're welcome.

> We're trying to port Genode onto an i.MX6, which we've realised is no
> easy task. Our initial approach to this was to tweak existing i.Mx53
> files and make corresponding changes (arm cortex a9, created imx6
> related folders in include). As pointed out to us by Stefan, this was
> completely off track as the memory layout may be mixed up (or many more
> issues).
> Here's a brief reboot of our attempt:
> 1. edit create_builddir to add a rule for imx6 board and added
> build.conf.hw_imx6 in builddir folder.
> 2. modify board_base.h in base/include/platform/imx6/drivers and fill
> with addresses by referring to the imx6 reference manual. (We also added
> CORTEX_A9_CLOCK and private memory base)
> 3. read through the Makefile and added spec-hw_imx6 and
> spec-platform_imx6 respectively.
> 4. created imx6 folder with files in os/include/platform/imx6 as well.
> (All with imx53 as reference)

There are certainly some more dimensions you've to deal with:

1. Regarding your test board: are you starting in TrustZone secure, or
non-secure mode? In the i.MX53 case, we're anticipating starting in
secure mode, but this depends on the board, and it's boot chain
2. Ensure to use the right interrupt controller. On i.MX53 Freescale's
own TrustZone Interrupt Controller (TZIC) is used. On i.MX6 it is
certainly ARM's GIC. That interrupt controller is already available in
base-hw, but has to be used instead of TZIC.
3. Ensure to use the right UART device model. I don't know whether UART
devices between i.MX53 and i.MX6 SoCs changed. It's unlikely, but you
should check that it via the reference manual.
4. Check bus controllers used in the i.MX6. On the i.MX53 we had to
program the AHB to IP bridge (AIPSTZ), so that user programs, and
thereby Genode drivers, can access different I/O memory areas.

> Make:
> Since the drivers for imx6 would take a long time to code, we are NOT
> running demo.run. We tried to build hello.run (without building
> drivers/timer) according the instructions given in your site.

I think this is a good starting point. Nevertheless, it seems the Image
Processing Unit (IPUv3) is the same like on i.MX53. So there might be a
feasible path to get the demo scenario running, after you've achieved to
run a simple scenario.

> We're getting the following error:
> Program core/imx6/core
>     COMPILE  _main.o
>     ASSEMBLE boot_modules.o
>     COMPILE  console.o
>     COMPILE  context_area.o
>     COMPILE  cpu_session_component.o
>     COMPILE  cpu_session_support.o
>     ASSEMBLE crt0.o
>     COMPILE  dataspace_component.o
>     COMPILE  dump_alloc.o
>     COMPILE  io_mem_session_component.o
>     COMPILE  io_mem_session_support.o
>     COMPILE  irq_session_component.o
>     COMPILE  kernel.o
>     COMPILE  kernel_support.o
>     COMPILE  main.o
> make[3]: *** No rule to make target `mode_transition.o', needed by
> `core'.  Stop.
> make[2]: *** [core.prg] Error 2
> make[1]: *** [gen_deps_and_build_targets] Error 2
> make[1]: Leaving directory `/media/work/assorted/genode/imx'
> Error: Genode build failed
> make: *** [run/hello] Error 255

I guess you've added the 'mode_transition.s' file to the 'SRC_S'
variable in your i.MX6 specific core 'target.mk' file, but missed to
tell 'make', where to look for the file. A simple 'vpath' directive, like:

  vpath mode_transition.s    $(REP_DIR)/src/core/arm_v7

in the same file should fix that.


> Thanks and regards
> Aditya
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> Genode-main mailing list
> Genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main

Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ ยท http://genode.org/

More information about the users mailing list