eMMC全稱為 embedded Multi Media Card,主要用于非易失性存儲,它彌補了 FPGA 芯片自身存儲能力的不足,為 FPGA 提供一個高集成度、大容量、低成本、且易于使用的“硬盤”或“固態(tài)硬盤”解決方案。
Part 01
eMMC簡介
eMMC 在 FPGA 系統(tǒng)中的作用可以概括為:
系統(tǒng)啟動:可存儲OS鏡像
大容量數(shù)據(jù)存儲:記錄采集數(shù)據(jù)、視頻、日志
運行操作系統(tǒng)和應(yīng)用程序
eMMC并非一個單純的存儲芯片,內(nèi)部主要可以分為 Flash Memory、Flash Controller 以及Interface 三大部分:

Flash Memory:負責數(shù)據(jù)存儲。
Flash Controller:負責管理NAND Flash的讀寫、擦除、壞塊管理、磨損均衡、錯誤校正等復(fù)雜操作。
Interface:提供了一個標準化的主機接口,讓主處理器可以像訪問一個標準設(shè)備一樣輕松訪問存儲。
Part 02 易靈思eMMC IP
易靈思為用戶提供了eMMC Host Controller IP (基于eMMC5.1協(xié)議)和配套的Linux驅(qū)動。為了方便用戶在系統(tǒng)中使用eMMC,易靈思還提供了eMMC Demo工程(基于TJ375N529 / TJ375N1156X開發(fā)板),實現(xiàn)了將Linux系統(tǒng)寫入eMMC并從eMMC中加載Linux系統(tǒng)的功能。
eMMC5.1協(xié)議中定義的速率模式如下表所示,易靈思eMMC Host Controller IP V1.0最高實現(xiàn)HS400模式。

Part 03 eMMC Demo
3.1 寫入Linux系統(tǒng)
在將Linux系統(tǒng)寫入eMMC之前,需要進行以下操作:① 用以太網(wǎng)口從服務(wù)器下載Linux系統(tǒng)文件。② 使用工具對eMMC進行分區(qū)。為了方便上述操作,RISC-V需要先從SD卡啟動系統(tǒng)。
將Linux系統(tǒng)寫入eMMC的具體流程如下圖所示:

通過Balena Etcher工具將sdcard.img(包括Linux kernel、device tree、file system)燒寫進SD卡。
用Efinity Programmer擦除SPI flash,并將emmc_linux.hex(包含F(xiàn)PGA bitstream、OpenSBI、U-Boot)文件燒寫進flash,其中FPGA bitstream包含bootloader(FSBL)文件。
重新上電加載程序后,運行bootloader讀取flash里面的OpenSBI和U-Boot文件,輸入run sd_bootcmd命令引導(dǎo)U-Boot讀取SD卡內(nèi)的Linux kernel和device tree并將其寫入到DDR內(nèi)存里,然后RISC-V會依次加載Linux kernel和device tree,加載成功后,再讀取SD卡內(nèi)的file system并掛載在Linux系統(tǒng)內(nèi)。
通過開發(fā)板上的以太網(wǎng)口連接至服務(wù)器,下載服務(wù)器里的uImage(Linux kernel image)、linux.dtb(device tree blob)、rootfs.tar(tarball of the root filesystem)文件并寫入到SD卡里。
通過emmc_programmer腳本把uImage、linux.dtb、rootfs.tar從SD卡讀出并寫入eMMC里。

3.2 加載Linux系統(tǒng)
從eMMC中加載Linux系統(tǒng)的流程如下圖所示:

開發(fā)板上電加載程序后,運行bootloader讀取flash里面的OpenSBI和U-Boot文件。
引導(dǎo)U-Boot讀取eMMC卡內(nèi)的Linux kernel和device tree。
將讀出的Linux kernel和device tree寫入到DDR內(nèi)存里。
RISC-V依次加載DDR內(nèi)存里的Linux kernel和device tree,加載成功后,再讀取eMMC卡內(nèi)的file system并掛載在Linux系統(tǒng)內(nèi)。
如下圖所示,Linux系統(tǒng)加載完成后,進入系統(tǒng)內(nèi),執(zhí)行l(wèi)sblk命令,顯示根系統(tǒng)是掛載在eMMC第二分區(qū)上。

在FPGA上成功加載Linux系統(tǒng)后,將獲得一個功能完整的嵌入式開發(fā)環(huán)境,能夠運行多種應(yīng)用程序并利用豐富的工具鏈進行開發(fā),支持從基礎(chǔ)開發(fā)到高性能計算的廣泛需求。
Part 04 總結(jié)
易靈思提供了基于eMMC的Linux系統(tǒng)加載方案,完善了易靈思RISC-V生態(tài)系統(tǒng),更加便于用戶在RISC-V上使用Linux系統(tǒng)。同時eMMC作為Linux系統(tǒng)加載介質(zhì),兼具?高可靠性、易用性及性能優(yōu)勢?,其集成化設(shè)計簡化了存儲管理,通過標準化接口與RISC-V架構(gòu)協(xié)同,支撐了Linux系統(tǒng)的穩(wěn)定運行? ?。
易靈思公司介紹
易靈思是一家國產(chǎn)FPGA公司,總部位于深圳前海。公司憑借自主可控的Quantum硬件架構(gòu),采用邏輯和路由可以互換的XLR結(jié)構(gòu),實現(xiàn)了創(chuàng)新的產(chǎn)品設(shè)計與軟件算法,使得FPGA產(chǎn)品具備低功耗、小體積、高密度、高性能等優(yōu)勢。已量產(chǎn)的40nm Trion系列及16nm鈦金系列 FPGA產(chǎn)品,廣泛應(yīng)用于機器視覺、顯示、工業(yè)控制、醫(yī)療、汽車、AI和通信等終端領(lǐng)域。
重要產(chǎn)品
鈦金系列FPGA具有增強的Quantum架構(gòu),16nm工藝,35K 至 1,000K 邏輯單元,超高性能 300-500MHz,封裝最小可至3.5mm*3.4mm@60K LE,功耗低至競爭對手的1/4,硬核資源豐富,最新產(chǎn)品TJ375現(xiàn)已量產(chǎn)。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22406瀏覽量
636074 -
Linux
+關(guān)注
關(guān)注
88文章
11755瀏覽量
218995 -
固態(tài)硬盤
+關(guān)注
關(guān)注
12文章
1633瀏覽量
60483 -
emmc
+關(guān)注
關(guān)注
7文章
261瀏覽量
55972
原文標題:eMMC應(yīng)用—Linux系統(tǒng)加載
文章出處:【微信號:易靈思官微,微信公眾號:易靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何把文件系統(tǒng)燒到EMMC并從EMMC加載
賽靈思推出內(nèi)建SmartCORE IP解決方案
采用FPGA實現(xiàn)DisplayPort詳細教程【賽靈思內(nèi)部資料】
如何利用賽靈思28納米工藝加速平臺開發(fā)?
詳解賽靈思All Programmable Smarter Vision解決方案
賽靈思收購嵌入式Linux方案提供商PetaLogix
賽靈思及合作伙伴演示用于專業(yè)廣播系統(tǒng)的AP Smarter解決方案
賽靈思為邊緣端和云端提供多種加速應(yīng)用和IP解決方案
易靈思FPGA之---國產(chǎn)化替代選型策略
易靈思FPGA產(chǎn)品的主要特點
基于易靈思eMMC IP的Linux系統(tǒng)加載方案
評論