Secure Serial Flash Bus Transactions (SSFBT) 是由JEDEC定义的一套适用于串行Flash的标准,即JESD254标准。JESD254文档篇幅不长,描述了SPI总线事务,旨在支持串行存储器设备上的安全闪存操作。
JEDEC会不断发布新版本的JESD254规范,最新版本可在JEDEC官网下载(需注册账户)。本博客文档是基于JESD254编写的。JESD254各版本信息如下:
版本 | 地址(官方下载需登录) | 备注 |
---|---|---|
JESD254 | 官方下载,三方下载 | 发布于2022年,是JESD254规范的第一版 |
该标准定义了如何通过串行外围接口(SPI)在主机和外围设备之间传输数据包。数据包写入用于将数据包从主机传输到SPI外围设备,而数据包读取用于从SPI外围设备取回数据包返回主机。
本规范旨在描述数据包读取和数据包写入事务的顺序。制造商关于顺序的具体细节(命令代码,命令修饰符长度和延迟)在设备的串行闪存发现参数(SFDP)数据库(JESD216)中描述。数据包的内容是制造商特有的,不在本规范的范围内。
虽然安全闪存产品最初采用了数据包读和写操作,但是数据包事务可能适用于其他应用程序。
1 范围
本标准描述了SPI总线事务,旨在支持串行存储器设备上的安全闪存操作。JESD216中描述的片上SFDP数据库已被修改,以包括有关安全事务的详细信息。此投票未描述SFDP修订或安全数据包结构。
2 规范性引用文件
下列规范性文件中的规定通过本标准的引用构成本标准的规定。对于注明日期的引用文件,这些出版物的后续修订或修订不适用。但是,鼓励基于本标准的协议各方调查是否可能应用所示规范性文件的最新版本。对于未注明日期的引用文件,其最新版本适用。
- JEDEC Manual, JM7.01:EDEC标准和其他出版物的样式手册。
- JEDEC Standard, JESD88E:固态技术术语词典。
- JEDEC Standard, JESD99C:微电子设备的术语、定义和字母符号。
- JEDEC Standard, JESD100B.01:微型计算机、微处理器和存储器集成电路的术语、定义和字母符号。
- JEDEC Standard, JESD251B:非易失性存储器设备的扩展串行外围接口(xSPI)。
- JEDEC Standard, JESD216F:串行Flash可发现参数(SFDP)。
3 术语和定义
当前版本的JESD88《固态技术术语词典》是本标准中使用术语的管理文件。为便于参考,提供了以下术语和定义:
- byte (B):作为一个单位操作的二进制字符串,通常比计算机字短。(参考ANSI X3.172。)。(注:字节通常为8位。在该标准中,它是一个8位数据值,最高有效位为第7位,最低有效位为0位。)
- 控制器:一种xSPI设备,用于驱动芯片选择信号,以使另一个xSPI设备能够在给定时间在接口上接收或传输数据。
- 双倍数据速率(DDR):信息(例如,命令、修饰符、地址或数据)在相关时钟的每个边缘上传输。
- 单倍数据速率(SDR):信息(例如,命令、修饰符、地址或数据)在相关时钟的一个边缘上传输。
- 主机:计算机系统、测试系统或其他向存储设备写入数据或从存储设备读取数据的设备。在本标准中,它是一个xSPI控制器:一个具有主计算设备特性的实体或设备,包括一个或多个xSPI控件。xSPI控制器将所有芯片选择(CS)信号输出到xSPI目标设备,以一次选择一个目标设备与控制器交互。控制器向目标设备提供传输类型和地址信息。
- 目标:一种xSPI设备,用于接收芯片选择信号,以便在给定时间在接口上接收或发送数据。
- xSPI 目标:具有由xSPI控制器选择的外围设备特性的实体或设备。(xSPI目标通过其芯片选择(CS#)输入激活以与控制器交互。目标接收传输类型和地址信息,以便识别从xSPI控制器接收或向xSPI控制器发送哪些数据)
3.1 首字母缩略词
缩略词 | 解释 |
---|---|
DDR | 双倍数据速率。数据在相关时钟的每个边缘传输。 |
I/O 或 IO | 输入或输出–可以接收或驱动电压电平以与其他设备通信的信号端口。 |
SDR | 单数据速率。数据在相关时钟的一个(上升或下降)边沿上传输。 |
SPI | 串行外围接口 |
xSPI | 扩展串行外围接口 |
3.2 约定
本标准遵循其他JEDEC文件中使用的一些约定。
在本标准中,二进制数字由仅由西阿拉伯数字0和1组成的任何数字序列表示,其后紧跟小写b(例如0101b)。可以在二进制数表示中包括空格以增加可读性或描绘字段边界(例如,0 0101 1010b)。
在本标准中,十六进制数由仅由西方阿拉伯数字0至9和/或大写英文字母A至F组成的任何数字序列表示,后跟小写h(例如,FA23h)。可以在十六进制数字表示中包括空格以增加可读性或描绘字段边界(例如,B FD8C FA23h)。
在本标准中,十进制数字由仅由西方阿拉伯数字0至9组成的任何数字序列表示,后面不紧跟小写b或小写h(例如25)。
在本标准中,数值范围以“A到z”的形式表示,其中A是范围中包含的第一个值,A和z之间的所有值都包含在范围中,z是范围中包括的最后一个值(例如,表示“0h到3h”包括值0h、1h、2h和3h)。
本文件中使用的其他约定:在 LOW 中被认为是活动的信号的信号名以“#”特殊字符结尾(即有“#”后缀)。
3.3 关键字
几个关键字用于区分必须与可选的级别,如下所示:
本标准或其他标准的未来扩展可能会规定使用和解释。保留对象应归零,或在制定未来标准时,将其设置为该标准规定的值。保留对象的接收者不得检查其值。定义对象的接收者应检查其值并拒绝保留的代码值。
- 必须(原文:Shall):一个关键字,表示为了符合标准而必须严格遵守的强制性要求,并且不允许有任何偏差(等于“要求”)。设计者必须执行所有此类强制性要求,以确保与符合本标准的其他产品的互操作性。
- 应该(原文:Should):一个关键字,用于表示在几种可能性中,一种被推荐为特别适合,而不提及或排除其他可能性;或者优选但不一定需要某一行动方案;或者(以否定的形式)某一行动方针被否决但未被禁止(等于“建议”)。
- 希望(原文:Will):不推荐使用“希望”一词,在陈述强制性要求时不得使用;希望仅用于事实陈述。
4 主要功能
4.1 介绍
本规范描述了安全数据包总线事务的传输层。还描述了支持安全数据包读取和安全数据包写入事务的命令代码。
任务组(译者注:提出此标准的任务组)中提出了三种事务协议,它们都遵循标准SPI事务流:
- COMMAND (1 字节)
- COMMAND MODIFIER (在传统上占用0、3或4字节的目标地址)
- LATENCY (在传统上为读操作期间用作总线周转时间)
- PACKET (在传统上为目标读取数据或编程数据)
本规范描述了支持安全事务所需的SFDP数据库扩展:支持传统的重放保护单调计数器(RPMC)以及新的安全数据包事务格式。(译者注:原文为“The legacy Replay Protected Monotonic Counter (RPMC) is supported as well as a new Secure Packet transaction format.”此扩展定义在规范JESD 216F中,及其更新的版本中)
4.2 安全数据包读取和安全数据包写入事务
RPMC事务和新的安全分组(读写)事务足够相似,可以在SFDP数据库中以通用方式描述。
传统的读取和编程操作在SPI总线上呈现的方式暗示了一些安全数据包(读取和写入)事务特性。安全数据包写入事务特征与配置的编程页事务相同。例如:总线宽度和SDR/DDR数据速率。安全数据包读取事务特征与配置的快速读取事务相同。例如:延迟、总线宽度和SDR/DDR数据速率。
4.2.1 安全数据包写入事务
安全数据包写入事务包括一个一字节的命令操作码,后跟一个零、三或四字节的命令修饰符字段,最后是一个可变长度的安全数据包。
{ border-effect="line" thumbnail="true" }
4.2.2 安全数据包读取事务
安全数据包读取事务由一个字节的命令操作码、一个零、三或四字节的命令修饰符字段、一个用于检索目标数据的延迟时间段以及一个可变长度的秘密数据包组成。
{ border-effect="line" thumbnail="true" }
4.2.3 SPI事务映射
下表描述了关于命令代码、命令修饰符和延迟的四种不同的事务建议如何进行比较。这三个特性既可以应用于 RPMC,也可以应用于安全数据包。
{ border-effect="line" thumbnail="true" }
文章评论