diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-C92CC81A-35A1-5860-AA08-C8C08B39804C.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-C92CC81A-35A1-5860-AA08-C8C08B39804C.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,96 @@ + + + + + +Boot +Table MMU Permission and Cache Attribute DefinitionsLists MMU attributes that the bootstrap implementation must provide. +

The definitions are summarised in the following table. Each entry type +is identified by its TBootTableEntry enumerator value that +defines its position within the table. This group of entries always follows +the function entries.

+ + + + +

Enumerator symbol

+

Summary description

+
+ +

BTP_Rom

+

Defines permissions for XIP ROM areas, including RAM used as ROM.

+
+ +

BTP_Kernel

+

Defines permissions for kernel data, initial kernel stack and initial +kernel heap.

+
+ +

BTP_SuperCPU

+

Defines permissions for super page and CPU page.

+
+ +

BTP_PageTable

+

Defines permissions for page directory and page tables.

+
+ +

BTP_Vector

+

Defines permissions for ARM exception vector mapping.

+
+ +

BTP_Hw

+

Defines permissions for I/O mappings.

+
+ +

BTP_MiniCache

+

Defines permissions for mini cache flush area, if required.

+
+ +

BTP_MainCache

+

Defines permissions for main cache flush area, if required.

+
+ +

BTP_PtInfo

+

Defines permissions for page table info and, for the multiple memory +model, ASID info.

+
+ +

BTP_User

+

Defines permissions for user memory area in direct memory model.

+
+ +

BTP_Temp

+

Defines permissions for temporary identity mapping of code while +enabling MMU.

+
+ +

BTP_Uncached

+

Defines permissions for dummy uncached area mapping on moving or +multiple model and for identity RAM mapping on direct memory model.

+
+ + +
+

Each entry is defined using the BTP_ENTRY macro. See this macro for a detailed description of the syntax and meanings.

+

Take the template port, in os/kernelhwsrv/bsptemplate/asspandvariant/template_variant/bootstrap/template.s as +an example. The first two entries, at position BTP_Rom and +position BTP_Kernel in the boot table, follow the last function +entry at position BTF_EnableMMU within +the table. This gives the following code:

+BootTable + DCD DoWriteC ; output a debug character + ... + +IF CFG_MMUPresent + + BTP_ENTRY CLIENT_DOMAIN, PERM_RORO, CACHE_WTRA, 0 ; ROM + BTP_ENTRY CLIENT_DOMAIN, PERM_RWNO, CACHE_WBRA, 0 ; kernel data/stack/heap + ... + +
\ No newline at end of file