osd: Osd_v4_0

| osd Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Data Structures | Macros | Typedefs | Functions
Osd_v4_0

## Data Structures
struct | XOsd_Config
| OSD core configuration structure. More...
struct | XOsd_Layer
| The OSD core layer info structure. More...
struct | XOsd
| The XOsd instance data. More...

## Macros
#define | XOSD_H_
| Prevent circular inclusions by using protection macros. More...
#define | XOsd_Enable(InstancePtr)
| This function macro enables an OSD core. More...
#define | XOsd_Disable(InstancePtr)
| This function macro disables an OSD core. More...
#define | XOsd_RegUpdateEnable(InstancePtr)
| This function macro commits all the register value changes made so far by the software to the OSD core instance. More...
#define | XOsd_RegUpdateDisable(InstancePtr)
| This function macro prevents the OSD core from committing recent changes made so far by the software. More...
#define | XOsd_Reset(InstancePtr)
| This function macro resets an OSD core This effects the core immediately, and may cause image tearing. More...
#define | XOsd_IntrEnable(InstancePtr, IntrType)
| This function macro enables the given individual interrupt(s) on the OSD core. More...
#define | XOsd_IntrDisable(InstancePtr, IntrType)
| This function macro disables the given individual interrupt(s) on the OSD core. More...
#define | XOsd_IntrGetPending(InstancePtr)
| This function macro returns the pending interrupts of the OSD core. More...
#define | XOsd_IntrClear(InstancePtr, IntrType)
| This function macro clears/acknowledges pending interrupts of the OSD core. More...
#define | XOsd_StatusGetPending(InstancePtr)
| This function macro returns the pending status of the OSD core. More...
#define | XOsd_SyncReset(InstancePtr)
| This function macro resets a OSD core at the end of the frame being processed. More...
#define | XOsd_FSyncReset XOsd_SyncReset
| This macro resets the OSD core at the end of the frame being processed. More...
#define | XOsd_Start XOsd_Enable
| This function macro stops an OSD core. More...
#define | XOsd_Stop XOsd_Disable
| This function macro stops an OSD core. More...
#define | XOSD_HW_H_
| Prevent circular inclusions by using protection macros. More...

## Typedefs
typedef void(* | XOsd_CallBack )(void *CallBackRef)
| This function callback type for all interrupts except error interrupt. More...
typedef void(* | XOsd_ErrorCallBack )(void *CallBackRef, u32 ErrorMask)
| This function callback type for error interrupt. More...
typedef u32 | XOsd_Instruction [XOSD_INS_SIZE]
| The XOsd_Instruction data structure for holding one GC instruction. More...

## Functions
int | XOsd_CfgInitialize (XOsd *InstancePtr, XOsd_Config *CfgPtr, u32 EffectiveAddr)
| This function initializes an OSD core. More...
void | XOsd_SetActiveSize (XOsd *InstancePtr, u32 Width, u32 Height)
| This function sets the screen size of the OSD Output. More...
void | XOsd_GetActiveSize (XOsd *InstancePtr, u32 *WidthPtr, u32 *HeightPtr)
| This function gets the screen size of the OSD Output. More...
void | XOsd_SetBackgroundColor (XOsd *InstancePtr, u16 Red, u16 Blue, u16 Green)
| This function sets the background color used by the OSD output. More...
void | XOsd_GetBackgroundColor (XOsd *InstancePtr, u16 *RedPtr, u16 *BluePtr, u16 *GreenPtr)
| This function gets the background color used by the OSD output. More...
void | XOsd_SetLayerDimension (XOsd *InstancePtr, u8 LayerIndex, u16 XStart, u16 YStart, u16 XSize, u16 YSize)
| This function sets the start position and size of an OSD layer. More...
void | XOsd_GetLayerDimension (XOsd *InstancePtr, u8 LayerIndex, u16 *XStartPtr, u16 *YStartPtr, u16 *XSizePtr, u16 *YSizePtr)
| This function gets the start position and size of an OSD layer. More...
void | XOsd_SetLayerAlpha (XOsd *InstancePtr, u8 LayerIndex, u16 GlobalAlphaEnable, u16 GlobalAlphaValue)
| This function sets the alpha value and mode of an OSD layer. More...
void | XOsd_GetLayerAlpha (XOsd *InstancePtr, u8 LayerIndex, u16 *GlobalAlphaEnablePtr, u16 *GlobalAlphaValuePtr)
| This function gets the alpha value and mode of an OSD layer. More...
void | XOsd_SetLayerPriority (XOsd *InstancePtr, u8 LayerIndex, u8 Priority)
| This function sets the priority of an OSD layer. More...
void | XOsd_GetLayerPriority (XOsd *InstancePtr, u8 LayerIndex, u8 *PriorityPtr)
| This function gets the priority of an OSD layer. More...
void | XOsd_EnableLayer (XOsd *InstancePtr, u8 LayerIndex)
| This function enables an OSD layer. More...
void | XOsd_DisableLayer (XOsd *InstancePtr, u8 LayerIndex)
| This function disables an OSD layer. More...
void | XOsd_LoadColorLUTBank (XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 ColorData[])
| This function loads color look up table data into an OSD Graphics Controller bank. More...
void | XOsd_LoadCharacterSetBank (XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 CharSetData[])
| This function loads character set data (font) into an OSD Graphics Controller bank. More...
void | XOsd_LoadTextBank (XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 TextData[])
| This function loads text data into an OSD Graphics Controller bank. More...
void | XOsd_SetActiveBank (XOsd *InstancePtr, u8 GcIndex, u8 ColorBankIndex, u8 CharBankIndex, u8 TextBankIndex, u8 InstructionBankIndex)
| This function chooses active banks for a GC in the OSD core. More...
void | XOsd_CreateInstruction (XOsd *InstancePtr, u32 InstructionPtr[], u8 GcIndex, u16 ObjType, u8 ObjSize, u16 XStart, u16 YStart, u16 XEnd, u16 YEnd, u8 TextIndex, u8 ColorIndex)
| This function creates an instruction for the OSD core. More...
void | XOsd_LoadInstructionList (XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 InstSetPtr[], u32 InstNum)
| This function load an instruction list to be used by an Graphic Controller in the OSD core. More...
u32 | XOsd_GetVersion (XOsd *InstancePtr)
| This function returns the Version of the OSD core. More...
XOsd_Config * | XOsd_LookupConfig (u16 DeviceId)
| This function gets a reference to an XOsd_Config structure based on the unique device id, DeviceId. More...
void | XOsd_IntrHandler (void *InstancePtr)
| This function is the interrupt handler for the On-Screen-Display driver. More...
int | XOsd_SetCallBack (XOsd *InstancePtr, u32 HandlerType, void *CallBackFunc, void *CallBackRef)
| This routine installs an asynchronous callback function for the given HandlerType: More...
int | XOsd_SelfTest (XOsd *InstancePtr)
| This function reads Version register of OSD core and compares with zero as part of self test. More...

## Interrupt types for setting up callbacks
enum | { XOSD_HANDLER_PROCSTART = 1, XOSD_HANDLER_FRAMEDONE, XOSD_HANDLER_ERROR }

## Compatibility Macros
#define | XOSD_Config XOsd_Config
#define | XOSD_Layer XOsd_Layer
#define | XOSD_CallBack XOsd_CallBack
#define | XOSD_ErrorCallBack XOsd_ErrorCallBack
#define | XOSD XOsd
#define | XOSD_Instruction XOsd_Instruction
#define | XOSD_Enable XOsd_Enable
#define | XOSD_Disable XOsd_Disable
#define | XOSD_RegUpdateEnable XOsd_RegUpdateEnable
#define | XOSD_RegUpdateDisable XOsd_RegUpdateDisable
#define | XOSD_Reset XOsd_Reset
#define | XOSD_IntrEnable XOsd_IntrEnable
#define | XOSD_IntrDisable XOsd_IntrDisable
#define | XOSD_IntrGetPending XOsd_IntrGetPending
#define | XOSD_IntrClear XOsd_IntrClear
#define | XOSD_CfgInitialize XOsd_CfgInitialize
#define | XOSD_SetScreenSize XOsd_SetActiveSize
#define | XOSD_GetScreenSize XOsd_GetActiveSize
#define | XOSD_SetBackgroundColor XOsd_SetBackgroundColor
#define | XOSD_GetBackgroundColor XOsd_GetBackgroundColor
#define | XOSD_SetLayerDimension XOsd_SetLayerDimension
#define | XOSD_GetLayerDimension XOsd_GetLayerDimension
#define | XOSD_SetLayerAlpha XOsd_SetLayerAlpha
#define | XOSD_GetLayerAlpha XOsd_GetLayerAlpha
#define | XOSD_SetLayerPriority XOsd_SetLayerPriority
#define | XOSD_GetLayerPriority XOsd_GetLayerPriority
#define | XOSD_EnableLayer XOsd_EnableLayer
#define | XOSD_DisableLayer XOsd_DisableLayer
#define | XOSD_LoadColorLUTBank XOsd_LoadColorLUTBank
#define | XOSD_LoadCharacterSetBank XOsd_LoadCharacterSetBank
#define | XOSD_LoadTextBank XOsd_LoadTextBank
#define | XOSD_SetActiveBank XOsd_SetActiveBank
#define | XOSD_CreateInstruction XOsd_CreateInstruction
#define | XOSD_GetVersion XOsd_GetVersion
#define | XOSD_LoadInstructionList XOsd_LoadInstructionList
#define | XOSD_LookupConfig XOsd_LookupConfig
#define | XOSD_IntrHandler XOsd_IntrHandler
#define | XOSD_SetCallBack XOsd_SetCallBack

