I have a U-Boot image (no SPL build) that is running well when the board is booting it from eMMC.
When I download the same image into RAM via the USB serial loader protocol (using the sb_loader tool or the imx_usb_loader tool) and start it from there, the U-Boot seems to run properly as well. But RAM access is very slow in this case. I tested this with the mtest command. The writing cycle takes approx. 2 times as long as when booting from eMMC. Reading is even >10 times slower.
Since in both cases the same DCD is used, I do not understand where the difference comes from:
When booting from eMMC, ROM code loads the first portion of the image and applies the DCD. Then it loads the rest of the image to RAM and starts it.
When using the USB loader, the loader tool gets the DCD data from the image and applies it to the CPU. Then it downloads the image and starts it.
Did anyone come across the same issue?