Intel Stratix 10配置用户指南

ID 683762
日期 12/16/2019
Public
文档目录

5.3.1. 操作命令

表 35.  命令列表和说明
命令 代码(十六进制) 命令长度 8 响应长度8 描述
RSU_IMAGE_UPDATE 5C 2 0

从数据源(出厂映像或者应用程序映像)触发重配置。

此命令使用一个可选的64-bit参数,指定闪存中的重配置数据地址。如果不提供此参数,那么此参数值假定为0。

  • Bit [63:32]:保留(写为0)。
  • Bit [31:0]:应用程序映像的起始地址。

如果器件已在处理配置命令,则返回一个非零响应。

RSU_GET_SPT 5A 0 4

RSU_GET_SPT对RSU使用的两个子分区表(SPT0和SPT1)检索quad SPI闪存位置。

4-word响应包含以下信息:

偏移(offset) 名称 描述
0 SPT0[63:32] quad SPI闪存中的SPT0地址。
1 SPT0[31:0]
2 SPT1[63:32] quad SPI闪存中的SPT0地址。
3 SPT1[31:0]
CONFIG_STATUS 4 0 6

报告上次重配置的状态。您可以使用此命令检查配置期间和配置后的配置状态。响应包含以下信息:

汇总 描述
0 状态 描述有关最新配置的错误。当没有配置错误时返回0。
错误字段CONFIG_STATUS有2个域:
  • 高16位:主要错误代码。
  • 低16位:次要错误代码。

请参考表 36表 37来了解更多信息。

1 版本 RSU数据结构的版本。
2 管脚状态
  • Bit [31]:当前nSTATUS输出值(active low)
  • Bit [30]: 检测到的nCONFIG输入值(active low)
  • Bit [29:3]:保留
  • Bit [2:0]:上电时的MSEL
3 软核功能状态(soft function status) 包含每个软核功能的值,即便没有对SDM管脚分配功能。
  • Bit [31:6]: 保留
  • Bit [5]: HPS_WARMRESET
  • Bit [4]: HPS_COLDRESET
  • Bit [3]: SEU_ERROR
  • Bit [2]: CVP_DONE
  • Bit [1]: INIT_DONE
  • Bit [0]: CONF_DONE
4 错误位置 包含错误位置。如果没有错误,则返回0。
5 错误详情 包含错误详情。如果没有错误,则返回0。
RSU_STATUS 5B 0 9 报告当前远程系统更新状态。您可以在配置过程中和完成后使用此命令检查配置状态。此命令返回以下响应:
汇总 描述
0-1 当前映像 当前运行的应用程序映像的Flash偏移量。
2-3 失败映像

优先级最高的失败应用程序映像的闪存偏移。如果闪存中有多个映像,那么要存储失败的第一个映像的值。全0值表示没有失败映像。如果没有失败映像,那么状态信息的其余字中不会存储有效信息。

注: 从ASx4重新配置的nCONFIG的上升沿不会清除此字段。仅当Mailbox Client接收到新的RSU_IMAGE_UPDATE命令并从更新映像成功进行配置时,有关失败映像的信息才会更新。
4 状态 失败图像的故障代码。

错误字段分为两部分:

  • 高16位:主要错误代码。
  • 低16位:次要错误代码。

无故障返回0。请参考表 36表 37了解更多信息。

5 错误报告和版本 Intel® Quartus® Prime Pro Edition软件的19.4版本开始,包含以下字段:
  • Bits[31:28]:指定当前使用的决策固件索引。
  • Bits[27:16]:错误源。包含在 Intel® Quartus® Prime Pro Edition软件的19.3版本和后续版本中。以下编码有效:
    • 0x0000:无错误
    • 0x0ACF:应用固件报告一个错误
    • 0x0DCF:决策固件报告一个错误
  • Bits[15:8]:应用固件RSU接口版本。RSU接口版本。以下编码有效:
    • 0x0000: Pre 19.3 release
    • 0x0001: 19.3 release
  • Bits[7:0]:决策固件RSU接口版本。以下编码有效:
    • 0x0000: Pre 19.3 release
    • 0x0001: 19.3 release
    • 0x0002: 19.4 release