## Register Offsets
#define | XOSD_CTL_OFFSET 0x000
| Control Offset. More...
#define | XOSD_ACTIVE_SIZE_OFFSET 0x020
| Screen Size / Output Active_Size Offset. More...
#define | XOSD_BC0_OFFSET 0x100
| Background Color Channel 0 Offset. More...
#define | XOSD_BC1_OFFSET 0x104
| Background Color Channel 1 Offset. More...
#define | XOSD_BC2_OFFSET 0x108
| Background Color Channel 2 Offset. More...
#define | XOSD_L0C_OFFSET 0x110
| Layer 0 Control Offset. More...
#define | XOSD_L0P_OFFSET 0x114
| Layer 0 Position Offset. More...
#define | XOSD_L0S_OFFSET 0x118
| Layer 0 Size Offset. More...
#define | XOSD_L1C_OFFSET 0x120
| Layer 1 Control Offset. More...
#define | XOSD_L1P_OFFSET 0x124
| Layer 1 Position Offset. More...
#define | XOSD_L1S_OFFSET 0x128
| Layer 1 Size Offset. More...
#define | XOSD_L2C_OFFSET 0x130
| Layer 2 Control Offset. More...
#define | XOSD_L2P_OFFSET 0x134
| Layer 2 Position Offset. More...
#define | XOSD_L2S_OFFSET 0x138
| Layer 2 Size Offset. More...
#define | XOSD_L3C_OFFSET 0x140
| Layer 3 Control Offset. More...
#define | XOSD_L3P_OFFSET 0x144
| Layer 3 Position Offset. More...
#define | XOSD_L3S_OFFSET 0x148
| Layer 3 Size Offset. More...
#define | XOSD_L4C_OFFSET 0x150
| Layer 4 Control Offset. More...
#define | XOSD_L4P_OFFSET 0x154
| Layer 4 Position Offset. More...
#define | XOSD_L4S_OFFSET 0x158
| Layer 4 Size Offset. More...
#define | XOSD_L5C_OFFSET 0x160
| Layer 5 Control Offset. More...
#define | XOSD_L5P_OFFSET 0x164
| Layer 5 Position Offset. More...
#define | XOSD_L5S_OFFSET 0x168
| Layer 5 Size Offset. More...
#define | XOSD_L6C_OFFSET 0x170
| Layer 6 Control Offset. More...
#define | XOSD_L6P_OFFSET 0x174
| Layer 6 Position Offset. More...
#define | XOSD_L6S_OFFSET 0x178
| Layer 6 Size Offset. More...
#define | XOSD_L7C_OFFSET 0x180
| Layer 7 Control Offset. More...
#define | XOSD_L7P_OFFSET 0x184
| Layer 7 Position Offset. More...
#define | XOSD_L7S_OFFSET 0x188
| Layer 7 Size Offset. More...
#define | XOSD_GCWBA_OFFSET 0x190
| GPU Write Bank Address Offset. More...
#define | XOSD_GCABA_OFFSET 0x194
| GPU Active Bank Address Offset. More...
#define | XOSD_GCD_OFFSET 0x198
| GPU Data Offset. More...
#define | XOSD_VER_OFFSET 0x010
| Version Offset. More...
#define | XOSD_RST_OFFSET XOSD_CTL_OFFSET
| Software Reset Offset. More...
#define | XOSD_ISR_OFFSET XOSD_STATUS_OFFSET
| Interrupt status register generates a interrupt if the corresponding bits of interrupt enable register bits are set. More...
#define | XOSD_IER_OFFSET 0x00C
| Interrupt Enable Register Offset. More...
#define | XOSD_STATUS_OFFSET 0x004
| Status Offset. More...
#define | XOSD_ERROR_OFFSET 0x008
| Error Offset. More...
#define | XOSD_OPENC_OFFSET 0x028
| Output Encoding Offset. More...

## Memory footprint of layers
#define | XOSD_LAYER_SIZE 0x10
| Total number of Layers. More...
#define | XOSD_LXC 0x00
| Layer Control. More...
#define | XOSD_LXP 0x04
| Layer Position. More...
#define | XOSD_LXS 0x08
| Layer Size. More...

## Graphics Controller Bank related constants
#define | XOSD_GC_BANK_NUM 2
| The number of Banks in each Graphics controller. More...

## Active Size Register bit definition and Shift
#define | XOSD_ACTSIZE_NUM_PIXEL_MASK 0x00000FFF
| Horizontal Width of OSD Output Mask. More...
#define | XOSD_ACTSIZE_NUM_LINE_MASK 0x0FFF0000
| Vertical Height of OSD Output Mask. More...
#define | XOSD_ACTSIZE_NUM_LINE_SHIFT 16
| Vertical Height of OSD Output Shift. More...

## Background Color Channel 0 Mask
#define | XOSD_BC0_YG_MASK 0x00000FFF
| Y (luma) or Green Mask. More...

## Background Color Channel 1 Mask
#define | XOSD_BC1_UCBB_MASK 0x00000FFF
| U (Cb) or Blue Mask. More...

## Background Color Channel 2 Mask
#define | XOSD_BC2_VCRR_MASK 0x00000FFF
| V(Cr) or Red Mask. More...

## Maximum number of the layers
#define | XOSD_MAX_NUM_OF_LAYERS 8
| The max number of layers. More...

## Layer Control (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
definition and Shifts
#define | XOSD_LXC_ALPHA_MASK 0x1FFF0000
| Global Alpha Value Mask. More...
#define | XOSD_LXC_ALPHA_SHIFT 16
| Bit shift number of Global Alpha Value. More...
#define | XOSD_LXC_PRIORITY_MASK 0x00000700
| Layer Priority Mask. More...
#define | XOSD_LXC_PRIORITY_SHIFT 8
| Bit shift number of Layer Priority. More...
#define | XOSD_LXC_GALPHAEN_MASK 0x00000002
| Global Alpha Enable Mask. More...
#define | XOSD_LXC_EN_MASK 0x00000001
| Layer Enable Mask. More...

## Layer Position (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
definition and Shifts
#define | XOSD_LXP_YSTART_MASK 0x0FFF0000
| Vertical start line of origin of layer Mask. More...
#define | XOSD_LXP_YSTART_SHIFT 16
| Bit shift of vertical start line of origin of layer. More...
#define | XOSD_LXP_XSTART_MASK 0x00000FFF
| Horizontal start pixel of origin of layer Mask. More...

## Layer Size (Layer 0 through (XOSD_MAX_NUM_OF_LAYERS - 1)) bit
definition and Shift
#define | XOSD_LXS_YSIZE_MASK 0x0FFF0000
| Vertical size of layer Mask. More...
#define | XOSD_LXS_YSIZE_SHIFT 16
| Bit shift number of vertical size of layer. More...
#define | XOSD_LXS_XSIZE_MASK 0x00000FFF
| Horizontal size of layer Mask. More...

## Graphics Controller Write Bank Address bit definition and Shift
#define | XOSD_GCWBA_GCNUM_MASK 0x00000700
| Graphics Controller Number Mask. More...
#define | XOSD_GCWBA_GCNUM_SHIFT 8
| Bit shift of Graphics Controller Number. More...
#define | XOSD_GCWBA_BANK_MASK 0x00000007
| Controls which bank to write GPU instructions and Color LUT data into. More...
#define | XOSD_GCWBA_INS0 0x00000000
| Instruction RAM 0. More...
#define | XOSD_GCWBA_INS1 0x00000001
| Instruction RAM 1. More...
#define | XOSD_GCWBA_COL0 0x00000002
| Color LUT RAM 0. More...
#define | XOSD_GCWBA_COL1 0x00000003
| Color LUT RAM 1. More...
#define | XOSD_GCWBA_TXT0 0x00000004
| Text RAM 0. More...
#define | XOSD_GCWBA_TXT1 0x00000005
| Text RAM 1. More...
#define | XOSD_GCWBA_CHR0 0x00000006
| Character Set RAM 0. More...
#define | XOSD_GCWBA_CHR1 0x00000007
| Character Set RAM 1. More...

## Graphics Controller Active Bank Address bit definition and Shifts
#define | XOSD_GCABA_CHR_MASK 0xFF000000
| Set the active Character Bank Mask. More...
#define | XOSD_GCABA_CHR_SHIFT 24
| Bit shift of active Character Bank. More...
#define | XOSD_GCABA_TXT_MASK 0x00FF0000
| Set the active Text Bank Mask. More...
#define | XOSD_GCABA_TXT_SHIFT 16
| Bit shift of active Text Bank. More...
#define | XOSD_GCABA_COL_MASK 0x0000FF00
| Set the active Color Table Bank Mask. More...
#define | XOSD_GCABA_COL_SHIFT 8
| Bit shift of active Color Table Bank. More...
#define | XOSD_GCABA_INS_MASK 0x000000FF
| Set the active instruction Bank Mask. More...

## Version Register bit definition and Shifts
#define | XOSD_VER_MAJOR_MASK 0xFF000000
| Major Version Mask. More...
#define | XOSD_VER_MAJOR_SHIFT 24
| Major Version Shift. More...
#define | XOSD_VER_MINOR_MASK 0x00FF0000
| Minor Version Mask. More...
#define | XOSD_VER_MINOR_SHIFT 16
| Minor Version Bit Shift. More...
#define | XOSD_VER_REV_MASK 0x0000F000
| Revision Version Mask. More...
#define | XOSD_VER_REV_SHIFT 12
| Revision Bit Shift. More...

## Software Reset
#define | XOSD_RST_RESET XOSD_CTL_SW_RST_MASK
| Software Reset. More...

## Interrupt Register Bit Masks. It is applicable for ISR and IER.
#define | XOSD_IXR_LAYER0_ERROR_MASK 0x00000010
| Layer 0 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER1_ERROR_MASK 0x00000020
| Layer 1 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER2_ERROR_MASK 0x00000040
| Layer 2 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER3_ERROR_MASK 0x00000080
| Layer 3 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER4_ERROR_MASK 0x00000100
| Layer 4 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER5_ERROR_MASK 0x00000200
| Layer 5 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER6_ERROR_MASK 0x00000400
| Layer 6 Error interrupt enable Mask. More...
#define | XOSD_IXR_LAYER7_ERROR_MASK 0x00000800
| Layer 7 Error interrupt enable Mask. More...
#define | XOSD_IXR_PROC_STARTED_MASK 0x00000001
| OSD Processing started Mask. More...
#define | XOSD_IXR_EOF_MASK 0x00000002
| OSD End of frame mask. More...
#define | XOSD_IXR_ALLERR_MASK
| OSD Layer 0 to Layer 7 Error Mask. More...
#define | XOSD_IXR_ALLINTR_MASK
| OR'ing of all Masks. More...

## Layer Types
#define | XOSD_LAYER_TYPE_DISABLE 0
| Layer is disabled. More...
#define | XOSD_LAYER_TYPE_GPU 1
| Layer's type is GPU. More...
#define | XOSD_LAYER_TYPE_VFBC 2
| Layer's type is VFBC. More...

## Supported instruction numbers given an instruction memory size
#define | XOSD_INS_MEM_SIZE_TO_NUM 1
| Conversion to the number of instructions from the instruction memory size. More...

## GC instruction word offset definition
#define | XOSD_INS0 0
| Instruction word 0 offset. More...
#define | XOSD_INS1 1
| Instruction word 1 offset. More...
#define | XOSD_INS2 2
| Instruction word 2 offset. More...
#define | XOSD_INS3 3
| Instruction word 3 offset. More...
#define | XOSD_INS_SIZE 4
| Size of an instruction in words. More...

