module ti.sysbios.hal.ammu.AMMU

Attribute MMU configuration module

Responsible for initializing the Attribute MMU [ more ... ]
C synopsis target-domain sourced in ti/sysbios/hal/ammu/AMMU.xdc
DETAILS
Responsible for initializing the Attribute MMU
RESTRICTIONS
When used within a dual M3 core (Ducati) arrangement, care must be taken when initializing this shared resource. The "Shared Resources" note provided in the ducati package discusses the management of the various hardware and software resources shared by the two M3 cores.
As the AMMU is shared between the two M3 cores, it should only be initialized and enabled once. It is intended that Core 0 will configure the AMMU at startup.
 
struct AMMU_MMU
C synopsis target-domain
typedef struct AMMU_MMU {
    Char *LARGE_ADDR[8];
    Char *LARGE_XLTE[8];
    UInt32 LARGE_POLICY[8];
    Char *MEDIUM_ADDR[16];
    Char *MEDIUM_XLTE[16];
    UInt32 MEDIUM_POLICY[16];
    Char *SMALL_ADDR[32];
    Char *SMALL_XLTE[32];
    UInt32 SMALL_POLICY[32];
    UInt32 SMALL_MAINT[32];
    Char *LINE_ADDR[32];
    Char *LINE_XLTE[32];
    UInt32 LINE_POLICY[32];
    Char *DEBUG_XLTE;
    UInt32 DEBUG_POLICY;
    UInt32 MAINT;
    Char *MSTART;
    Char *MEND;
    UInt32 MSTAT;
} AMMU_MMU;
 
 
config AMMU_configureAmmu  // module-wide

By default the AMMU module will configure the AMMU at startup

C synopsis target-domain
extern const Bool AMMU_configureAmmu;
 
DETAILS
By setting this flag to false (ie for Ducati core1), the AMMU module APIs are available but the initialization step is suppressed.
 
AMMU_invAll()  // module-wide

Invalidate entire L1 and L2 caches Waits for completion

C synopsis target-domain
Void AMMU_invAll();
 
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId AMMU_Module_id();
// Get this module's unique id
 
Bool AMMU_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle AMMU_Module_heap();
// The heap from which this module allocates memory
 
Bool AMMU_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 AMMU_Module_getMask();
// Returns the diagnostics mask for this module
 
