1. 程式人生 > >zynq u-boot編譯

zynq u-boot編譯

1.BOOT.bin介紹

映像檔案BOOT.BIN一般包括:FSBL,Bitstream和SSBL這三個檔案,其中Bitstream是配置PL端程式,是可選項,在製作Linaro系統的時候並不需要。FSBL是first stage boot loader,檔案的製作需要使用Vivado環境;SSBL是Second Stage Boot Loader,這裡使用的是Xilinx公司提供的u-boot。

2.生成FSBL

參考《ZYNQ平臺學習–(2)生成FSBL》,生成FSBL的ELF檔案。

3.生成u-boot

u-boot採用的是xilinx官方提供的u-boot包來生成的。
先設定好Linux的開發環境,然後進入命令列模式。操作步驟如下所示。
1. 獲取u-boot包
$ git clone git://git.xilinx.com/u-boot-xlnx.git


2. 根據使用的開發工具的版本,選擇對應的分支,例如在本專案中使用的Vivado 2015.4,故選擇u-boot的相應版本。
$ cd u-boot-xlnx
$ git checkout xilinx-v2015.4
3. 編輯配置檔案
對單板u-boot的配置主要通過配置標頭檔案來完成,比如xilinx提供的u-boot裡,如果要對zedboard配置,可以使用zynq_zed.h這個標頭檔案。配置指令如下:
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_zed_config

在實際使用,需要針對自己的板卡和應用進行一些修改。例如,板卡的名稱為zynq_seb。進入u-boot-xlnx/configs資料夾,將zynq_zed_defconfig檔案複製一份,並重新命名為zynq_seb_defconfig,該檔案用於配置板卡的功能。然後修改該檔案的內容,如下所示:

CONFIG_ARM=y
CONFIG_ARCH_ZYNQ=y
CONFIG_TARGET_ZYNQ_SEB=y
CONFIG_DEFAULT_DEVICE_TREE="zynq-seb"
# CONFIG_SYS_MALLOC_F is not set
CONFIG_SPL=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_FIT_SIGNATURE=y
# CONFIG_CMD_IMLS is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_OF_EMBED=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_BAR=y

主要是修改板卡名稱,其他的部分基本參照xilinx的zed。

進入u-boot-xlnx/include/configs,將zynq_common.h複製一份,修改名稱為zynq_seb.h。然後修改啟動方式。修改的內容如下:

#define CONFIG_EXTRA_ENV_SETTINGS   \
    "ethaddr=00:0a:35:00:01:22\0"   \
    "kernel_image=uImage\0" \
    "kernel_load_address=0x2080000\0" \
    "devicetree_image=devicetree.dtb\0" \
    "devicetree_load_address=0x2000000\0"   \
    "bitstream_image=fpga.bit\0"    \
    "fdt_high=0x20000000\0" \
    "initrd_high=0x20000000\0"  \
    "sdboot= mmcinfo && " \
            "echo - load ${bitstream_image} to PL... && " \
            "fatload mmc 0 0x200000 ${bitstream_image} && " \
            "fpga loadb 0 0x200000 ${filesize} && " \
            "echo - Copying Linux from SD to RAM... && " \
            "fatload mmc 0 ${kernel_load_address} ${kernel_image} && " \
            "fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && " \
            "setenv bootargs console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait &&" \
            "bootm ${kernel_load_address} - ${devicetree_load_address}  \0" \

進入u-boot-xlnx/arch/arm/dts,將zynq-zed.dts複製一份,重新命名為zynq-seb.dts,在這裡直接借用ZED的裝置樹檔案,然後在u-boot-xlnx/arch/arm/dts/Makefile中增加該裝置樹檔案。
4. 修改u-boot-xlnx/arch/arm/mach-zynq/Kconfig檔案,增加如下內容:
config TARGET ZYNQ_SEB
bool "Zynq SeBoard"
default "zynq_seb" if TARGET_ZYNQ_SEB
5. 編譯,使用如下指令:
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_seb_config
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
6. 將生產u-boot檔案改名為u-boot.elf。

4.合成BOOT.bin

開啟SDK軟體,進入工程。開啟Xilinx Tools-Create Boot Image。如圖1所示。

圖1 生成BOOT

首先新增上一節中生成的FSBL檔案,然後新增u-boot.elf。然後點選Create Image。生產BOOT.bin。

該檔案可以用來啟動ZYNQ。

相關推薦

zynq u-boot編譯

1.BOOT.bin介紹 映像檔案BOOT.BIN一般包括:FSBL,Bitstream和SSBL這三個檔案,其中Bitstream是配置PL端程式,是可選項,在製作Linaro系統的時候並不需要。FSBL是first stage boot loader,檔案的製作需要

RK-3399 U-boot編譯構建

介紹 RK3399我們可能在U-Boot中使用的主要功能: CPU:ARMv8 64位Big-Little架構, *大:雙核Cortex-A72 Little:四核Cortex-A53 IRAM:200KB DRAM:4GB-128MB雙通道 eMMC:支援e

ZYNQ U-BOOT 鑑權和解密方法(authentication和decryption)

