Hi,
I am trying to build vanilla kernel running on SabreSDP with the default imx_v6_v7_defconfig and configured for tftp/nfs.
Here are the details:
I'm using tftp and nfs to load zImage and imx6q-sabresd.dtb.
I'm using the U-Boot 2009.08 (Apr 29 2013 - 18:01:51) which comes with SDCARD (the Android 4.2.2 and Linux version 3.0.35-06114-g3b96084).
I'm able to load the zImage and dtb file in RAM but this version on Uboot does not have the "bootz" command to bot zImage.
I tried to build uImage with LOADADDR=0x10808000. When it did not work I tried with 0x10008000 also. I must admit I am not sure what this parameter is and where to get its correct value, I just googled around and got this from some of the bootup logs available for imx6 kernels.
Below are the changes I made in env variables :
setenv ipaddr 192.168.0.100
setenv serverip 192.168.0.1
setenv bootargs root=/dev/nfs rw ip=192.168.0.100 console=ttymxc0,115200 nfsroot=192.168.0.1:/home/nagla/modules/nfsroot
tftp 0x12000000 uImage
tftp 0x18000000 imx6q-sabresd.dtb
bootm 0x12000000 - 0x18000000
bootm command hangs with after "Starting kernel ..." is printed out.
Below are the logs for this:
Hit any key to stop autoboot: 0
MX6Q SABRESD U-Boot >
MX6Q SABRESD U-Boot > setenv ipaddr 192.168.0.100
MX6Q SABRESD U-Boot > setenv serverip 192.168.0.1
MX6Q SABRESD U-Boot > setenv bootargs root=/dev/nfs rw ip=192.168.0.100 console=ttymxc0,115200 nfsroot=192.168.0.1:/home/nagla/modules/nfsroot
MX6Q SABRESD U-Boot > tftp 0x12000000 uImage
PHY indentify @ 0x1 = 0x004dd074
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'uImage'.
Load address: 0x12000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################
done
Bytes transferred = 5019592 (4c97c8 hex)
MX6Q SABRESD U-Boot > tftp 0x18000000 imx6q-sabresd.dtb
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'imx6q-sabresd.dtb'.
Load address: 0x18000000
Loading: ###
done
Bytes transferred = 36188 (8d5c hex)
MX6Q SABRESD U-Boot > bootm 0x12000000 - 0x18000000
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.14.28
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5019528 Bytes = 4.8 MB
Load Address: 10808000
Entry Point: 10808000
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
Starting kernel ...
Any pointers on what I am doing wrong here. I suspect something wrong with my uImage when I specify the load address.
Regards
nagla
Hello Nagla Dhana,
I agree with Fabio, since there were important changes in the way the devices are handled starting 3.10 you should use a newer version of uboot. Perhaps you can use the uboot version from one of Freescale’s BSPs (which is 2014 for the latest kernel versions available)
Let us know of your findings!
Thanks my issue is resolved by moving to the tip of uboot with latest tag from 2015.
Imx_v6_v7_defconfig is the only one available in 3.14.xx. I guess imx_v7_defconfig seems to be abandoned.
I used bootz to boot the zImage.
However I'd like to understand the relevance of LOADADDR. What should I set it to and how is it related to kernel entry point or load address ?
Hello Nagla Dhana,
LOADADDR is the address in the memory (RAM) where uboot will load the kernel uImage. This load address is the start address of DDR (Found on memory map chapter of reference manual) plus a 0x8000 offset.
If you are using the 3.14 kernel from FSL, then there is a imx_v7_defconfig:
linux-2.6-imx.git - Freescale i.MX Linux Tree
If you use bootz then you don't need to pass LOADADDR to build the kernel. Only uImage needs LOADADDR to be passed.
Regards,
Fabio Estevam
This post was very helpful:
Some suggestions:
- You should use a recent U-boot version. 2009.08 does not support booting device tree.
- You should use imx_v7_defconfig
Regards,
Fabio Estevam