Community
cancel
Showing results for 
Search instead for 
Did you mean: 
MLaur2
Novice
1,311 Views

What is the most direct way to program an eMMC chip on the HPS controller?

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.

 

0 Kudos
3 Replies
Ahmed_H_Intel1
Employee
65 Views

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?

Ahmed_H_Intel1
Employee
65 Views

MLaur2
Novice
65 Views

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:

https://rocketboards.org/foswiki/Documentation/Arria10NANDFlashProgramming

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.

 

/Magnus