轉至:https://blog.csdn.net/cph77777/article/details/79708982  ZYNQ U-BOOT 鑑權和解密方法 [email protected] 技術交流QQ群:691976956 ZYNQ 支援最新

u-boot編譯與燒錄

手上屯了好久的友善tiny210開發板和迅為4412開發板,一直沒怎麼用,因為課題需要用到嵌入式,需要自己編寫一些簡單的驅動和應用,於是又拿起了這兩塊板子。 從最基礎的u-boot開始吧,首先就是uboot的燒錄,看了兩個板子的手冊都是不一樣的。4412的板子通過超級終端進

TI davinci u-boot 編譯方法

1,下載最新的 u-boot for davinci 2,下載 ARM 交叉編譯工具(請下載 linux 版本,因為 u-boot 只能在 linux 環境下編譯) TI 推薦的是: CodeSourcery GNU Toolchain for ARM Processo

U-boot 編譯找不到 arm-none-linux

更改 Makefile 的arm 工具鏈路徑 if     arm  CORSS_COMPILE = /usr/local/arm_2007q1/bin/arm-none-linux-gnueabi-    ( 自己的工具鏈路徑) endif

修改u-boot編譯選項以便支援使用arm-linux-gnueabihf-編譯器編譯(soft-float & VFP hard)

        預設的u-boot編譯時使用的soft float api,而arm-linux-eabihf-預設使用的float預設是hard,使用arm-linux-gnueabihf-gcc -v可以找到選項--with-float=hard,而檢視arch/arm

全志H3 u-boot 編譯(一)

因為工作需要,最近開始折騰全志方案。手上的開發板式FriendlyARM的nanopi-M1-plus,友善之臂的板子做的還是可以滴,板子尺寸非常小,該有的介面都有,以後擴充套件的介面也基本預留出來了。 言歸正傳,這個板子的相關使用說明都需要從Wiki上查詢,Wiki上

ubuntu上u-boot編譯

復制 span ubuntu虛擬機 str 可執行文件 linu 編譯 解壓 自定義 1,下載u-boot 2,將Windows中的u-boot復制到ubuntu虛擬機中自定義目錄並解壓 3,進入該目錄cd 4,安裝dtc:sudo apt-get install devi

u-boot的啟動、編譯過程和命令添加

U-BOOTu-boot的啟動、編譯過程和命令添加MCU:s5pv210開發板:unsp210u-boot:1.3.4一、簡介U-Boot是一種支持多架構,多操作系統的Bootloader(啟動引導程序)u-boot目前最新版本是:http://ftp.denx.de/pub/u-boot/二、啟動過程嵌入式

u-boot.2012.10——mini2440(一、編譯測試)

圖片 doc bootp 服務器 存儲 分享 .com AS boa 參考資料:http://www.360doc.com/content/15/1107/16/6828497_511455732.shtml 1 、vi boards.cfg發現u-2012.10已經支持了

CCS編譯U-boot

51cto 如果 ges 修改 mark 源碼包 裝包 exist 安裝 CPU選用TI出的am335x,為方便調試采用CCS編譯U-boot。準備Uboot源碼包,交叉工具鏈,CCS安裝包。1.打開CCS,選擇File->new project,選擇“Makefil

uboot編譯突然出現has EABI version 5 but target u-boot has EABI ve

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

U-boot 配置與編譯

首先選擇預設配置: [email protected]:~/share/build/u-boot-2018.11$ make vexpress_ca15_tc2_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfi

編譯myzr的u-boot

source /my-imx6/03_tools/myimx6_31452_build_env 用echo $ARCH echo $GCC_PATH echo $CROSS_COMPILE 命令可以檢視配置是否生效 make distclean make myimx6ek200-6u_

U-boot移植之配置及編譯詳解 1

1.Uboot 的配置過程主要涉及四個檔案:   uboot/makefile   uboot/mkconfig  uboot/config.mk  uboot/board/samsung/smdkc110/u-boot.lds   2

u-boot打補丁以及編譯

u-boot 打補丁以及編譯 2018-11-18 u-boot-1.1.6.tar.bz2 是未經修改的原始碼, u-boot-1.1.6_jz2440.patch 是補丁檔案。對程式碼 的修改可以從補丁檔案中看出來。 執行以下操作即可編譯出 u-boot.b

U-boot配置及編譯階段流程巨集觀分析

原文地址:http://blog.csdn.net/qq_28992301/article/details/51814239 U-boot配置及編譯階段流程巨集觀分析 通過配置和編譯,我們才能從U-boot的原始碼得到可執行的程式。  本文以x210這塊板子(基於s

Zynq-Linux移植學習筆記之十-u-boot網路配置

在zynq開發板zc706上,網路通路由下面三個裝置組成: 其中zynq負責對phy進行配置,當zynq上的網路控制器以及phy完成正確配置時,能夠看到RJ45上面的黃燈亮,此時表明鏈路已經通了。如果u-boot中已經設定了IP地址,通過網線就可以ping通

編譯U-boot和Linux核心的步驟和詳解

1、準備材料 linux核心和uboot的原始碼包—- 6818GEC.tar.gz 環境:VMware12.0 Ubuntu16.04(64位) (1)先將 6818GEC.tar.gz 放在Ubuntu的共享目錄下,然後將 68