Hi all, I am a newbie in embedded linux system, and my team is starting to integrate our biometric identification solution into the board i.MX6Q-SABRESD using Secure OS on Trustzone. After take a research around, I decide to try start with Genode on imx53_tablet_demo at https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/im.... I tried to modify base-hw/src/core/kernel/kernel.cc to add a code line PDBG("Hello\n") at the beginning of main routine void kernel() and expected to receive a "Hello" message on my Serial Terminal. I followed the instructions in README and be success to build the Genode with command line: RUN_OPT="--target uboot" make run/printf I use pre-built u-boot-mx6dl-sabresd.bin from Freescale. When I try to boot my Genode build in var/run/printf/ it just stopped at "Starting kernel..." message:
U-Boot 2009.08 (Aug 16 2013 - 12:04:20)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz Thermal sensor with ratio = 187 Temperature: 48 C, calibration data 0x59e4ff7d mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg clock : 66000000Hz ipg per clock : 66000000Hz uart clock : 80000000Hz cspi clock : 60000000Hz ahb clock : 132000000Hz axi clock : 264000000Hz emi_slow clock: 132000000Hz ddr clock : 528000000Hz usdhc1 clock : 198000000Hz usdhc2 clock : 198000000Hz usdhc3 clock : 198000000Hz usdhc4 clock : 198000000Hz nfc clock : 24000000Hz Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ] Boot Device: SD I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 In: serial Out: serial Err: serial i2c: I2C3 SDA is low, start i2c recovery... I2C3 Recovery success Found PFUZE100! deviceid=10,revid=11 Net: got MAC address from IIM: 00:04:9f:02:e0:39 FEC0 [PRIME] Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x20000000 uImage_imx6_tz reading uImage_imx6_tz
359877 bytes read MX6Q SABRESD U-Boot > bootm 20000000 ## Booting kernel from Legacy Image at 20000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 359813 Bytes = 351.4 kB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
I highly appreciate any respond to help me on this. Thank you very much in advance. --Thong Nguyen.
Hello Thong,
It seems, you are trying to run i.mx53 image on the i.mx6 board if that is the case it will not work. To run the printf script over the imx6 platform you should try out the latest master branch of Genode on git hub that have the imx6 support without trustzone. https://github.com/genodelabs/genode
For the TrustZone support on imx6 SABRE Lite board our team is also working at IIT Madras , As of now we are able to run Genode(secure world) beside Genode(normal world) so you can take a look at IIT Madras repository as the initial starting point.
Genode as secure world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_support In the hw_sabrelite_tz_support branch tz_vmm_mx6 will work as tz_vmm
Genode as normal world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_normal_os Switch application in the hw_sabrelite_tz_normal_os branch will serve you as a linux (for normal world) kernel image in tz_vmm.
Regards
Chirag Garg IIT Madras , Rise Lab
On Tue, Apr 21, 2015 at 8:20 AM, thong <thong@...323...> wrote:
Hi all, I am a newbie in embedded linux system, and my team is starting to integrate our biometric identification solution into the board i.MX6Q-SABRESD using Secure OS on Trustzone. After take a research around, I decide to try start with Genode on imx53_tablet_demo at
https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/im... . I tried to modify base-hw/src/core/kernel/kernel.cc to add a code line PDBG("Hello\n") at the beginning of main routine void kernel() and expected to receive a "Hello" message on my Serial Terminal. I followed the instructions in README and be success to build the Genode with command line: RUN_OPT="--target uboot" make run/printf I use pre-built u-boot-mx6dl-sabresd.bin from Freescale. When I try to boot my Genode build in var/run/printf/ it just stopped at "Starting kernel..." message:
U-Boot 2009.08 (Aug 16 2013 - 12:04:20)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz Thermal sensor with ratio = 187 Temperature: 48 C, calibration data 0x59e4ff7d mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg clock : 66000000Hz ipg per clock : 66000000Hz uart clock : 80000000Hz cspi clock : 60000000Hz ahb clock : 132000000Hz axi clock : 264000000Hz emi_slow clock: 132000000Hz ddr clock : 528000000Hz usdhc1 clock : 198000000Hz usdhc2 clock : 198000000Hz usdhc3 clock : 198000000Hz usdhc4 clock : 198000000Hz nfc clock : 24000000Hz Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ] Boot Device: SD I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 In: serial Out: serial Err: serial i2c: I2C3 SDA is low, start i2c recovery... I2C3 Recovery success Found PFUZE100! deviceid=10,revid=11 Net: got MAC address from IIM: 00:04:9f:02:e0:39 FEC0 [PRIME] Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x20000000 uImage_imx6_tz reading uImage_imx6_tz
359877 bytes read MX6Q SABRESD U-Boot > bootm 20000000 ## Booting kernel from Legacy Image at 20000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 359813 Bytes = 351.4 kB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
I highly appreciate any respond to help me on this. Thank you very much in advance. --Thong Nguyen.
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Chirag garg,
Thanks for your help. I tried to build your hw_sabrelite_tz_support branch as follow: RUN_OPT="--target uboot" make run/tz_vmm_mx6
Then it was success and result an image in var/run/tz_vmm_mx6/image.elf. I converted it to binary: /usr/local/genode-gcc/bin/genode-arm-objcopy -O binary var/run/tz_vmm_mx6/image.elf var/run/tz_vmm_mx6/sabrelite.bin After copied sabrelite.bin to sdcard, I try to boot but it was hang as below:
Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x10001000 sabrelite.bin reading sabrelite.bin
17674240 bytes read MX6Q SABRESD U-Boot > go 10001000 ## Starting application at 0x10001000 ...
Please correct me what I am wrong. Thank you so much, --Thong Nguyen.
On 4/21/2015 2:10 PM, chirag garg wrote:
Hello Thong,
It seems, you are trying to run i.mx53 image on the i.mx6 board if that is the case it will not work. To run the printf script over the imx6 platform you should try out the latest master branch of Genode on git hub that have the imx6 support without trustzone. https://github.com/genodelabs/genode
For the TrustZone support on imx6 SABRE Lite board our team is also working at IIT Madras , As of now we are able to run Genode(secure world) beside Genode(normal world) so you can take a look at IIT Madras repository as the initial starting point.
Genode as secure world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_support In the hw_sabrelite_tz_support branch tz_vmm_mx6 will work as tz_vmm
Genode as normal world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_normal_os Switch application in the hw_sabrelite_tz_normal_os branch will serve you as a linux (for normal world) kernel image in tz_vmm.
Regards
Chirag Garg IIT Madras , Rise Lab
On Tue, Apr 21, 2015 at 8:20 AM, thong <thong@...323... mailto:thong@...323...> wrote:
Hi all, I am a newbie in embedded linux system, and my team is starting to integrate our biometric identification solution into the board i.MX6Q-SABRESD using Secure OS on Trustzone. After take a research around, I decide to try start with Genode on imx53_tablet_demo at https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README. I tried to modify base-hw/src/core/kernel/kernel.cc to add a code line PDBG("Hello\n") at the beginning of main routine void kernel() and expected to receive a "Hello" message on my Serial Terminal. I followed the instructions in README and be success to build the Genode with command line: RUN_OPT="--target uboot" make run/printf I use pre-built u-boot-mx6dl-sabresd.bin from Freescale. When I try to boot my Genode build in var/run/printf/ it just stopped at "Starting kernel..." message: U-Boot 2009.08 (Aug 16 2013 - 12:04:20) CPU: Freescale i.MX6 family TO1.2 at 792 MHz Thermal sensor with ratio = 187 Temperature: 48 C, calibration data 0x59e4ff7d mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg clock : 66000000Hz ipg per clock : 66000000Hz uart clock : 80000000Hz cspi clock : 60000000Hz ahb clock : 132000000Hz axi clock : 264000000Hz emi_slow clock: 132000000Hz ddr clock : 528000000Hz usdhc1 clock : 198000000Hz usdhc2 clock : 198000000Hz usdhc3 clock : 198000000Hz usdhc4 clock : 198000000Hz nfc clock : 24000000Hz Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ] Boot Device: SD I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 In: serial Out: serial Err: serial i2c: I2C3 SDA is low, start i2c recovery... I2C3 Recovery success Found PFUZE100! deviceid=10,revid=11 Net: got MAC address from IIM: 00:04:9f:02:e0:39 FEC0 [PRIME] Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x20000000 uImage_imx6_tz reading uImage_imx6_tz 359877 bytes read MX6Q SABRESD U-Boot > bootm 20000000 ## Booting kernel from Legacy Image at 20000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 359813 Bytes = 351.4 kB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... I highly appreciate any respond to help me on this. Thank you very much in advance. --Thong Nguyen. ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net <mailto:genode-main@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/genode-main
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Thong,
On 21.04.2015 09:24, thong wrote:
Hi Chirag garg,
Thanks for your help. I tried to build your hw_sabrelite_tz_support branch as follow: RUN_OPT="--target uboot" make run/tz_vmm_mx6
The "--target uboot" option is a deprecated way of configuring the run tool. Thus, I assume that you either have an old Genode state with the IIT-Madras imx6-support (a pretty recent feature) rebased onto it, or you have a Genode state that is up-to-date and applying the deprecated run options mistakenly.
If you're on the iitmadras/hw_sabrelite_tz_support branch, the latter is the case. Make sure that you've deleted your old build directory and created a new one by doing:
$GENODE_DIR/tool/create_builddir hw_sabrelite_tz
Then, you should not set RUN_OPT by hand when calling 'make' but adapt it in [1] to the following value:
RUN_OPT = --include boot_dir/hw --include image/uboot
For more details on the new run options, see chapter "Modular tool kit for automated testing" in [2].
Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x10001000 sabrelite.bin reading sabrelite.bin
According to [3], the text address of your image is 0x10001000. Thus, it isn't a good idea to fatload the image to this address too. You should use an address that is outside of any image-segment range (see [4]) and outside the boot loader image. According to the Sabrelite RAM-config in [5], 0x40000000 might be a good idea in your case.
Cheers, Martin
[1] $BUILD_DIR/etc/build.conf [2] http://genode.org/documentation/release-notes/15.02 [3] $GENODE_DIR/base-hw/mk/spec-hw_sabrelite.mk [4] genode-arm-objdump -ph $BUILD_DIR/var/run/$TARGET/image.elf [5] $GENODE_DIR/base/include/platform/sabrelite/drivers/board_base.h
Hi Martin,
Thank you very much. I followed your guidance to build it again and got result uImage at var/run/tz_vmm_mx6. But I was not success to boot it with either run/tz_vmm_mx6 or run/printf. Below are log messages for trying with run/printf
Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x40000000 uImage_sabrelite_tz reading uImage_sabrelite_tz
366675 bytes read MX6Q SABRESD U-Boot > bootm 40000000 ## Booting kernel from Legacy Image at 40000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 366611 Bytes = 358 kB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
Is that my board MX6Q SABRESD differs from SABRELITE causing this? Please help me what I should do.
On 4/21/2015 5:48 PM, Martin Stein wrote:
Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x10001000 sabrelite.bin reading sabrelite.bin
According to [3], the text address of your image is 0x10001000. Thus, it isn't a good idea to fatload the image to this address too. You should use an address that is outside of any image-segment range (see [4]) and outside the boot loader image. According to the Sabrelite RAM-config in [5], 0x40000000 might be a good idea in your case.
Just notice you that 'sabrelite.bin' is binary format not u-boot image which I got from: //usr/local/genode-gcc/bin/genode-arm-objcopy -O binary var/run/tz_vmm_mx6/image.elf var/run/tz_vmm_mx6/sabrelite.bin/ So I think I should fatload 'sabrelite.bin' into 0x10001000 which is text address of the image then I can directly execute it at that address with 'go' command. Is that my understanding wrong?
Thank you, --Thong Nguyen.
On 4/21/2015 5:48 PM, Martin Stein wrote:
Hi Thong,
On 21.04.2015 09:24, thong wrote:
Hi Chirag garg,
Thanks for your help. I tried to build your hw_sabrelite_tz_support branch as follow: RUN_OPT="--target uboot" make run/tz_vmm_mx6
The "--target uboot" option is a deprecated way of configuring the run tool. Thus, I assume that you either have an old Genode state with the IIT-Madras imx6-support (a pretty recent feature) rebased onto it, or you have a Genode state that is up-to-date and applying the deprecated run options mistakenly.
If you're on the iitmadras/hw_sabrelite_tz_support branch, the latter is the case. Make sure that you've deleted your old build directory and created a new one by doing:
$GENODE_DIR/tool/create_builddir hw_sabrelite_tz
Then, you should not set RUN_OPT by hand when calling 'make' but adapt it in [1] to the following value:
RUN_OPT = --include boot_dir/hw --include image/uboot
For more details on the new run options, see chapter "Modular tool kit for automated testing" in [2].
Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x10001000 sabrelite.bin reading sabrelite.bin
According to [3], the text address of your image is 0x10001000. Thus, it isn't a good idea to fatload the image to this address too. You should use an address that is outside of any image-segment range (see [4]) and outside the boot loader image. According to the Sabrelite RAM-config in [5], 0x40000000 might be a good idea in your case.
Cheers, Martin
[1] $BUILD_DIR/etc/build.conf [2] http://genode.org/documentation/release-notes/15.02 [3] $GENODE_DIR/base-hw/mk/spec-hw_sabrelite.mk [4] genode-arm-objdump -ph $BUILD_DIR/var/run/$TARGET/image.elf [5] $GENODE_DIR/base/include/platform/sabrelite/drivers/board_base.h
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Thong,
On 21.04.2015 12:57, thong wrote:
Is that my board MX6Q SABRESD differs from SABRELITE causing this? Please help me what I should do.
Of course, this might be a problem. I'd suggest you to check the UART and the RAM configuration of Genode. For Sabrelite, both can be found in [1]. Maybe you're simply listening at another UART port.
If you find differences, you should add a new platform 'hw_sabresd_tz'. What to do for that can be easily found by doing:
find $GENODE_DIR/repos/ $GENODE_DIR/tool/ -wholename *sabrelite* grep -ri "sabrelite" $GENODE_DIR/repos/ $GENODE_DIR/tool/
The new platform should make use of the less specific imx6 sources like it's done in the sabrelite sources.
Cheers, Martin
[1] $GENODE_DIR/repos/base/include/platform/sabrelite/drivers/board_base.h
Just notice you that 'sabrelite.bin' is binary format not u-boot image which I got from: //usr/local/genode-gcc/bin/genode-arm-objcopy -O binary var/run/tz_vmm_mx6/image.elf var/run/tz_vmm_mx6/sabrelite.bin/ So I think I should fatload 'sabrelite.bin' into 0x10001000 which is text address of the image then I can directly execute it at that address with 'go' command. Is that my understanding wrong?
Hi Thong,
Just notice you that 'sabrelite.bin' is binary format not u-boot image which I got from: //usr/local/genode-gcc/bin/genode-arm-objcopy -O binary var/run/tz_vmm_mx6/image.elf var/run/tz_vmm_mx6/sabrelite.bin/ So I think I should fatload 'sabrelite.bin' into 0x10001000 which is text address of the image then I can directly execute it at that address with 'go' command. Is that my understanding wrong?
Admittedly, I don't know if using a raw-binary-copied image of Genode triggers any problems. I always use the uImage [1].
Cheers, Martin
[1] $BUILD_DIR/var/run/$TARGET/uImage
chirag garg <chiragdthinker@...52...> writes:
Hello Thong, It seems, you are trying to run i.mx53 image on the i.mx6 board if that is
the case it will not work. To run the printf script over the imx6 platform you should try out the latest master branch of Genode on git hub that have the imx6 support without trustzone.https://github.com/genodelabs/genode
For the TrustZone support on imx6 SABRE Lite board our team is also
working at IIT Madras , As of now we are able to run Genode(secure world) beside Genode(normal world) so you can take a look at IIT Madras repository as the initial starting point.
Genode as secure world :
https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_supportIn the hw_sabrelite_tz_support branch tz_vmm_mx6 will work as tz_vmm Genode as normal world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_normal_os
Switch application in the hw_sabrelite_tz_normal_os branch will serve you
as a linux (for normal world) kernel image in tz_vmm.
Regards Chirag Garg IIT Madras , Rise Lab
On Tue, Apr 21, 2015 at 8:20 AM, thong <thong-
kmCu2mEWxz5BDgjK7y7TUQ@...325...> wrote:Hi all,
I am a newbie in embedded linux system, and my team is starting to integrate our biometric identification solution into the board i.MX6Q-SABRESD using Secure OS on Trustzone. After take a research around, I decide to try start with Genode on imx53_tablet_demo
athttps://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/ imx53/README.
I tried to modify base-hw/src/core/kernel/kernel.cc to add a code line PDBG("Hello\n") at the beginning of main routine void kernel() and expected to receive a "Hello" message on my Serial Terminal. I followed the instructions in README and be success to build the Genode with command line: RUN_OPT="--target uboot" make run/printf I use pre-built u-boot-mx6dl-sabresd.bin from Freescale. When I try to boot my Genode build in var/run/printf/ it just stopped at "Starting kernel..." message: U-Boot 2009.08 (Aug 16 2013 - 12:04:20) CPU: Freescale i.MX6 family TO1.2 at 792 MHz Thermal sensor with ratio = 187 Temperature: 48 C, calibration data 0x59e4ff7d mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg clock : 66000000Hz ipg per clock : 66000000Hz uart clock : 80000000Hz cspi clock : 60000000Hz ahb clock : 132000000Hz axi clock : 264000000Hz emi_slow clock: 132000000Hz ddr clock : 528000000Hz usdhc1 clock : 198000000Hz usdhc2 clock : 198000000Hz usdhc3 clock : 198000000Hz usdhc4 clock : 198000000Hz nfc clock : 24000000Hz Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ] Boot Device: SD I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 In: serial Out: serial Err: serial i2c: I2C3 SDA is low, start i2c recovery... I2C3 Recovery success Found PFUZE100! deviceid=10,revid=11 Net: got MAC address from IIM: 00:04:9f:02:e0:39 FEC0 [PRIME] Hit any key to stop autoboot: 0 MX6Q SABRESD U-Boot > fatload mmc 2:1 0x20000000 uImage_imx6_tz reading uImage_imx6_tz 359877 bytes read MX6Q SABRESD U-Boot > bootm 20000000 ## Booting kernel from Legacy Image at 20000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 359813 Bytes = 351.4 kB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... I highly appreciate any respond to help me on this. Thank you very much in advance.
--Thong Nguyen.
----
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live
exerciseshttp://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ genode-main mailing listgenode-main-
5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@...326...://lists.sourceforge.n et/lists/listinfo/genode-main
----
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live
exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?
utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
genode-main mailing list genode-main@...52... https://lists.sourceforge.net/lists/listinfo/genode-main
Hi,
I have downloaded genode-hw_sabrelite_tz_support for Genode as secure world in the following link: https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_support
I tried build by the following steps: cd genode-hw_sabrelite_tz_support/tools/ ./create_builddir hw_sabrelite_tz BUILD_DIR=build_sabrelite cd build_sabrelite/ RUN_OPT="--target uboot" make run/tz_vmm_mx6
It is giving the following error:
including genode-hw_sabrelite_tz_support/repos/os/run/tz_vmm_mx6.run building targets: core init server/tz_vmm spawn make core init server/tz_vmm make[1]: Entering directory `genode- hw_sabrelite_tz_support/tool/build_sabrelite' checking library dependencies... Skip target server/tz_vmm/imx53_qsb because it requires hw_imx53_qsb platform_imx53 Skip target server/tz_vmm/usb_armory because it requires hw_usb_armory platform_imx53 Library platform MERGE platform.lib.a Library cxx COMPILE exception.o COMPILE guard.o COMPILE malloc_free.o COMPILE misc.o COMPILE new_delete.o COMPILE unwind.o MERGE supc++.o CONVERT supc++.o MERGE cxx.lib.a Library base-common COMPILE allocator/allocator_avl.o COMPILE allocator/slab.o COMPILE avl_tree/avl_tree.o COMPILE child/child.o COMPILE console/console.o COMPILE elf/elf_binary.o COMPILE heap/heap.o COMPILE heap/sliced_heap.o COMPILE ipc/ipc.o COMPILE ipc/ipc_marshal_cap.o COMPILE kernel/interface.o COMPILE lock/lock.o COMPILE process/process.o COMPILE server/common.o COMPILE server/server.o COMPILE signal/common.o COMPILE signal/platform.o COMPILE signal/signal.o COMPILE thread/bootstrap.o COMPILE thread/context_allocator.o COMPILE thread/trace.o MERGE base-common.lib.a Library syscall MERGE syscall.lib.a Library startup COMPILE _main.o ASSEMBLE crt0.o COMPILE init_main_thread.o MERGE startup.lib.a Library base COMPILE console/log_console.o COMPILE cpu/cache.o COMPILE env/context_area.o COMPILE env/env.o COMPILE env/reinitialize.o COMPILE thread/start.o COMPILE thread/thread.o MERGE base.lib.a Library init_pd_args COMPILE pd_args.o MERGE init_pd_args.lib.a Library config COMPILE config.o MERGE config.lib.a Program init/init COMPILE main.o LINK init Program server/tz_vmm/imx6/tz_vmm COMPILE main.o LINK tz_vmm Library core-perf_counter_on COMPILE spec/arm_v7/perf_counter.o MERGE core-perf_counter_on.lib.a Library core-perf_counter MERGE core-perf_counter.lib.a Library core-trustzone_on COMPILE _main.o ASSEMBLE boot_modules.o COMPILE console.o COMPILE context_area.o COMPILE core_mem_alloc.o COMPILE core_rm_session.o COMPILE cpu_session_component.o COMPILE cpu_session_support.o COMPILE dataspace_component.o COMPILE dump_alloc.o COMPILE init_main_thread.o COMPILE io_mem_session_component.o COMPILE io_mem_session_support.o COMPILE irq_session_component.o COMPILE kernel/cpu.o COMPILE kernel/irq.o COMPILE kernel/kernel.o COMPILE kernel/pd.o COMPILE kernel/signal_receiver.o COMPILE kernel/thread.o COMPILE main.o COMPILE pager.o COMPILE pd_session_component.o COMPILE platform.o COMPILE platform_pd.o COMPILE platform_thread.o COMPILE ram_session_component.o COMPILE ram_session_support.o COMPILE rm_session_component.o COMPILE rm_session_support.o COMPILE rom_session_component.o COMPILE signal_session_component.o COMPILE spec/arm/cpu.o ASSEMBLE spec/arm/crt0.o COMPILE spec/arm/kernel/cpu.o COMPILE spec/arm/kernel/cpu_context.o ASSEMBLE spec/arm/kernel/crt0.o COMPILE spec/arm/kernel/thread.o COMPILE spec/arm/kernel/thread_base.o COMPILE spec/arm/platform_support.o COMPILE spec/arm_v7/cpu.o COMPILE spec/arm_v7/kernel/vm_thread.o ASSEMBLE spec/arm_v7/mode_transition.o COMPILE spec/arm_v7/trustzone/kernel/vm.o COMPILE spec/arm_v7/trustzone/kernel/vm_thread.o ASSEMBLE spec/arm_v7/trustzone/mode_transition.o COMPILE spec/arm_v7/trustzone/vm_session_component.o COMPILE spec/arm_v7/vm_session_component.o COMPILE spec/imx6/trustzone/pic.o COMPILE spec/imx6/trustzone/platform_services.o COMPILE spec/imx6/trustzone/platform_support.o COMPILE thread/thread.o COMPILE thread_start.o COMPILE trace_session_component.o COMPILE version.o MERGE core-trustzone_on.lib.a Library core-trustzone MERGE core-trustzone.lib.a Library core MERGE core.lib.a Program core/core COMPILE kernel/test.o LINK core make[1]: Leaving directory `genode- hw_sabrelite_tz_support/tool/build_sabrelite' genode build completed Download initramfs ... Download linux binary ...(put your linux file manually) wrong # args: should be "run_boot_dir" while executing "run_boot_dir $binaries" (procedure "build_boot_image" line 2) invoked from within "build_boot_image "core init tz_vmm linux initrd.gz"" (file "genode-hw_sabrelite_tz_support/repos/os/run/tz_vmm_mx6.run" line 49) invoked from within "source $include_name" ("foreach" body line 6) invoked from within "foreach include_name [get_cmd_arg --include ""] { # first check if the include name is absolute if {[string first "/" $include_name] == 0} { puts ..." (file "genode-hw_sabrelite_tz_support/tool/run/run" line 630) make: *** [run/tz_vmm_mx6] Error 1
What will be the problem?
Hi Bharath,
On 27.04.2015 11:02, bharath wrote:
I tried build by the following steps: cd genode-hw_sabrelite_tz_support/tools/ ./create_builddir hw_sabrelite_tz BUILD_DIR=build_sabrelite cd build_sabrelite/ RUN_OPT="--target uboot"
The "--target uboot" option is a deprecated way of configuring the run tool. You should not set RUN_OPT by hand when calling 'make' but adapt it in [1] to the following value:
RUN_OPT = --include boot_dir/hw --include image/uboot
For more details on the new run options, see chapter "Modular tool kit for automated testing" in [2].
wrong # args: should be "run_boot_dir" while executing "run_boot_dir $binaries" (procedure "build_boot_image" line 2) invoked from within "build_boot_image "core init tz_vmm linux initrd.gz"" (file "genode-hw_sabrelite_tz_support/repos/os/run/tz_vmm_mx6.run" line 49) invoked from within "source $include_name" ("foreach" body line 6) invoked from within "foreach include_name [get_cmd_arg --include ""] { # first check if the include name is absolute if {[string first "/" $include_name] == 0} { puts ..." (file "genode-hw_sabrelite_tz_support/tool/run/run" line 630) make: *** [run/tz_vmm_mx6] Error 1
This error report at the end of your log is completely related to the bad RUN_OPT mentioned above. The run environment (our framework for automated testing that "wraps" the Genode build-system) complains that you have to define a method for creating the boot directory at least (--include boot_dir/xxx).
Cheers, Martin Stein
[1] $BUILD_DIR/etc/build.conf [2] http://genode.org/documentation/release-notes/15.02
chirag garg <chiragdthinker@...52...> writes:
Hello Thong, It seems, you are trying to run i.mx53 image on the i.mx6 board if that is
the case it will not work. To run the printf script over the imx6 platform you should try out the latest master branch of Genode on git hub that have the imx6 support without trustzone.https://github.com/genodelabs/genode
For the TrustZone support on imx6 SABRE Lite board our team is also
working at IIT Madras , As of now we are able to run Genode(secure world) beside Genode(normal world) so you can take a look at IIT Madras repository as the initial starting point.
Genode as secure world :
https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_supportIn the hw_sabrelite_tz_support branch tz_vmm_mx6 will work as tz_vmm Genode as normal world : https://github.com/iitmadras/genode/tree/hw_sabrelite_tz_normal_os
Switch application in the hw_sabrelite_tz_normal_os branch will serve you
as a linux (for normal world) kernel image in tz_vmm.
Regards Chirag Garg IIT Madras , Rise Lab
Hi Chirag,
From this procedure, we can compile and build uImage. But what about u-boot for iMX6 Board?
Actually I downloaded u-boot for iMX6 Board. But I am getting the following error:
Booting kernel from Legacy Image at 10800000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 7858662 Bytes = 7.5 MB
Load Address: 10001000
Entry Point: 10001000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
Hi Martin Stein, Thank you very much for your kind help! It was very useful for me and after I found some differences about UART configuration and corrected it, I was able to see log messages about starting tz_vmm on Serial Terminal.
Hi Chirag Garg, Thanks for your great work! It was very good starting point for me. I have tried your Normal world OS at
https://github.com/chiragdthinker/Genode_Binaries/
but what is output result to know your tz_vmm run successfully? Does it launch graphical GUI on touch screen or what log message on Serial Terminal? In my try, it ended with a log message:
[init -> tz_vmm] SUPERVISOR CALL ..
If it has problem, please help me where should I take a look to solve.
Thank you very much and Best Regards, --Thong Nguyen.
On 4/21/2015 8:24 PM, Martin Stein wrote:
Hi Thong,
On 21.04.2015 12:57, thong wrote:
Is that my board MX6Q SABRESD differs from SABRELITE causing this? Please help me what I should do.
Of course, this might be a problem. I'd suggest you to check the UART and the RAM configuration of Genode. For Sabrelite, both can be found in [1]. Maybe you're simply listening at another UART port.
If you find differences, you should add a new platform 'hw_sabresd_tz'. What to do for that can be easily found by doing:
find $GENODE_DIR/repos/ $GENODE_DIR/tool/ -wholename *sabrelite* grep -ri "sabrelite" $GENODE_DIR/repos/ $GENODE_DIR/tool/
The new platform should make use of the less specific imx6 sources like it's done in the sabrelite sources.
Cheers, Martin
[1] $GENODE_DIR/repos/base/include/platform/sabrelite/drivers/board_base.h
Hello Thong
On Tue, Apr 28, 2015 at 7:31 AM, thong <thong@...323...> wrote:
Hi Martin Stein, Thank you very much for your kind help! It was very useful for me and after I found some differences about UART configuration and corrected it, I was able to see log messages about starting tz_vmm on Serial Terminal.
Hi Chirag Garg, Thanks for your great work! It was very good starting point for me. I have tried your Normal world OS at
https://github.com/chiragdthinker/Genode_Binaries/
but what is output result to know your tz_vmm run successfully? Does it launch graphical GUI on touch screen or what log message on Serial Terminal? In my try, it ended with a log message:
[init -> tz_vmm] SUPERVISOR CALL ..
It is a successful execution of tz_vmm. Normal OS binary located at the
above mentioned link is just a simple Genode kernel image which execute the SMC call in higher privilege mode in normal world which transfer the control back to the secure world at line 98.
https://github.com/iitmadras/genode/blob/hw_sabrelite_tz_support/repos/os/sr...
Where it prints the "SUPERVISOR CALL .." log message after that it goes to _handle_hypervisor_call() located in the same file where it does nothing as of now depending on register r0 status and stops there. For more clarity you can see the following file to understand the flow.
https://github.com/iitmadras/genode/blob/hw_sabrelite_tz_support/repos/os/sr...
If it has problem, please help me where should I take a look to solve.
Thank you very much and Best Regards, --Thong Nguyen.
On 4/21/2015 8:24 PM, Martin Stein wrote:
Hi Thong,
On 21.04.2015 12:57, thong wrote:
Is that my board MX6Q SABRESD differs from SABRELITE causing this? Please help me what I should do.
Of course, this might be a problem. I'd suggest you to check the UART and the RAM configuration of Genode. For Sabrelite, both can be found in [1]. Maybe you're simply listening at another UART port.
If you find differences, you should add a new platform 'hw_sabresd_tz'. What to do for that can be easily found by doing:
find $GENODE_DIR/repos/ $GENODE_DIR/tool/ -wholename *sabrelite* grep -ri "sabrelite" $GENODE_DIR/repos/ $GENODE_DIR/tool/
The new platform should make use of the less specific imx6 sources like it's done in the sabrelite sources.
Cheers, Martin
[1]
$GENODE_DIR/repos/base/include/platform/sabrelite/drivers/board_base.h
Regards
Chirag Garg IIT Madras , Rise Lab
One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Martin Stein <martin.stein@...52...> writes:
Hi Bharath,
On 27.04.2015 11:02, bharath wrote:
I tried build by the following steps: cd genode-hw_sabrelite_tz_support/tools/ ./create_builddir hw_sabrelite_tz BUILD_DIR=build_sabrelite cd build_sabrelite/ RUN_OPT="--target uboot"
The "--target uboot" option is a deprecated way of configuring the run tool. You should not set RUN_OPT by hand when calling 'make' but adapt it in [1] to the following value:
RUN_OPT = --include boot_dir/hw --include image/uboot
For more details on the new run options, see chapter "Modular tool kit for automated testing" in [2].
wrong # args: should be "run_boot_dir" while executing "run_boot_dir $binaries" (procedure "build_boot_image" line 2) invoked from within "build_boot_image "core init tz_vmm linux initrd.gz"" (file "genode-hw_sabrelite_tz_support/repos/os/run/tz_vmm_mx6.run"
line
- invoked from within
"source $include_name" ("foreach" body line 6) invoked from within "foreach include_name [get_cmd_arg --include ""] { # first check if the include name is absolute if {[string first "/" $include_name] == 0} { puts ..." (file "genode-hw_sabrelite_tz_support/tool/run/run" line 630) make: *** [run/tz_vmm_mx6] Error 1
This error report at the end of your log is completely related to the bad RUN_OPT mentioned above. The run environment (our framework for automated testing that "wraps" the Genode build-system) complains that you have to define a method for creating the boot directory at least (--include boot_dir/xxx).
Cheers, Martin Stein
[1] $BUILD_DIR/etc/build.conf [2] http://genode.org/documentation/release-notes/15.02
----
One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
Hi Martin,
Now I gave correct RUN_OPT="--include boot_dir/hw --include image/uboot" as you have mentioned. Still I am getting the same error:
genode build completed wrong # args: should be "run_boot_dir" while executing "run_boot_dir $binaries" (procedure "build_boot_image" line 2) invoked from within "build_boot_image "core init tz_vmm linux initrd.gz"" (file "genode-hw_sabrelite_tz_support/repos/os/run/tz_vmm_mx6.run" line 49) invoked from within "source $include_name" ("foreach" body line 6) invoked from within "foreach include_name [get_cmd_arg --include ""] { # first check if the include name is absolute if {[string first "/" $include_name] == 0} { puts ..." (file "genode-hw_sabrelite_tz_support/tool/run/run" line 630) make: *** [run/tz_vmm_mx6] Error 1
Kindly help me to resolve this.
Hi,
On 04/28/2015 07:20 AM, bharath wrote:
[1] $BUILD_DIR/etc/build.conf
can please post this file to the list?
Regards Stefan
Hello,
maybe the difference between your version of boot_dir/hw and the upstream version is reponsible for the issue. The difference as far as I found out is
+++ tool/run/boot_dir/hw 2015-04-27 12:20:06.484712514 +0200 @@ -18,20 +18,18 @@ ## # Populate boot directory with binaries on hw # -proc run_boot_dir {binaries {core_type core}} { - if {$core_type == "test"} { +proc run_boot_dir {binaries} { + + # adapt to wether this is a core-internal test or a common scenario + global core_test + if {[info exists core_test]} { set core_bin "test-[run_name]" set core_target "test/[run_name]" - } elseif {$core_type == "core"} { + } else { set core_bin "core" set core_target "core" - } else { - puts stderr "Error: Unknown core type '$core_type'" - exit -1 }
- global run_target - # strip binaries copy_and_strip_genode_binaries_to_run_dir $binaries
HTH
Stefan Kalkowski <stefan.kalkowski@...52...> writes:
Hi,
On 04/28/2015 07:20 AM, bharath wrote:
[1] $BUILD_DIR/etc/build.conf
can please post this file to the list?
Regards Stefan
Hi Stefen,
BUILD_DIR/etc/build.conf contains:
GENODE_DIR = genode-hw_sabrelite_tz_support BASE_DIR = $(GENODE_DIR)/repos/base CONTRIB_DIR = $(GENODE_DIR)/contrib
## ## Kernel-specific base repository ##
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
## ## Kernel-specific run tool configuration ##
RUN_OPT = --include boot_dir/hw
## ## Repositories needed for the default demo scenario ##
REPOSITORIES += $(GENODE_DIR)/repos/base REPOSITORIES += $(GENODE_DIR)/repos/os REPOSITORIES += $(GENODE_DIR)/repos/demo
## ## Optional repositories ##
# # Ports of popular open-source libraries and the C library. # # Make sure to execute 'make prepare' in 'libports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/libports
# # Ports of popular 3rd-party applications # # The 'ports' repository depends on 'libc' and 'libports'. # Make sure to execute 'make prepare' in 'ports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/ports
# # Ports of the Linux TCP/IP stack and Linux drivers (USB) from the Linux kernel # #REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
# # NetBSD file-system support # #REPOSITORIES += $(GENODE_DIR)/repos/dde_rump
# # High-level Genode-specific services and applications # # The 'gems' repository depends on 'libc' and 'libports'. # #REPOSITORIES += $(GENODE_DIR)/repos/gems RUN_OPT = --target uboot RUN_OPT = --target uboot
Hi,
On 04/28/2015 09:38 AM, bharath wrote:
Stefan Kalkowski <stefan.kalkowski@...52...> writes:
Hi,
On 04/28/2015 07:20 AM, bharath wrote:
[1] $BUILD_DIR/etc/build.conf
can please post this file to the list?
Regards Stefan
Hi Stefen,
BUILD_DIR/etc/build.conf contains:
GENODE_DIR = genode-hw_sabrelite_tz_support BASE_DIR = $(GENODE_DIR)/repos/base CONTRIB_DIR = $(GENODE_DIR)/contrib
## ## Kernel-specific base repository ##
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
## ## Kernel-specific run tool configuration ##
RUN_OPT = --include boot_dir/hw
## ## Repositories needed for the default demo scenario ##
REPOSITORIES += $(GENODE_DIR)/repos/base REPOSITORIES += $(GENODE_DIR)/repos/os REPOSITORIES += $(GENODE_DIR)/repos/demo
## ## Optional repositories ##
# # Ports of popular open-source libraries and the C library. # # Make sure to execute 'make prepare' in 'libports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/libports
# # Ports of popular 3rd-party applications # # The 'ports' repository depends on 'libc' and 'libports'. # Make sure to execute 'make prepare' in 'ports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/ports
# # Ports of the Linux TCP/IP stack and Linux drivers (USB) from the Linux kernel # #REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
# # NetBSD file-system support # #REPOSITORIES += $(GENODE_DIR)/repos/dde_rump
# # High-level Genode-specific services and applications # # The 'gems' repository depends on 'libc' and 'libports'. # #REPOSITORIES += $(GENODE_DIR)/repos/gems
Your problem lies in here:
RUN_OPT = --target uboot RUN_OPT = --target uboot
You have overwritten the definition of RUN_OPT above (namely: RUN_OPT = --include boot_dir/hw). When you just change it to:
RUN_OPT += --target uboot
it should work, because then you extend the variable instead of overwriting it.
Regards Stefan
One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Bharath, Stefan
On 28.04.2015 10:29, Stefan Kalkowski wrote:
Your problem lies in here:
RUN_OPT = --target uboot RUN_OPT = --target uboot
You have overwritten the definition of RUN_OPT above (namely: RUN_OPT = --include boot_dir/hw). When you just change it to:
RUN_OPT += --target uboot
it should work, because then you extend the variable instead of overwriting it.
Although Stefan is absolutely right, I'd like to suggest you to NOT modify the "RUN_OPT = --target uboot" lines to "RUN_OPT += --target uboot" but to remove them from your build.conf. The "--target uboot" would be ignored by the run tools anyway and this way you keep your build.conf content less irritating.
Cheers, Martin