## GC Instruction word 0 definition and Shifts
#define | XOSD_INS0_OPCODE_MASK 0xF0000000
| Operation Code (OpCode) Mask. More...
#define | XOSD_INS0_OPCODE_SHIFT 28
| Bit shift number of OpCode. More...
#define | XOSD_INS0_GCNUM_MASK 0x07000000
| Graphics controller number (GC#) Mask. More...
#define | XOSD_INS0_GCNUM_SHIFT 24
| Bit shift number of GC#. More...
#define | XOSD_INS0_XEND_MASK 0x00FFF000
| Horizontal end pixel of the object Mask. More...
#define | XOSD_INS0_XEND_SHIFT 12
| Bit shift number of Horizontal end pixel of the object. More...
#define | XOSD_INS0_XSTART_MASK 0x00000FFF
| Horizontal start pixel of the Object Mask. More...

## GC Instruction word 1 definition
#define | XOSD_INS1_TXTINDEX_MASK 0x0000000F
| String Index. More...

## GC Instruction word 2 definition and Shifts
#define | XOSD_INS2_OBJSIZE_MASK 0xFF000000
| Object Size Mask. More...
#define | XOSD_INS2_OBJSIZE_SHIFT 24
| Bit shift number of Object Size. More...
#define | XOSD_INS2_YEND_MASK 0x00FFF000
| Vertical end line of the object Mask. More...
#define | XOSD_INS2_YEND_SHIFT 12
| Bit shift number of Vertical end line of the object. More...
#define | XOSD_INS2_YSTART_MASK 0x00000FFF
| Vertical start line of the Object Mask. More...

## GC Instruction word 3 definition
#define | XOSD_INS3_COL_MASK 0x0000000F
| Color Index for Box/Text Mask. More...

## GC Instruction Operation Code definition (used in Instruction word 0)
#define | XOSD_INS_OPCODE_END 0x0
| End of instruction list. More...
#define | XOSD_INS_OPCODE_NOP 0x8
| NOP. More...
#define | XOSD_INS_OPCODE_BOX 0xA
| Box. More...
#define | XOSD_INS_OPCODE_LINE 0xC
| Line. More...
#define | XOSD_INS_OPCODE_TXT 0xE
| Text. More...
#define | XOSD_INS_OPCODE_BOXTXT 0xF
| Box Text. More...

## GC color size
#define | XOSD_COLOR_ENTRY_SIZE 4
| Size of each color entry in bytes. More...

## GC font unit size
#define | XOSD_FONT_BIT_TO_BYTE 8
| Ratio to convert font size to byte. More...

## Layer priority
#define | XOSD_LAYER_PRIORITY_0 0
| Priority 0 — Lowest. More...
#define | XOSD_LAYER_PRIORITY_1 1
| Priority 1. More...
#define | XOSD_LAYER_PRIORITY_2 2
| Priority 2. More...
#define | XOSD_LAYER_PRIORITY_3 3
| Priority 3. More...
#define | XOSD_LAYER_PRIORITY_4 4
| Priority 4. More...
#define | XOSD_LAYER_PRIORITY_5 5
| Priority 5. More...
#define | XOSD_LAYER_PRIORITY_6 6
| Priority 6. More...
#define | XOSD_LAYER_PRIORITY_7 7
| Priority 7 — Highest. More...

## Output Encoding Register bit definition
#define | XOSD_OPENC_VID_FORMAT_MASK 0x0000000F
| OSD Output Video Format Mask 0: YUV 4:2:2 1: YUV 4:4:4 2: RGB 3: YUV 4:2:0. More...
#define | XOSD_OPENC_NBITS_MASK 0x00000030
| Vertical Height of OSD Output Mask. More...

## Error Register bit definition
#define | XOSD_ERR_LAYER7_SOF_LATE_MASK 0x80000000
| OSD Layer 7 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER7_SOF_EARLY_MASK 0x40000000
| OSD Layer 7 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER7_EOL_LATE_MASK 0x20000000
| OSD Layer 7 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER7_EOL_EARLY_MASK 0x10000000
| OSD Layer 7 error for EOL early. More...
#define | XOSD_ERR_LAYER6_SOF_LATE_MASK 0x08000000
| OSD Layer 6 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER6_SOF_EARLY_MASK 0x04000000
| OSD Layer 6 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER6_EOL_LATE_MASK 0x02000000
| OSD Layer 6 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER6_EOL_EARLY_MASK 0x01000000
| OSD Layer 6 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER5_SOF_LATE_MASK 0x00800000
| OSD Layer 5 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER5_SOF_EARLY_MASK 0x00400000
| OSD Layer 5 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER5_EOL_LATE_MASK 0x00200000
| OSD Layer 5 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER5_EOL_EARLY_MASK 0x00100000
| OSD Layer 5 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER4_SOF_LATE_MASK 0x00080000
| OSD Layer 4 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER4_SOF_EARLY_MASK 0x00040000
| OSD Layer 4 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER4_EOL_LATE_MASK 0x00020000
| OSD Layer 4 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER4_EOL_EARLY_MASK 0x00010000
| OSD Layer 4 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER3_SOF_LATE_MASK 0x00008000
| OSD Layer 3 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER3_SOF_EARLY_MASK 0x00004000
| OSD Layer 3 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER3_EOL_LATE_MASK 0x00002000
| OSD Layer 3 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER3_EOL_EARLY_MASK 0x00001000
| OSD Layer 3 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER2_SOF_LATE_MASK 0x00000800
| OSD Layer 2 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER2_SOF_EARLY_MASK 0x00000400
| OSD Layer 2 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER2_EOL_LATE_MASK 0x00000200
| OSD Layer 2 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER2_EOL_EARLY_MASK 0x00000100
| OSD Layer 2 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER1_SOF_LATE_MASK 0x00000080
| OSD Layer 1 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER1_SOF_EARLY_MASK 0x00000040
| OSD Layer 1 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER1_EOL_LATE_MASK 0x00000020
| OSD Layer 1 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER1_EOL_EARLY_MASK 0x00000010
| OSD Layer 1 error for EOL early Mask. More...
#define | XOSD_ERR_LAYER0_SOF_LATE_MASK 0x00000008
| OSD Layer 0 error for SOF late Mask. More...
#define | XOSD_ERR_LAYER0_SOF_EARLY_MASK 0x00000004
| OSD Layer 0 error for SOF early Mask. More...
#define | XOSD_ERR_LAYER0_EOL_LATE_MASK 0x00000002
| OSD Layer 0 error for EOL late Mask. More...
#define | XOSD_ERR_LAYER0_EOL_EARLY_MASK 0x00000001
| OSD Layer 0 error for EOL early Mask. More...
#define | XOSD_ERR_ALL_ERR_MASK 0xFFFFFFFF
| OSD Layer 0 to Layer 7 error for EOL late or early early or SOF late or early Mask. More...

## Control Register bit definition
#define | XOSD_CTL_EN_MASK 0x00000001
| Enable / SW Enable Mask. More...
#define | XOSD_CTL_RUE_MASK 0x00000002
| Register Update Enable Mask. More...
#define | XOSD_CTL_FSYNC_MASK 0x40000000
| Frame Sync Reset Mask. More...
#define | XOSD_CTL_SW_RST_MASK 0x80000000
| Core Reset Mask. More...

## Constants. It is defined as constants to use instead magic numbers.
#define | XOSD_DATA_8 8
#define | XOSD_DATA_2 2

## Compatibility Macros
#define | XOSD_CTL XOSD_CTL_OFFSET
#define | XOSD_SS XOSD_ACTIVE_SIZE_OFFSET
#define | XOSD_VER XOSD_VER_OFFSET
#define | XOSD_OPENC XOSD_OPENC_OFFSET
#define | XOSD_BC0 XOSD_BC0_OFFSET
#define | XOSD_BC1 XOSD_BC1_OFFSET
#define | XOSD_BC2 XOSD_BC2_OFFSET
#define | XOSD_L0C XOSD_L0C_OFFSET
#define | XOSD_L0P XOSD_L0P_OFFSET
#define | XOSD_L0S XOSD_L0S_OFFSET
#define | XOSD_L1C XOSD_L1C_OFFSET
#define | XOSD_L1P XOSD_L1P_OFFSET
#define | XOSD_L1S XOSD_L1S_OFFSET
#define | XOSD_L2C XOSD_L2C_OFFSET
#define | XOSD_L2P XOSD_L2P_OFFSET
#define | XOSD_L2S XOSD_L2S_OFFSET
#define | XOSD_L3C XOSD_L3C_OFFSET
#define | XOSD_L3P XOSD_L3P_OFFSET
#define | XOSD_L3S XOSD_L3S_OFFSET
#define | XOSD_L4C XOSD_L4C_OFFSET
#define | XOSD_L4P XOSD_L4P_OFFSET
#define | XOSD_L4S XOSD_L4S_OFFSET
#define | XOSD_L5C XOSD_L5C_OFFSET
#define | XOSD_L5P XOSD_L5P_OFFSET
#define | XOSD_L5S XOSD_L5S_OFFSET
#define | XOSD_L6C XOSD_L6C_OFFSET
#define | XOSD_L6P XOSD_L6P_OFFSET
#define | XOSD_L6S XOSD_L6S_OFFSET
#define | XOSD_L7C XOSD_L7C_OFFSET
#define | XOSD_L7P XOSD_L7P_OFFSET
#define | XOSD_L7S XOSD_L7S_OFFSET
#define | XOSD_GCWBA XOSD_GCWBA_OFFSET
#define | XOSD_GCABA XOSD_GCABA_OFFSET
#define | XOSD_GCD XOSD_GCD_OFFSET
#define | XOSD_RST XOSD_RST_OFFSET
#define | XOSD_ISR XOSD_ISR_OFFSET
#define | XOSD_IER XOSD_IER_OFFSET
#define | XOSD_SS_YSIZE_MASK XOSD_ACTSIZE_NUM_LINE_MASK
#define | XOSD_SS_XSIZE_MASK XOSD_ACTSIZE_NUM_PIXEL_MASK
#define | XOSD_SS_YSIZE_SHIFT XOSD_ACTSIZE_NUM_LINE_SHIFT
#define | XOSD_In32 XOsd_In32
#define | XOSD_Out32 XOsd_Out32
#define | XOSD_ReadReg XOsd_ReadReg
#define | XOSD_WriteReg XOsd_WriteReg

## Core register I/O APIs
#define | XOsd_In32 Xil_In32
#define | XOsd_Out32 Xil_Out32
#define | XOsd_ReadReg(BaseAddress, RegOffset) XOsd_In32((BaseAddress) + (u32)(RegOffset))
| This function reads the given register. More...
#define | XOsd_WriteReg(BaseAddress, RegOffset, Data) XOsd_Out32((BaseAddress) + (u32)(RegOffset), (Data))
| This function writes the given register. More...

## Macro Definition Documentation

#define XOSD_ACTIVE_SIZE_OFFSET 0x020

Screen Size / Output Active_Size Offset.

Referenced by XOsd_GetActiveSize(), and XOsd_SetActiveSize().

#define XOSD_ACTSIZE_NUM_LINE_MASK 0x0FFF0000

Vertical Height of OSD Output Mask.

Referenced by XOsd_GetActiveSize(), and XOsd_SetActiveSize().

#define XOSD_ACTSIZE_NUM_LINE_SHIFT 16

Vertical Height of OSD Output Shift.

Referenced by XOsd_GetActiveSize(), and XOsd_SetActiveSize().

#define XOSD_ACTSIZE_NUM_PIXEL_MASK 0x00000FFF

Horizontal Width of OSD Output Mask.

Referenced by XOsd_GetActiveSize(), and XOsd_SetActiveSize().

#define XOSD_BC0_OFFSET 0x100

Background Color Channel 0 Offset.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_BC0_YG_MASK 0x00000FFF

Y (luma) or Green Mask.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_BC1_OFFSET 0x104

Background Color Channel 1 Offset.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_BC1_UCBB_MASK 0x00000FFF

U (Cb) or Blue Mask.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_BC2_OFFSET 0x108

Background Color Channel 2 Offset.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_BC2_VCRR_MASK 0x00000FFF

V(Cr) or Red Mask.

Referenced by XOsd_GetBackgroundColor(), and XOsd_SetBackgroundColor().

#define XOSD_COLOR_ENTRY_SIZE 4

Size of each color entry in bytes.

Referenced by XOsd_LoadColorLUTBank().

#define XOSD_CTL_EN_MASK 0x00000001

Enable / SW Enable Mask.

#define XOSD_CTL_FSYNC_MASK 0x40000000

Frame Sync Reset Mask.

#define XOSD_CTL_OFFSET 0x000

Control Offset.

#define XOSD_CTL_RUE_MASK 0x00000002

Register Update Enable Mask.

#define XOSD_CTL_SW_RST_MASK 0x80000000

Core Reset Mask.

#define XOsd_Disable | ( |  | InstancePtr | ) |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
((XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_CTL_OFFSET))) & (~(XOSD_CTL_EN_MASK))))
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_EN_MASK
#define XOSD_CTL_EN_MASK
Enable / SW Enable Mask.
Definition: xosd_hw.h:722

