1. 程式人生 > >zynq QSPI啟動配置與分割槽配置

zynq QSPI啟動配置與分割槽配置

1、需要準備的檔案uImage,devicetree,BOOT.BIN(包含了fsbl以及uboot),uramdisk.image.gz,FPGA程式design.bin(注意不是bit)

2、其中裝置樹中進行的更改為在zynq-zed.dts中新增如下節點,其中compatible = "s25fl256s1";這是因為zedboard用的flash型號為S25FL256SAGMFI00,可以在原理圖中看到,而在st_spi_fsm.c中有s25fl256s0和s25fl256s1兩個選擇,兩者同樣為256Mb,區別為扇區大小一個為 256 * 1024另一個為64 * 1024。那麼到底選哪個呢,可以在uboot下檢視,可以看到識別到的flash擦除大小為64kB,所以應該選擇s25fl256s1。

Zynq> sf probe
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
&qspi {
	u-boot,dm-pre-reloc;
	status = "okay";
	is-dual = <0>;
	num-cs = <1>;
	[email protected] {
		compatible = "s25fl256s1";
		reg = <0x0>;
		spi-tx-bus-width = <1>;
		spi-rx-bus-width = <4>;
		spi-max-frequency = <50000000>;
		#address-cells = <1>;
		#size-cells = <1>;
		
[email protected]
{ label = "qspi-fsbl-uboot"; reg = <0x0 0x100000>; }; [email protected] { label = "qspi-linux"; reg = <0x300000 0x400000>; }; [email protected] { label = "qspi-device-tree"; reg = <0x700000 0x20000>; }; [email protected] { label = "qspi-rootfs"; reg = <0x720000 0x2E0000>; };
[email protected]
{ label = "qspi-bitstream"; reg = <0xa00000 0x400000>; }; [email protected] { label = "app"; reg = <0x1000000 0x100000>; }; }; };

3、其中uboot中進行的更改為uboot/include/configs/zynq-common.h

"qspiboot=echo Copying Linux from QSPI flash to RAM... && " \
		"sf probe 0 50000000 0 && " \
		"sf read 0x800000 0xA00000 0x400000 && " \
		"fpga load 0 0x800000 0x400000 &&" \
		"sf read ${kernel_load_address} 0x300000 ${kernel_size} && " \
		"sf read ${devicetree_load_address} 0x700000 ${devicetree_size} && " \
		"echo Copying ramdisk... && " \
		"sf read ${ramdisk_load_address} 0x720000 ${ramdisk_size} && " \
		"bootm ${kernel_load_address} ${ramdisk_load_address}     
               ${devicetree_load_address}\0" \

4、注意裝置樹地址範圍與uboot中的地址範圍要一致,而且要與5中燒寫的地址範圍匹配,然後編譯即可。

5、首先使用SD卡啟動,進入u-boot命令列,利用tftp伺服器進行燒寫。

tftpboot 0x800000 BOOT.bin && sf probe 0 0 0 && sf erase 0x0 0x100000 && sf write 0x800000  0x0 0x100000
tftpboot 0x800000 uImage && sf erase 0x300000 0x400000 && sf write 0x800000  0x300000 0x400000 
tftpboot 0x800000 zynq-zed.dtb && sf erase 0x700000 0x20000 && sf write 0x800000  0x700000 0x20000
tftpboot 0x800000 uramdisk.image.gz && sf erase 0x720000 0x2e0000 && sf write 0x800000 0x720000 0x2e0000
tftpboot 0x800000 design.bin && sf erase 0xA00000 0x400000 && sf write 0x800000 0xA00000 0x400000 

6、燒寫成功後從spi啟動,可以在dev下看到mtdblock0-5,也可以通過cat /proc/mtd檢視

zynq> cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00100000 00010000 "qspi-fsbl-uboot"
mtd1: 00400000 00010000 "qspi-linux"
mtd2: 00020000 00010000 "qspi-device-tree"
mtd3: 002e0000 00010000 "qspi-rootfs"
mtd4: 00400000 00010000 "qspi-bitstream"
mtd5: 00100000 00010000 "app"

7、可以看到6中有一個app分割槽,這個是我用來存放應用程式。當然以上分割槽大小並不是固定的,可以調節,但是地址範圍一定要匹配,而且分割槽大小也一定要大於此分割槽所存檔案的大小,比如核心大小一定不能超過mtd1分割槽大小,如果超過了,可以裁剪核心,要不就得增加分割槽大小。

相關推薦

zynq QSPI啟動配置分割槽配置

1、需要準備的檔案uImage,devicetree,BOOT.BIN(包含了fsbl以及uboot),uramdisk.image.gz,FPGA程式design.bin(注意不是bit) 2、其中裝置樹中進行的更改為在zynq-zed.dts中新增如下節點,其中comp

