Imx6solo: SD boot issue

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

Imx6solo: SD boot issue

2,279 Views
dalmiaprashant
Contributor II

I am using custom imx6 solo board.


SD boot Issue Details:
=================

BMOD[1:0]= 10- Internal boot
1. Not booting from SD card
2. JTAG also not connected.

BMOd[1:0]= 00 - boot from fuses.
1. JTAG connected if Micro SD Card NOT connected.
2. Boots from SD if JTAG NOT connected.(fuses are at default setting)


Boot logs:

=========

U-Boot 2009.08 (Jul 19 2014 - 19:41:32)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz

Thermal sensor with ratio = 182

Temperature:   41 C, calibration data 0x57e4c47d

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: 99000000Hz

ddr clock     : 396000000Hz

usdhc1 clock  : 198000000Hz

usdhc2 clock  : 198000000Hz

usdhc3 clock  : 198000000Hz

usdhc4 clock  : 198000000Hz

nfc clock     : 24000000Hz

Board: i.MX6DL/Solo-ZENBOX: unknown-board Board: 0x61012 [POR]

Boot Device: NOR

I2C:   ready

DRAM:   1 GB

MMC:   FSL_USDHC: 0

*** Warning - bad CRC or MMC, using default environment

In:    serial

Out:   serial

Err:   serial

Net:   got MAC address from IIM: 00:00:00:00:00:00

FEC0 [PRIME]

Hit any key to stop autoboot:  0

MX6SOLO SABREAUTO U-Boot >

Fuses Dump:
===========

MX6SOLO SABREAUTO U-Boot > imxotp read 0
Reading fuse at index: 0x0
Fuse at (index: 0x0) value: 0x20220002
MX6SOLO SABREAUTO U-Boot > imxotp read 5
Reading fuse at index: 0x5
Fuse at (index: 0x5) value: 0x0
MX6SOLO SABREAUTO U-Boot > imxotp read 6
Reading fuse at index: 0x6
Fuse at (index: 0x6) value: 0x0

SRC registers Dump
=================

MX6SOLO SABREAUTO U-Boot > md 0x20d8000

020d8000: 00000521 00000000 00000001 00000000    !...............

020d8010: 00000000 00000000 0000001f 08000001    ................

020d8020: 00000000 00000000 00000000 00000000    ................

020d8030: 00000000 00000000 00000000 00000000    ................

020d8040: 00000000 00000000 00000000 00000000    ................

020d8050: 00000000 00000000 00000000 00000000    ................

020d8060: 00000000 00000000 00000000 00000000    ................

020d8070: 00000000 00000000 00000000 00000000    ................

020d8080: 00000000 00000000 00000000 00000000    ................

020d8090: 00000000 00000000 00000000 00000000    ................

020d80a0: 00000000 00000000 00000000 00000000    ................

020d80b0: 00000000 00000000 00000000 00000000    ................

020d80c0: 00000000 00000000 00000000 00000000    ................

020d80d0: 00000000 00000000 00000000 00000000    ................

020d80e0: 00000000 00000000 00000000 00000000    ................

020d80f0: 00000000 00000000 00000000 00000000    ................

Please help to identify the issue how it is booting in Bmod[1:0]= 00  when fuses are not blown and not booting in internal boot mode.

Labels (1)
Tags (4)
0 Kudos
10 Replies

1,219 Views
lk22
Contributor I

SBMR can be checked even in BMOD 10. You can connect JTAG and read SBMR or you can probe GPIOs during reset. The GPIO status during reset should satisfy 0 (<0.3*3.3) and 1 (>0.7*3.3) as required. The problem should be with GPIO settings only.

0 Kudos

1,219 Views
igorpadykov
NXP Employee
NXP Employee

Hi prashant

such behaviour may be explained so called "manufacture mode" -

when processor will try to boot from SD/MMC

before serial download mode. It is explained in

sect.8.11 "SD/MMC Manufacture Mode" IMX6SDLRM

