PMU firmware consists of the following modules:
- Error Management (EM)
- Power Management (PM)
- Scheduler
- Software Test Library (STL)
PMU firmware has a module data structure (XPfw_Module_t) which contains the information about the module. This data structure is defined for each module when the module is created. The following table shows its members.
Member | Range | Additional Information |
---|---|---|
ModId | 0.. 31 | |
CfgInitHandler | Init handler function pointer | Default to NULL |
IpiHandler | Handler for IPI manager | Default to NULL |
EventHandler | Handler for registered events of the module | Default to NULL |
IpiId | 16-bit IPI ID | Unique to each module |
PMU firmware also has a core data structure which contains the list and the details of all modules. The following table shows its members.
Member | Range | Additional Information |
---|---|---|
ModList array | 0.. 31 | Module list array (of 32 elements) of Module structure |
Scheduler | Scheduler structure | Scheduler task owned by the module |
ModCount | 0.. 31 | |
IsReady | Core is ready/dead | |
Mode | Safety Diagnostics mode/Normal mode |
Base PMU firmware supports a few APIs that are used by these modules. Also, if you want to create a custom module, these APIs can be used from xpfw_core.h.