zynq bootgen配置启动

2023-05-16

一,Zynq-7000 SoC 启动头文件 

0x00-0x1F

Arm® 矢量表

由 Bootgen 使用虚拟矢量表填充(Arm 操作代码 0xEAFFFFFE,即用于捕获未初始化矢量的 branch-to-self 无限循环)。

0x20

宽度检测字

此项是识别单堆栈模式、双堆栈模式或双并行模式下的 QSPI 闪存所必需的。0xAA995566(小字节序格式)。

0x24

头文件签名

包含 4 个字节的“X”、“N”、“L”、“X”(按字节顺序),按小字节序格式为 0x584c4e58

0x28

密钥源

器件中加密密钥的位置:

  • 0x3A5C3C5A:BBRAM 中的加密密钥。
  • 0xA5C3C5A3:eFUSE 中的加密密钥。
  • 0x00000000:未加密。

0x2C

头文件版本

0x01010000

0x30

源偏移

此镜像文件中 FSBL(启动加载程序)的位置。

0x34

FSBL 镜像长度

解密后 FSBL 的长度。

0x38

FSBL 加载地址 (RAM)

FSBL 要复制到的目标 RAM 地址。

0x3C

FSBL 执行地址 (RAM)

FSBL 执行的入口矢量。

0x40

FSBL 总长

加密后 FSBL 的总大小,包括身份验证证书(如有)和填充。

0x44

QSPI 配置字

硬编码为 0x00000001

0x48

启动头文件校验和

从偏移 0x20 到 0x44(含)的字数总和。这些字假定按小字节序。

0x4c-0x97

用户定义的字段

76 个字节

0x98

镜像头文件表偏移

指向镜像头文件表的指针

0x9C

分区头文件表偏移

指向分区头文件表的指针

二,Zynq-7000 SoC 寄存器初始化表

Bootgen 中的“寄存器初始化表”采用 256 个地址/值对格式,用于为 MIO 多路复用器和闪存时钟初始化 PS 寄存器。

地址偏移

参数

描述

0xA0 到 0x89C

寄存器初始化对:<address>:<value>:

Address = 0xFFFFFFFF 表示跳过该寄存器并忽略该值。

所有未使用的寄存器字段都必须设置为 

Address=0xFFFFFFFF 和 value = 0x0

三,Zynq-7000 SoC 镜像头文件表

Bootgen 通过从 ELF 文件、比特流、数据文件等中提取数据来创建启动镜像。从中提取数据的这些文件被称为镜像。每个镜像都包含一个或多个分区。“镜像头文件 (Image Header)”表采用包含所有镜像公用的信息以及如下信息的结构:镜像数量、启动镜像中存在的分区数量以及指向其它头文件表的指针。下表提供了 Zynq®-7000 SoC 器件的地址偏移、参数和描述。

Zynq-7000 SoC 镜像头文件表

地址偏移

参数

描述

0x00

Version

0x01010000:仅包含以下可用字段:0x00x40x80xC 和填充

0x01020000:0x10 字段为添加的字段。

0x04

镜像头文件计数

表示镜像头文件的数量。

0x08

首个分区头文件偏移

指向首个分区头文件的指针。(字偏移)

0x0C

首个镜像头文件偏移

指向首个镜像头文件的指针。(字偏移)

0x10

头文件身份验证证书偏移

指向身份验证证书头文件的指针。(字偏移)

0x14

保留

默认为 0xFFFFFFFF

Zynq-7000 SoC 镜像头文件

“镜像头文件 (Image Header)”为阵列结构,其中包含每个镜像的相关信息,例如,ELF 文件、比特流、数据文件等。每个镜像都可具有多个分区,例如,每个 ELF 均可包含多个可加载节,每个节均构成启动镜像中的一个分区。该表还包含镜像相关分区数量的信息。下表提供了 Zynq-7000 SoC 器件的地址偏移、参数和描述。

Zynq-7000 SoC 镜像头文件

地址偏移

参数

描述

0x00

下一个镜像头文件。

链接到下一个镜像头文件。如果当前镜像头文件为

最后一个镜像头文件,则为 0(字偏移)。

0x04

对应的分区头文件。

链接到首个关联的分区头文件(字偏移)。

0x08

保留

始终为 0。

0x0C

分区计数长度