Void AMMU_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
XDCscript usage meta-domain sourced in ti/sysbios/hal/ammu/AMMU.xdc
var AMMU = xdc.useModule('ti.sysbios.hal.ammu.AMMU');
module-wide constants & types
    values of type AMMU.AllocatePolicy// 
        const AMMU.AllocatePolicy_NON_ALLOCATE;
        const AMMU.AllocatePolicy_ALLOCATE;
 
    values of type AMMU.CachePolicy// 
        const AMMU.CachePolicy_NON_CACHEABLE;
        const AMMU.CachePolicy_CACHEABLE;
 
    values of type AMMU.Clean// 
        const AMMU.DO_NOT_CLEAN;
        const AMMU.CLEAN;
 
    values of type AMMU.Enable// 
        const AMMU.Enable_NO;
        const AMMU.Enable_YES;
 
    values of type AMMU.Invalidate// 
        const AMMU.DO_NOT_INVALIDATE;
        const AMMU.INVALIDATE;
 
    values of type AMMU.Large// 
        const AMMU.Large_2M;
        const AMMU.Large_4M;
        const AMMU.Large_8M;
        const AMMU.Large_16M;
        const AMMU.Large_32M;
        const AMMU.Large_64M;
        const AMMU.Large_128M;
        const AMMU.Large_256M;
        const AMMU.Large_512M;
 
    values of type AMMU.Lock// 
        const AMMU.DO_NOT_LOCK;
        const AMMU.LOCK;
 
    values of type AMMU.Maintenance// 
        const AMMU.DO_NOT_PERFORM;
        const AMMU.PERFORM;
 
    values of type AMMU.Medium// 
        const AMMU.Medium_128K;
        const AMMU.Medium_256K;
        const AMMU.Medium_512K;
        const AMMU.Medium_1M;
 
    values of type AMMU.PostedPolicy// 
        const AMMU.PostedPolicy_NON_POSTED;
        const AMMU.PostedPolicy_POSTED;
 
    values of type AMMU.Small// 
        const AMMU.Small_4K;
        const AMMU.Small_8K;
        const AMMU.Small_16K;
        const AMMU.Small_32K;
 
    values of type AMMU.Unlock// 
        const AMMU.DO_NOT_UNLOCK;
        const AMMU.UNLOCK;
 
    values of type AMMU.Volatile// 
        const AMMU.Volatile_DO_NOT_FOLLOW;
        const AMMU.Volatile_FOLLOW;
 
    values of type AMMU.WritePolicy// 
        const AMMU.WritePolicy_WRITE_THROUGH;
        const AMMU.WritePolicy_WRITE_BACK;
 
    var obj = new AMMU.DebugPage// ;
        obj.pageEnabled = AMMU.Enable  ...
        obj.translationEnabled = AMMU.Enable  ...
        obj.translatedAddress = Ptr  ...
 
    var obj = new AMMU.LargePage// ;
        obj.pageEnabled = AMMU.Enable  ...
        obj.logicalAddress = Ptr  ...
        obj.translationEnabled = AMMU.Enable  ...
        obj.translatedAddress = Ptr  ...
        obj.size = AMMU.Large  ...
        obj.volatileQualifier = AMMU.Volatile  ...
        obj.executeOnly = AMMU.Enable  ...
        obj.readOnly = AMMU.Enable  ...
        obj.prefetch = AMMU.Enable  ...
        obj.exclusion = AMMU.Enable  ...
        obj.L1_cacheable = AMMU.CachePolicy  ...
        obj.L1_posted = AMMU.PostedPolicy  ...
        obj.L1_allocate = AMMU.AllocatePolicy  ...
        obj.L1_writePolicy = AMMU.WritePolicy  ...
        obj.L2_cacheable = AMMU.CachePolicy  ...
        obj.L2_posted = AMMU.PostedPolicy  ...
        obj.L2_allocate = AMMU.AllocatePolicy  ...
        obj.L2_writePolicy = AMMU.WritePolicy  ...
 
    var obj = new AMMU.LinePage// ;
        obj.pageEnabled = AMMU.Enable  ...
        obj.logicalAddress = Ptr  ...
        obj.translationEnabled = AMMU.Enable  ...
        obj.translatedAddress = Ptr  ...
 
    var obj = new AMMU.MMU// ;
        obj.LARGE_ADDR = Char*[8]  ...
        obj.LARGE_XLTE = Char*[8]  ...
        obj.LARGE_POLICY = UInt32[8]  ...
        obj.MEDIUM_ADDR = Char*[16]  ...
        obj.MEDIUM_XLTE = Char*[16]  ...
        obj.MEDIUM_POLICY = UInt32[16]  ...
        obj.SMALL_ADDR = Char*[32]  ...
        obj.SMALL_XLTE = Char*[32]  ...
        obj.SMALL_POLICY = UInt32[32]  ...
        obj.SMALL_MAINT = UInt32[32]  ...
        obj.LINE_ADDR = Char*[32]  ...
        obj.LINE_XLTE = Char*[32]  ...
        obj.LINE_POLICY = UInt32[32]  ...
        obj.DEBUG_XLTE = Char*  ...
        obj.DEBUG_POLICY = UInt32  ...
        obj.MAINT = UInt32  ...
        obj.MSTART = Char*  ...
        obj.MEND = Char*  ...
        obj.MSTAT = UInt32  ...
 
    var obj = new AMMU.MediumPage// ;
        obj.pageEnabled = AMMU.Enable  ...
        obj.logicalAddress = Ptr  ...
        obj.translationEnabled = AMMU.Enable  ...
        obj.translatedAddress = Ptr  ...
        obj.size = AMMU.Medium  ...
        obj.volatileQualifier = AMMU.Volatile  ...
        obj.executeOnly = AMMU.Enable  ...
        obj.readOnly = AMMU.Enable  ...
        obj.prefetch = AMMU.Enable  ...
        obj.exclusion = AMMU.Enable  ...
        obj.L1_cacheable = AMMU.CachePolicy  ...
        obj.L1_posted = AMMU.PostedPolicy  ...
        obj.L1_allocate = AMMU.AllocatePolicy  ...
        obj.L1_writePolicy = AMMU.WritePolicy  ...
        obj.L2_cacheable = AMMU.CachePolicy  ...
        obj.L2_posted = AMMU.PostedPolicy  ...
        obj.L2_allocate = AMMU.AllocatePolicy  ...
        obj.L2_writePolicy = AMMU.WritePolicy  ...
 
    var obj = new AMMU.SmallPage// ;
        obj.pageEnabled = AMMU.Enable  ...
        obj.logicalAddress = Ptr  ...
        obj.translationEnabled = AMMU.Enable  ...
        obj.translatedAddress = Ptr  ...
        obj.size = AMMU.Small  ...
        obj.volatileQualifier = AMMU.Volatile  ...
        obj.executeOnly = AMMU.Enable  ...
        obj.readOnly = AMMU.Enable  ...
        obj.prefetch = AMMU.Enable  ...
        obj.exclusion = AMMU.Enable  ...
        obj.L1_cacheable = AMMU.CachePolicy  ...
        obj.L1_posted = AMMU.PostedPolicy  ...
        obj.L1_allocate = AMMU.AllocatePolicy  ...
        obj.L1_writePolicy = AMMU.WritePolicy  ...
        obj.L2_cacheable = AMMU.CachePolicy  ...
        obj.L2_posted = AMMU.PostedPolicy  ...
        obj.L2_allocate = AMMU.AllocatePolicy  ...
        obj.L2_writePolicy = AMMU.WritePolicy  ...
 
    var obj = new AMMU.SmallPageMaintenance// ;
        obj.maintL2Cache = AMMU.Maintenance  ...
        obj.maintL1Cache2 = AMMU.Maintenance  ...
        obj.maintL1Cache1 = AMMU.Maintenance  ...
        obj.cpuInterrupt = AMMU.Enable  ...
        obj.hostInterrupt = AMMU.Enable  ...
        obj.invalidate = AMMU.Invalidate  ...
        obj.clean = AMMU.Clean  ...
        obj.unlock = AMMU.Unlock  ...
        obj.lock = AMMU.Lock  ...
        obj.preload = AMMU.Enable  ...