i.MX 6Solo/6DualLite Applications Processor Reference Manual

and link below

Re: i.MX6DL boot strange result: boot mode connect Serial downloader mode (USB OTG), SD connect and ...

Best regards

chip

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,219 Views
dalmiaprashant
Contributor II

Hello Chip,

Thanks for your prompt response.

But when we configure BMOD=10 - internal boot and SD boot config.

Nothing is happening.No Clock at SD1_CLK.

In serial downloader mode JTAG is not getting connected  whereas in boot from fuses mode it gets connected and manufacturer mode is supported in this mode.

Could you please suggest the possible solution and way to verify the boot mode pins are sampled correctly.

With Regards,

Prashant 

0 Kudos

1,219 Views
igorpadykov
NXP Employee
NXP Employee

Hi prashant

suggest to check by oscilloscope all boot pins

and recheck all points given in  Chapter 2 Design Checklist

Chapter 8 Avoiding Board Bring-up Problems

IMX6DQ6SDLHDG

IMX6DQ6SDLHDG, Hardware Development Guide for i.MX 6Quad.

Also one can check registers SRC_SBMR1, SRC_SBMR2

for both cases with jtag.

Best regards

chip

0 Kudos

1,219 Views
dalmiaprashant
Contributor II

Hello Chip,

Thanks for your suggestions.

We tried to probe the various GPIOs and boot mode pins and found all to be correct.

However we have a confusion with respect to the NVCC_GPIO domain power up sequence .

In our case this domain is UP before the IMX RESET signal.

Is this a problem???

It seems still BMOD/GPIOs are not sampled correctly. Hence not booting in Internal boot.

Whereas booting in Manufacturing mode.

With Regards,

Prashant

0 Kudos

1,219 Views
igorpadykov
NXP Employee
NXP Employee

Hi prashant

power up sequence is described in sect.4.2.1 "Power-Up Sequence"

IMX6DQCEC  i.MX 6Dual/6Quad Applications Processors for Consumer Products - Data Sheet

I.MX6 POR should be released when all power supplies and clocks become stable.

As for incorrect boot pins sampling, one can check registers SRC_SBMR1, SRC_SBMR2.

Best regards

chip

0 Kudos

1,219 Views
dalmiaprashant
Contributor II

Hello Chip,

Thanks for the posts.


Manufacturing mode is working perfectly fine.(This mode is working when BMOD[1:0]= 00 with SD card connected to esdhc0)


But when i am trying to  boot from SD from internal boot nothing happens(when BMOD[1:0]= 10 with SD card connected to esdhc0).


I tired to provide the POR still no success.


GPIOs are configured correctly.


JTAG is connected  in BMOD[1:0]= 00 and it does not connect in BMOD[1:0]= 10 hence not able to read the SBMR in internal boot case.


Please suggest what could be a problem.


With Regards,

Prashant







0 Kudos

1,219 Views
PraveenM
Contributor I

Hello Prashant,

Were you able to address the issue that you have mentioned above. We have the similar situation, where our boot mode is Internal, GPIO settings configured for SD2.

However we do not see the clock on the SD2. We have verified the board across the hardware checklist, but no clue. The manufacturing mode works okay with default fuse bit which is all zeros.

Any inputs here would be a great help. Thank you.

Thanks,

Praveen

0 Kudos

1,219 Views
dalmiaprashant
Contributor II

Hello Praveen,

No success yet trying to identify the issue.

Please let me know if you have any clue on it.

With Regards,

Prashant

0 Kudos

1,219 Views
PraveenM
Contributor I

Hi Prashant,

We were able to get the boot working. We had to increase the pull up on the GPIO pins till the point the internal BOOT_CFG registers reflects the required value.

We read the registers using jtag script when the boot mode is internal 0x01.

Also, the value BOOT_CFG are sampled at the rising edge of the POR signal. So the GPIO state must be settled to the required state before the rising edge of the POR signal.

-Praveen

0 Kudos