ARM TrustZone地址空间控制器(TZASC)是TrustZone安全扩展架构中的关键组件,它通过硬件级内存隔离机制实现安全域与非安全域的物理分离。TZASC的寄存器模型可以分为三大类:
标识寄存器组用于识别TZASC硬件模块的基本信息,包括:
这四个8位寄存器共同构成32位的外设标识符,其位域定义如下:
实际开发中,RevAnd字段特别重要:当制造商进行硅片修订时,会修改这些位的值。我们在调试时发现,某些早期版本芯片的RevAnd值为0x0,而修订版可能变为0x1。
这四个8位寄存器共同构成32位的组件标识符,其固定值为0xB105F00D(ARM魔数)。寄存器位域定义如下:
| 寄存器 | 偏移地址 | 复位值 | 位域定义 |
|---|---|---|---|
| component_id_3 | 0xFF0 | 0xB1 | [7:0]固定为0xB1 |
| component_id_2 | 0xFF4 | 0x05 | [7:0]固定为0x05 |
| component_id_1 | 0xFF8 | 0xF0 | [7:0]固定为0xF0 |
| component_id_0 | 0xFFC | 0x0D | [7:0]固定为0x0D |
控制寄存器组用于配置TZASC的核心功能:
每个内存区域对应一个属性寄存器,主要包含:
用于保护关键配置不被修改,其特点包括:
测试寄存器组用于功能验证和集成测试:
| 寄存器 | 偏移地址 | 类型 | 功能描述 |
|---|---|---|---|
| itcrg | 0xE00 | RW | 集成测试控制寄存器 |
| itip | 0xE04 | RO | 集成测试输入寄存器 |
| itop | 0xE08 | RW | 集成测试输出寄存器 |
TZASC寄存器访问遵循以下规则:
c复制// 配置区域0为安全区域
volatile uint32_t *region_attr = (uint32_t*)(tzasc_base + 0x100);
*region_attr = 0x1; // 设置安全属性位
当secure_boot_lock信号拉高时:
c复制// 启用集成测试逻辑
volatile uint32_t *itcrg = (uint32_t*)(tzasc_base + 0xE00);
*itcrg = 0x1; // 设置int_test_en位
// 读取secure_boot_lock状态
volatile uint32_t *itip = (uint32_t*)(tzasc_base + 0xE04);
uint32_t lock_status = (*itip) & 0x1;
// 设置tzasc_int信号
volatile uint32_t *itop = (uint32_t*)(tzasc_base + 0xE08);
*itop = 0x1; // 拉高tzasc_int
TZASC提供AXI从接口和主接口:
| 信号组 | 关键信号 | 功能描述 |
|---|---|---|
| 写地址通道 | awaddrs, awbursts | 接收写地址和突发类型 |
| 写数据通道 | wdatas, wlasts | 接收写数据和突发结束标志 |
| 写响应通道 | bresps | 返回写操作响应 |
| 读地址通道 | araddrs, arbursts | 接收读地址和突发类型 |
| 读数据通道 | rdatas, rlasts | 返回读数据和突发结束标志 |
| 信号组 | 关键信号 | 功能描述 |
|---|---|---|
| 写地址通道 | awaddrm, awburstm | 发送写地址和突发类型 |
| 写数据通道 | wdatam, wlastm | 发送写数据和突发结束标志 |
| 写响应通道 | brespm | 接收写操作响应 |
| 读地址通道 | araddrm, arburstm | 发送读地址和突发类型 |
| 读数据通道 | rdatam, rlastm | 接收读数据和突发结束标志 |
TZASC提供APB从接口用于寄存器访问:
| 信号 | 功能描述 |
|---|---|
| paddr[31:0] | APB地址总线 |
| pwdata[31:0] | APB写数据总线 |
| prdata[31:0] | APB读数据总线 |
| pwrite | 写操作指示信号 |
secure_boot_lock信号是TZASC的关键安全特性:
TZASC提供tzasc_int信号用于安全违规通知:
TZASC时钟复位信号包括:
在实际项目中,我们发现某些TZASC实现对区域大小有特殊限制。例如,某些版本要求区域大小必须是2的幂次方,且最小为4KB。这需要在设计内存布局时特别注意。