module-wide config parameters
 
    AMMU.debugPage//  = AMMU.DebugPage undefined;
 
 
metaonly enum AMMU.AllocatePolicy
XDCscript usage meta-domain
values of type AMMU.AllocatePolicy
    const AMMU.AllocatePolicy_NON_ALLOCATE;
    const AMMU.AllocatePolicy_ALLOCATE;
 
 
metaonly enum AMMU.CachePolicy
XDCscript usage meta-domain
values of type AMMU.CachePolicy
    const AMMU.CachePolicy_NON_CACHEABLE;
    const AMMU.CachePolicy_CACHEABLE;
 
 
metaonly enum AMMU.Clean
XDCscript usage meta-domain
values of type AMMU.Clean
    const AMMU.DO_NOT_CLEAN;
    const AMMU.CLEAN;
 
 
metaonly enum AMMU.Enable
XDCscript usage meta-domain
values of type AMMU.Enable
    const AMMU.Enable_NO;
    const AMMU.Enable_YES;
 
 
metaonly enum AMMU.Invalidate
XDCscript usage meta-domain
values of type AMMU.Invalidate
    const AMMU.DO_NOT_INVALIDATE;
    const AMMU.INVALIDATE;
 
 
metaonly enum AMMU.Large
XDCscript usage meta-domain
values of type AMMU.Large
    const AMMU.Large_2M;
    const AMMU.Large_4M;
    const AMMU.Large_8M;
    const AMMU.Large_16M;
    const AMMU.Large_32M;
    const AMMU.Large_64M;
    const AMMU.Large_128M;
    const AMMU.Large_256M;
    const AMMU.Large_512M;
 
 
metaonly enum AMMU.Lock
XDCscript usage meta-domain
values of type AMMU.Lock
    const AMMU.DO_NOT_LOCK;
    const AMMU.LOCK;
 
 
metaonly enum AMMU.Maintenance
XDCscript usage meta-domain
values of type AMMU.Maintenance
    const AMMU.DO_NOT_PERFORM;
    const AMMU.PERFORM;
 
 
metaonly enum AMMU.Medium
XDCscript usage meta-domain
values of type AMMU.Medium
    const AMMU.Medium_128K;
    const AMMU.Medium_256K;
    const AMMU.Medium_512K;
    const AMMU.Medium_1M;
 
 
metaonly enum AMMU.PostedPolicy
XDCscript usage meta-domain
values of type AMMU.PostedPolicy
    const AMMU.PostedPolicy_NON_POSTED;
    const AMMU.PostedPolicy_POSTED;
 
 
