0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AMD Artix 7 FPGA OTA在线升级的实现

OpenFPGA 来源:博客园-付汉杰 hankf 2023-05-17 10:39 次阅读

作者:付汉杰 hankf@amd.com

文章来源:博客园

测试环境

参考文档

xtp226-ac701-multiboot-c-2015-1.pdf

ug470_7Series_Config.pdf

xapp1247-multiboot-spi.pdf

ug952-ac701-a7-eval-bd.pdf

ug1579-microblaze-embedded-design.pdf

Vitis Embedded Software Debugging Guide (UG1515)

测试单板

ac701

测试工具

Vivado 2022.2

Vitis 2022.2

Mutliboot

UG470 Reconfiguration and MultiBoot Overview

UG470中的介绍如下

The 7 series FPGAs MultiBoot and fallback features support updating systems in the field.
Bitstream images can be upgraded dynamically in the field. The FPGA MultiBoot feature enables
switching between images on the fly. When an error is detected during the MultiBoot configuration
process, the FPGA can trigger a fallback feature that ensures a known good design can be loaded
into the device.

AMD FPGA支持的MultiBoot特性,可以使FPGA先尝试启动最新的配置(bit)文件,后续称为Update Bit。如果最新的配置文件出错,再回退到安全的出厂版本的配置(bit)文件,后续称为Golden Bit。

MultiBoot特性有两种方式使能。第一种方式是在配置(bit)文件里嵌入IPROG命令,触发MultiBoot特性。第二种方式是通过AXI HWICAP写入IPROG命令,触发MultiBoot特性。

配置(bit)文件嵌入IPROG命令

建议阅读XAPP1247 的 “Table 1: MultiBoot Bitstream Properties”。

MultiBoot Bitstream Properties

在工程的约束文件中,加入下列设置,会自动在配置(bit)文件中插入IPROG命令。

set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design] 
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x600000 [current_design] 
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

上述约束的NEXT_CONFIG_ADDR,根据实际的Flash分配情况设置。

对于AC701单板,也建议添加下列约束。

set_property BITSTREAM.CONFIG.CONFIGRATE 50  [current_design] 
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4  [current_design] 
set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-1  [current_design] 
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES  [current_design] 

set_property CONFIG_MODE SPIx4  [current_design] 
set_property CONFIG_VOLTAGE 3.3 [current_design] 
set_property CFGBVS VCCO [current_design] 

通过AXI HWICAP写入IPROG命令

AMD提供IP,支持通过AXI总线,访问ICAPE。

xtp226 也提供了硬件、软件设计,它支持通过AXI HWICAP写入IPROG命令,触发FPGA重新加载。