This function macro disables an OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_Disable(XOsd *InstancePtr)

#define XOsd_Enable | ( |  | InstancePtr | ) |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
((XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_CTL_OFFSET))) | (XOSD_CTL_EN_MASK)))
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_EN_MASK
#define XOSD_CTL_EN_MASK
Enable / SW Enable Mask.
Definition: xosd_hw.h:722

This function macro enables an OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_Enable(XOsd *InstancePtr)

#define XOSD_ERR_ALL_ERR_MASK 0xFFFFFFFF

OSD Layer 0 to Layer 7 error for EOL late or early early or SOF late or early Mask.

#define XOSD_ERR_LAYER0_EOL_EARLY_MASK 0x00000001

OSD Layer 0 error for EOL early Mask.

#define XOSD_ERR_LAYER0_EOL_LATE_MASK 0x00000002

OSD Layer 0 error for EOL late Mask.

#define XOSD_ERR_LAYER0_SOF_EARLY_MASK 0x00000004

OSD Layer 0 error for SOF early Mask.

#define XOSD_ERR_LAYER0_SOF_LATE_MASK 0x00000008

OSD Layer 0 error for SOF late Mask.

#define XOSD_ERR_LAYER1_EOL_EARLY_MASK 0x00000010

OSD Layer 1 error for EOL early Mask.

#define XOSD_ERR_LAYER1_EOL_LATE_MASK 0x00000020

OSD Layer 1 error for EOL late Mask.

#define XOSD_ERR_LAYER1_SOF_EARLY_MASK 0x00000040

OSD Layer 1 error for SOF early Mask.

#define XOSD_ERR_LAYER1_SOF_LATE_MASK 0x00000080

OSD Layer 1 error for SOF late Mask.

#define XOSD_ERR_LAYER2_EOL_EARLY_MASK 0x00000100

OSD Layer 2 error for EOL early Mask.

#define XOSD_ERR_LAYER2_EOL_LATE_MASK 0x00000200

OSD Layer 2 error for EOL late Mask.

#define XOSD_ERR_LAYER2_SOF_EARLY_MASK 0x00000400

OSD Layer 2 error for SOF early Mask.

#define XOSD_ERR_LAYER2_SOF_LATE_MASK 0x00000800

OSD Layer 2 error for SOF late Mask.

#define XOSD_ERR_LAYER3_EOL_EARLY_MASK 0x00001000

OSD Layer 3 error for EOL early Mask.

#define XOSD_ERR_LAYER3_EOL_LATE_MASK 0x00002000

OSD Layer 3 error for EOL late Mask.

#define XOSD_ERR_LAYER3_SOF_EARLY_MASK 0x00004000

OSD Layer 3 error for SOF early Mask.

#define XOSD_ERR_LAYER3_SOF_LATE_MASK 0x00008000

OSD Layer 3 error for SOF late Mask.

#define XOSD_ERR_LAYER4_EOL_EARLY_MASK 0x00010000

OSD Layer 4 error for EOL early Mask.

#define XOSD_ERR_LAYER4_EOL_LATE_MASK 0x00020000

OSD Layer 4 error for EOL late Mask.

#define XOSD_ERR_LAYER4_SOF_EARLY_MASK 0x00040000

OSD Layer 4 error for SOF early Mask.

#define XOSD_ERR_LAYER4_SOF_LATE_MASK 0x00080000

OSD Layer 4 error for SOF late Mask.

#define XOSD_ERR_LAYER5_EOL_EARLY_MASK 0x00100000

OSD Layer 5 error for EOL early Mask.

#define XOSD_ERR_LAYER5_EOL_LATE_MASK 0x00200000

OSD Layer 5 error for EOL late Mask.

#define XOSD_ERR_LAYER5_SOF_EARLY_MASK 0x00400000

OSD Layer 5 error for SOF early Mask.

#define XOSD_ERR_LAYER5_SOF_LATE_MASK 0x00800000

OSD Layer 5 error for SOF late Mask.

#define XOSD_ERR_LAYER6_EOL_EARLY_MASK 0x01000000

OSD Layer 6 error for EOL early Mask.

#define XOSD_ERR_LAYER6_EOL_LATE_MASK 0x02000000

OSD Layer 6 error for EOL late Mask.

#define XOSD_ERR_LAYER6_SOF_EARLY_MASK 0x04000000

OSD Layer 6 error for SOF early Mask.

#define XOSD_ERR_LAYER6_SOF_LATE_MASK 0x08000000

OSD Layer 6 error for SOF late Mask.

#define XOSD_ERR_LAYER7_EOL_EARLY_MASK 0x10000000

OSD Layer 7 error for EOL early.

#define XOSD_ERR_LAYER7_EOL_LATE_MASK 0x20000000

OSD Layer 7 error for EOL late Mask.

#define XOSD_ERR_LAYER7_SOF_EARLY_MASK 0x40000000

OSD Layer 7 error for SOF early Mask.

#define XOSD_ERR_LAYER7_SOF_LATE_MASK 0x80000000

OSD Layer 7 error for SOF late Mask.

#define XOSD_ERROR_OFFSET 0x008

Error Offset.

#define XOSD_FONT_BIT_TO_BYTE 8

Ratio to convert font size to byte.

Referenced by XOsd_LoadCharacterSetBank().

#define XOsd_FSyncReset XOsd_SyncReset

This macro resets the OSD core at the end of the frame being processed.

It enables core automatically synchronizes to the SOF of the core to prevent image tearing. This function macro is differ from XOsd_Reset().

On the next rising-edge of SOF following a call to XOsd_SyncReset(), all of the core's configuration registers and outputs will be reset, then the reset flag will be immediately released, allowing the core to immediately resume default operation.

#define XOSD_GC_BANK_NUM 2

The number of Banks in each Graphics controller.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), XOsd_LoadTextBank(), and XOsd_SetActiveBank().

#define XOSD_GCABA_CHR_MASK 0xFF000000

Set the active Character Bank Mask.

Referenced by XOsd_SetActiveBank().

#define XOSD_GCABA_CHR_SHIFT 24

Bit shift of active Character Bank.

Referenced by XOsd_LoadCharacterSetBank(), and XOsd_SetActiveBank().

#define XOSD_GCABA_COL_MASK 0x0000FF00

Set the active Color Table Bank Mask.

Referenced by XOsd_SetActiveBank().

#define XOSD_GCABA_COL_SHIFT 8

Bit shift of active Color Table Bank.

Referenced by XOsd_LoadColorLUTBank(), and XOsd_SetActiveBank().

#define XOSD_GCABA_INS_MASK 0x000000FF

Set the active instruction Bank Mask.

Referenced by XOsd_SetActiveBank().

#define XOSD_GCABA_OFFSET 0x194

GPU Active Bank Address Offset.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), XOsd_LoadTextBank(), and XOsd_SetActiveBank().

#define XOSD_GCABA_TXT_MASK 0x00FF0000

Set the active Text Bank Mask.

Referenced by XOsd_SetActiveBank().

#define XOSD_GCABA_TXT_SHIFT 16

Bit shift of active Text Bank.

Referenced by XOsd_LoadTextBank(), and XOsd_SetActiveBank().

#define XOSD_GCD_OFFSET 0x198

GPU Data Offset.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), and XOsd_LoadTextBank().

#define XOSD_GCWBA_BANK_MASK 0x00000007

Controls which bank to write GPU instructions and Color LUT data into.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), and XOsd_LoadTextBank().

#define XOSD_GCWBA_CHR0 0x00000006

Character Set RAM 0.

Referenced by XOsd_LoadCharacterSetBank().

#define XOSD_GCWBA_CHR1 0x00000007

Character Set RAM 1.

#define XOSD_GCWBA_COL0 0x00000002

Color LUT RAM 0.

Referenced by XOsd_LoadColorLUTBank().

#define XOSD_GCWBA_COL1 0x00000003

Color LUT RAM 1.

#define XOSD_GCWBA_GCNUM_MASK 0x00000700

Graphics Controller Number Mask.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), and XOsd_LoadTextBank().

#define XOSD_GCWBA_GCNUM_SHIFT 8

Bit shift of Graphics Controller Number.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), and XOsd_LoadTextBank().

#define XOSD_GCWBA_INS0 0x00000000

Instruction RAM 0.

Referenced by XOsd_LoadInstructionList().

#define XOSD_GCWBA_INS1 0x00000001

Instruction RAM 1.

#define XOSD_GCWBA_OFFSET 0x190

GPU Write Bank Address Offset.

Referenced by XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), and XOsd_LoadTextBank().

#define XOSD_GCWBA_TXT0 0x00000004

Text RAM 0.

Referenced by XOsd_LoadTextBank().

#define XOSD_GCWBA_TXT1 0x00000005

Text RAM 1.

#define XOSD_H_

Prevent circular inclusions by using protection macros.

#define XOSD_HW_H_

Prevent circular inclusions by using protection macros.

#define XOSD_IER_OFFSET 0x00C

Interrupt Enable Register Offset.

#define XOSD_INS0 0

Instruction word 0 offset.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_GCNUM_MASK 0x07000000

