
2 Dec
2015
2 Dec
'15
5 p.m.
On 12/01/2015 10:38 PM, Hou Zhiqiang-B48286 wrote:
<snip>
/* Invalidate all table entries */ memset(level0_table, 0, PGTABLE_SIZE); @@ -269,6 +344,22 @@ static inline void final_mmu_setup(void) &final_mmu_table[i]); } }
- /* Set the secure memory to secure in MMU */ #ifdef
+CONFIG_SYS_MEM_RESERVE_SECURE
- if (gd->secure_ram & MEM_RESERVE_SECURE_MAINTAINED) { #ifdef
+CONFIG_FSL_LSCH3
level2_table_secure = level2_table1 + 512; #elif
+defined(CONFIG_FSL_LSCH2)
level2_table_secure = level2_table2 + 512; #endif
/* update tlb pointer */
gd->arch.tlb_addr = gd->secure_ram & ~0x3;
The memory reserved for mmu table was lost? If it's better to record it and use for non-sec mmu table?
That can be arranged.
If this func is called from non-secure state, for example EL2, the secure memory cannot be accessed and the PMD_SECT_NS bit should be cleared.
We need to setup secure memory at EL3 to have secure memory to begin with. But you have a point here. Will look into it.
York