与此镜像关联的分区数量。

0x10

到 N

镜像名称

以大字节序打包。为对该字符串进行重构,请每次解包 4 个字节、

反转顺序然后串联。例如,字符串“FSBL10.ELF”打包为

 0x10: ‘L’,’B’,’S’,’F’, 0x14: ’E’,’.’,’0’,’1’, 0x18: ’\0’,’\0’,’F’,’L’

打包的镜像名称为 4 个字节的倍数。

字符串终止符

0x00000000

N+4

保留

默认为 0xFFFFFFFF,边界为 64 个字节。

四,Zynq-7000 SoC 分区头文件

“分区头文件 (Partition Header)”为阵列结构,其中包含每个分区的相关信息。每个分区头文件表均由启动加载程序进行解析。该表中将包含分区大小、闪存中的地址、RAM 中的加载地址、已加密/已签名等信息。针对每个分区(包含 FSBL)均存在一个此类结构。表中最后一个结构将全部标记 NULL 值(校验和除外)。下表显示了有关 Zynq-7000 SoC 分区头文件的偏移、名称和注释。

Zynq-7000 SoC 分区头文件

偏移

名称

注释

0x00

已加密的分区长度

已加密的分区数据长度。

0x04

未加密的分区长度

未加密的数据长度。

0x08

分区总字长(包括身份验证证书)

分区总字长由已加密的信息长度(含填充)、扩展长度和身份验证长度组成。

0x0C

目标加载地址。

此分区要加载到的 RAM 地址。

0x10

目标执行地址。

此分区执行时的入口点。

0x14

镜像中的数据字偏移

与启动镜像开始位置相关的分区数据的位置

0x18

属性位数

请参阅 Zynq-7000 SoC 分区属性位

0x1C

节数

单一分区内的节数。

0x20

校验和字偏移

启动镜像中对应校验和字的位置。

0x24

镜像头文件字偏移

启动镜像中对应镜像头文件的位置。

0x28

身份验证证书字偏移

启动镜像中对应身份验证证书的位置。

0x2C-0x38

保留

保留

0x3C

头文件校验和

“分区头文件”中的先前字数总和。

五,Bootgen GUI 选项

Vitis GUI 中的Create Boot Image Wizard 可提供有限数量的 Bootgen 选项以生成启动镜像。

要使用 GUI 创建启动镜像,请执行以下操作:

1,在Project NavigatorC/C++ Projects视图中选择应用工程,然后右键单击Create Boot Image。或者,单击Xilinx Create Boot Image

这样会打开Create Boot Image对话框,其中包含从所选 C 语言工程上下文中预选的默认值。注意:

(1)针对应用首次运行Create Boot Image时,在此对话框中将预填充 FSBL ELF 文件路径、所选硬件的比特流(如果在硬件工程中存在此比特流)以及所选应用 ELF 文件。

(2)如果先前为此应用运行了启动镜像,并且存在 BIF 文件,那么在此页面中将预填充来自 /bif 文件夹的值。

2,在Create Boot Image对话框中填充以下信息:

(1)从Architecture下拉菜单中选择所需的架构。

(2)选择Create a BIF fileImport an existing BIF file

(3)从Basic选项卡中,指定Output BIF file path

(4)如果适用,请指定 UDF data:请参阅 udf_data 以获取有关该选项的更多信息。

(5)指定 Output path

3,在Boot image partitions中,单击Add按钮以添加其它分区镜像。

4,为启动镜像中的分区创建偏移值、对齐值和分配值(如适用)。

默认情况下,输出文件路径设置为所选应用工程下的 /bif 文件夹。

5,从Security选项卡中,可指定用于创建安全镜像的属性。此安全选项可根据需要应用于各分区。

6,要为分区启用身份验证,请选中Use Authentication选项,然后指定 PPK、SPK、PSK 和 SSK 值。如需了解更多信息,请参阅 使用身份验证 主题。

1要为分区启用加密,请选择Encryption视图,然后选中Use Encryption选项。如需了解更多信息,请参阅 使用加密