Graphics controller number (GC#) Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_GCNUM_SHIFT 24

Bit shift number of GC#.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_OPCODE_MASK 0xF0000000

Operation Code (OpCode) Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_OPCODE_SHIFT 28

Bit shift number of OpCode.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_XEND_MASK 0x00FFF000

Horizontal end pixel of the object Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_XEND_SHIFT 12

Bit shift number of Horizontal end pixel of the object.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS0_XSTART_MASK 0x00000FFF

Horizontal start pixel of the Object Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS1 1

Instruction word 1 offset.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS1_TXTINDEX_MASK 0x0000000F

String Index.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2 2

Instruction word 2 offset.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2_OBJSIZE_MASK 0xFF000000

Object Size Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2_OBJSIZE_SHIFT 24

Bit shift number of Object Size.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2_YEND_MASK 0x00FFF000

Vertical end line of the object Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2_YEND_SHIFT 12

Bit shift number of Vertical end line of the object.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS2_YSTART_MASK 0x00000FFF

Vertical start line of the Object Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS3 3

Instruction word 3 offset.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS3_COL_MASK 0x0000000F

Color Index for Box/Text Mask.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_MEM_SIZE_TO_NUM 1

Conversion to the number of instructions from the instruction memory size.

#define XOSD_INS_OPCODE_BOX 0xA

Box.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_OPCODE_BOXTXT 0xF

Box Text.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_OPCODE_END 0x0

End of instruction list.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_OPCODE_LINE 0xC

Line.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_OPCODE_NOP 0x8

NOP.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_OPCODE_TXT 0xE

Text.

Referenced by XOsd_CreateInstruction().

#define XOSD_INS_SIZE 4

Size of an instruction in words.

Referenced by XOsd_CreateInstruction(), and XOsd_LoadInstructionList().

#define XOsd_IntrClear | ( |  | InstancePtr,
|  |  | IntrType
| ) |  |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, \
(XOSD_STATUS_OFFSET), ((IntrType) & (XOSD_IXR_ALLINTR_MASK)))
XOSD_STATUS_OFFSET
#define XOSD_STATUS_OFFSET
Status Offset.
Definition: xosd_hw.h:148
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_IXR_ALLINTR_MASK
#define XOSD_IXR_ALLINTR_MASK
OR&#39;ing of all Masks.
Definition: xosd_hw.h:384

This function macro clears/acknowledges pending interrupts of the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  IntrType | is the pending interrupts to clear/acknowledge. Use OR'ing of XOSD_IXR_*_MASK constants defined in xosd_hw.h to create this parameter value.

Returns
  None

Note
  C-style signature: void XOsd_IntrClear(XOsd *InstancePtr, u32 IntrType)

Referenced by XOsd_IntrHandler().

#define XOsd_IntrDisable | ( |  | InstancePtr,
|  |  | IntrType
| ) |  |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_IER_OFFSET), \
(((~(IntrType)) & (XOSD_IXR_ALLINTR_MASK)) & \
(XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_IER_OFFSET)))))
XOSD_IER_OFFSET
#define XOSD_IER_OFFSET
Interrupt Enable Register Offset.
Definition: xosd_hw.h:144
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_IXR_ALLINTR_MASK
#define XOSD_IXR_ALLINTR_MASK
OR&#39;ing of all Masks.
Definition: xosd_hw.h:384

This function macro disables the given individual interrupt(s) on the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  IntrType | is the bit-mask of the interrupts to be enabled. Bit positions of 1 will be disabled. Bit positions of 0 will keep the previous setting.This mask is formed by OR'ing of XOSD_IXR_*_MASK bits defined in xosd_hw.h.

Returns
  None.

Note
  Any other interrupt not covered by parameter IntrType, if enabled before this macro is called, will remain enabled. C-style signature: void XOsd_IntrDisable(XOsd *InstancePtr, u32 IntrType)

#define XOsd_IntrEnable | ( |  | InstancePtr,
|  |  | IntrType
| ) |  |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_IER_OFFSET), \
(((IntrType) & (XOSD_IXR_ALLINTR_MASK)) | \
(XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_IER_OFFSET)))))
XOSD_IER_OFFSET
#define XOSD_IER_OFFSET
Interrupt Enable Register Offset.
Definition: xosd_hw.h:144
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_IXR_ALLINTR_MASK
#define XOSD_IXR_ALLINTR_MASK
OR&#39;ing of all Masks.
Definition: xosd_hw.h:384

This function macro enables the given individual interrupt(s) on the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  IntrType | is the bit-mask of the interrupts to be enabled. Bit positions of 1 will be enabled. Bit positions of 0 will keep the previous setting.This mask is formed by OR'ing of XOSD_IXR_*_MASK bits defined in xosd_hw.h.

Returns
  None.

Note
  The existing enabled interrupt(s) will remain enabled. C-style signature: void XOsd_IntrEnable(XOsd *InstancePtr, u32 IntrType)

#define XOsd_IntrGetPending | ( |  | InstancePtr | ) |

Value:
XOsd_ReadReg((InstancePtr)->Config.BaseAddress, (XOSD_IER_OFFSET)) & \
(XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_STATUS_OFFSET))) & (XOSD_IXR_ALLINTR_MASK)
XOSD_IER_OFFSET
#define XOSD_IER_OFFSET
Interrupt Enable Register Offset.
Definition: xosd_hw.h:144
XOSD_STATUS_OFFSET
#define XOSD_STATUS_OFFSET
Status Offset.
Definition: xosd_hw.h:148
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOSD_IXR_ALLINTR_MASK
#define XOSD_IXR_ALLINTR_MASK
OR&#39;ing of all Masks.
Definition: xosd_hw.h:384

This function macro returns the pending interrupts of the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  The pending interrupts of the OSD core. Use XOSD_IXR_*_MASK constants defined in xosd_hw.h to interpret this value.

Note
  C-style signature: u32 XOsd_IntrGetPending(XOsd *InstancePtr)

Referenced by XOsd_IntrHandler().

#define XOSD_ISR_OFFSET XOSD_STATUS_OFFSET

Interrupt status register generates a interrupt if the corresponding bits of interrupt enable register bits are set.

Interrupt Status Register Offset

#define XOSD_IXR_ALLERR_MASK

Value:
(XOSD_IXR_LAYER0_ERROR_MASK | \
XOSD_IXR_LAYER1_ERROR_MASK | \
XOSD_IXR_LAYER2_ERROR_MASK | \
XOSD_IXR_LAYER3_ERROR_MASK | \
XOSD_IXR_LAYER4_ERROR_MASK | \
XOSD_IXR_LAYER5_ERROR_MASK | \
XOSD_IXR_LAYER6_ERROR_MASK | \
XOSD_IXR_LAYER7_ERROR_MASK )
XOSD_IXR_LAYER5_ERROR_MASK
#define XOSD_IXR_LAYER5_ERROR_MASK
Layer 5 Error interrupt enable Mask.
Definition: xosd_hw.h:354
XOSD_IXR_LAYER3_ERROR_MASK
#define XOSD_IXR_LAYER3_ERROR_MASK
Layer 3 Error interrupt enable Mask.
Definition: xosd_hw.h:344
XOSD_IXR_LAYER6_ERROR_MASK
#define XOSD_IXR_LAYER6_ERROR_MASK
Layer 6 Error interrupt enable Mask.
Definition: xosd_hw.h:359
XOSD_IXR_LAYER1_ERROR_MASK
#define XOSD_IXR_LAYER1_ERROR_MASK
Layer 1 Error interrupt enable Mask.
Definition: xosd_hw.h:334
XOSD_IXR_LAYER7_ERROR_MASK
#define XOSD_IXR_LAYER7_ERROR_MASK
Layer 7 Error interrupt enable Mask.
Definition: xosd_hw.h:364
XOSD_IXR_LAYER0_ERROR_MASK
#define XOSD_IXR_LAYER0_ERROR_MASK
Layer 0 Error interrupt enable Mask.
Definition: xosd_hw.h:329
XOSD_IXR_LAYER2_ERROR_MASK
#define XOSD_IXR_LAYER2_ERROR_MASK
Layer 2 Error interrupt enable Mask.
Definition: xosd_hw.h:339
XOSD_IXR_LAYER4_ERROR_MASK
#define XOSD_IXR_LAYER4_ERROR_MASK
Layer 4 Error interrupt enable Mask.
Definition: xosd_hw.h:349

OSD Layer 0 to Layer 7 Error Mask.

Referenced by XOsd_IntrHandler().

#define XOSD_IXR_ALLINTR_MASK

Value:
(XOSD_IXR_PROC_STARTED_MASK | \
XOSD_IXR_EOF_MASK | \
XOSD_IXR_ALLERR_MASK)
XOSD_IXR_ALLERR_MASK
#define XOSD_IXR_ALLERR_MASK
OSD Layer 0 to Layer 7 Error Mask.
Definition: xosd_hw.h:373
XOSD_IXR_EOF_MASK
#define XOSD_IXR_EOF_MASK
OSD End of frame mask.
Definition: xosd_hw.h:372
XOSD_IXR_PROC_STARTED_MASK
#define XOSD_IXR_PROC_STARTED_MASK
OSD Processing started Mask.
Definition: xosd_hw.h:369

OR'ing of all Masks.

#define XOSD_IXR_EOF_MASK 0x00000002

OSD End of frame mask.

Referenced by XOsd_IntrHandler().

#define XOSD_IXR_LAYER0_ERROR_MASK 0x00000010

Layer 0 Error interrupt enable Mask.

#define XOSD_IXR_LAYER1_ERROR_MASK 0x00000020

Layer 1 Error interrupt enable Mask.

#define XOSD_IXR_LAYER2_ERROR_MASK 0x00000040

Layer 2 Error interrupt enable Mask.

#define XOSD_IXR_LAYER3_ERROR_MASK 0x00000080

Layer 3 Error interrupt enable Mask.

#define XOSD_IXR_LAYER4_ERROR_MASK 0x00000100

Layer 4 Error interrupt enable Mask.

#define XOSD_IXR_LAYER5_ERROR_MASK 0x00000200

Layer 5 Error interrupt enable Mask.

#define XOSD_IXR_LAYER6_ERROR_MASK 0x00000400

Layer 6 Error interrupt enable Mask.

#define XOSD_IXR_LAYER7_ERROR_MASK 0x00000800

Layer 7 Error interrupt enable Mask.

#define XOSD_IXR_PROC_STARTED_MASK 0x00000001

OSD Processing started Mask.

Referenced by XOsd_IntrHandler().

#define XOSD_L0C_OFFSET 0x110

Layer 0 Control Offset.

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_GetLayerAlpha(), XOsd_GetLayerDimension(), XOsd_GetLayerPriority(), XOsd_SetLayerAlpha(), XOsd_SetLayerDimension(), and XOsd_SetLayerPriority().

#define XOSD_L0P_OFFSET 0x114

Layer 0 Position Offset.

#define XOSD_L0S_OFFSET 0x118

Layer 0 Size Offset.

#define XOSD_L1C_OFFSET 0x120

Layer 1 Control Offset.

