Genode on i.MX6 (eMMC Flash)

Stefan Kalkowski stefan.kalkowski at ...1...
Wed Mar 29 14:32:50 CEST 2017


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

-- 
Stefan Kalkowski
Genode Labs

https://github.com/skalk ยท http://genode.org/




More information about the users mailing list