mFrame
|
Memory Block Checker(MBC) 更多...
#include <Register.h>
公開屬性 | ||
struct { | ||
__IO uint32 mbc_mem_glbcfg [4] | ||
__IO uint32 mbc_nse_blk_index | ||
__O uint32 mbc_nse_blk_set | ||
__O uint32 mbc_nse_blk_clr | ||
__O uint32 mbc_nse_blk_clr_all | ||
__IO uint32 mbc_memn_glbac [8] | ||
__IO uint32 mbc_dom0_mem0_blk_cfg_w [2] | ||
uint8 reserved_0 [248] | ||
__IO uint32 mbc_dom0_mem0_blk_nse_w [1] | ||
uint8 reserved_1 [60] | ||
__IO uint32 mbc_dom0_mem1_blk_cfg_w [1] | ||
uint8 reserved_2 [28] | ||
__IO uint32 mbc_dom0_mem1_blk_nse_w [1] | ||
uint8 reserved_3 [4] | ||
__IO uint32 mbc_dom0_mem2_blk_cfg_w [1] | ||
uint8 reserved_4 [28] | ||
__IO uint32 mbc_dom0_mem2_blk_nse_w [1] | ||
} | mbc_index [1] | |
Memory Block Checker(MBC)
該晶片上有1個MBC模組和1個Domain。MBCm_DOMd_BLK_CFG_W中的m和d為0。快閃記憶體控制器(FMC)和AHB 矩陣之間。 MBC可以控制每個flash的讀取、寫入、執行權限區塊,並且可以鎖定配置。
MBC的粒徑如下表所示。
當有對Flash的存取時,該晶片上的MBC無法區分安全權限、安全用戶、非安全權限和非安全用戶,且MBC將 所有對Flash的存取視為安全用戶等級。因此,MBC 全域存取控制暫存器中的 SUR/SUW/SUW 位元控制著快 閃記憶體的權限。使用者不應設定 MBC 全域存取控制暫存器中的非安全性啟用 (NSE) 位元。
MBC控制對Flash的讀取、寫入和執行權限。如果存取沒有對快閃記憶體區域的權限,MBC 將產生中斷。 DomainX錯誤暫存器物理上位於區塊檢查器中。
記憶體區塊檢查器(MBC)基於固定大小的區塊格式實現片上內部記憶體的存取控制。MBC為針對片上儲存空間 的系統匯流排引用提供硬體存取控制。
MBC 使用具有固定大小區塊格式的預先編程區域描述符及其相關存取權限,同時監視系統匯流排事務並評估 每次傳輸的適當性。具有足夠存取控制權限的記憶體參考已完成,而未對應到任何區域描述符或權限不足的 參考則以存取錯誤回應終止。
記憶體區塊檢查器 (MBC) 基於固定大小的區塊格式實現片上內部記憶體和從屬週邊裝置的存取控制。
定義對片上記憶體 MBC 中定義的從屬目標的存取權限。
本節提供有關 MBC 的操作和實施的更多詳細資訊。
記憶體區塊檢查器為針對片上內部記憶體的系統匯流排引用提供存取控制。 MBC 使用定義每個區塊存取 權限的程式區塊配置暫存器,同時監視系統匯流排事務並評估每次傳輸的適當性。允許具有足夠存取權限 的記憶體引用完成,而沒有足夠權限的引用則以存取錯誤回應終止。
請參閱特定於晶片的部分,以確定該裝置支援的每個子記憶體的區塊數量和大小。每個MBCm_DOMd_BLK_CFG_W 包含八個存取控制結構。每個結構由 3 位 MBACSEL(記憶體區塊存取控制選擇)組成。 MBACSEL 欄位選擇 MBCm_MEMN_GLBACr 暫存器,該暫存器控制對相應區塊的讀取/寫入/執行/鎖定存取。下表提供了八種可能的 存取控制組合。
如果您正在尋找不同的存取組合,例如允許寫入和執行但阻止讀取,您可以修改未鎖定的設定寄存器之一 (MBC0_MEMN_GLBAC0 或 MBC0_MEMN_GLBAC4 或 MBC0_MEMN_GLBAC5)至 0x0000_3300
__IO uint32 chip::trdc::Register::mbc_dom0_mem0_blk_cfg_w[2] |
MBC Memory Block Configuration Word, array offset: 0x40, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_dom0_mem0_blk_nse_w[1] |
MBC Memory Block NonSecure Enable Word, array offset: 0x140, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_dom0_mem1_blk_cfg_w[1] |
MBC Memory Block Configuration Word, array offset: 0x180, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_dom0_mem1_blk_nse_w[1] |
MBC Memory Block NonSecure Enable Word, array offset: 0x1A0, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_dom0_mem2_blk_cfg_w[1] |
MBC Memory Block Configuration Word, array offset: 0x1A8, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_dom0_mem2_blk_nse_w[1] |
MBC Memory Block NonSecure Enable Word, array offset: 0x1C8, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_mem_glbcfg[4] |
MBC Global Configuration Register, array offset: 0x0, array step: index*0x1CC, index2*0x4
__IO uint32 chip::trdc::Register::mbc_memn_glbac[8] |
MBC Global Access Control, array offset: 0x20, array step: index*0x1CC, index2*0x4
__O uint32 chip::trdc::Register::mbc_nse_blk_clr |
MBC NonSecure Enable Block Clear, array offset: 0x18, array step: 0x1CC
__O uint32 chip::trdc::Register::mbc_nse_blk_clr_all |
MBC NonSecure Enable Block Clear All, array offset: 0x1C, array step: 0x1CC
__IO uint32 chip::trdc::Register::mbc_nse_blk_index |
MBC NonSecure Enable Block Index, array offset: 0x10, array step: 0x1CC
__O uint32 chip::trdc::Register::mbc_nse_blk_set |
MBC NonSecure Enable Block Set, array offset: 0x14, array step: 0x1CC