imx28 SD card boot

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

imx28 SD card boot

Jump to solution
2,080 Views
___myir
Contributor II

Hello,

We designed a custom board base on IMX287.

Now we can boot from nand-flash and USB(recovery mode), but can not boot from SD card(connected to SSP0).

When setting the boot pins to SD/MMC Boot Mode, we are getting below two lines in terminal:

0x8020a014

0x8020a014

From some documents I see 0x8020a014 means ERROR_DDI_SD_MMC_DEVICE_NOT_SUPPORTED. but I thought the SD card is fine because used this card could boot on imx28 EVK.

And I got a patch on freescale:

https://www.freescale.com/webapp/Download?colCode=L2.6.35_10.12_SSP_CLK_PATCH_UP&appType=license&loc...

Some questions:

1) The patch is necessary on imx287? if not this patch can not boot from SD card?

2) If yes, HOW to burn this patch to EEPROM(SPI), use mfgtool?

3) After burn to EEPROM, the boot pins should be set as SPI Boot Mode or SD/MMC Boot Mode?

can anyone provide some helps on this?

Thanks in advance!

Kinly

Labels (2)
Tags (3)
1 Solution
1,407 Views
igorpadykov
NXP Employee
NXP Employee

Hi Kinly

boot pins should be set as SPI Boot Mode (boot from this EEPROM),

one can program EEPROM using any suitable for this EEPROM programmer

Also one can try to blow the HW_OCOTP_ROM7 ENABLE_SSP_12MA_DRIVE bit,

using 12MA drive can make the board that previously does not boot, works.

Best regards

igor

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

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

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

View solution in original post

0 Kudos
7 Replies
1,408 Views
igorpadykov
NXP Employee
NXP Employee

Hi Kinly

boot pins should be set as SPI Boot Mode (boot from this EEPROM),

one can program EEPROM using any suitable for this EEPROM programmer

Also one can try to blow the HW_OCOTP_ROM7 ENABLE_SSP_12MA_DRIVE bit,

using 12MA drive can make the board that previously does not boot, works.

Best regards

igor

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

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

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

0 Kudos
1,407 Views
___myir
Contributor II

Thanks Igor!

I will try to check this out!

0 Kudos
1,407 Views
markwilliams
Senior Contributor I

There is an errata for the I.mx28. The boot rom does not set the clock with the correct polarity to boot from SD.

I found that you need to blow the fuse for 12mA drive for the SD boot to work but this is a poor work around.

if you look at the SD clock and data with a scope there are only ns of time from setting up the data to changing the clock edge - not the required setup and hold times.

So it may just work for some SD cards. This may be ok for a home project but not good for a commercial solution.

I resorted to boot from NAND not SD. the work around is to boot from NOR with a small patch to then boot from SD but you the fun of getting the patch onto the NOR in production.

mark

0 Kudos
1,407 Views
___myir
Contributor II

Thanks Mark,

I don't know the reasons but it can boot from SD card when I removed the D1~D7 diodes, it is very strange.

mmc.png

0 Kudos
1,407 Views
michaelkoelbl
Contributor III

As Mark has already written, Clock polarity is wrong during boot. We added an inverter in the SD clock line and this works fine since one year (but always using the same MicroSD card).

Michael

0 Kudos
1,407 Views
___myir
Contributor II

Hi Michael,

Thanks for your reply.

As I replied Mark, it works when I removed the diodes that attach on the SD card interface, but I don't know why...

Without NOR or EEPROM on our design, since we just boot from SD card by this way.

0 Kudos
1,407 Views
markwilliams
Senior Contributor I

TVS can have relatively high capacitance. Coupled with your 33R series resistors you have a filter circuit that probably rounds off the edges too much.

operating with the wrong polarity will require sharp edges which is why we set to 12mA drive. The 33R resistors and TVS will effectively operate like the lower drive strength (the drive strength just changes the pin driver resistance).

do you need the TVS on the SD interface? A decent connector with proper connection of the shield can to your board perimeter chassis ground should protect from ESD? Probably best to connect the shell to your chassis ground (if you have one). Any ESD from inserting card will discharge via the connector she'll through your dgnd. Adding a perimeter trace can allow ESD to route around rather than through your board.

mark​