Hello,
We are using a i.MX6 based board. We have been able to run Android successfully on the board. I've built the Genode demo image for the ARM processor by using the Wandboard build configuration (hw_wand_quad). I have successfully generated an image of Genode demo in the build directory named "demo.img".
Can I load the generated Genode image onto the eMMC flash of the board using MfgTool? If so, can you please guide me on how it can be done?
Thanks in advance, Kranthi
Hi,
On 03/27/2017 02:54 PM, Kranthi Tej wrote:
Hello,
We are using a i.MX6 based board. We have been able to run Android successfully on the board. I've built the Genode demo image for the ARM processor by using the Wandboard build configuration (hw_wand_quad). I have successfully generated an image of Genode demo in the build directory named "demo.img".
Can I load the generated Genode image onto the eMMC flash of the board using MfgTool? If so, can you please guide me on how it can be done?
Probably, yes. I never used that tool. Once when writing a permanent Genode image to an i.MX53 eMMC I copied over an u-boot image via Linux/Android and booted it via the already installed u-boot loader.
Anyway, I doubt that you should write an ext2 disk image to the eMMC, assuming that you produced that 'demo.img' image with Genode's run tool (by using something like RUN_OPT += --include image/disk). The run tool's 'disk' plugin does not produce a bootable disk image that can simply used by some ARM platform, because it does not contain a usable boot-loader for ARM. Instead you probably have to install boot-loader and Genode image separately. I you are using u-boot on the target platform already, you can use the u-boot image that gets generated when using Genode's run-tool 'uboot' plugin (RUN_OPT += --include image/uboot).
Regards Stefan
Thanks in advance, Kranthi
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Stefan,
I've tried using the uboot plugin (RUN_OPT += --include image/uboot). I've been able to generate a uImage successfully. When I tried to flash it on to the board, it stops with following log (was observed in TeraTerm while using the MfgTool):
U-Boot 2009.08 (Aug 16 2013 - 14:38:59)
CPU: Freescale i.MX6 family TO1.5 at 792 MHz Thermal sensor with ratio = 175 Temperature: 42 C, calibration data 0x5524cd69 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: 0x63015 [POR ] Boot Device: MMC I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 Using default environment
In: serial Out: serial Err: serial Net: got MAC address from IIM: 00:00:00:00:00:00 FEC0 [PRIME] Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 10800000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 2075251 Bytes = 2 MB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 10c00000 ... Image Name: uboot initramfs rootfs Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 4545326 Bytes = 4.3 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
Also, I'm using the Android RAMDisk Image. Would that be a potential cause for the problem? I've used the following XML script to flash the image on to the board (UCL file for MfgTool):
<UCL> <CFG> <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/> <STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/> </CFG>
<LIST name="SabreSD-eMMC" desc="Choose eMMC as media"> <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6q-sabresd.bin" >Loading U-boot</CMD> <CMD state="BootStrap" type="load" file="files/demo/uimage" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD> <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD> <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD> <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16">clean up u-boot parameter</CMD> <!--CMD state="Updater" type="push" body="$ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access boot partition 1</CMD--> <CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk0boot0/force_ro">access boot partition 1</CMD> <CMD state="Updater" type="push" body="send" file="files/demo/mmc_img">Sending U-Boot</CMD> <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD> <!-- <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0p1 bs=1k seek=1 skip=1 conv=fsync">write U-Boot to sd card</CMD> --> <CMD state="Updater" type="push" body="$ echo 8 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access user partition and enable boot partion 1 to boot</CMD> <CMD state="Updater" type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD> <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD> <CMD state="Updater" type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD> <CMD state="Updater" type="push" body="$ ls -l /dev/mmc* ">Formatting sd partition</CMD> <CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p5 bs=512" file="files/demo/demo.img">Sending and writting demo.img</CMD> <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD> <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD> </LIST> </UCL>
The script stops executing at "Jumping to OS image". Can you give me any leads as to where I'm going wrong?
Note: I've generated the "mmc_img" file using the "create_uboot" tool provided in the genode tools.
On Tue, Mar 28, 2017 at 3:16 PM, Stefan Kalkowski < stefan.kalkowski@...1...> wrote:
Hi,
On 03/27/2017 02:54 PM, Kranthi Tej wrote:
Hello,
We are using a i.MX6 based board. We have been able to run Android successfully on the board. I've built the Genode demo image for the ARM processor by using the Wandboard build configuration (hw_wand_quad). I have successfully generated an image of Genode demo in the build directory named "demo.img".
Can I load the generated Genode image onto the eMMC flash of the board using MfgTool? If so, can you please guide me on how it can be done?
Probably, yes. I never used that tool. Once when writing a permanent Genode image to an i.MX53 eMMC I copied over an u-boot image via Linux/Android and booted it via the already installed u-boot loader.
Anyway, I doubt that you should write an ext2 disk image to the eMMC, assuming that you produced that 'demo.img' image with Genode's run tool (by using something like RUN_OPT += --include image/disk). The run tool's 'disk' plugin does not produce a bootable disk image that can simply used by some ARM platform, because it does not contain a usable boot-loader for ARM. Instead you probably have to install boot-loader and Genode image separately. I you are using u-boot on the target platform already, you can use the u-boot image that gets generated when using Genode's run-tool 'uboot' plugin (RUN_OPT += --include image/uboot).
Regards Stefan
Thanks in advance, Kranthi
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Stefan Kalkowski Genode Labs
https://github.com/skalk · http://genode.org/
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Kranthi Tej,
On 03/28/2017 12:30 PM, Kranthi Tej wrote:
Hi Stefan,
I've tried using the uboot plugin (RUN_OPT += --include image/uboot). I've been able to generate a uImage successfully. When I tried to flash it on to the board, it stops with following log (was observed in TeraTerm while using the MfgTool):
U-Boot 2009.08 (Aug 16 2013 - 14:38:59)
CPU: Freescale i.MX6 family TO1.5 at 792 MHz Thermal sensor with ratio = 175 Temperature: 42 C, calibration data 0x5524cd69 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: 0x63015 [POR ]
As I can see you are using another board with less memory than the Wandboard. Did you adapted the memory settings before building the Genode image for that board? Like it was discussed in this parallel mail thread:
http://genode-main.narkive.com/nWs1hbc8/genode-on-i-mx6q-sabre-lite
Boot Device: MMC I2C: ready DRAM: 1 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 Using default environment
In: serial Out: serial Err: serial Net: got MAC address from IIM: 00:00:00:00:00:00 FEC0 [PRIME] Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 10800000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 2075251 Bytes = 2 MB Load Address: 10001000 Entry Point: 10001000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 10c00000 ... Image Name: uboot initramfs rootfs Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 4545326 Bytes = 4.3 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
Also, I'm using the Android RAMDisk Image. Would that be a potential cause for the problem? I've used the following XML script to flash the image on to the board (UCL file for MfgTool):
If you think the Android RAM disk might interfer with your Genode image, being in your position I would not load it in the first place.
<UCL> <CFG> <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/> <STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/> </CFG>
<LIST name="SabreSD-eMMC" desc="Choose eMMC as media"> <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6q-sabresd.bin" >Loading U-boot</CMD> <CMD state="BootStrap" type="load" file="files/demo/uimage" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD> <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD> <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD> <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16">clean up u-boot parameter</CMD> <!--CMD state="Updater" type="push" body="$ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access boot partition 1</CMD--> <CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk0boot0/force_ro">access boot partition 1</CMD> <CMD state="Updater" type="push" body="send" file="files/demo/mmc_img">Sending U-Boot</CMD> <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD> <!-- <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0p1 bs=1k seek=1 skip=1 conv=fsync">write U-Boot to sd card</CMD> --> <CMD state="Updater" type="push" body="$ echo 8 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access user partition and enable boot partion 1 to boot</CMD> <CMD state="Updater" type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD> <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD> <CMD state="Updater" type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD> <CMD state="Updater" type="push" body="$ ls -l /dev/mmc* ">Formatting sd partition</CMD> <CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p5 bs=512" file="files/demo/demo.img">Sending and writting demo.img</CMD> <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD> <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD> </LIST> </UCL>
The script stops executing at "Jumping to OS image". Can you give me any leads as to where I'm going wrong?
As I already told you, I do not have any experiences with that tool, but you probably encounter the same problems like when using the uImage above.
Note: I've generated the "mmc_img" file using the "create_uboot" tool provided in the genode tools.
I see. In contrast to the run-tool, which produces either a disk image or uImage, this utility creates a disk image with the u-boot binary only. I'm not sure whether you can use the same u-boot binary in between Wandboard and your board, probably not!
We do not have a combination tool that combines u-boot and system image to provide one final disk image to you.
Best regards Stefan