I am working on a project, based on a Cyclone V SoC. The HW is equipped with a QSPI FLASH and a eMMC chip, both connected to the HPS pins.
We want the system to configure/boot from the eMMC chip.
I have found two possible methods to program a eMMC chip:
- Load Preloader -> U-boot -> Linux, install tftp and mount the eMMC chip as drive
- Load Preloader -> U-boot, use the debugger to store a SD-card image in RAM and use U-boot to copy the image to the chip.
I find both methods unsuited for a production situation. We will have batch-sizes in order of 10 units, thus pre-programmed chips are not an option.
Is there a more direct way to program an eMMC chip, connected to the HPS controller?
We can use the QSPI FLASH as temporary boot-device, if that helps to program the eMMC chip.
mmm, this is a good question.
Do you have any issue with the possible methods you mentioned? what you are trying to avoid to search for another way?
Which Kernel version you want to use?
Thanks for your reply,
I have looked at that thread before. I see many users with same issue, but I see no elegant solution.
Usually, when using an eMMC chip, it involves a file-system, which means that a complete SD-card image must be transferred. This is often a few GB, which makes Jtag impractical.
I have only tried the method with U-boot and the debugger.
Our application is a bear-metal application, although we are using FreeRTOS for the Ethernet stack. Therefore I find the Linux method very indirect.
Shortly after posting this question, I found a combination of these methods:
As I understand this, U-boot has a tftp-client and is capable of writing to the eMMC chip.
For me as Engineer, many things are possible, but I have to find a solution, which can be used in the production. Ideally, it is a script/program, which handle all the complicated stuff.