Versal 自适应 SoC SelectMAP 启动检查表

2023-11-12 00:04

本文主要是介绍Versal 自适应 SoC SelectMAP 启动检查表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Versal 自适应 SoC SelectMAP 启动检查表

本文档提供了有关 SelectMAP 启动设置的技巧和指南。在提交个案服务请求之前,应认真查看以下检查表。

SelectMAP 启动模式的常规检查表:
 

  1. 是否已查看 SelectMAP 文档,了解连接和电源轨的用法?
    • 请参阅相应的 Versal DC AC 数据手册,了解电源轨和 SelectMAP 接口规格,并确保满足这些规格
    • 请参阅 Xilinx Power Estimator (XPE) 或电源设计管理器 (PDM) 电源轨排序(Xilinx Power Estimator (XPE) 电源设计管理器 (PDM))指南,并确保遵循这些指南
    • 请参阅《Versal PCB 用户指南》(UG863) 的电源轨、专用管脚和 SelectMAP 章节,了解有关开发板初始化的信号连接指南 (https://docs.xilinx.com/r/zh_CN/ug863-versal-pcb-design)
    • 请查看 XTP546 Versal 板级原理图检查表,了解 SelectMAP 和电源轨
      • amd - Sign In
    • 请查看 AM011 SelectMAP 接口信息和 MIO 信号的使用方式 简介 • Versal 自适应 SoC 技术参考手册 (AM011) • 阅读器 • 文档门户 (xilinx.com)
    • 请查看 UG1304 https://docs.xilinx.com/r/zh_CN/ug1304-versal-acap-ssdg 以获取常规启动流程参考资料
    • 请查看《MIO 封装用户指南》,了解特定封装管脚的使用方式 https://docs.xilinx.com/r/zh_CN/am013-versal-pkg-pinout
  2. 通过上电释放 POR_B 之前,REF_CLK 是否稳定且正在运行?
    • 注:对于 SSIT 器件,需要连接 2 REF_CLK 专用管脚。
  3. Versal 自适应 SoC 启动模式管脚是否设置为 SelectMAP MODE[3:0] = 1010
  4. JTAG 的启动模式选项设置是否也可用于开发板初始化/调试?



注:建议在所有开发板上使用 JTAG 启动模式选项。选择 JTAG 启动模式选项可防止在调试期间出现长时间超时(即,如果 SelectMAP 数据接口无法正常工作,则可能需要等待 30 分钟的超时周期,然后才能在不更改模式管脚的情况下尝试加载 JTAG PDI。)
如果无法物理更改启动模式管脚,并且想要在 SelectMAP 启动失败后加载 PDI,请按以下顺序执行操作:
- SelectMAP 启动模式启动
- 等待 30 分钟超时周期
- 运行此 XSCT 脚本,以强制使用 JTAG 启动模式并发出 SRST

versal_change_boot_mode.tcl ==============================

    tar -set -filter {name =~ "Versal *"}

    # Enable ISO

    mwr -force 0xf1120000 0xffbff

    # Switch boot mode

    mwr 0xf1260200 0x0100

    mrd 0xf1260200

    # Set MULTIBOOT address to 0

    mwr -force 0xF1110004 0x0

    # Perform reset

    tar -set -filter {name =~ "PMC"}

    rst

=================================================

- 通过 JTAG 加载 PDI


软件流程 SelectMAP 检查表:

SelectMAP 启动模式生成 PDI 时,请确保已按以下步骤进行核对:

  1. 确认已选择适当的 CIPS 设置以确保 SelectMAP MIO 功能正常
    • “CIPS boot mode”CIPS 启动模式)选项卡中,是否已选中 SelectMAP 启动模式?
    • “CIPS Peripheral IO”CIPS 外设 IO)选项卡中,是否已选中适当的总线宽度(即,SelectMAP x32x8 x16 位总线宽度)?
  2. 确认正确设置了 BIF 文件属性,以确保 SelectMAP PDI 头文件设置正确且功能正常
    • 是否为目标总线宽度正确设置了 BIF 属性?
      • 在运行 Bootgen 以生成 PDI 之前,确认这些设置都正确无误
      • 对于 SelectMAPx32 为默认设置,不需要更改 BIF 文件。
      • 对于 2022.1 或更低版本,使用 SelectMAP x8 x16 时,用户必须在运行 Bootgen 之前手动包含 BIF 属性,如下所示。
      • 注:对于 SSIT 器件,请参阅下一个检查表项目以了解差异
  • 确保该属性包含在 id 之后和 image 的 pmc_subsys 之前。

对于 SelectMAP x8

new_bif:

{

id_code = 0x04d80093

extended_id_code = 0x01

id = 0x2

boot_config{smap_width=8}

image

{

name = pmc_subsys

id = 0x1c000001

Or for Select x16

new_bif:

{

id_code = 0x04d80093

extended_id_code = 0x01

id = 0x2

boot_config{smap_width=16}

image

{

name = pmc_subsys

id = 0x1c000001


注: 2022.2 版中,当用户在“CIPS Peripheral IO”选项卡中选择 SelectMAP x8 x16 时,上述属性将自动写入 BIF 文件中。

  • 是否为 Versal SSIT 器件正确设置了 BIF 属性?
    • 在 Versal SSIT 器件的 BIF 文件中,用户将在 bitstream_master 节中看到目标 smap_width,在从 SLR 节中看到 smap_width=0。
    • smap_width=0 用于表明从 SLR 设置模式,不得修改。如欲了解详细信息,请参阅相应软件版本的 UG1283。
  • 以下是一个 SSIT BIF 文件片段示例,其中 SSIT 器件的从 SLR 已包含 smap_width=0,以表明它们是下游设置。



BIF 文件中有关 SSIT 器件的设置示例

// For generating SLR1 – boot PDI

bitstream_boot_1

{

id_code = 0x04d10093

extended_id_code = 0x01

id = 0xb

// Do NOT change setting shown on SSIT Slave SLRs

boot_config {smap_width=0}

image

{

name = pmc_subsys, id = 0x1c000001

partition { id = 0xb01, type = bootloader, file = gen_files/plm.elf }

partition { id = 0xb0A, type = pmcdata, load = 0xf2000000, file = gen_files/pmc_data_slr_1.cdo }

// For generating final PDI – by combining above generated PDIs.

bitstream_master:

{

id_code = 0x04d10093

extended_id_code = 0x01

id = 0x2

// Add attribute for SelectMAP 8-bit (smap_width=8) and 16-bit (smap_width=16) under the "bitstream_master" section of BIF file

boot_config{smap_width=8)

image

{

name = pmc_subsys, id = 0x1c000001

SelectMAP 写入数据加载顺序示例:
 

  1. 上电(确保电源轨处于稳定状态并根据 Xilinx Power Estimator 或电源设计管理器指南进行排序)
  2. Versal REF_CLK 专用管脚处于稳定状态
  3. 启动模式专用管脚设置为 SelectMAP (MODE[3:0]=1010)
  4. SMAP_RDWR_b=0 表示写入模式
  5. POR_B 已释放
  6. SMAP_CLK 时钟设置处于稳定状态
  7. SMAP_BUSY 在准备好接受数据时将变为低电平
  8. SMAP_CS_b 已由主机设置,用于启动使能器件并在 SMAP_CLK 的上升沿计时
  9. SMAP_IO 主机开始发送 PDI 数据。SMAP_IO SMAP_CLK 的上升沿计时
  10. 在加载 PDI 数据期间,监视 SMAP_BUSY 断言情况
    • SMAP_BUSY=1 断言有效时,确保 SMAP_CS_b 24 SMAP_CLK 周期内断言无效 (SMAP_CS_b=1)
    • SMAP_BUSY=0 断言无效时,断言 SMAP_CS_b=0 有效以继续加载 PDI 数据
  11. 在最后一项 PDI 数据计时后确认以下内容:
    • SMAP_CS_b 已断言无效
    • 在最后一项 PDI 数据之后至少发出 24 SMAP_CLK 周期,以确保 DONE 变为高电平 


Versal SelectMAP 32 位数据加载波形图:

  1. SelectMAP 数据加载波形图显示了初始数据周期内的 PDI 启动头文件 - 16 字节总线检测模式。
  2. Versal 自适应 SoC 在写入模式下发现 RDWR_B=0 后,将断言 BUSY=0 无效。大多数应用只需加载(写入)SelectMAP 数据,并且可以保留 RDWR_B=0
  3. 发出最后一项 PDI 数据后,设置 CS_B=1 并发送至少 24 SMAP_CLK 周期,以确保 DONE 信号变为高电平。


Versal SelectMAP PDI 16 字节总线检测模式顺序:


Versal SelectMAP 多器件接口示例:

大多数应用都在写入模式下使用 Versal SelectMAP 启动模式。对于不以读取操作为目标的应用,建议将 SMAP_RDWR_b 保持在写入模式 (SMAP_RDWR_b=0)

下面显示了两种 Versal 多器件设置示例。第一个示例显示的控制信号可在上电时或使用相同的 REF_CLK 源时连接在一起。第二个示例表明每个器件的信号都是唯一的,以保证更大的灵活性。

这两种设置都显示了唯一的 SMAP_RDWR_B,这样可防止在不太常见的读取模式用例中出现任何信号争用情况。使用读取模式 (SMAP_RDWR_b=1) 时,无论 SMAP_CS_b 设置如何,数据 I/O 都不会为三态。对于多器件设置,在读取模式下以某个器件为目标时,不属于读取操作目标的器件应保持在写入模式 (SMAP_RDWR_b=0) 下且 SMAP_CS_b=1
 
示例 1.

示例 2.

这篇关于Versal 自适应 SoC SelectMAP 启动检查表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/393737

相关文章

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除