metaonly enum AMMU.Small
XDCscript usage meta-domain
values of type AMMU.Small
    const AMMU.Small_4K;
    const AMMU.Small_8K;
    const AMMU.Small_16K;
    const AMMU.Small_32K;
 
 
metaonly enum AMMU.Unlock
XDCscript usage meta-domain
values of type AMMU.Unlock
    const AMMU.DO_NOT_UNLOCK;
    const AMMU.UNLOCK;
 
 
metaonly enum AMMU.Volatile
XDCscript usage meta-domain
values of type AMMU.Volatile
    const AMMU.Volatile_DO_NOT_FOLLOW;
    const AMMU.Volatile_FOLLOW;
 
 
metaonly enum AMMU.WritePolicy
XDCscript usage meta-domain
values of type AMMU.WritePolicy
    const AMMU.WritePolicy_WRITE_THROUGH;
    const AMMU.WritePolicy_WRITE_BACK;
 
 
metaonly struct AMMU.DebugPage
XDCscript usage meta-domain
var obj = new AMMU.DebugPage;
 
    obj.pageEnabled = AMMU.Enable  ...
    obj.translationEnabled = AMMU.Enable  ...
    obj.translatedAddress = Ptr  ...
 
 
metaonly struct AMMU.LargePage
XDCscript usage meta-domain
var obj = new AMMU.LargePage;
 
    obj.pageEnabled = AMMU.Enable  ...
    obj.logicalAddress = Ptr  ...
    obj.translationEnabled = AMMU.Enable  ...
    obj.translatedAddress = Ptr  ...
    obj.size = AMMU.Large  ...
    obj.volatileQualifier = AMMU.Volatile  ...
    obj.executeOnly = AMMU.Enable  ...
    obj.readOnly = AMMU.Enable  ...
    obj.prefetch = AMMU.Enable  ...
    obj.exclusion = AMMU.Enable  ...
    obj.L1_cacheable = AMMU.CachePolicy  ...
    obj.L1_posted = AMMU.PostedPolicy  ...
    obj.L1_allocate = AMMU.AllocatePolicy  ...
    obj.L1_writePolicy = AMMU.WritePolicy  ...
    obj.L2_cacheable = AMMU.CachePolicy  ...
    obj.L2_posted = AMMU.PostedPolicy  ...
    obj.L2_allocate = AMMU.AllocatePolicy  ...
    obj.L2_writePolicy = AMMU.WritePolicy  ...
 
 
metaonly struct AMMU.LinePage
XDCscript usage meta-domain
var obj = new AMMU.LinePage;
 
    obj.pageEnabled = AMMU.Enable  ...
    obj.logicalAddress = Ptr  ...
    obj.translationEnabled = AMMU.Enable  ...
    obj.translatedAddress = Ptr  ...
 
 
struct AMMU.MMU
XDCscript usage meta-domain
var obj = new AMMU.MMU;
 
    obj.LARGE_ADDR = Char*[8]  ...
    obj.LARGE_XLTE = Char*[8]  ...
    obj.LARGE_POLICY = UInt32[8]  ...
    obj.MEDIUM_ADDR = Char*[16]  ...
    obj.MEDIUM_XLTE = Char*[16]  ...
    obj.MEDIUM_POLICY = UInt32[16]  ...
    obj.SMALL_ADDR = Char*[32]  ...
    obj.SMALL_XLTE = Char*[32]  ...
    obj.SMALL_POLICY = UInt32[32]  ...
    obj.SMALL_MAINT = UInt32[32]  ...
    obj.LINE_ADDR = Char*[32]  ...
    obj.LINE_XLTE = Char*[32]  ...
    obj.LINE_POLICY = UInt32[32]  ...
    obj.DEBUG_XLTE = Char*  ...
    obj.DEBUG_POLICY = UInt32  ...
    obj.MAINT = UInt32  ...
    obj.MSTART = Char*  ...
    obj.MEND = Char*  ...
    obj.MSTAT = UInt32  ...
 
C SYNOPSIS
 
