on i.MX6S custom board, 32-bit mode, Booting hangs at Kernel loading..

cancel
Showing results for 
Search instead for 
Did you mean: 

on i.MX6S custom board, 32-bit mode, Booting hangs at Kernel loading..

Jump to solution
3,170 Views
Contributor II

Hi All,

i am porting Android 13.4.1 BSP on custon Board based on DL- SABRE-SD plaform.   I have applied 13.4.1.02 Android patch on the Android BSP downloaded from freescale site.   Have built the U-boot, And android images and have put through the MFG tool in eMMC .. however, on booting, the board boots   and hangs while loading Kernel...  below is LOG..

U-Boot 2009.08-dirty (Mar 31 2013 - 12:32:46)

CPU: Freescale i.MX6 family TO1.1 at 792 MHz
Temperature:   46 C, calibration data 0x5bb5465f
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   : 198000000Hz
emi_slow clock: 22000000Hz
ddr clock     : 396000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61011 [POR ]
Boot Device: MMC
I2C:   ready
DRAM:  512 MB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment

In:    serial
Out:   serial
Err:   serial
Found PFUZE100! deviceid=10,revid=11
Net:   got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot:  3     2     1     0
kernel   @ 10808000 (4091876)
ramdisk  @ 11800000 (167741)
kernel cmdline:
use uboot command line:
console=ttymxc0,115200 init=/init nosmp video=mxcfb0 video=mxcfb1:off video=mxcfb2:off gpumem=96M fbmem=10M fb0base=0x17b00000 vmalloc=400M androidboot.console=ttymxc0

Starting kernel ...

unable to proceed further..

request help / guidance urgently  ..

Labels (3)
1 Solution
32 Views
NXP Employee
NXP Employee

If your log is stuck on "Starting kernel", it should not be related to "  "init.freescale.rc". Please check your kernel - As you mentioned, you are running SW on customer's board. So you should ensure you have changed relative board files and ensure they are aligned with your board design. You can add logs in your board init function and see whether the SW ran it to here firstly.

View solution in original post

11 Replies
32 Views
NXP Employee
NXP Employee

Very like that the DDR is not very stable. I guess you just reused the DDR init script(flash_header.S) of smart_device board, while some parameters are board dependent. Please run DDR calibration to get the proper delay values and then update the flash_header.S, and pls also run DDR stress test using the tool attached. It is expected that the highest frequency which can pass the test should be with 15% margin, ie, if your target frequency is 400MHz, then the highest pass frequency should above 460Mhz.

0 Kudos
32 Views
NXP Employee
NXP Employee

Hi Chongbin,

The 15% margin on the max speed at room temperature make sure that the test will pass at the maximum speed across the full temperature range?

Or is it just a safety margin with respect to a real application (with all IPU/GPU/VPU running) since the tool issues pattern that can not 100% stimulate a worst case scenario?

0 Kudos
32 Views
NXP Employee
NXP Employee

1. The 15% margin is based on our experience from tons of customer support.

2. Usually we tested is at rom temparature, rarely at very low/high. So I am not sure 15% is still workable at low/high.

0 Kudos
32 Views
Contributor II

Hello,

We have to set the highest frequency more than 560MHz with 15% margin.But is giving limit for 520MHz.

Please help me to set the frequncy more than 560MHz with 15% margin.

0 Kudos
32 Views
Contributor III

Hi Chongbin,

Do you have elf files for the stress test?

0 Kudos
32 Views
Contributor II

Hi Chongbin Fan,

thank you very much for the response.. 

Actually my board uses   1GB or RAM, MT41J256M16  x 2Chips) at CS0.  The properties and data sheet of these chips is exactly similar to the ones used in SABRE-SDP. 

For checking and debug pupose, I have configured the DDR INIT for both the 512MB and 1GB config  in the flash_header .  Pl. find the files attched for your reference.    But with both these configurations the result is still the same and the Kenal is not booting.

However , in our analysis it seems  to be some config issue in Andoid image files creation and settings in init.freescale.rc file.     As the below behaviour is being observed:

1.  on the same board, able to download and write all the Android image files into the eMMC  through MFG tool.

2. Able to burn the eFUSES for the booting of i.MX6S  through eMMC

3. The mfg-bootloader and mfg-Kernel executes fully and completes entire process.

4.  If  only uboot-bin is created directly through "  Build U-Boot Images" process, and the same is put into the "Android" folder  of MFG-Tool , then even the Board boots through eMMC  but hangs at Kernal loading place.

5. However, if all the images ( Uboot.img, Boot.img, system.img, recovery.img)  are taken from the /OUT directory after Android build and flashed through MFG tool then the board does not boot at all. ..!!

the above symptom indicates some issue with   "init.freescale.rc"    or Boot.img   which does not see any linkage / pointing betwwen the bootloader and rootfile system to initiate the boot process and kernel loading...    need the info and direction in this regard for the correct configuration of "init.rc" / "init.freescale.rc"   for the generation of  properly configured and rightly pointing "Boot.img"....

any direction / debug / input in this regard will be heartly appreciated...  

   

thanks and regards in advance..

Ujala

0 Kudos
33 Views
NXP Employee
NXP Employee

If your log is stuck on "Starting kernel", it should not be related to "  "init.freescale.rc". Please check your kernel - As you mentioned, you are running SW on customer's board. So you should ensure you have changed relative board files and ensure they are aligned with your board design. You can add logs in your board init function and see whether the SW ran it to here firstly.

View solution in original post

32 Views
Contributor II

Hi Xioali,

thanks for the reply,

i have solved the problem myself..  it was related to MFG version of UBOOT.  i was downloading my uboot.bin and Uimage using the MFGTool with the "u-boot-mx6dl.bin"  supplied  with the MFG Tool itself.  Once i generated my own MFG "u-boot-mx6dl.bin"  for my custom board and replaced that in the MFG Tool, then the board started working properly.  Now everything is booting properly and i am able to Load the kernel and Android.

However , now i am facing a peculiar  problem of   "FSL Powerservices stopped:..    pl. see the attached image in this regard.   

i am using i.MX6S  cpu   and Android 13.4.1 BSP.

0 Kudos
32 Views
Contributor I

Hello ,

      Even we have developed a customized board on the basic of Sabre-SD board design (iMX6 Quad core), i am trying to replace only the images i build from OUT/ folder into the folder by name android/ in MFG tool, is this enough to boot the board or do i have to build/generate my OWN u-boot-mx6q-sabresd.bin for MFG tool again and then replace it inside OS Firmware folder present inside MFG tool.

Also we are using 2GB DDR3 in place of 1GB DDR3 by default present on Sabre-SD board.

Kindly request you to provide some pointers.

Thanks

Soujanya.K

0 Kudos
32 Views
NXP Employee
NXP Employee

I didn't see attached image. From your description, i suggest you to remove "System Profile Service and App".

See Android_Advanced_User_Guide.pdf and get known of "System Profile Service and App".

0 Kudos
32 Views
NXP TechSupport
NXP TechSupport

What command you used to build the u-boot and kernel?

Are you building the u-boot for i.MX6S?