I have custom board with IMX6Dual SoC. We use Micron's or Elpida LPDDR2 memory chips (2 chips with 512 megabytes per each).
Board schematic based on Sabre IMX dev kit.
First we did something like a draft board with MCIMX6D7CVT08AD (means Rev 1.3) and board booted fine using USB boot. Second iteration has mostly the same schematic, but real dimentions for our device. One of the difference is that we changed USB port mode from OTG to device mode.
PCB routing for memory chips looks the same as first board. But this second board has problem with U-boot. If we use MCIMX6D7CVT08AD chips then U-Boot which we loads to 0x10000000 stop working somewhere near to
Unfortunately for us our supplier can order only MCIMX6D7CVT08AC chips (means Rev 1.2). So with that chips our board freeze on SPL stage when it trys to enumerate new gadget device.
U-Boot SPL 2021.04-03718-g69131a573d-dirty (Sep 09 2021 - 12:23:31 +0500)
Trying to boot from USB SDP
g_dnl_register: g_dnl_driver.name = usb_dnl_sdp
g_dnl_bind: gadget: 0x912210 cdev: 0x18300390
g_dnl_config_register(): Name: usb_dnload
usb_add_config: adding config #1 '%p
So the question is:
Are there any difference or errata between chips with Rev 1.2 and 1.3 which cause so strange behavior. Why Rev 1.2 can freeze on SPL phase, but Rev 1.3 can continue to boot to second stage bootloader?
Solved! Go to Solution.
I found that PFD Patch has implemented in s_init function. So probably that errata is not our case. Most magic event for me is that Rev 1.3 is doing usb renumeration before loading but Rev. 1.2 can not do that.
Rev 1.2 silicon was used before 2014 (Sabre SD board rev.B used it), so one can test it (including usb loading with mfg tool)
with software developed up to 2014, like
simple unit tests
However this is outdated software and not more supported, support is provided only with
Also all references on patches and solutions related to very old U-Boot versions ( like 2009.x ) in my case i firstly adopted 2017.x version of FSL U-Boot, now i'm working with 2021.04 branch of FSL U-Boot, so i suppose that this versions should have all related workarounds. Am i right?
there are many complex errata in that silicon verson, suggest to use NXP Professional Services
to fix them in software:
Or better option try to obtain latest silicon version where all these errata are fixed.
But that topics say that board can not boot. In our case CPU loaded first stage bootloader via USB (i mean SPL), and CPU freeze near to the moment of re-apply new VID/PID of usb device to load second stage bootloader U-Boot. That related to Rev 1.2 core.
But 1.3 core could load U-Boot and freeze somewhere in memory init.
How that erratas can affect such difference on U-Boot loading? Can be a problem that we remove OTG circuits and set USB port only in device role?
>>Are there any difference or errata between chips with Rev 1.2 and 1.3 which cause so strange behavior.
one can look at EB803 i.MX 6Dual/6Quad Applications Processor Silicon Revision 1.2 to 1.3 Comparison - EB803
PFD Patch L3.0.35_1.1.2_patch_bundle.tar.gz on
Thank you for your assistance, but topic you mentioned is about booting from SD interface.
In my case i use Serial Downloader mode to boot from USB port.
Is there any difference between USB boot and SD card boot sequence taking into account that errata?