Kernel hang issue with vanilla 3.14.28

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Kernel hang issue with vanilla 3.14.28

1,610 Views
nagladhana
Contributor II

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

Labels (2)
6 Replies

925 Views
gusarambula
NXP TechSupport
NXP TechSupport

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!

925 Views
nagladhana
Contributor II

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 ?

924 Views
gusarambula
NXP TechSupport
NXP TechSupport

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.

0 Kudos

924 Views
fabio_estevam
NXP Employee
NXP Employee

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

924 Views
nagladhana
Contributor II

925 Views
fabio_estevam
NXP Employee
NXP Employee

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