Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12589 Discussions

eMMC OS bring-up: Best method to write SoC HPS image to embedded MMC memory

Altera_Forum
Honored Contributor II
3,681 Views

Hello! 

 

I'm sure this question was asked before, hence I'm sure someone can help me. 

 

I would like to know how to write a existing SoC HPS image (containing the OS, preloader, U-Boot and applications) to an empty embedded SD/MMC memory (which is soldered/fixed and can't be removed). 

Or in other words - I would like to know how to bring-up a Altera SoC HPS system with a soldered embedded SD/MMC memory. 

All descriptions I've found are based on SD cards which can be simply disconnected from the Altera board and plugged into a PC to write the image (by using winimager or dd linux command). 

Obviously, this solutions can not be used if no Linux is running on the SoC and if the SD/MMC memory can be unplugged. 

 

Is there a method to do this with Quartus II and JTAG (USB blaster) or the EDS? 

Or do I have to write a FPGA code to configure partitions on the SD memory manually (via the F2H bridge and the DMA) and to transfer all files and everything else manually? 

 

Thank's for your help.
0 Kudos
14 Replies
Altera_Forum
Honored Contributor II
1,941 Views

I think: you may make all recommended standard operations with pluggable SD-card with sizeof, equal to unpluggable chip, then make image from it with winimager/dd -- and fill it binary representation to chip with quartus_hps tool. 

All partitions will be saved/restored, analoguos may be "transferred" "unpluggable" data to insertable media, if need be analized.
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

If you have Ethernet on the board you could load the preloader SPL and u-boot via an FPGA-Image or via the EDS and then boot via tftp to a Linux and then use various linux-tools/scripts for that purpose...

0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

I think the best way is to program the eMMC with your Image using the JTAG interface. With JTAG you can directly control all eMMC pins connected to the HPS. Just like this(https://www.intellitech.com/products/eclipseboundaryscanflash.asp

Maybe!!! with a software like TopJTAG Flash Programmer??. They support Byteblaster II.  

I think JTAG is the best choice (for production) if you are developing a product.  

Or any other ideas????? 

 

ps: or maybe using openocd, but I dont think they support the Byteblaster II
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

We want to use eMMC with Arria 10 SoC device. What is the best way to load an image on the eMMC device the first time? 

 

I see JTAG pins for the FPGA but did not see any dedicated JTAG lines to the HPS portion. Can JTAG give access to the eMMC (for copying over an image) through the FPGA? 

 

Appreciate the feedback!
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

hi!! 

You will just find one JTAG interface, because both parts(FPGA and HPS) are in a daisy chain. Like this JTAG_in -> FPGA -> HPS ->JTAG_out  

So!! there are different methods to copy your image in your eMMC. 

1) If your eMMC already contain a linux 

-Just use dd and copy your image to dev/mmcblk0 (ex. using ssh) 

2) If theres nothing on your eMMC 

-You have to place preloader and uboot in the FPGA, boot until uboot from FPGA and then boot from there using tftp&nfs! And at the end, copy your image to dev/mcblk0 

or -Using a JTAG interface software like openocd! Problem is: You have to implement the software part to control the eMMC controller over JTAG. And then write your image over JTAG. 

bye  

-
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

There is another option to use the alt-boot-disk-util, but must with the command shell.

0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

 

--- Quote Start ---  

There is another option to use the alt-boot-disk-util, but must with the command shell. 

--- Quote End ---  

 

 

Hi PR! 

I don't know if this command can copy the image from your host over eth on the eMMC memory.  

Sure, you can use the alt-boot-disk-util with a SD card but on a eMMC ??? not sure 

the command should maybe look like this 

alt-boot-disk-util -p preloader -b bootloader -a write ???disk_file??? (disk_file = /dev/fd/1 | ssh root@soc_module_ip 'cat>/dev/mmcblk')  

do you mean something like this?? 

bye
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

 

--- Quote Start ---  

Hi PR! 

I don't know if this command can copy the image from your host over eth on the eMMC memory.  

Sure, you can use the alt-boot-disk-util with a SD card but on a eMMC ??? not sure 

the command should maybe look like this 

alt-boot-disk-util -p preloader -b bootloader -a write ???disk_file??? (disk_file = /dev/fd/1 | ssh root@soc_module_ip 'cat>/dev/mmcblk')  

do you mean something like this?? 

bye 

--- Quote End ---  

 

 

Oh.. my bad. didn't read clearly that you are not allowed to unplug as is fixed soldered. This is not supported even with quartus_hps command.
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

I'm trying to say that i actually just loged some service request to Altera, where they claim there is no support for this usage currently, not even with the quartus_hps method. so.. maybe can try to think of other wrking way such as boot from FPGA then.

0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

hi! 

So the only way I know...  

1) instantiate 2 onchip memories on the FPGA (Qsys) 

2) init the memories with a u_boot.hex and a u_boot_spl.hex (You need to check BOOT_FROM_SDMMC and EXE_ON_FPGA on bsp editor)(You also have to change some lines in the spl.c) 

3) activate the "enable boot from fpga signals" on the hps(qsys) and connect them to vcc  

4) Compile the project and programm the FPGA... The SoC will boot from the FPGA and will stop on the uboot 

5) Boot linux using tftp and nfs 

6) when you got in linux, copy your image with dd 

 

terrible right!!!! Thats why I was thinking about programming the emmc over jtag... much easier and elegant! 

If you need more info about booting from fpga... go to devboards.de and take a look at the SOC1 doc and download the recovery project and start project! 

maybe denx... they may also have this kind of things!! 

bye
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

Hi folks!  

 

I'm sitting here, having exactly the same problem.  

Murillo, did your method work properly? Does your device boot from the eMMC now?
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

hi! 

"my method??" ...which one? well if you mean ..booting from FPGA. It works!! take a look at devboards.de 

But programming the emmc over jtag.... I dont know the way to do that!! 

 

Its Very important to say here "Were talking about emmc programming when the emmc its totally empty" 

bye
0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

Sorry for my imprecise question. But yes, I was talking about booting from FPGA. Thanks for the info, I'm about to try that, too.

0 Kudos
Altera_Forum
Honored Contributor II
1,941 Views

hi... there is no example that the quartus_hps working to flash the EMMC, still with conventional way. plug into the usb converted and do it like the SD card method

0 Kudos
Reply