AnsweredAssumed Answered

Booting from network

Question asked by Milo Tenzin on Mar 27, 2015
Latest reply on Apr 8, 2015 by Milo Tenzin

Hello,

I'd like to boot my i.mx6 sabresd from network, using a tftp server. I've followed the Linux User's Guide.pdf, with some minor modifications.

 

    setenv serverip IPADDR

    setenv bootfile uImage

    setenv fdt_file imx6q-sabresd.dtb

    setenv ethaddr 00:04:9f:02:e2:33

    saveenv

    dhcp

    mmc dev 1

    mmc write ${loadaddr} 0x800 0x4000

    tftpboot ${fdt_addr} ${fdt_file}

    fdt addr ${fdt_addr}

    setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk2p2 rootwait rw'

    setenv bootcmd_mmc 'run bootargs_mmc;mmc dev 1;mmc read ${loadaddr} 0x800 0x4000;mmc read ${fdt_addr} 0x5000 0x800;bootm ${loadaddr} - ${fdt_addr}'

    setenv bootcmd 'run bootcmd_mmc'

    saveenv

 

But, when using boot (or bootd), I have the following :

 

    switch to partitions #0, OK

    mmc1 is current device

    MMC read: dev # 1, block # 2048, count 16384 ... 16384 blocks read: OK

    MMC read: dev # 1, block # 20480, count 2048 ... 2048 blocks read: OK

    ## Booting kernel from Legacy Image at 12000000 ...

    Image Name:   Linux kernel

    Image Type:   ARM Linux Kernel Image (uncompressed)

    Data Size:    5578744 Bytes = 5.3 MiB

    Load Address: 80008000

    Entry Point:  80008000

    Verifying Checksum ... Bad Data CRC

    ERROR: can't get kernel image!

 

There is an error with the checksum, but the zImage works fine for a classic booting.

 

To create the uImage, I've made : mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d zImage uImage.

I've tried with zImage (without converting to uImage), but it doesn't work event with bootz.

Outcomes