#define XOSD_L1P_OFFSET 0x124

Layer 1 Position Offset.

#define XOSD_L1S_OFFSET 0x128

Layer 1 Size Offset.

#define XOSD_L2C_OFFSET 0x130

Layer 2 Control Offset.

#define XOSD_L2P_OFFSET 0x134

Layer 2 Position Offset.

#define XOSD_L2S_OFFSET 0x138

Layer 2 Size Offset.

#define XOSD_L3C_OFFSET 0x140

Layer 3 Control Offset.

#define XOSD_L3P_OFFSET 0x144

Layer 3 Position Offset.

#define XOSD_L3S_OFFSET 0x148

Layer 3 Size Offset.

#define XOSD_L4C_OFFSET 0x150

Layer 4 Control Offset.

#define XOSD_L4P_OFFSET 0x154

Layer 4 Position Offset.

#define XOSD_L4S_OFFSET 0x158

Layer 4 Size Offset.

#define XOSD_L5C_OFFSET 0x160

Layer 5 Control Offset.

#define XOSD_L5P_OFFSET 0x164

Layer 5 Position Offset.

#define XOSD_L5S_OFFSET 0x168

Layer 5 Size Offset.

#define XOSD_L6C_OFFSET 0x170

Layer 6 Control Offset.

#define XOSD_L6P_OFFSET 0x174

Layer 6 Position Offset.

#define XOSD_L6S_OFFSET 0x178

Layer 6 Size Offset.

#define XOSD_L7C_OFFSET 0x180

Layer 7 Control Offset.

#define XOSD_L7P_OFFSET 0x184

Layer 7 Position Offset.

#define XOSD_L7S_OFFSET 0x188

Layer 7 Size Offset.

#define XOSD_LAYER_PRIORITY_0 0

Priority 0 — Lowest.

#define XOSD_LAYER_PRIORITY_1 1

Priority 1.

#define XOSD_LAYER_PRIORITY_2 2

Priority 2.

#define XOSD_LAYER_PRIORITY_3 3

Priority 3.

#define XOSD_LAYER_PRIORITY_4 4

Priority 4.

#define XOSD_LAYER_PRIORITY_5 5

Priority 5.

#define XOSD_LAYER_PRIORITY_6 6

Priority 6.

#define XOSD_LAYER_PRIORITY_7 7

Priority 7 — Highest.

Referenced by XOsd_SetLayerPriority().

#define XOSD_LAYER_SIZE 0x10

Total number of Layers.

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_GetLayerAlpha(), XOsd_GetLayerDimension(), XOsd_GetLayerPriority(), XOsd_SetLayerAlpha(), XOsd_SetLayerDimension(), and XOsd_SetLayerPriority().

#define XOSD_LAYER_TYPE_DISABLE 0

Layer is disabled.

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_GetLayerAlpha(), XOsd_GetLayerDimension(), XOsd_GetLayerPriority(), XOsd_SetLayerAlpha(), XOsd_SetLayerDimension(), and XOsd_SetLayerPriority().

#define XOSD_LAYER_TYPE_GPU 1

Layer's type is GPU.

Referenced by XOsd_CreateInstruction(), XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), XOsd_LoadTextBank(), and XOsd_SetActiveBank().

#define XOSD_LAYER_TYPE_VFBC 2

Layer's type is VFBC.

#define XOSD_LXC 0x00

Layer Control.

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_GetLayerAlpha(), XOsd_GetLayerPriority(), XOsd_SetLayerAlpha(), and XOsd_SetLayerPriority().

#define XOSD_LXC_ALPHA_MASK 0x1FFF0000

Global Alpha Value Mask.

Referenced by XOsd_GetLayerAlpha(), and XOsd_SetLayerAlpha().

#define XOSD_LXC_ALPHA_SHIFT 16

Bit shift number of Global Alpha Value.

Referenced by XOsd_GetLayerAlpha(), and XOsd_SetLayerAlpha().

#define XOSD_LXC_EN_MASK 0x00000001

Layer Enable Mask.

Referenced by XOsd_DisableLayer(), and XOsd_EnableLayer().

#define XOSD_LXC_GALPHAEN_MASK 0x00000002

Global Alpha Enable Mask.

Referenced by XOsd_GetLayerAlpha(), and XOsd_SetLayerAlpha().

#define XOSD_LXC_PRIORITY_MASK 0x00000700

Layer Priority Mask.

Referenced by XOsd_GetLayerPriority(), and XOsd_SetLayerPriority().

#define XOSD_LXC_PRIORITY_SHIFT 8

Bit shift number of Layer Priority.

Referenced by XOsd_GetLayerPriority(), and XOsd_SetLayerPriority().

#define XOSD_LXP 0x04

Layer Position.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXP_XSTART_MASK 0x00000FFF

Horizontal start pixel of origin of layer Mask.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXP_YSTART_MASK 0x0FFF0000

Vertical start line of origin of layer Mask.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXP_YSTART_SHIFT 16

Bit shift of vertical start line of origin of layer.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXS 0x08

Layer Size.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXS_XSIZE_MASK 0x00000FFF

Horizontal size of layer Mask.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXS_YSIZE_MASK 0x0FFF0000

Vertical size of layer Mask.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_LXS_YSIZE_SHIFT 16

Bit shift number of vertical size of layer.

Referenced by XOsd_GetLayerDimension(), and XOsd_SetLayerDimension().

#define XOSD_MAX_NUM_OF_LAYERS 8

The max number of layers.

Referenced by XOsd_CfgInitialize().

#define XOSD_OPENC_NBITS_MASK 0x00000030

Vertical Height of OSD Output Mask.

#define XOSD_OPENC_OFFSET 0x028

Output Encoding Offset.

#define XOSD_OPENC_VID_FORMAT_MASK 0x0000000F

OSD Output Video Format Mask 0: YUV 4:2:2 1: YUV 4:4:4 2: RGB 3: YUV 4:2:0.

#define XOsd_ReadReg | ( |  | BaseAddress,
|  |  | RegOffset
| ) |  | XOsd_In32((BaseAddress) + (u32)(RegOffset))

This function reads the given register.

Parameters

  BaseAddress | is the base address of the OSD core.
  RegOffset | is the register offset of the OSD core.

Returns
  The 32-bit value of the register.

Note
  C-style signature: u32 XOsd_ReadReg(u32 BaseAddress, u32 RegOffset)

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_GetActiveSize(), XOsd_GetBackgroundColor(), XOsd_GetLayerAlpha(), XOsd_GetLayerDimension(), XOsd_GetLayerPriority(), XOsd_GetVersion(), XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), XOsd_LoadTextBank(), XOsd_SelfTest(), XOsd_SetActiveBank(), XOsd_SetLayerAlpha(), and XOsd_SetLayerPriority().

#define XOsd_RegUpdateDisable | ( |  | InstancePtr | ) |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
((XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_CTL_OFFSET))) & (~(XOSD_CTL_RUE_MASK))))
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_RUE_MASK
#define XOSD_CTL_RUE_MASK
Register Update Enable Mask.
Definition: xosd_hw.h:723

This function macro prevents the OSD core from committing recent changes made so far by the software.

When disabled, changes to other configuration registers are stored, but do not effect the behavior of the core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_RegUpdateDisable(XOsd *InstancePtr)

#define XOsd_RegUpdateEnable | ( |  | InstancePtr | ) |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
((XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_CTL_OFFSET))) | (XOSD_CTL_RUE_MASK)))
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_RUE_MASK
#define XOSD_CTL_RUE_MASK
Register Update Enable Mask.
Definition: xosd_hw.h:723

This function macro commits all the register value changes made so far by the software to the OSD core instance.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_RegUpdateEnable(XOsd *InstancePtr)

#define XOsd_Reset | ( |  | InstancePtr | ) |

Value:
{ \
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
(XOSD_CTL_SW_RST_MASK)); \
(InstancePtr)->InstructionInExternalMem = (u32)0x0; \
(InstancePtr)->ScreenHeight = (u32)0x0; \
(InstancePtr)->ScreenWidth = (u32)0x0; \
}
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_SW_RST_MASK
#define XOSD_CTL_SW_RST_MASK
Core Reset Mask.
Definition: xosd_hw.h:727

This function macro resets an OSD core This effects the core immediately, and may cause image tearing.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_Reset(XOsd *InstancePtr) This bit automatically clears when reset complete.

Referenced by XOsd_CfgInitialize().

#define XOSD_RST_OFFSET XOSD_CTL_OFFSET

Software Reset Offset.

#define XOSD_RST_RESET XOSD_CTL_SW_RST_MASK

Software Reset.

#define XOsd_Start XOsd_Enable

This function macro stops an OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_Start(XOsd *InstancePtr)

#define XOSD_STATUS_OFFSET 0x004

Status Offset.

#define XOsd_StatusGetPending | ( |  | InstancePtr | ) |

Value:
XOsd_ReadReg((InstancePtr)->Config.BaseAddress, \
(XOSD_STATUS_OFFSET)) & (XOSD_IXR_ALLINTR_MASK)
XOSD_STATUS_OFFSET
#define XOSD_STATUS_OFFSET
Status Offset.
Definition: xosd_hw.h:148
XOsd_ReadReg
#define XOsd_ReadReg(BaseAddress, RegOffset)
This function reads the given register.
Definition: xosd_hw.h:823
XOSD_IXR_ALLINTR_MASK
#define XOSD_IXR_ALLINTR_MASK
OR&#39;ing of all Masks.
Definition: xosd_hw.h:384

This function macro returns the pending status of the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  The pending interrupts of the OSD. Use XOSD_IXR_* constants defined in xosd_hw.h to interpret this value.

Note
  C-style signature: u32 XOsd_StatusGePending(XOsd *InstancePtr)

#define XOsd_Stop XOsd_Disable

This function macro stops an OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_Stop(XOsd *InstancePtr)

#define XOsd_SyncReset | ( |  | InstancePtr | ) |

Value:
XOsd_WriteReg((InstancePtr)->Config.BaseAddress, (XOSD_CTL_OFFSET), \
(XOSD_CTL_FSYNC_MASK))
XOsd_WriteReg
#define XOsd_WriteReg(BaseAddress, RegOffset, Data)
This function writes the given register.
Definition: xosd_hw.h:841
XOSD_CTL_OFFSET
#define XOSD_CTL_OFFSET
Control Offset.
Definition: xosd_hw.h:84
XOSD_CTL_FSYNC_MASK
#define XOSD_CTL_FSYNC_MASK
Frame Sync Reset Mask.
Definition: xosd_hw.h:726

This function macro resets a OSD core at the end of the frame being processed.

It enables core automatically synchronizes to the SOF of the core to prevent image tearing. This function macro is differ from XOsd_Reset().

On the next rising-edge of SOF following a call to XOsd_SyncReset(), all of the core's configuration registers and outputs will be reset, then the reset flag will be immediately released, allowing the core to immediately resume default operation.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  None.

