LS1028A. Read errors from eSDHC1 during preboot (PB2)

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

LS1028A. Read errors from eSDHC1 during preboot (PB2)

Jump to solution
846 Views
rpk
Contributor II

Hello.
Out hardware loads RCW and PB2 correctly from I2C EEPROM, and continues fetching PB31 from SD card. This data is again copied to DDR4 RAM as it should. The problem is that the data copied to DDR4 RAM is corrupted (approximately every 20th byte or so is corrupted). We have ruled out DDR4 configuration. We log every 32-bits as fetched from the DATPORT register (DMA has been disabled), and this is where we see that some bytes are corrupted. We have tried running the SD card interface at different speeds. We have also tried turning on the schmitt triggers (hyst_ana_cntrl1), tried various brands and models of SD cards (including an eMMC card), and so forth but nothing seems to make a difference.  We are starting to run out of ideas.  Does anybody have any ideas as to what could be causing this, and what we could try? Thanks.

Labels (1)
1 Solution
691 Views
Pavel
NXP Employee
NXP Employee

Perhaps your problem concerns to DDR4.

Test your memory using a memory test.

Have a great day,
Pavel Chubakov

 

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

View solution in original post

3 Replies
691 Views
rpk
Contributor II

Hi again,

Turns out it really was a DDR4 configuration issue. The memory tests were fooled by the cache, and a byte swapping issue caused a misinterpation of data read from the data port.

Thanks

/Rolf

0 Kudos
692 Views
Pavel
NXP Employee
NXP Employee

Perhaps your problem concerns to DDR4.

Test your memory using a memory test.

Have a great day,
Pavel Chubakov

 

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

691 Views
rpk
Contributor II

Thanks Pavel,

We have run memory tests and they show that DDR4 is fine.

In the firmware/atf/plat/nxp/drivers/sd/sd_mmc.c file, function esdhc_read_data_nodma(), we log val here:

/* get data from data port */

val = mmio_read_32((uintptr_t)&mmc->esdhc_regs->datport);

This shows that val is corrupted now and then. This is not related to DDR4.

Any ideas what could be causing this and how to fix it?

Have a great day,

Rolf Peder Klemetsen

0 Kudos