i have created an own board with a imx6ull processor.
now i have ported uboot for my board.
after compilation ive got a 150kb large .bin file.
i thought that i can download this by jtag into the imx6 internal ram.
unfortunately, the internal ram has only 68kb.
i dont have usb ond my board. I also dont have strapped the gpios for the boot process selection.
i only habe boot0 and boot1 pins and uart1–3 and jtag and a sd–card slot at sd port 0.
how can i start u–boot?
would you reccomend to burn the efuses?
I was very surprised at the design. These two functions are very important features of I. MX processors.
Their purpose is to provide convenient debugging and mass production for customers. In fact, before making PCB boards, you should send us your schematic and let's check the design for you.
now for your questions, I can only give you some advice, see below, please!
--how can i start u–boot?
(1) UART port doesn't support to download u-boot to Flash on board. so don't consider UART, please!
(2) JTAG interface
In theory, u-boot can be downloaded into DDR3 memory(not internal ram) via JTAG interface, after u-boot run in memory, on u-boot command line, you can use related commands, like mmc write, etc to write u-boot in memory to eMMC or SD card. This means u-boot will be written to eMMC(or other falsh) by itself.
---would you reccomend to burn the efuses?
You didn't design Boot Configuration Select circuit, so I also don't know which device will be used for booting system. If there is no way to select a boot device, you will have to burn eFUSE to select a fixed device for booting. But this requires that u-boot should be run in memory at first, then burn eFUSE on u-boot command line by related commands.
So in brief, you should try your best to run u-boot in memory at first.
Hope above information is helpful for you.
Have a nice day!
Thanks for your answer.
Yes, i know, its a pitty that i didnt designed these functions.
I was able to load u-boot via jtag into the external DDR3.
For that i have configured the DDR3 with jlink using w4 commands.
I have written all neccessary registers with the w4 command.
From now on, the DDR3 was accessible from addres 0x80000000 and further.
I have written u-boot into it using GDB. For some unknonwn reason it was not possible to load the bin file using jlink commander, set the PC and run with CMD g.
Only the download of the elf file with GDB and then jump *0x87800000 was successfull.
Anyway , it is good news.
"elf" is used for debugging, which includes binary machine code/loading address/running address/relocating table/symbal table etc. but for u-boot.bin only includes binary machine code, which doesn't include i.MX IVT table.
If you want to burn u-boot image into flash on board(emmc/sd/qspi etc), you should compile it like this:
# make u-boot.imx /* ivt table and boot data, etc will be added to the header of u-boot by mkimage tool*/
u-boot.imx is the image you will use, instead of u-boot.bin
[Pay attention to it, please! just remind you.]
Have a nice day!