6 错误位置 存储失败映像的错误位置。如果没有错误,则返回0。
7 错误详情 存储失败映像的错误详情。如果没有错误,则返回0。
8 当前映像重试计数器

当前映像已尝试重试的次数。计数器最初为0。第一次重试后,计数器设置为1,第二次重试后,计数器设置为2。

Intel® Quartus® Prime Settings File (.qsf)中指定最大重试次数。命令为:set_global_assignment -name RSU_MAX_RETRY_COUNT 3MAX_RETRY counter的有效值为1-3。实际的重试次数是MAX_RETRY -1

Intel® Quartus® Prime Pro Edition软件的19.3版本中增添了此字段。

QSPI_OPEN 32 0 1

请求对quad SPI的独占访问。如果未使用quad SPI并且SDM未配置器件, 那么SDM接受请求。如果SDM授予访问权限,则返回OK。当quad SPI闪存繁忙时,返回ALT_SDM_MBOX_RESP_DEVICE_BUSY

注: SDM使用此邮箱向客户端授予独占访问权限。在活动客户端使用QSPI_CLOSE命令放弃访问之前,其他客户端无法访问quad SPI。
QSPI_CLOSE 33 0 1 关闭对quad SPI接口的独占访问。
QSPI_SET_CS 34 1 1 通过芯片选择线指定所连接的quad SPI器件之一。使用如下所述的单字参数:
  • Bits[31:28]:要选择的闪存器件。值4'b0000选择与nCSO[0]相对应的闪存。nCSO[0]是FPGA可用来访问quad SPI闪存器件的唯一信号。 HPS可以使用nCSO[3:1]访问HPS数据。
  • Bits[27:0]:保留(写为0)。HPS可以使用nCSO[3:1]访问另外3个quad SPI器件。

对于AS x4配置方案,此命令是可选的。所有其他配置方案都是必需的。

使用SDM_IO管脚访问QSPI闪存器件仅适用于AS x4配置方案,JTAG配置以及为ASx4配置编译的设计。对于 Avalon® ST配置方案,必须将QSPI闪存连接到GPIO管脚。

QSPI_READ 3A 2 N

读取连接的quad SPI器件。最大read size是4 kilobytes (KB)。有两个参数:

  • quad SPI闪存地址(一个字)。此地址必须是字对齐的。对于非对齐地址,器件返回0x1错误代码。
  • 要读取的字数(一个字)。

成功后返回OK,然后返回从SPI器件读取的数据。失败响应将返回一个错误代码。

对于部分成功的读取,QSPI_READ可能会错误地返回OK状态。

注: 您不能在器件配置期间运行QSPI_READ命令。
QSPI_WRITE 39 2+N 0 将数据写入quad SPI器件。使用三个参数:
  • 闪存地址偏移(一个字)。写地址必须是字对齐的。对于非对齐地址,器件将返回错误代码0x3FF
  • 要写入的字数(一个字)。
  • 要写入的数据(一个或多个字)。

成功写入将返回OK响应代码。

要准备存储器进行写操作,Intel建议在发出此命令之前使用QSPI_ERASE命令。

注: 您不能在器件配置期间运行QSPI_WRITE命令。
QSPI_ERASE 38 2 0 擦除quadSPI器件的一个扇区。使用两个参数:
  • 开始进行擦除的输出地址偏移(一个字)。该地址必须是闪存中扇区的起始地址;因此,该地址必须是64 KB对齐的。对于non-64 KB对齐地址,返回一个错误。
  • 要擦除的字数,以0x4000字的倍数指定。
成功擦除将返回OK响应代码。
QSPI_READ_DEVICE_REG 35 2 N 从quad SPI器件读取寄存器。最多读取8个字节。有两个参数。
  • 读取命令的操作码。
  • 读取的字节数。

成功读取将返回OK响应代码,然后返回从器件读取的数据。将不是4字节倍数的数据填充到下一个字边界。