SpringBoot + mybatis預設配置手動配置步驟對比一(預設配置

前提環境已經搭建完成 Eclipse + SpringBoot + mybatis預設配置: 1.建立工程 File->new->other->Spring Boot -> Spring Starter Project ->選擇jdk等資訊

ImageLoader圖片快取之簡單配置詳細配置

ImageLoader依賴 implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 1.簡單配置 public class App extends Applicati

Zookeeper學習筆記十二之 網路配置叢集配置

網路配置 這些配置引數可以限制伺服器和客戶端之間的通訊 zookeeper.globalOutstandingLimit: ZooKeeper中待處理請求的最大值,ZooKeeper客戶端提交請求比ZooKeeper伺服器處理請求要快很多,服務端將會對接收到的請求佇列化

php-fpm使用sock配置nginx配置sock連線

大部分預設的nginx連線方式為php-fpm監聽127.0.0.1:9000的方式,其實php-fpm還有一種socket連線配置,相比預設的速度更好(基於記憶體載入) location ~ .*\.(php|php5)?$ { fastcgi_pass unix:/dev/shm/php-fpm.s

spring事務 xml配置註解配置 順序

最近在開發中遇到一些問題,在配置xml事務後,又在具體service方法中配置註解,結果註解並不執行。 按我原來的理解是配置xml的目的是為了具體程式碼的簡潔,和大體的統一。而具體的方法如果有特殊的要求,應該執行配置註解。 但是我的理解並不太對。於是我做了一

Go語言之高級篇beego框架之參數配置路由配置

路由配置 解析 sql false 展示 func control prot hello 一、參數配置 beego默認會解析當前應用下的conf/app.conf文件 1.1、beego的參數配置 appname = WEB httpport = 8080 r

zynq QSPI啟動速度優化

   發現zynq從QSPI啟動時速度很慢。更改uboot的zynq_common.h "qspiboot=echo Copying Linux from QSPI flash to RAM... && " \ "sf probe 0 50000000

Linux下NFS配置tftp配置

1. NFS配置 vi /etc/export 加入所需要共享目錄。例如: /home/liukang/workship 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check) 修改完畢後,執行 #exportfs

Spring的註解配置XML配置之間的比較

註釋配置相對於 XML 配置具有很多的優勢:  它可以充分利用 Java 的反射機制獲取類結構資訊,這些資訊可以有效減少配置的工作。 如:使用 JPA 註釋配置 ORM 對映時,我們就不需要指定 PO 的屬性名、型別等資訊,如果關係表字段和 PO 屬性名、型別都一致,

網狐榮耀版房卡遊戲的添加房間的配置啟動

出現問題 遊戲 處理 出現 模塊 榮耀 啟動 組件 開啟 網狐榮耀版房卡遊戲的添加也是有一定的流程和註意事項的,如果有沒處理好的地方,將造成遊戲的不啟動,退出,閃退,進不了遊戲,卡頓,沒有房卡房間等一系列問題。 一、確保遊戲模塊為真正的房卡版的,有很多網友找我,說沒有房卡房

postgresql在linux下的的開機自啟動服務環境變量的配置

gpo 屬性 腳本 命令 strong 修改 post 方式 ebo 設置PostgreSQL開機自啟動 PostgreSQL的開機自啟動腳本位於PostgreSQL源碼目錄的contrib/start-scripts路徑下 linux文件即為linux系統上的啟動腳本

gunicorn 訪問日誌配置項目啟動

com iso base gunicorn conn ESS aps pre .py gunicorn_config.py 文件的使用案例 # coding=utf-8 import sys import os import multiprocessing path_

Tomcat安裝環境配置啟動

str strong tex 電腦 jdk環境配置 href 計算機 bsp 提示符 1. Jdk下載 1)下載連接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 然後傻瓜安裝

Libgdx Developer's Guide(Libgdx開發者手冊)-6(啟動配置

對於每個平臺,必須寫一個啟動類。該類例項化一個特定後臺的Application實現和實現了應用邏輯的ApplicationListener。該啟動類依賴於平臺,讓我們看看怎樣為每個後臺例項化和配置一個啟動類。 該篇假定你已經完成了Project Setup中的說明並將生成的核心,桌面,Andr

Spring Boot 使用外接的 Servlet 容器 -- 專案打War包和外部Tomcat配置專案啟動

嵌入式 & 外接 Servlet 容器的優缺點; 嵌入式 Servlet 容器: 優點:簡單,便攜; 缺點:預設不支援 JSP、優化定製複雜(使用定製器【ServerProperties,自定義定製器EmbeddedServletContainerCus

mysql免安裝版服務的配置啟動

對於免安裝版的mysql,mysql服務需要配置並啟動 1.首先,下載zip格式的mysql後,將其解壓到某一個盤下,如D盤下 2.解壓後,一般在解壓後的資料夾中有my-default.ini檔案,沒有my.ini檔案 3.新建一個my.ini檔案,內容可如下, =====

專案打War包和外部Tomcat配置專案啟動原理

SpringBoot應用預設以Jar包方式並且使用內建Servlet容器(預設Tomcat),該種方式雖然簡單但是預設不支援JSP並且優化容器比較複雜。故而我們可以使用習慣的外接Tomcat方式並將專案打War包。 【1】建立專案並打War包 ① 同樣使

MYSQL配置啟動(一)

啟動服務 net start mysql (windows) 關閉服務 net stop mysql (windows) 配置檔案my.ini [client]

Docker 啟動單個Redis節點設定配置檔案

記錄下Docker啟動Redis和設定配置檔案的過程 docker命令 docker run -d -p 6379:6379 -v $('pwd')/redis.conf:$('pwd')/redis.conf -v /root/Desktop/RedisData:/Data --n