metaonly struct AMMU.MediumPage
XDCscript usage meta-domain
var obj = new AMMU.MediumPage;
 
    obj.pageEnabled = AMMU.Enable  ...
    obj.logicalAddress = Ptr  ...
    obj.translationEnabled = AMMU.Enable  ...
    obj.translatedAddress = Ptr  ...
    obj.size = AMMU.Medium  ...
    obj.volatileQualifier = AMMU.Volatile  ...
    obj.executeOnly = AMMU.Enable  ...
    obj.readOnly = AMMU.Enable  ...
    obj.prefetch = AMMU.Enable  ...
    obj.exclusion = AMMU.Enable  ...
    obj.L1_cacheable = AMMU.CachePolicy  ...
    obj.L1_posted = AMMU.PostedPolicy  ...
    obj.L1_allocate = AMMU.AllocatePolicy  ...
    obj.L1_writePolicy = AMMU.WritePolicy  ...
    obj.L2_cacheable = AMMU.CachePolicy  ...
    obj.L2_posted = AMMU.PostedPolicy  ...
    obj.L2_allocate = AMMU.AllocatePolicy  ...
    obj.L2_writePolicy = AMMU.WritePolicy  ...
 
 
metaonly struct AMMU.SmallPage
XDCscript usage meta-domain
var obj = new AMMU.SmallPage;
 
    obj.pageEnabled = AMMU.Enable  ...
    obj.logicalAddress = Ptr  ...
    obj.translationEnabled = AMMU.Enable  ...
    obj.translatedAddress = Ptr  ...
    obj.size = AMMU.Small  ...
    obj.volatileQualifier = AMMU.Volatile  ...
    obj.executeOnly = AMMU.Enable  ...
    obj.readOnly = AMMU.Enable  ...
    obj.prefetch = AMMU.Enable  ...
    obj.exclusion = AMMU.Enable  ...
    obj.L1_cacheable = AMMU.CachePolicy  ...
    obj.L1_posted = AMMU.PostedPolicy  ...
    obj.L1_allocate = AMMU.AllocatePolicy  ...
    obj.L1_writePolicy = AMMU.WritePolicy  ...
    obj.L2_cacheable = AMMU.CachePolicy  ...
    obj.L2_posted = AMMU.PostedPolicy  ...
    obj.L2_allocate = AMMU.AllocatePolicy  ...
    obj.L2_writePolicy = AMMU.WritePolicy  ...
 
 
metaonly struct AMMU.SmallPageMaintenance
XDCscript usage meta-domain
var obj = new AMMU.SmallPageMaintenance;
 
    obj.maintL2Cache = AMMU.Maintenance  ...
    obj.maintL1Cache2 = AMMU.Maintenance  ...
    obj.maintL1Cache1 = AMMU.Maintenance  ...
    obj.cpuInterrupt = AMMU.Enable  ...
    obj.hostInterrupt = AMMU.Enable  ...
    obj.invalidate = AMMU.Invalidate  ...
    obj.clean = AMMU.Clean  ...
    obj.unlock = AMMU.Unlock  ...
    obj.lock = AMMU.Lock  ...
    obj.preload = AMMU.Enable  ...
 
 
config AMMU.configureAmmu  // module-wide

By default the AMMU module will configure the AMMU at startup

XDCscript usage meta-domain
AMMU.configureAmmu = Bool true;
 
DETAILS
By setting this flag to false (ie for Ducati core1), the AMMU module APIs are available but the initialization step is suppressed.
C SYNOPSIS
 
metaonly config AMMU.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
AMMU.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
 
metaonly config AMMU.debugPage  // module-wide
XDCscript usage meta-domain
AMMU.debugPage = AMMU.DebugPage undefined;
 
 
metaonly config AMMU.largePages  // module-wide

The number of Large Page Desciptors is target/device specific

XDCscript usage meta-domain
AMMU.largePages = AMMU.LargePage[] [ ];
 
 
metaonly config AMMU.linePages  // module-wide

The number of Line Page Desciptors is target/device specific

XDCscript usage meta-domain
AMMU.linePages = AMMU.LinePage[] [ ];
 
 
metaonly config AMMU.mediumPages  // module-wide

The number of Medium Page Desciptors is target/device specific

XDCscript usage meta-domain
AMMU.mediumPages = AMMU.MediumPage[] [ ];
 
 
metaonly config AMMU.smallPages  // module-wide

The number of Small Page Desciptors is target/device specific

XDCscript usage meta-domain
AMMU.smallPages = AMMU.SmallPage[] [ ];
 
generated on Thu, 01 Mar 2012 16:56:49 GMT