2逐一为每个分区创建或导入 BIF 文件启动镜像,从启动加载程序开始。分区列表可显示 BIF 文件中的分区摘要信息。其中可显示文件路径、加密设置和身份验证设置。此区域可用于对分区进行添加、删除、修改和重新排序。您还可为启用加密、身份验证和校验和设置值,并指定其它分区相关的值,如,LoadAlignmentOffset

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zynq bootgen配置启动 的相关文章

  • 听说Zynq-手把手教你自定义ip核并调用

    概述 小编最近在研究Zynq 因为对其相对陌生 在探索过程中也遇到了不少坑 这里将如何创建IP核并调用的方法步骤总结记录 以免日后忘记 注意 环境 Vivado2018 2 开发板 digilent 迪芝伦 公司的ZYBO 创建IP核 创建
  • ZYNQ移植vxworks系统

    版本 xff1a ZYNQ7010 xff0c VxWorks 6 9 ZYNQ PL端有灵活性好 xff0c 资源丰富 xff0c 可反复编程速度快的优势 xff0c 通过 PS的外设并行 AXI总线外挂 PL接口 xff0c 使用 FP
  • S03_CH13_ZYNQ A9 TCP UART双核AMP例程

    S03 CH13 ZYNQ A9 TCP UART双核AMP例程 13 1概述 ZYNQ中存在两个独立的ARM核 xff0c 在很多应用场景中往往只需使用其中的1个核心即可 然而 xff0c 对于复杂的设计 xff0c 例如多任务 xff0
  • Xilinx ZYNQ 7000 HDMI

    High Definition Multimedia Interface HDMI 参考xilinx application note XAPP460 HDMI来自High Definition Multimedia Interface 高
  • D435i和T265配置启动

    安装realsense sdk和realsense的ros包 1 https blog csdn net qq 42800654 article details 109393646 2 https github com IntelRealS
  • zynq bootgen配置启动

    一 xff0c Zynq 7000 SoC 启动头文件 0x00 0x1F Arm 矢量表 由 Bootgen 使用虚拟矢量表填充 xff08 Arm 操作代码 0xEAFFFFFE xff0c 即用于捕获未初始化矢量的 branch to
  • xilinx zynq-7000 linux下rs422串口通信测试步骤

    这几天使用xilinx的zynq 7000系列调试rs422串口 xff0c 期间遇到不少问题 xff0c 好在最终调试完成 xff0c 在这里记录一下调试步骤 我用的soc型号是xc7z100 xff0c 板载了2个rs422外设 xff
  • ZCU102 Zynq MPSoC IP设置与说明

    目录 1 前言2 设置与说明2 1 PS UltraScale 43 Block Design2 2 I O Configuration2 2 1 Bank0 3电压 xff1a 2 2 2 Low SpeedQSPISD卡CANI2CPM
  • Zynq实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

    目录 1 前言2 我已有的SDI编解码方案3 我已有的PCIE方案4 基于zynq架构的PCIE5 总体设计思路和方案SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像缓存PCIE发送通路SDI同步输出通
  • 基于Xilinx ZYNQ和7 Serises FPGA的MIPI DPHY 接口实现分享

    作者 Hello Panda 这次分享一个在Xilinx FPGA实现MIPI DPHY接口的案例 包括CIS协议层 截止目前为止 Xilinx仅在Ultrascale 及其以上版本的FPGA IO可直接支持MIPI 电平输入 其他的 都需
  • 解决Xilinx Vitis 2020.1版本启动之后进入主页面无响应的结果

    一 问题描述 在启动 Xilinx Vitis 2021 1 时 无论是从 Xilinx Vivado 界面的 Launch Vitis 启动还是直接启动都会在启动后显示出主界面后未响应 其原因是 Windows 系统的 PATH 环境变量
  • PHY芯片的使用(三)在linux下网络PHY的移植

    1 前言 配置设备树请参考上一章 此次说明还是以裕太的YT8511芯片为例 2 需要配置的文件及路径 a 在 drivers net phy 目录下添加 yt phy c 文件 一般来说该驱动文件由厂家提供 b 修改 drivers net
  • 超过飞飞系列-ZYNQ之FPGA学习2.1Verilog语法

    一 VHDL Verilog C语言区别 VHDL 硬件描述语言 美军开发 相对难 不直观 需要专业培训 欧洲发展较好 Verilog 硬件描述语言 设计群体广泛 资源成熟 中国多采用 并行处理运行 C 软件语言 经过C的单片机程序需取码
  • 如何添加PYNQ-Z2板文件到Vivado

    添加板文件到vivado 先下载pynq z2板文件 PYNQZ2板文件 含约束文件 原理图 zip 下载后将文件复制到 Vivado安装目录 2018 3 data boards board files 重启vivado 完成
  • ZYNQ学习之路(三):自定义IP实现PL处理PS写入BRAM的数据

    目录 一 实验简介 二 vivado部分处理 三 SDK编程 四 实验测试 五 总结 一 实验简介 ZYNQ系列嵌入式FPGA可以使PS将数据写入PL部分BRAM PL可以将数据读取后再重新写入BRAM PS将数据读出后再传走 这样可以使P
  • VIVADO软件错误及解决办法汇总

    在VIVADO软件编写程序时会遇到很多类型的错误 写个博客记录下来防止再犯 短期可能只有几个问题 会长期保持更新 遇到问题就记录 2022 4 09 问题1 The debug port u ila 0 probe4 has 1 uncon
  • ZYNQ PL开发流程

    2 ZYNQ PL开发 开发流程 开发使用vivado 流程如下 1 新建工程 工程项目含义 这里简单介绍下各个工程类型的含义 RTL Project 是指按照正常设计流程所选择的类型 这也是常用的一种类型 RTL Project 下的 D
  • ZYNQ FreeRTOS使用双网口笔记与爬坑

    正点原子领航者7020的开发板上有两个网口 想着用起来 上面一个是PS网口 一个是外挂在PL网口 使用vitis版本为2019 2 PL网口通过emio挂载在网络控制器1上 PS网口挂载在网络控制器0上 配置串口0 踩坑1 在vivado里
  • Ubuntu16.04主机安装基于ZYNQ的QT交叉编译库

    Ubuntu16 04主机尝试安装基于ZYNQ的QT交叉编译库 前言 基于vivado2016 4 SDK的交叉编译环境 主机Linux上安装vivado2016 4版本 qtcreator上添加基于ZYNQ的交叉编译工具 基本环境 参考资
  • ZYNQ 库函数学习之SPI

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为PCB的布局上节省空间 提供方便 正是出于这种简单易用的特性

