一、简单介绍


TZASC可以为应用提供合适的安全地址区域。一个典型的TZASC必须包含以下几个系统:


an AXI to APB bridge restricting APB traffic to the TZASC to secure only


a TZASC


AXI bus masters:


— an ARM processor


— a Digital Signal Processor (DSP).


AXI infrastructure component


a Dynamic Memory Controller (DMC).


TZASC能提供以下几个功能:


能够为每个地址区域编程安全访问权限


仅当AXI事务的安全状态与其地址的内存区域的安全设置匹配时,才允许主服务器和从服务器之间传输数据


在secure_boot_lock后阻止对各种寄存器的写入访问。

#yyds干货盘点#TZASC380技术手册笔记_寄存器


二、功能介绍


1、功能接口


AXI bus interfaces


APB slave interface


Miscellaneous signals


Clock and reset


每个AXI总线接口都包含以下AXI通道:


Write Address (AW)


Write Data (W)


Write Response (B)


Read Address (AR)


Read Data (R)


APB slave接口:


Combined issuing capability


Write issuing capability


Read issuing capability


APB slave接口提供对TZASC寄存器的访问,使您可以编程系统配置参数并获取状态信息。


Miscellaneous信号:


secure_boot_lock


tzasc_int


secure_boot_lock在TZASC处理后会产生一个tzasc_int中断。


三、具体操作



#yyds干货盘点#TZASC380技术手册笔记_优先级_02

TZASC是一个系统IP,对内存或片外围设备的AXI访问进行安全检查。支持可配置的ddr区域。每个区域都可编程。大小、基本地址、启用和安全参数。使用secure_boot_lock,可以防止程序员的错误写入。


1.可配置的区域模型


每个可编程区域都是一段地址上连续的空间。TZASC为每一块区域提供了一段可编程安全权限的字段。每个区域字段中的security permissions value用来告诉TZASC是否打开这块区域的可读性权限。


TZASC始终提供两个区域,region 0和region 1,您可以将其配置为提供其他区域。除region 0外,TZASC允许您为每个区域编程以下操作参数:


Region enable.


Security permissions.


Base address.


Size. The minimum address size of a region is 32KB.


Subregion disable.


region 0被称为背景区域,因为它占用了总内存空间。您可以编程区域0的安全权限。


每块区域的优先级如下:



#yyds干货盘点#TZASC380技术手册笔记_寄存器_03

收到传输信号时,会检查其地址是否与所有配置的片段匹配。检查区域的顺序由优先级决定,最高优先级优先级别优先。与事务地址匹配的第一个区域用作匹配区域。匹配的区域安全权限决定了是否允许传输。


子区域划分


TZASC将每个区域划分为八个大小相等、不重叠的子区域。大小32KB地址跨度的示例区域的子区域。


#yyds干货盘点#TZASC380技术手册笔记_寄存器_04


防止写入寄存器并使用secure_boot_lock


写入合适的值到锁定寄存器,然后Secure_boot_lock信号使以下寄存器只读:


speculation_control Register


security_inversion_en Register


lockdown_range Register


使用lockdown_range和lockdown_select寄存器锁定区域


通过编程lockdown_select和lockdown_range寄存器,并断言secure_boot_lock信号,您可以锁定TZASC的行为,以防止无意或错误地写入lockdown_range寄存器中指定的区域。然而,允许读取访问这些区域:


region_setup_low_ Register


region_setup_high_ Register


region_attributes_ Register


TZASC希望至少在一个时钟周期内断言secure_boot_lock信号。TZASC对secure_boot_lock进行HIGH采样后一个时钟,然后无法编写第2-12页上使用lockdown_range和lockdown_select寄存器锁定区域中提到的寄存器,除非通过断言resetn重置TZASC。


使用锁定的事务序列


如果主服务器执行锁定的事务序列,则在以下情况下,事务可能会停止或发生AXI协议违规:


传输序列跨越4KB边界


安全状态更改


读写操作


使用独家访问权限


如果主服务器对地址区域执行独家访问,您必须对TZASC进行编程,以允许对该地址区域进行读写访问,用于arprots[1]和awprots[1]的预期设置,否则读写事务可能会失败。


四、编程模型


写TZASC寄存器需要注意以下信息:


•TZASC的基本地址不是固定的,对于任何特定的系统实施,都可以有所不同。每个寄存器从基地址的偏移量是固定的。 •请勿尝试访问保留或未使用的地址位置。试图访问这些位置可能会导致TZASC的不可预测的行为。 •除非所附案文另有说明: —不要修改未定义的寄存器位 —在读取上忽略未定义的寄存器位 —所有寄存器位都通过系统或开机重置重置为逻辑0。 •对于寄存器编程,TZASC支持单词不变端点的数据。 •第3-5页表3-1中的“类型”列描述访问类型如下: RW读写。 RO只读。 WO只写。 •系统设计人员必须确保只有处于安全状态的处理器才能访问寄存器,否则可能会危及系统的安全性。


寄存器映射


TZASC的寄存器映射横跨了4KB区域,具体如下:

#yyds干货盘点#TZASC380技术手册笔记_寄存器_05