Hi,
I made a custom board based on TWR-LS1021A board and removed unused signal and ports on it as described in AN4878.
Now my problem is my board stop before running u-boot code.
i compiled u-boot v2017.07 with enabled DEBUG opthion in config files and output is here:
U-Boot SPL 2017.07 (Oct 28 2019 - 16:42:26)
>>spl:board_init_r()
using memory 0x82100000-0x82200000 for malloc()
spl_early_init()
Trying to boot from MMC1
spl: mmc boot mode: raw
hdr read sector e8, count=1
spl: payload image: U-Bo load addr: 0x81ffffc0 size: 497307
read 3cc sectors to 81ffffc0
Jumping to U-Boot
loaded - jumping to U-Boot...
image entry point: 0x82000000
<stay here and no more activity>
after many research and debug, i found the problem.
when i remove R167 and R182 from TWR-LS1021A board (this removes USB power from the chip), i saw the same problem and output log on the TWR-LS1021A board.
i don't need usb ports in my custom board and as described in AN4878 (Table 3), i left no connect and floating the USB1_SDVDD, USB1_SPVDD, USB1_SXVDD and USB_HVDD pins.
in addition i see when i mount only R182 on the TWR-LS1021A board, it boots normaly.
Whats the problem and what can i do?
thanks.
Solved! Go to Solution.
I found the problem and solution.
all USB digital and analog supply pins floats in my board and its okay and no problem as described in AN4878 Rev. 5.
but in u-boot source USB registers written in "arch/arm/cpu/armv7/ls102xa/soc.c" file by erratum_a009008(), erratum_a009798(), erratum_a008997() and erratum_a009007() Regardless of enable or disable USB in config files.
Solution:
if no one uses USB in hardware design, must comments next lines in "arch/arm/cpu/armv7/ls102xa/soc.c" file also:
//erratum_a009008();
//erratum_a009798();
//erratum_a008997();
//erratum_a009007();
Thanks of Pavel and good luck.
I found the problem and solution.
all USB digital and analog supply pins floats in my board and its okay and no problem as described in AN4878 Rev. 5.
but in u-boot source USB registers written in "arch/arm/cpu/armv7/ls102xa/soc.c" file by erratum_a009008(), erratum_a009798(), erratum_a008997() and erratum_a009007() Regardless of enable or disable USB in config files.
Solution:
if no one uses USB in hardware design, must comments next lines in "arch/arm/cpu/armv7/ls102xa/soc.c" file also:
//erratum_a009008();
//erratum_a009798();
//erratum_a008997();
//erratum_a009007();
Thanks of Pavel and good luck.
Is the LS1021a USB1_SDVDD not connected (floating) on your board?
Have a great day,
Pavel Chubakov
Yes, it's not connected on my board.
Thanks.
Previous revision of the AN4878 Rev. 3 contains the following recommendation for the LS1021a USB1_SDVDD:
Not Used - Must remain powered
It looks like the AN4878 Rev. 5 is not fully correct.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Pavel Chubakov,
thank you for your comments.
It's maybe a bad documentation from NXP. the last revision of AN4878 is rev. 5 that exists on the NXP web site and not earlier rev.
the USB1_SDVDD pin is not accessible on the board (BGA pkg) and i don't have enough time to rebuild another board so i need a software solution.
if the problem is a silicon bug, so the SPL shouldn't run too. i removed all USB defines from config header files of TWR board at u-boot code but without any effect in boot sequences.
is there any infinite while loop that waits for the USB's PLLs to be locked in u-boot or in chip hardware?
if it's a software loop, i can bypass it in the u-boot code easily.
Thanks.