module ti.sysbios.family.arm.ducati.omap4430.Power

Power support for Ducati on OMAP4430

C synopsis target-domain sourced in ti/sysbios/family/arm/ducati/omap4430/Power.xdc
#include <ti/sysbios/family/arm/ducati/omap4430/Power.h>
Functions
Void 
UInt 
Functions common to all target modules
Defines
#define
Typedefs
typedef struct
typedef Void 
Constants
extern const Bool 
extern const UInt 
extern const Ptr 
 
 
const Power_L2RAM

Physical address of L2 RAM

C synopsis target-domain
#define Power_L2RAM (Ptr)0x55020000
 
 
typedef Power_SuspendFuncHookPtr

Suspend function hook

C synopsis target-domain
typedef Void (*Power_SuspendFuncHookPtr)();
 
 
struct Power_SuspendArgs

Suspend arguments structure

C synopsis target-domain
typedef struct Power_SuspendArgs {
    Bool pmMasterCore;
    // Master core for suspend/resume?
    Bool rendezvousResume;
    // Rendezvous before resume?
    Int dmaChannel;
    // SDMA channel for L2 RAM save; -1=CPU copy
    UInt intMask31_0;
    // Mask of interrupts (31-0) able to wake WFI
    UInt intMask63_32;
    // Mask of interrupts (63-32) able to wake WFI
    UInt intMask79_64;
    // Mask of interrupts (79-64) able to wake WFI
} Power_SuspendArgs;
 
 
config Power_idle  // module-wide

Idle the CPU when threads blocked waiting for an interrupt?

C synopsis target-domain
extern const Bool Power_idle;
 
 
config Power_postSuspendHooks  // module-wide

Post-suspend function hooks. Called on Core 0 (only), after context restore, immediately before returning from suspend

C synopsis target-domain
extern const Power_SuspendFuncHookPtr Power_postSuspendHooks[length];
 
DETAILS
To configure a function to run as Post suspend hook, add a statement like the following to the application configuration script:
  Power.postSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
 
config Power_preSuspendHooks  // module-wide

Pre-suspend function hooks. Called on Core 0 (only), before beginning context save

C synopsis target-domain
extern const Power_SuspendFuncHookPtr Power_preSuspendHooks[length];
 
DETAILS
To configure a function to run as Pre suspend hook, add a statement like the following to the application configuration script:
  Power.preSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
 
config Power_rendezvousGateIndex  // module-wide

Rendezvous Gate index

C synopsis target-domain
extern const UInt Power_rendezvousGateIndex;
 
 
config Power_sdmaRegs  // module-wide

Base address of SDMA registers

C synopsis target-domain
extern const Ptr Power_sdmaRegs;
 
 
Power_idleCPU()  // module-wide

Function used to automatically idle the CPU in the Idle loop

C synopsis target-domain
Void Power_idleCPU();
 
DETAILS
When the 'idle' configuration parameter is set, this function will be added to the list of Idle loop functions. When called from the Idle loop, it will invoke the wait for interrupt (WFI) instruction, to idle the CPU until the next interrupt occurs.
 
Power_suspend()  // module-wide

Function used for suspend/resume of the M3 cores

C synopsis target-domain
UInt Power_suspend(Power_SuspendArgs *args);
 
DETAILS
Precondition and usage constraints:
1) Before this function is called the application must disable all interrupts that are not desired to wake the CPU from WFI while waiting for the core domain to go off.
2) For those interrupts that are desired to wake the CPU from WFI (for example, the mailbox interrupt), these interrupts cannot be generated until the Power_suspend API has reached the point of executing WFI. If the interrupts happen early, while this API is saving context, the resulting context may be stale, and the application may not resume correctly. Two global flags (one for each M3 core) are assert immediately before invoking WFI; the wakeup interrupts should not be asserted until these flags are asserted (non-zero): ti_sysbios_family_arm_ducati_omap4430_readyIdleCore0 ti_sysbios_family_arm_ducati_omap4430_readyIdleCore1
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId Power_Module_id();
// Get this module's unique id
 
Bool Power_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle Power_Module_heap();
// The heap from which this module allocates memory
 
Bool Power_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 Power_Module_getMask();
// Returns the diagnostics mask for this module
 
Void Power_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
Configuration settings sourced in ti/sysbios/family/arm/ducati/omap4430/Power.xdc
var Power = xdc.useModule('ti.sysbios.family.arm.ducati.omap4430.Power');
module-wide constants & types
    const Power.L2RAM// Physical address of L2 RAM = 0x55020000;
 
        obj.pmMasterCore// Master core for suspend/resume? = Bool  ...
        obj.rendezvousResume// Rendezvous before resume? = Bool  ...
module-wide config parameters
 
 
 
const Power.L2RAM

Physical address of L2 RAM

Configuration settings
const Power.L2RAM = 0x55020000;
 
C SYNOPSIS
 
struct Power.SuspendArgs

Suspend arguments structure

Configuration settings
var obj = new Power.SuspendArgs;
 
    obj.pmMasterCore = Bool  ...
    // Master core for suspend/resume?
    obj.rendezvousResume = Bool  ...
    // Rendezvous before resume?
    obj.dmaChannel = Int  ...
    // SDMA channel for L2 RAM save; -1=CPU copy
    obj.intMask31_0 = UInt  ...
    // Mask of interrupts (31-0) able to wake WFI
    obj.intMask63_32 = UInt  ...
    // Mask of interrupts (63-32) able to wake WFI
    obj.intMask79_64 = UInt  ...
    // Mask of interrupts (79-64) able to wake WFI
 
C SYNOPSIS
 
config Power.idle  // module-wide

Idle the CPU when threads blocked waiting for an interrupt?

Configuration settings
Power.idle = Bool false;
 
C SYNOPSIS
 
config Power.postSuspendHooks  // module-wide

Post-suspend function hooks. Called on Core 0 (only), after context restore, immediately before returning from suspend

Configuration settings
Power.postSuspendHooks = Power.SuspendFuncHookPtr[length] [ ];
 
DETAILS
To configure a function to run as Post suspend hook, add a statement like the following to the application configuration script:
  Power.postSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
C SYNOPSIS
 
config Power.preSuspendHooks  // module-wide

Pre-suspend function hooks. Called on Core 0 (only), before beginning context save

Configuration settings
Power.preSuspendHooks = Power.SuspendFuncHookPtr[length] [ ];
 
DETAILS
To configure a function to run as Pre suspend hook, add a statement like the following to the application configuration script:
  Power.preSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
C SYNOPSIS
 
config Power.rendezvousGateIndex  // module-wide

Rendezvous Gate index

Configuration settings
Power.rendezvousGateIndex = UInt 1;
 
C SYNOPSIS
 
config Power.sdmaRegs  // module-wide

Base address of SDMA registers

Configuration settings
Power.sdmaRegs = Ptr 0x4A056000;
 
C SYNOPSIS
 
metaonly config Power.common$  // module-wide

Common module configuration parameters

Configuration settings
Power.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 Power.loadSegment  // module-wide

Segment to load Power's shared reset code and data

Configuration settings
Power.loadSegment = String "EXT_SHARED_RAM";
 
generated on Thu, 23 May 2019 00:22:47 GMT