Hello
Firstly, thank you for patiently replying to our queries and debugging issues so far.
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)
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.
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
Thanks and regards Aditya
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:
- 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.
Regards Stefan
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.clk...
Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
среда, 10 июля 2013 г. пользователь Aditya Kousik писал:
Hello
Firstly, thank you for patiently replying to our queries and debugging issues so far.
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:
- 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)
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.
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
Thanks and regards Aditya
Hello, four months ago I added basic support for i.MX6 to genode. Results of this work you can see at https://github.com/decaprox/genode/tree/i.mx6.
Hi Nikolay, I'm trying to port genode onto i.MX6. I cloned your work to see if it works on my MX6Q-sabrelite. I followed the following steps: 1. ./tool/create_builddir hw_imx6 BUILD_DIR=imx6 2. In imx6, I did a RUN_OPT="--target uboot" make run/printf 3. I transferred the uImage using tftpboot at 0x20000000 4. bootm 0x20000000 It reaches the "starting kernel" stage and gets stuck there.
I did a readelf to see if the address I chose overlaps the bootloader. It doesn't seem to. *Output:*
Entry point 0x10005d70
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Align
EXIDX 0x07dd3c 0x1007dd3c 0x1007dd3c 0x018a8 0x018a8 0x4
LOAD 0x001000 0x10001000 0x10001000 0x47fc0 0x47fc0 0x8000 LOAD 0x049000 0x10049000 0x10049000 0x39768 0x262c55 0x8000
Any pointers on where I'm going wrong?
Regards kaushik
On Wed, Jul 10, 2013 at 3:52 PM, Nikolay Golikov <nik@...104...> wrote:
среда, 10 июля 2013 г. пользователь Aditya Kousik писал:
Hello
Firstly, thank you for patiently replying to our queries and debugging issues so far.
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:
- 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)
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.
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
Thanks and regards Aditya
Hello, four months ago I added basic support for i.MX6 to genode. Results of this work you can see at https://github.com/decaprox/genode/tree/i.mx6.
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.clk... _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main