golden_iprog_spi中的golden.c, 通过读取AXI GPIO 0的状态,决定FPGA重新加载时使用的bit文件。AXI GPIO 0对应到AC701上的SW2。AXI GPIO 0的bit-0,也就是SW2的靠角落(DS23、SW4)的开关1在1的状态(靠液晶屏、7A200T芯片侧),则加载0x400000的bit文件。AXI GPIO 0的bit-0为0, bit-3为1(SW2的开关4)在1的状态,则加载0x800000的bit文件。

    status = GpioInputExample(XPAR_AXI_GPIO_0_DEVICE_ID, &DataRead);     
    if (status == 0) {
        xil_printf("GpioInput Read data:0x%X
", DataRead);
if ( (DataRead & 0x00000001) == 0x00000001 )
{
fpga_iprog(0x00400000); // IPROG to GOOD BITSTREAM ,must match address in .prm
}
if ( (DataRead & 0x00000008) == 0x00000008 )
{
fpga_iprog(0x00800000); // IPROG to cause configuration error
}
    }
    else {
        print("GpioInput FAILED.
");
    }

对比

第一种方式,通过配置(bit)文件嵌入IPROG命令,实现最简单,占用资源也最少。但是只能支持一个Update Bit文件。

第二种方式,通过AXI HWICAP写入IPROG命令,在下发IPROG命令前,可以任意指定Flash地址,非常灵活。但是需要嵌入MicroBlaze和AXI HWICAP,需要占用部分FPGA资源,也需要一点软件开发。

Artix FPGA OTA 在线升级的流程

首先分配Flash的存储空间。Flash里 0x0 地址存放Golden Bit;Flash里 0x400000 地址存放 Update Bit;其中0x400000需要根据压缩后的bit文件大小修改。

因为生成Golden Bit时,使用了属性“BITSTREAM.CONFIG.NEXT_CONFIG_ADDR”, Golden Bit启动后会自动加载Update Bit。

因为生成Golden/Update Bit时,使用了属性“BITSTREAM.CONFIG.CONFIGFALLBACK”, 任何Bit失败后,都会自动加载Golden Bit。

Golden bit和 Update bit内部都集成MicroBlaze、hwicap和Quad SPI Controller,都有在线升级bit的能力。


a. MicroBlaze通过Ethernet、PCIe、UART等,从外部获得新的Update Bit。
b. MicroBlaze将新的Update Bit写入Quad SPI的0x400000并校验
c. MicroBlaze写IProg命令到HWICAP,重启动FPGA
d. FPGA使用新的Update Bit配置,之后Update Bit开始工作。

如果后来芯片断电之后再上电,Update Bit能直接加载Update Bit。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603139
  • amd
    amd
    +关注

    关注

    25

    文章

    5467

    浏览量

    134128
  • OTA
    OTA
    +关注

    关注

    7

    文章

    580

    浏览量

    35211
  • bit
    bit
    +关注

    关注

    0

    文章

    48

    浏览量

    32015
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66496

原文标题:【干货分享】AMD Artix 7 FPGA OTA 在线升级的实现

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Artix-7 50T FPGA试用体验】xilxin Artix-7 系列FPGA相关特性

    性能的情况下,开发人员必须能够扩展使用模式,以实现更高的处理带宽、更高的可移植性以及更广的应用范围,同时使功耗这一关键资源保持最低。赛灵思 Artix®-7 系列 FPGA 重新定义了
    发表于 11-01 15:52

    STM32 OTA升级如何实现

    上次谈到OTA,有小伙伴私信我表示对升级的原理感兴趣。回想当初入职看到MCU在线升级的代码流程时,同样感到很神奇,毕竟学生时代我们在MCU上开发基本不需要
    发表于 11-10 07:30

    什么是在线OTA升级

    什么是在线OTA升级- OTA是Over-the-Air的简写,空中下载技术的意思。- OTA在线
    发表于 12-22 07:44

    请问如何实现ESP32固件的OTA在线升级更新?

    什么是OTA?ESP32的OTA升级有哪几种方式?如何实现ESP32固件的OTA在线
    发表于 01-14 06:05

    Xilinx Artix-7系列FPGA教程资料及设计实例_Artix 7开发板威廉希尔官方网站 图和例程

    低成本 FPGA实现最佳性能/功耗组合、AMS 集成、以及收发器线速。此系列为各类成本功耗敏感型应用提供最大价值,包括软件定义无线电、机器视觉照相以及低端无线回传。本专题汇集Artix-7
    发表于 08-04 09:23
    Xilinx <b class='flag-5'>Artix-7</b>系列<b class='flag-5'>FPGA</b>教程资料及设计实例_<b class='flag-5'>Artix</b> <b class='flag-5'>7</b>开发板威廉希尔官方网站
图和例程

    Artix-7 DSP性能演示

    Xilin新推出小型产品的Artix-7 FPGA,我们将向大家讲解:Artix-7 DSP性能演示。
    的头像 发表于 06-05 07:46 4324次阅读

    Artix-7 功耗优势演示

    Xilinx推出新品小型产品的Artix-7 FPGA,我们将为大家讲述:Artix-7 功耗优势演示。
    的头像 发表于 06-04 13:47 4494次阅读

    如何使用Artix-7 FPGA减少功耗

    在本视频中,您将了解Artix-7 FPGA的整体系统功耗和成本。 我们将快速回顾一下Artix-7 FPGA架构,逻辑架构,第四代DSP48E1片,6.6 Gbps GTP收发器,
    的头像 发表于 11-21 06:10 3823次阅读

    Artix-7 ARTY FPGA评估套件的演示

    该视频演示了基于Artix-7的低功耗ARTY FPGA评估套件,该套件采用-1LI Artix-7 FPGA。 对于演示,该套件的工作功率不到半瓦,运行真实设计,并配有软处理器。
    的头像 发表于 11-29 06:23 2876次阅读

    digilent Nexys 4:Artix-7 FPGA训练板介绍

    搭载Xilinx®最新Artix®-7 FPGA芯片的Nexys 4 Artix-7 FPGA训练板是一个完整的,即用的数字威廉希尔官方网站 开发平台。相
    的头像 发表于 11-14 16:33 8335次阅读
    digilent Nexys 4:<b class='flag-5'>Artix-7</b> <b class='flag-5'>FPGA</b>训练板介绍

    Artix-7 FPGA数据表下载

    Artix-7 FPGA数据表下载
    发表于 05-21 14:34 10次下载

    在线升级 | 物联网中的OTA升级原理

    从最新的固件方式来看,可以分成以下几类 0 1 OTA升级 1.1  概念 OTA:Over-the-Air Technology,即空中下载技术。 OTA
    的头像 发表于 02-03 02:40 1370次阅读

    Artix 7 FPGA上使用Vivado的组合逻辑与顺序逻辑

    电子发烧友网站提供《在Artix 7 FPGA上使用Vivado的组合逻辑与顺序逻辑.zip》资料免费下载
    发表于 06-15 09:14 0次下载
    在<b class='flag-5'>Artix</b> <b class='flag-5'>7</b> <b class='flag-5'>FPGA</b>上使用Vivado的组合逻辑与顺序逻辑

    在线升级 | 物联网中的OTA升级原理

    从最新的固件方式来看,可以分成以下几类01OTA升级1.1概念OTA:Over-the-AirTechnology,即空中下载技术。OTA升级
    的头像 发表于 02-02 09:59 1525次阅读
    <b class='flag-5'>在线</b><b class='flag-5'>升级</b> | 物联网中的<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>原理

    AT32 MCU如何使用OTA通过USART实现对固件的在线升级更新

    AT32 MCU如何使用OTA通过USART实现对固件的在线升级更新
    的头像 发表于 10-26 17:09 2572次阅读
    AT32 MCU如何使用<b class='flag-5'>OTA</b>通过USART<b class='flag-5'>实现</b>对固件的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>更新