QSPI_WRITE_DEVICE_REG 36 2+N 0 写入quad SPI的寄存器。最大写入为8个字节。使用三个参数:
  • 写命令的操作码。
  • 要写入的字节数。
  • 要写入的数据。

要执行扇区擦除或子扇区擦除,必须按照最高有效字节(MSB)至最低有效字节(LSB)的顺序指定串行闪存地址,如以下示例所示。

要使用QSPI_WRITE_DEVICE_REG命令擦除Micron 2 gigabit (Gb)闪存的一个扇区(地址0x04FF0000) ,按如下所示以MSB到LSB的顺序写入闪存地址:

Header: 0x00003036

Opcode: 0x000000DC

写入的字节数:0x00000004

闪存地址: 0x0000FF04

成功写入后将返回OK响应代码。该命令将不是4字节倍数的数据填充到下一个字边界。

QSPI_SEND_DEVICE_OP 37 1 0 将一个命令操作码发送到quad SPI。使用一个参数:
  • 发送到quad SPI器件的操作码。

成功的命令会返回一个OK响应代码。

RSU_NOTIFY 5D 1 0
清除RSU_STATUS响应中的所有错误信息并复位重试计数器(retry counter)。一字参数包含以下字段:
  • 0x00050000:清除当前复位的重试计数器。复位当前重试计数器会将计数器重新设置为零,就像当前映像是第一次成功加载一样。
  • 0x00060000:清除错误状态信息
  • 所有其他值均保留。
Intel® Quartus® Prime Pro Edition软件的19.3之前版本中不包含此命令。
表 36.  CONFIG_STATUS和RSU_STATUS主要错误代码说明
主要错误代码 错误类型 说明
0xF001 BITSTREAM_ERROR 使用的潜在无符号比特流。确保比特流是有符号的,带有正确秘钥。
0xF002 HARDWARE_ACCESS_FAILURE 无法与符合PMBus的变压器通信。检查电源管理和智能电压识别(SmartVID)参数设置以及PMBus接口连接。
0xF003 BITSTREAM_CORRUPTION 比特流已损坏。确保配置器件或闪存中的比特流未损坏。
0xF004 INTERNAL_ERROR

此主要代码可能指示以下错误事件:

  • SDM Crypto IP任务中的错误。
  • RSU操作错误。请参考表 37了解更多信息。
0xF005 DEVICE_ERROR
指示一个SDM内部器件错误。可能出现以下错误:
  • 器件清洁(device cleaning)失败
  • HPS配置失败

请与您当地的现场应用工程师(FAE)取得联系。或者,在 My Intel 支持页面上提交Service Request,根据错误日志提供进一步调试的支持。

0xF006 HPS_WATCHDOG_TIMEOUT HPS看门狗超时失败。确保您的设计正确地复位看门狗定时器。
0xF007 INTERNAL_UNKNOWN_ERROR

指示一个由于未知任务而导致的内部器件错误。

请与您当地的现场应用工程师(FAE)取得联系。或者,在 My Intel 支持页面上提交Service Request,根据错误日志提供进一步调试的支持。

表 37.  CONFIG_STATUS和RSU_STATUS次要错误代码说明
次要错误代码 错误类型 说明
0xD001 RSU_CMF_AUTH_ERR 固件验证失败。
0xD002 RSU_USER_AUTH_ERR 设计验证失败。
0xD003 RSU_CMF_DESC_SHA_MISMATCH SHA与固件描述符不匹配。
0xD004 RSU_POINTERS_NOT_FOUND_ERR 器件退出上电复位(POR)后,在第一次引导时无法从引导ROM中读取数据。
0xD005 RSU_QSPI_REQ_CHANGE RSU初始化期间无法配置quad SPI闪存。
0xD006 RSU_FACTORY_IMAGE_FAILED 无法加载任何映像,包括出厂映像。
0xD007 RSU_CMF_TYPE_ERR 固件版本与先前加载的版本不匹配。
8 此值不包括命令和响应标头(command and response header)。