随机推荐

  • 树莓派串口连接ESP8266

    陈拓 chentuo 64 ms xab ac cn 2020 03 12 2020 03 12 1 概述 ESP8266是物联网行业广泛使用的WiFi模块 xff0c 小巧 功能强大 xff0c 而且价格低廉 通常用电脑进行ESP8266
  • Linux 创建TCP连接流程

    文章目录 Linux创建TCP的步骤服务端客户端TCP建立流程示例代码 Linux创建TCP的步骤 TCP编程需要客户端和服务器两套编码 xff0c 其创建TCP的流程也是不完全一致的 服务端 使用socket函数创建一个套接字使用sets
  • 结构体类型完全归纳

    结构体类型 目录 基本概述 一 结构体类型变量的定义方法及其初始化 1 定义结构体类型变量的方法 2 结构体变量的初始化 二 结构体变量的引用 三 结构体数组 1 定义结构体数组 2 结构体数组应用举例 四 指向结构体变量的指针 1 类型一
  • Ubuntu20.04LTS下安装Intel Realsense D435i驱动与ROS包

    文章目录 目标一 D435i简介二 环境配置三 RealSense的SDK2 0安装四 ROS包安装五 摄像机CV的ROS包节点 六 问题排查 目标 在Ubuntu20 04LTS系统下安装D435i的驱动SDK2和ROS包 xff0c 实
  • C# 调用NationalInstruments的dll报错问题 未能加载文件或程序集

    C 调用NationalInstruments的dll报错问题 问题原因 xff1a dll版本不匹配导致的 xff0c 需要做如下操作解决问题 未能加载文件或程序集 NationalInstruments Common Version 6
  • 需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌

    需要授权的 API xff0c 必须在请求头中使用 添加字段 需要授权的 API xff0c 必须在请求头中使用 Authorization 字段提供 token 令牌 实现方法 通过 axios 请求拦截器添加 token xff0c 保
  • 关于HTTP解析的一点思考

    原文 似乎已经很久没有提到关于服务器的消息了 xff0c 其实我一直都在写 xff0c 只是有时事情比较多 xff0c 会耽搁一点时间 在使用C重写前 xff0c 我就已经用Dlang实现了近2个版本的HTTP解析器 xff0c 换成C之后
  • Paparazzi UAV Lisa/M2飞控使用说明书

    第一部分 地面站 Paparazzi xff08 简称PPZ xff09 UAV项目起始于2003年 xff0c 由法国民航大学发起的一套软硬件开源无人机项目 xff0c 它提供了一整套完整的无人机软硬件解决方案 PPZ 地面站软件运行在L
  • Anaconda3-2020.02-Windows-x86_64安装及使用步骤

    Conda是一个开源的包 环境管理器 xff0c 可以用于在同一个机器上安装不同版本的软件包及其依赖 xff0c 并能够在不同的环境之间切换 Anaconda包括Conda Python以及一大堆安装好的工具包 xff0c 比如 xff1a
  • vivado 2017.4安装步骤

    目录 xff1a windows安装vivado2017 4 xff1b 虚拟机ubuntu安装vivado 2017 4 xff1b ios安装vivado 一 xff0c windows安装vivado2017 4 xilinx官网下载
  • LINUX C语言TCP客户端和服务器传输结构体数据

    1 xff0c TCP服务器流程 服务器 xff1a 1 创建socket xff0c 使用socket函数 2 准备通信地址 xff0c 使用结构体类型 3 绑定socket和通信地址 xff0c 使用bind函数 4 进行通信 xff0
  • FDC系列电容传感器及FDC2214使用要点

    陈拓 2021 02 21 2021 02 21 1 概述 电容式传感是一种低功耗 低成本且高分辨率的非接触式感测技术 xff0c 适用于从接近检测 手势识别到远程液位感测的各项应用 电容式传感系统中的传感器可以采用任意金属或导体 xff0
  • 卫星数据高动态捕获

    一 xff0c 高动态导航接收终端的现状 早期的扩频通信系统由于受到集成电路水平的限制 xff0c 多采用串行搜索技术 由于串行捕获速度慢 xff0c 耗时长不能满足高动态等环境对速度的要求 xff0c 随着数字信号处理等技术的发展 xff
  • 基于ZYNQ平台的powerlink接口平台搭建

    1 xff0c 搭建powerlink接口所需硬件平台 xff1a Zynq ZC702 board used as openPOWERLINK MN AVNET expander board AES FMC ISMNET G Linux
  • 雷达测距测速测角基本原理

    由雷达发射机产生的电磁波经收发开关后传输给天线 xff0c 由天线将此电磁波定向辐射于大气中 电磁波在大气中以近光速传播 xff0c 如目标恰好位于定向天线的波束内 xff0c 则它将要截取一部分电磁波 目标将被截取的电磁波向各方向散射 x
  • 信号处理之脉冲压缩

    一 xff0c 脉冲压缩的背景 随着飞行技术的飞速发展 xff0c 对雷达的作用距离 分辨能力 测量精度和单值性等性能指标提出越来越高的要求 测距精度和距离分辨力对信号形式的要求是一致的 xff0c 主要取决于信号的频率结构 xff0c 为
  • MTI动目标指示和MTD动目标检测

    MTI 是一种频域滤波器 radar主席的ppt 中说到 xff0c 它是对多组脉冲回波的同一个距离单元加权求和 xff0c 得到一个结果 xff1b 也就是多个输入一个输出 xff1b 相当于一个高通滤波器 xff0c 用来抑制固定目标和
  • 复旦微开发过程中遇到的问题总结(二)

    一 xff0c 将bin文件放到flash中0地址处能识别并且启动吗 xff1f xlinx的放在0地址处可以识别启动 xff0c 我尝试复旦微这个没反应 要用procise生成 xff0c 第一个必须是FSBL out 只能是procis
  • 用链表实现fifo功能缓存和拼接数据功能

    fifo h ifndef LIST QUEUE H define LIST QUEUE H include lt stdio h gt include lt stdlib h gt include 34 xil types h 34 in
  • zynq bootgen配置启动

    一 xff0c Zynq 7000 SoC 启动头文件 0x00 0x1F Arm 矢量表 由 Bootgen 使用虚拟矢量表填充 xff08 Arm 操作代码 0xEAFFFFFE xff0c 即用于捕获未初始化矢量的 branch to