Note
  C-style signature: void XOsd_SyncReset(XOsd *InstancePtr) This bit automatically clears when reset complete.

#define XOSD_VER_MAJOR_MASK 0xFF000000

Major Version Mask.

#define XOSD_VER_MAJOR_SHIFT 24

Major Version Shift.

#define XOSD_VER_MINOR_MASK 0x00FF0000

Minor Version Mask.

#define XOSD_VER_MINOR_SHIFT 16

Minor Version Bit Shift.

#define XOSD_VER_OFFSET 0x010

Version Offset.

Referenced by XOsd_GetVersion(), and XOsd_SelfTest().

#define XOSD_VER_REV_MASK 0x0000F000

Revision Version Mask.

#define XOSD_VER_REV_SHIFT 12

Revision Bit Shift.

#define XOsd_WriteReg | ( |  | BaseAddress,
|  |  | RegOffset,
|  |  | Data
| ) |  | XOsd_Out32((BaseAddress) + (u32)(RegOffset), (Data))

This function writes the given register.

Parameters

  BaseAddress | is the base address of the OSD core.
  RegOffset | is the register offset of the OSD core.
  Data | is the 32-bit value to write into the core register.

Returns
  None.

Note
  C-style signature: void XOsd_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)

Referenced by XOsd_DisableLayer(), XOsd_EnableLayer(), XOsd_LoadCharacterSetBank(), XOsd_LoadColorLUTBank(), XOsd_LoadInstructionList(), XOsd_LoadTextBank(), XOsd_SetActiveBank(), XOsd_SetActiveSize(), XOsd_SetBackgroundColor(), XOsd_SetLayerAlpha(), XOsd_SetLayerDimension(), and XOsd_SetLayerPriority().

## Typedef Documentation

typedef void(* XOsd_CallBack)(void *CallBackRef)

This function callback type for all interrupts except error interrupt.

Parameters

  CallBackRef | is a callback reference passed in by the upper layer when setting the callback functions and passed back to the upper layer when the callback is invoked.

Returns
  None.

Note
  None.

typedef void(* XOsd_ErrorCallBack)(void *CallBackRef, u32 ErrorMask)

This function callback type for error interrupt.

Parameters

  CallBackRef | is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked.
  ErrorMask | is a bit mask indicating the cause of the error. Its value equals 'OR'ing one or more XOSD_IXR_* values defined in xosd_hw.h.

Returns
  None.

Note
  None.

typedef u32 XOsd_Instruction[XOSD_INS_SIZE]

The XOsd_Instruction data structure for holding one GC instruction.

## Enumeration Type Documentation

anonymous enum

Enumerator
XOSD_HANDLER_PROCSTART | A processing start event interrupt type.
XOSD_HANDLER_FRAMEDONE | A frame done event interrupt type.
XOSD_HANDLER_ERROR | An error condition interrupt type.

## Function Documentation

int XOsd_CfgInitialize | ( | XOsd * | InstancePtr,
|  | XOsd_Config * | CfgPtr,
|  | u32 | EffectiveAddr
| ) |  |

This function initializes an OSD core.

This function must be called prior to using an OSD core. Initialization of an OSD includes setting up the instance data and ensuring the hardware is in a quiescent state.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  CfgPtr | points to the configuration structure associated with the OSD core.
  EffectiveAddr | is the base address of the core. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.

Returns
  - XST_SUCCESS if XOsd_CfgInitialize was successful.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::ErrCallBack, XOsd::FrameDoneCallBack, XOsd::InstructionInExternalMem, XOsd::IsReady, XOsd_Config::LayerNum, XOsd::ProcStartCallBack, XOSD_MAX_NUM_OF_LAYERS, and XOsd_Reset.

Referenced by XOsdSelfTestExample().

void XOsd_CreateInstruction | ( | XOsd * | InstancePtr,
|  | u32 | InstructionPtr[],
|  | u8 | GcIndex,
|  | u16 | ObjType,
|  | u8 | ObjSize,
|  | u16 | XStart,
|  | u16 | YStart,
|  | u16 | XEnd,
|  | u16 | YEnd,
|  | u8 | TextIndex,
|  | u8 | ColorIndex
| ) |  |

This function creates an instruction for the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  InstructionPtr | is a pointer to the instruction buffer to be populated with the instruction to be created. The upper level application is responsible for allocating this instruction buffer.
  GcIndex | indicates the Graphics Controller that will consume the instruction. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  ObjType | indicates the type of object to draw. Use one of XOSD_INS_OPCODE_* constants defined in xosd_hw.h.
  ObjSize | indicates line width of boxes and lines and the text scale factor for text boxes.
  XStart | indicates the horizontal start pixel of the Object.
  YStart | indicates the vertical start line of the Object.
  XEnd | indicates the horizontal end pixel of the Object.
  YEnd | indicates the vertical end line of the Object.
  TextIndex | indicates the string index.
  ColorIndex | indicates the color index.

Returns
  None.

Note
  None.

References XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOsd_Layer::TextNumStrings, XOSD_INS0, XOSD_INS0_GCNUM_MASK, XOSD_INS0_GCNUM_SHIFT, XOSD_INS0_OPCODE_MASK, XOSD_INS0_OPCODE_SHIFT, XOSD_INS0_XEND_MASK, XOSD_INS0_XEND_SHIFT, XOSD_INS0_XSTART_MASK, XOSD_INS1, XOSD_INS1_TXTINDEX_MASK, XOSD_INS2, XOSD_INS2_OBJSIZE_MASK, XOSD_INS2_OBJSIZE_SHIFT, XOSD_INS2_YEND_MASK, XOSD_INS2_YEND_SHIFT, XOSD_INS2_YSTART_MASK, XOSD_INS3, XOSD_INS3_COL_MASK, XOSD_INS_OPCODE_BOX, XOSD_INS_OPCODE_BOXTXT, XOSD_INS_OPCODE_END, XOSD_INS_OPCODE_LINE, XOSD_INS_OPCODE_NOP, XOSD_INS_OPCODE_TXT, XOSD_INS_SIZE, and XOSD_LAYER_TYPE_GPU.

void XOsd_DisableLayer | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex
| ) |  |

This function disables an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_EN_MASK, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_EnableLayer | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex
| ) |  |

This function enables an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_EN_MASK, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_GetActiveSize | ( | XOsd * | InstancePtr,
|  | u32 * | WidthPtr,
|  | u32 * | HeightPtr
| ) |  |

This function gets the screen size of the OSD Output.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  WidthPtr | will point to the width of the OSD output after this function returns.
  HeightPtr | will point to the height of the OSD output after this function returns.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOSD_ACTIVE_SIZE_OFFSET, XOSD_ACTSIZE_NUM_LINE_MASK, XOSD_ACTSIZE_NUM_LINE_SHIFT, XOSD_ACTSIZE_NUM_PIXEL_MASK, and XOsd_ReadReg.

void XOsd_GetBackgroundColor | ( | XOsd * | InstancePtr,
|  | u16 * | RedPtr,
|  | u16 * | BluePtr,
|  | u16 * | GreenPtr
| ) |  |

This function gets the background color used by the OSD output.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  RedPtr | will point to the red value used in the background color after this function returns.
  BluePtr | will point to the blue value used in the background color after this function returns.
  GreenPtr | will point to the green value used in the background color after this function returns.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOSD_BC0_OFFSET, XOSD_BC0_YG_MASK, XOSD_BC1_OFFSET, XOSD_BC1_UCBB_MASK, XOSD_BC2_OFFSET, XOSD_BC2_VCRR_MASK, and XOsd_ReadReg.

void XOsd_GetLayerAlpha | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u16 * | GlobalAlphaEnablePtr,
|  | u16 * | GlobalAlphaValuePtr
| ) |  |

This function gets the alpha value and mode of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  GlobalAlphaEnablePtr | will point to a flag indicating whether the global alpha is enabled on a layer after this function returns. Flag 1 indicates that the global alpha is enabled, 0 indicates that it is not.
  GlobalAlphaValuePtr | will point to the transparent level after this function returns. 0 for 100% transparent, 255 (8bit) for 0% transparent (100% opaque).

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_ALPHA_MASK, XOSD_LXC_ALPHA_SHIFT, XOSD_LXC_GALPHAEN_MASK, and XOsd_ReadReg.

void XOsd_GetLayerDimension | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u16 * | XStartPtr,
|  | u16 * | YStartPtr,
|  | u16 * | XSizePtr,
|  | u16 * | YSizePtr
| ) |  |

This function gets the start position and size of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  XStartPtr | will point to the horizontal start pixel value of origin of the layer after this function returns.
  YStartPtr | will point to the vertical start line of origin of the layer after this function returns.
  XSizePtr | will point to the horizontal size value of the layer after this function returns.
  YSizePtr | will point to the vertical size value of the layer after this function returns.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXP, XOSD_LXP_XSTART_MASK, XOSD_LXP_YSTART_MASK, XOSD_LXP_YSTART_SHIFT, XOSD_LXS, XOSD_LXS_XSIZE_MASK, XOSD_LXS_YSIZE_MASK, XOSD_LXS_YSIZE_SHIFT, and XOsd_ReadReg.

void XOsd_GetLayerPriority | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u8 * | PriorityPtr
| ) |  |

This function gets the priority of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  PriorityPtr | will point to the priority used on the layer after this function returns. Use one of XOSD_LAYER_PRIORITY_0 (the lowest priority) through XOSD_LAYER_PRIORITY_7 (the highest priority) defined in xosd_hw.h to interpret the value.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_PRIORITY_MASK, XOSD_LXC_PRIORITY_SHIFT, and XOsd_ReadReg.

u32 XOsd_GetVersion | ( | XOsd * | InstancePtr | ) |

This function returns the Version of the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.

Returns
  Contents of the Version register.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd_ReadReg, and XOSD_VER_OFFSET.

void XOsd_IntrHandler | ( | void * | InstancePtr | ) |

This function is the interrupt handler for the On-Screen-Display driver.

This handler reads the pending interrupt from the IER/ISR, determines the source of the interrupts, calls according callbacks, and finally clears the interrupts.

The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using XOsd_SetCallBack() during initialization phase.

Parameters

  InstancePtr | is a pointer to the XOsd instance that just interrupted.

Returns
  None.

Note
  None.

References XOsd::ErrCallBack, XOsd::ErrRef, XOsd::FrameDoneCallBack, XOsd::FrameDoneRef, XOsd::IsReady, XOsd::ProcStartCallBack, XOsd::ProcStartRef, XOsd_IntrClear, XOsd_IntrGetPending, XOSD_IXR_ALLERR_MASK, XOSD_IXR_EOF_MASK, and XOSD_IXR_PROC_STARTED_MASK.

void XOsd_LoadCharacterSetBank | ( | XOsd * | InstancePtr,
|  | u8 | GcIndex,
|  | u8 | BankIndex,
|  | u32 | CharSetData[]
| ) |  |

