
RIF-aware IP介绍 1、FMC 2、GPIO 3、DMA 4、RCC 5、PWR 一、FMC的RIF-aware特性 1、从FMC视角看,其下管理几个独立的资源: ① 0:通用FMC配置寄存器FMC_CFGR ②1:NOR/PSRAM controller (片选NE1),包含寄存器和关联的 memory map的subregion(64MB) ③ 2:NOR/PSRAM controller (片选NE2),包含寄存器和关联的 memory map的subregion(64MB) ④ 3:NOR/PSRAM controller (片选NE3),包含寄存器和关联的 memory map的subregion(64MB) ⑤4:NOR/PSRAM controller (片选NE4),包含寄存器和关联的 memory map的subregion(64MB) ⑥5:NAND controller,包含寄存器和关联的memory map的subregion(4KB) 2、 FMC兼容RIF架构的隔离和安全保护功能包括: ①资源的CID过滤策略,包括可选的基于semaphore的CID domain分配 ② 资源的Secure/Non-secured访问控制 ③资源的Privileged/Unprivileged访问控制 ④资源的RIF配置锁定(即锁定CID, S/NS, Priv/Unpriv配置) 3、FMC资源访问控制 ①FMC_SECCFGR:配置资源的Secure/Non-secured访问属性 • 只允许S+Priv代码配置,使能CID过滤时,只有TD或授权的CID可以写 ②FMC_PRIVCFGR:配置资源的Privileged/Unprivileged访问属性 • 只允许S+Priv代码配置,使能CID过滤时,只有TD或授权的CID可以写 ③FMC_CIDCFGRx:配置资源的CID访问控制(只允许Trusted Domain配置) • CFEN:是否使能CID过滤 • SCID:使能CID过滤,静态分配模式,分配资源给某个指定的CID • SEMEN:是否使能semaphore共享模式 • SEMWLCx:使能CID过滤和semaphore共享模式时,定义CID白名单 ④FMC_SEMCRx:使能CID过滤和共享模式时,用于白名单中的CID获取semaphore ⑤ FMC_RCFGLOCKR:锁定资源的RIF配置(只允许TD/DD写) 4、FMC默认状态 • 所有资源都是Non-secured, Unprivileged属性,允许所有CID读写(CID过滤不使能) 二、GPIO的RIF-aware特性 1、GPIO与其他外设连接使用时的注意事项 三、HPDMA和LPDMA的RIF-aware特性 1、总线主设备,RIF-aware 【CID, S/NS , PRIV/UNPRIV】 2、作为总线从设备(寄存器被bus master访问时) 四、RCC的RIF-aware特性 1、系统复位后,RCC只有在TDCID master配置了RCC RIF之后才能使用 2、RCC RIF 配置包括本地配置和外部配置 ①本地资源配置 e.g. Reset/boot control, PLL, HIS/MSI, Oscillator control, internal ram clock, … 参考RM0457 Table183. RCC register allocation to RIF resource and access conditions 寄存器配置各资源的security domain访问权限(即访问对应RCC寄存器的权限) RCC_SECCFGR0/1/2/3:配置本地RCC资源的Secure / Non-secure属性 RCC_PRIVCFGR0/1/2/3:配置本地RCC资源的Priv / Unpriv属性 RCC_RxCIDCFGR 和 RCC_RxSEMCR:配置本地RCC资源的CID过滤策略 RCC_SRCFGLOCKR0/1/2/3:锁定本地RCC资源的RIF配置 ② 外部资源配置 某个IP自身的RIF配置决定其对应RCC资源的RIF配置,用于过滤security domain的写访问 即IP的RIF配置允许某个security domain写访问,则对应的RCC资源也允许相同的security domain写访问 3、RCC本地资源的RIF配置 ①RCC_SECCFGRx:配置资源的Secure/Non-secured访问属性( 只允许S+Priv代码配置) ②RCC_PRIVCFGR:配置资源的Privileged/Unprivileged访问属性( 只允许Priv代码配置) ③RCC_RxCIDCFGR:配置资源的CID过滤策略( 只允许Trusted Domain配置) CFEN:是否使能CID过滤 SEM_EN:是否使能共享模式 SCID:使能CID过滤且不使能共享模式时,指定允许访问的CID SEMWLCx:使能CID过滤且使能共享模式时,定义CID白名单 ④RCC_RCFGLOCKRx:锁定资源的RIF配置( 只允许Trusted Domain设置) CID过滤 Secure/Non-secured访问属性 Privileged/Unprivileged访问属性 ⑤RCC_RxSEMCR:使能CID过滤和共享模式时,用于白名单中的CID获取semaphore 五、PWR的RIF-aware特性 1、PWR支持RIF框架的隔离和保护 ①涉及两类资源:本地资源,外部资源 ②管理本地资源分为两类 不可共享的资源(R0 – R6),只能静态分配给某个master 可以共享的wake-up I/O资源(WIO1 – WIO6),可以静态分配给某个master,也可以在多个master之间共享 具体影响的寄存器,请参考(RM0457 Table 118. PWR register allocation to RIF resource and access conditions) ③外部资源(R0-R6, WIO1-WIO6以外的资源) 2、PWR对本地资源的RIF配置和管理包括 ①资源的CID过滤策略,包括三种可选的策略:静态分配模式:只允许单一CID访问;资源共享模式:允许白名单中的多个CID以semaphore方式访问资源;禁止任何访问 ②资源的Secure/Non-secured访问控制 ③资源的Privileged/Unprivileged访问控制 3、外部的RIF隔离访问控制 ①继承自其关联的RCC内部资源的RIF配置 (#104) ②继承自关联外设的RISUP配置(#79) ③固定的访问控制规则:PWR_BDCR1: S + Priv + TDCID/DDCID; PWR_BDCR2, PWR_CPU3CR: NS+Unpriv+CPU3 ④只读寄存器没有特别的访问控制 4、PWR不可共享本地资源的RIF配置 ① PWR_RSECCFGR:配置资源的Secure/Non-secured访问属性 只允许S+Priv代码配置,CPU3不可访问 ②PWR_RPRIVCFGR:配置资源的Privileged/Unprivileged访问属性 只允许Priv代码配置,CPU3不可访问 ③PWR_RxCIDCFGR:配置资源的CID过滤 只允许Trusted Domain配置 CFEN:是否使能CID过滤 SCID:使能CID过滤时,指定允许访问的CID 5、PWR可共享本地资源的RIF配置 ①PWR_WIOSECCFGR:配置资源的Secure/Non-secured访问属性 只允许S+Priv代码配置,CPU3不可访问 ②PWR_WIOPRIVCFGR:配置资源的Privileged/Unprivileged访问属性 只允许Priv代码配置,CPU3不可访问 ③PWR_WIOxCIDCFGR:配置资源的CID过滤 只允许Trusted Domain配置 CFEN:是否使能CID过滤 SEM_EN:是否只能共享模式 SCID:使能CID过滤且不使能共享模式时,指定允许访问的CID SEMWLCx:使能CID过滤且使能共享模式时,定义CID白名单 ④PWR_WIOxSEMCR: 使能CID过滤和共享模式时,用于白名单中的CID获取semaphore 学习的一天 |
STM32MP2 RIF线上课程》学习笔记+Memory地址访问管理之RISAF
《STM32MP2 RIF线上课程》学习笔记+Memory地址访问管理之RISAB
《STM32MP2 RIF线上课程》学习笔记+Memory地址访问管理之RISAL
实战经验 | AFCI上位机用户手册
实战经验 | Cortex-M核除0操作的报错机制话题
刘氓兔的杂谈【001】-片上USB 高速PHY
实战经验 | STM32G474 FPU 性能优化与测量
【STM32U083测评】GPIO使用点亮LED和按键操作
【我在论坛打嵌赛】01-嵌赛是个什么东东
STM32的CAN FD位定时设置注意事项
5.28日学习打卡