![]() |
ipipsu
Xilinx SDK Drivers API Documentation
|
Data Structures | |
| struct | XIpiPsu_Target |
| Data structure used to refer IPI Targets. More... | |
| struct | XIpiPsu_Config |
| This typedef contains configuration information for the device. More... | |
| struct | XIpiPsu |
| The XIpiPsu driver instance data. More... | |
Macros | |
| #define | XIpiPsu_ReadReg(BaseAddress, RegOffset) Xil_In32((BaseAddress) + (RegOffset)) |
| Read the register specified by the base address and offset. More... | |
| #define | XIpiPsu_WriteReg(BaseAddress, RegOffset, Data) Xil_Out32(((BaseAddress) + (RegOffset)), (Data)) |
| Write a value into a register specified by base address and offset. More... | |
| #define | XIpiPsu_InterruptEnable(InstancePtr, Mask) |
| Enable interrupts specified in Mask. More... | |
| #define | XIpiPsu_InterruptDisable(InstancePtr, Mask) |
| Disable interrupts specified in Mask. More... | |
| #define | XIpiPsu_GetInterruptStatus(InstancePtr) |
| Get the STATUS REGISTER of the current IPI instance. More... | |
| #define | XIpiPsu_ClearInterruptStatus(InstancePtr, Mask) |
| Clear the STATUS REGISTER of the current IPI instance. More... | |
| #define | XIpiPsu_GetObsStatus(InstancePtr) |
| Get the OBSERVATION REGISTER of the current IPI instance. More... | |
Functions | |
| XStatus | XIpiPsu_CfgInitialize (XIpiPsu *InstancePtr, XIpiPsu_Config *CfgPtr, UINTPTR EffectiveAddress) |
| Initialize the Instance pointer based on a given Config Pointer. More... | |
| void | XIpiPsu_Reset (XIpiPsu *InstancePtr) |
| Reset the given IPI register set. More... | |
| XStatus | XIpiPsu_TriggerIpi (XIpiPsu *InstancePtr, u32 DestCpuMask) |
| Trigger an IPI to a Destination CPU. More... | |
| XStatus | XIpiPsu_PollForAck (XIpiPsu *InstancePtr, u32 DestCpuMask, u32 TimeOutCount) |
| Poll for an acknowledgement using Observation Register. More... | |
| XStatus | XIpiPsu_ReadMessage (XIpiPsu *InstancePtr, u32 SrcCpuMask, u32 *MsgPtr, u32 MsgLength, u8 BufferType) |
| Read an Incoming Message from a Source. More... | |
| XStatus | XIpiPsu_WriteMessage (XIpiPsu *InstancePtr, u32 DestCpuMask, u32 *MsgPtr, u32 MsgLength, u8 BufferType) |
| Send a Message to Destination. More... | |
| void | XIpiPsu_SetConfigTable (u32 DeviceId, XIpiPsu_Config *ConfigTblPtr) |
| Set up the device configuration based on the unique device ID. More... | |
| XIpiPsu_Config * | XIpiPsu_LookupConfig (u32 DeviceId) |
| Looks up the device configuration based on the unique device ID. More... | |
| #define XIpiPsu_ClearInterruptStatus | ( | InstancePtr, | |
| Mask | |||
| ) |
#include <xipipsu.h>
Clear the STATUS REGISTER of the current IPI instance.
The corresponding interrupt status for each bit set to 1 in Mask, will be cleared
| InstancePtr | is a pointer to the instance to be worked on. |
| Mask | corresponding to the source CPU* |
| #define XIpiPsu_GetInterruptStatus | ( | InstancePtr | ) |
#include <xipipsu.h>
Get the STATUS REGISTER of the current IPI instance.
| InstancePtr | is a pointer to the instance to be worked on. |
| #define XIpiPsu_GetObsStatus | ( | InstancePtr | ) |
#include <xipipsu.h>
Get the OBSERVATION REGISTER of the current IPI instance.
| InstancePtr | is a pointer to the instance to be worked on. |
| #define XIpiPsu_InterruptDisable | ( | InstancePtr, | |
| Mask | |||
| ) |
#include <xipipsu.h>
Disable interrupts specified in Mask.
The corresponding interrupt for each bit set to 1 in Mask, will be disabled.
| InstancePtr | is a pointer to the instance to be worked on. |
| Mask | contains a bit mask of interrupts to disable. The mask can be formed using a set of bitwise or'd values of individual CPU masks |
| #define XIpiPsu_InterruptEnable | ( | InstancePtr, | |
| Mask | |||
| ) |
#include <xipipsu.h>
Enable interrupts specified in Mask.
The corresponding interrupt for each bit set to 1 in Mask, will be enabled.
| InstancePtr | is a pointer to the instance to be worked on. |
| Mask | contains a bit mask of interrupts to enable. The mask can be formed using a set of bitwise or'd values of individual CPU masks |
| #define XIpiPsu_ReadReg | ( | BaseAddress, | |
| RegOffset | |||
| ) | Xil_In32((BaseAddress) + (RegOffset)) |
#include <xipipsu.h>
Read the register specified by the base address and offset.
| BaseAddress | is the base address of the IPI instance |
| RegOffset | is the offset of the register relative to base |
Referenced by XIpiPsu_PollForAck().
| #define XIpiPsu_WriteReg | ( | BaseAddress, | |
| RegOffset, | |||
| Data | |||
| ) | Xil_Out32(((BaseAddress) + (RegOffset)), (Data)) |
#include <xipipsu.h>
Write a value into a register specified by base address and offset.
| BaseAddress | is the base address of the IPI instance |
| RegOffset | is the offset of the register relative to base |
| Data | is a 32-bit value that is to be written into the specified register |
Referenced by XIpiPsu_Reset(), and XIpiPsu_TriggerIpi().
| XStatus XIpiPsu_CfgInitialize | ( | XIpiPsu * | InstancePtr, |
| XIpiPsu_Config * | CfgPtr, | ||
| UINTPTR | EffectiveAddress | ||
| ) |
#include <xipipsu.c>
Initialize the Instance pointer based on a given Config Pointer.
| InstancePtr | is a pointer to the instance to be worked on |
| CfgPtr | is the device configuration structure containing required hardware build data |
| EffectiveAddress | is the base address of the device. If address translation is not utilized, this parameter can be passed in using CfgPtr->Config.BaseAddress to specify the physical base address. |
References XIpiPsu_Config::BaseAddress, XIpiPsu_Config::BitMask, XIpiPsu_Target::BufferIndex, XIpiPsu::Config, XIpiPsu_Config::DeviceId, XIpiPsu_Config::IntId, XIpiPsu::IsReady, XIpiPsu_Target::Mask, and XIpiPsu_Config::TargetCount.
| XIpiPsu_Config * XIpiPsu_LookupConfig | ( | u32 | DeviceId | ) |
#include <xipipsu.h>
Looks up the device configuration based on the unique device ID.
A table contains the configuration info for each device in the system.
| DeviceId | contains the ID of the device to look up the configuration for. |
Referenced by main().
| XStatus XIpiPsu_PollForAck | ( | XIpiPsu * | InstancePtr, |
| u32 | DestCpuMask, | ||
| u32 | TimeOutCount | ||
| ) |
#include <xipipsu.c>
Poll for an acknowledgement using Observation Register.
| InstancePtr | is the pointer to current IPI instance |
| DestCpuMask | is the Mask of the destination CPU from which ACK is expected |
| TimeOutCount | is the Count after which the routines returns failure |
References XIpiPsu_Config::BaseAddress, XIpiPsu::Config, XIpiPsu::IsReady, and XIpiPsu_ReadReg.
| XStatus XIpiPsu_ReadMessage | ( | XIpiPsu * | InstancePtr, |
| u32 | SrcCpuMask, | ||
| u32 * | MsgPtr, | ||
| u32 | MsgLength, | ||
| u8 | BufferType | ||
| ) |
#include <xipipsu.c>
Read an Incoming Message from a Source.
| InstancePtr | is the pointer to current IPI instance |
| SrcCpuMask | is the Device Mask for the CPU which has sent the message |
| MsgPtr | is the pointer to Buffer to which the read message needs to be stored |
| MsgLength | is the length of the buffer/message |
| BufferType | is the type of buffer (XIPIPSU_BUF_TYPE_MSG or XIPIPSU_BUF_TYPE_RESP) |
References XIpiPsu::IsReady.
| void XIpiPsu_Reset | ( | XIpiPsu * | InstancePtr | ) |
#include <xipipsu.c>
Reset the given IPI register set.
This function can be called to disable the IPIs from all the sources and clear any pending IPIs in status register
| InstancePtr | is the pointer to current IPI instance |
References XIpiPsu_Config::BaseAddress, XIpiPsu::Config, XIpiPsu::IsReady, and XIpiPsu_WriteReg.
| void XIpiPsu_SetConfigTable | ( | u32 | DeviceId, |
| XIpiPsu_Config * | ConfigTblPtr | ||
| ) |
#include <xipipsu.c>
Set up the device configuration based on the unique device ID.
A table contains the configuration info for each device in the system.
| DeviceId | contains the ID of the device to set up the configuration for. |
References XIpiPsu_Config::BaseAddress, XIpiPsu_Config::BitMask, XIpiPsu_Config::BufferIndex, and XIpiPsu_Config::IntId.
| XStatus XIpiPsu_TriggerIpi | ( | XIpiPsu * | InstancePtr, |
| u32 | DestCpuMask | ||
| ) |
#include <xipipsu.c>
Trigger an IPI to a Destination CPU.
| InstancePtr | is the pointer to current IPI instance |
| DestCpuMask | is the Mask of the CPU to which IPI is to be triggered |
References XIpiPsu_Config::BaseAddress, XIpiPsu::Config, XIpiPsu::IsReady, and XIpiPsu_WriteReg.
| XStatus XIpiPsu_WriteMessage | ( | XIpiPsu * | InstancePtr, |
| u32 | DestCpuMask, | ||
| u32 * | MsgPtr, | ||
| u32 | MsgLength, | ||
| u8 | BufferType | ||
| ) |
#include <xipipsu.c>
Send a Message to Destination.
| InstancePtr | is the pointer to current IPI instance |
| DestCpuMask | is the Device Mask for the destination CPU |
| MsgPtr | is the pointer to Buffer which contains the message to be sent |
| MsgLength | is the length of the buffer/message |
| BufferType | is the type of buffer (XIPIPSU_BUF_TYPE_MSG or XIPIPSU_BUF_TYPE_RESP) |
References XIpiPsu::IsReady.