This function loads character set data (font) into an OSD Graphics Controller bank.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  GcIndex | indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  BankIndex | indicates which GC bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1.
  CharSetData | points to the character set data to be loaded.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd_Layer::FontBitsPerPixel, XOsd_Layer::FontHeight, XOsd_Layer::FontNumChars, XOsd_Layer::FontWidth, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_FONT_BIT_TO_BYTE, XOSD_GC_BANK_NUM, XOSD_GCABA_CHR_SHIFT, XOSD_GCABA_OFFSET, XOSD_GCD_OFFSET, XOSD_GCWBA_BANK_MASK, XOSD_GCWBA_CHR0, XOSD_GCWBA_GCNUM_MASK, XOSD_GCWBA_GCNUM_SHIFT, XOSD_GCWBA_OFFSET, XOSD_LAYER_TYPE_GPU, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_LoadColorLUTBank | ( | XOsd * | InstancePtr,
|  | u8 | GcIndex,
|  | u8 | BankIndex,
|  | u32 | ColorData[]
| ) |  |

This function loads color look up table data into an OSD Graphics Controller bank.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  GcIndex | indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  BankIndex | indicates which GC Bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1.
  ColorData | points to the color LUT data to be loaded.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd_Layer::ColorLutSize, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOsd_Config::SlaveAxisVideoDataWidth, XOSD_COLOR_ENTRY_SIZE, XOSD_GC_BANK_NUM, XOSD_GCABA_COL_SHIFT, XOSD_GCABA_OFFSET, XOSD_GCD_OFFSET, XOSD_GCWBA_BANK_MASK, XOSD_GCWBA_COL0, XOSD_GCWBA_GCNUM_MASK, XOSD_GCWBA_GCNUM_SHIFT, XOSD_GCWBA_OFFSET, XOSD_LAYER_TYPE_GPU, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_LoadInstructionList | ( | XOsd * | InstancePtr,
|  | u8 | GcIndex,
|  | u8 | BankIndex,
|  | u32 | InstSetPtr[],
|  | u32 | InstNum
| ) |  |

This function load an instruction list to be used by an Graphic Controller in the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  GcIndex | indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  BankIndex | indicates which GC Bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM.
  InstSetPtr | is a pointer to the start of the instruction list to load into the OSD core. The last instruction in the list must has XOSD_INS_OPCODE_END type.
  InstNum | indicates the number of the instructions in the list to load. Valid value range is from 1 to the half of the size of the instruction memory created for the Graphic Controller.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_GC_BANK_NUM, XOSD_GCABA_OFFSET, XOSD_GCD_OFFSET, XOSD_GCWBA_BANK_MASK, XOSD_GCWBA_GCNUM_MASK, XOSD_GCWBA_GCNUM_SHIFT, XOSD_GCWBA_INS0, XOSD_GCWBA_OFFSET, XOSD_INS_SIZE, XOSD_LAYER_TYPE_GPU, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_LoadTextBank | ( | XOsd * | InstancePtr,
|  | u8 | GcIndex,
|  | u8 | BankIndex,
|  | u32 | TextData[]
| ) |  |

This function loads text data into an OSD Graphics Controller bank.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  GcIndex | indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  BankIndex | indicates which GC bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1.
  TextData | points to the text data to be loaded.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOsd_Layer::TextMaxStringLength, XOSD_GC_BANK_NUM, XOSD_GCABA_OFFSET, XOSD_GCABA_TXT_SHIFT, XOSD_GCD_OFFSET, XOSD_GCWBA_BANK_MASK, XOSD_GCWBA_GCNUM_MASK, XOSD_GCWBA_GCNUM_SHIFT, XOSD_GCWBA_OFFSET, XOSD_GCWBA_TXT0, XOSD_LAYER_TYPE_GPU, XOsd_ReadReg, and XOsd_WriteReg.

XOsd_Config * XOsd_LookupConfig | ( | u16 | DeviceId | ) |

This function gets a reference to an XOsd_Config structure based on the unique device id, DeviceId.

The return value will refer to an entry in the core configuration table defined in the xosd_g.c file.

Parameters

  DeviceId | is the unique core ID of the OSD core for the lookup operation.

Returns
  XOsd_Config is a reference to a config record in the configuration table (in xosd_g.c) corresponding to DeviceId or NULL if no match is found.

Note
  None.

Referenced by XOsdSelfTestExample().

int XOsd_SelfTest | ( | XOsd * | InstancePtr | ) |

This function reads Version register of OSD core and compares with zero as part of self test.

Parameters

  InstancePtr | is a pointer to the XOsd instance.

Returns
  - XST_SUCCESS if the Version register read test was successful.
  - XST_FAILURE if the Version register read test failed.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd_ReadReg, and XOSD_VER_OFFSET.

Referenced by XOsdSelfTestExample().

void XOsd_SetActiveBank | ( | XOsd * | InstancePtr,
|  | u8 | GcIndex,
|  | u8 | ColorBankIndex,
|  | u8 | CharBankIndex,
|  | u8 | TextBankIndex,
|  | u8 | InstructionBankIndex
| ) |  |

This function chooses active banks for a GC in the OSD core.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  GcIndex | indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in xosd_hw.h) for this function to work properly.
  ColorBankIndex | indicates the color LUT bank to be choose as active.
  CharBankIndex | indicates the character set bank to be chosen as active.
  TextBankIndex | indicates the text data bank to be chosen as active.
  InstructionBankIndex | indicates the instruction bank to be chosen as active.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_GC_BANK_NUM, XOSD_GCABA_CHR_MASK, XOSD_GCABA_CHR_SHIFT, XOSD_GCABA_COL_MASK, XOSD_GCABA_COL_SHIFT, XOSD_GCABA_INS_MASK, XOSD_GCABA_OFFSET, XOSD_GCABA_TXT_MASK, XOSD_GCABA_TXT_SHIFT, XOSD_LAYER_TYPE_GPU, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_SetActiveSize | ( | XOsd * | InstancePtr,
|  | u32 | Width,
|  | u32 | Height
| ) |  |

This function sets the screen size of the OSD Output.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  Width | defines the width of the OSD output.
  Height | defines the height of the OSD output.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::ScreenHeight, XOsd::ScreenWidth, XOSD_ACTIVE_SIZE_OFFSET, XOSD_ACTSIZE_NUM_LINE_MASK, XOSD_ACTSIZE_NUM_LINE_SHIFT, XOSD_ACTSIZE_NUM_PIXEL_MASK, and XOsd_WriteReg.

void XOsd_SetBackgroundColor | ( | XOsd * | InstancePtr,
|  | u16 | Red,
|  | u16 | Blue,
|  | u16 | Green
| ) |  |

This function sets the background color used by the OSD output.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  Red | indicates the red value to be used in the background color.
  Blue | indicates the blue value to be used in the background color.
  Green | indicates the green value to be used in the background color.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOSD_BC0_OFFSET, XOSD_BC0_YG_MASK, XOSD_BC1_OFFSET, XOSD_BC1_UCBB_MASK, XOSD_BC2_OFFSET, XOSD_BC2_VCRR_MASK, and XOsd_WriteReg.

int XOsd_SetCallBack | ( | XOsd * | InstancePtr,
|  | u32 | HandlerType,
|  | void * | CallBackFunc,
|  | void * | CallBackRef
| ) |  |

This routine installs an asynchronous callback function for the given HandlerType:

    HandlerType              Callback Function Type
    -----------------------  -------------------------------
    XOSD_HANDLER_PROCSTART   StubCallBack
    XOSD_HANDLER_FRAMEDONE   StubCallBack
    XOSD_HANDLER_ERROR       StubErrCallBack

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  HandlerType | specifies which callback is to be attached.
  CallBackFunc | is the address of the callback function.
  CallBackRef | is a user data item that will be passed to the callback function when it is invoked.

Returns
  - XST_SUCCESS when handler is installed.
  - XST_INVALID_PARAM when HandlerType is invalid.

Note
  Invoking this function for a handler that already has been installed replaces it with the new handler.

References XOsd::ErrCallBack, XOsd::ErrRef, XOsd::FrameDoneCallBack, XOsd::FrameDoneRef, XOsd::IsReady, XOsd::ProcStartCallBack, XOsd::ProcStartRef, XOSD_HANDLER_ERROR, XOSD_HANDLER_FRAMEDONE, and XOSD_HANDLER_PROCSTART.

void XOsd_SetLayerAlpha | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u16 | GlobalAlphaEnable,
|  | u16 | GlobalAlphaValue
| ) |  |

This function sets the alpha value and mode of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  GlobalAlphaEnable | indicates whether to enable the global alpha. Use any non-0 value to enable the global alpha, and 0 to disable it.
  GlobalAlphaValue | indicates the transparent level. 0 for 100% transparent, 255 (8bit) for 0% transparent (100% opaque). This argument will be ignored if parameter GlobalAlphaEnble has value 0.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_ALPHA_MASK, XOSD_LXC_ALPHA_SHIFT, XOSD_LXC_GALPHAEN_MASK, XOsd_ReadReg, and XOsd_WriteReg.

void XOsd_SetLayerDimension | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u16 | XStart,
|  | u16 | YStart,
|  | u16 | XSize,
|  | u16 | YSize
| ) |  |

This function sets the start position and size of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  XStart | indicates the horizontal start pixel of origin of the layer.
  YStart | indicates the vertical start line of origin of the layer.
  XSize | indicates the horizontal size of the layer.
  YSize | indicates the vertical size of the layer.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOsd::ScreenHeight, XOsd::ScreenWidth, XOSD_L0C_OFFSET, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXP, XOSD_LXP_XSTART_MASK, XOSD_LXP_YSTART_MASK, XOSD_LXP_YSTART_SHIFT, XOSD_LXS, XOSD_LXS_XSIZE_MASK, XOSD_LXS_YSIZE_MASK, XOSD_LXS_YSIZE_SHIFT, and XOsd_WriteReg.

void XOsd_SetLayerPriority | ( | XOsd * | InstancePtr,
|  | u8 | LayerIndex,
|  | u8 | Priority
| ) |  |

This function sets the priority of an OSD layer.

Parameters

  InstancePtr | is a pointer to the XOsd instance to be worked on.
  LayerIndex | indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).
  Priority | indicates the priority to be applied on the layer. Use one of XOSD_LAYER_PRIORITY_0 (the lowest priority) through XOSD_LAYER_PRIORITY_7 (the highest priority) defined in xosd_hw.h.

Returns
  None.

Note
  None.

References XOsd_Config::BaseAddress, XOsd::Config, XOsd::IsReady, XOsd::Layers, XOsd_Layer::LayerType, XOSD_L0C_OFFSET, XOSD_LAYER_PRIORITY_7, XOSD_LAYER_SIZE, XOSD_LAYER_TYPE_DISABLE, XOSD_LXC, XOSD_LXC_PRIORITY_MASK, XOSD_LXC_PRIORITY_SHIFT, XOsd_ReadReg, and XOsd_WriteReg.