problem with imx53 boot by emmc

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

problem with imx53 boot by emmc

Jump to solution
1,565 Views
rainustc
Contributor II

Hi,

     When I use the MFGTools successfully write boot and kernal into the external emmc device, but imx53 can not boot from this device, it still jump to the usb terminal. I just check out the following things, but still don't know what's wrong.

     1. Make sure the right gpio configure for emmc 4.41

     2. Write the boot and kernal to sd( different configure for sd), and it can be booted in QSB ESDHC1 or ESDHC3, so the boot and kernal is right.

     3. When boot from emmc on my board, I found after the 357.143 clock appeared, it stop the boot process, and jump to the serial boot process. In this process, only several times I saw the 20MHz high frequency appearing, but still jump to serial boot process.

     What's wrong with emmc boot can be deduced with this problem?  I really don't know. With the MFGTools, I think the boot and kernal have been written successfully into the emmc device, because of the MFGTools can find the right volume(16G) with the emmc device.

1 Solution
767 Views
Yuri
NXP Employee
NXP Employee

Please check U-boot environment variables - if they are as recommended in section 8.2 (Run the Image from MMC/SD)
of  "i.MX53_SABRE_TABLET_Linux_BSP_UserGuide.pdf" :

Assume the kernel image start from the address 0x100000 byte (the block start address is

0x800). The kernel image size is less than 0x300000 byte. The rootfs is located into

/dev/mmcblk0p1 partition. Enter the following commands in the U-Boot prompt:


MX53-SMD U-Boot > setenv loadaddr 0x70800000

MX53-SMD U-Boot > setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'

MX53-SMD U-Boot > setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw video=mxcdi1fb:RGB666,XGA di1_primary ldb=di1 ip=dhcp'

MX53-SMD U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc read 0 ${loadaddr} 0x800 0x1800;bootm'

MX53-SMD U-Boot > setenv bootcmd 'run bootcmd_mmc'

MX53-SMD U-Boot > saveenv

MX53-SMD U-Boot > run bootcmd

To read kernel image from eMMC4.4, please update the command line as:

MX53-SMD U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc read 1 ${loadaddr} 0x800 0x1800;bootm'

https://www.freescale.com/webapp/Download?colCode=IMX53_1105_LINUXDOCS_BUNDLE&location=null&fpsp=1&P...

SABRE Platform for Tablets based on i.MX53 Product Summary Page

View solution in original post

0 Kudos
2 Replies
768 Views
Yuri
NXP Employee
NXP Employee

Please check U-boot environment variables - if they are as recommended in section 8.2 (Run the Image from MMC/SD)
of  "i.MX53_SABRE_TABLET_Linux_BSP_UserGuide.pdf" :

Assume the kernel image start from the address 0x100000 byte (the block start address is

0x800). The kernel image size is less than 0x300000 byte. The rootfs is located into

/dev/mmcblk0p1 partition. Enter the following commands in the U-Boot prompt:


MX53-SMD U-Boot > setenv loadaddr 0x70800000

MX53-SMD U-Boot > setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'

MX53-SMD U-Boot > setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw video=mxcdi1fb:RGB666,XGA di1_primary ldb=di1 ip=dhcp'

MX53-SMD U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc read 0 ${loadaddr} 0x800 0x1800;bootm'

MX53-SMD U-Boot > setenv bootcmd 'run bootcmd_mmc'

MX53-SMD U-Boot > saveenv

MX53-SMD U-Boot > run bootcmd

To read kernel image from eMMC4.4, please update the command line as:

MX53-SMD U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc read 1 ${loadaddr} 0x800 0x1800;bootm'

https://www.freescale.com/webapp/Download?colCode=IMX53_1105_LINUXDOCS_BUNDLE&location=null&fpsp=1&P...

SABRE Platform for Tablets based on i.MX53 Product Summary Page

0 Kudos
767 Views
rainustc
Contributor II

I just check out the bug, but still couldn't solve it.

I found that all the problem is with the lpddr2 configure.

Now, I can use the MFGtools to make a proper lppddr2 confure reg parameter, it can be run properlly with usb download. But the strange thing is that when I flash these configures into emmc or sd, then reboot, it can't work properly with the lpddr2.

I try to calibrate the ddr reg parameter again with emmc or sd boot, still now I only check out the read delay calibration, the write delay is still not work properly.

So, maybe my confuse is very simple, why the ddr reg parameters can't be same in usb boot and emm/sd boot?

0 Kudos