| /*************************************************** |
| Copyright (c) 2015 Amphion Semiconductor Ltd |
| All rights reserved. |
| *************************************************** |
| * The code contained herein is licensed under the GNU General Public |
| * License. You may obtain a copy of the GNU General Public License |
| * Version 2 or later at the following locations: |
| * |
| * http://www.opensource.org/licenses/gpl-license.html |
| * http://www.gnu.org/copyleft/gpl.html |
| **************************************************** |
| |
| Filename: mediaip_fw_defines.h |
| Description: Contains general definitions for |
| module based architecture |
| Author: Media IP FW team - Belfast |
| |
| TODO-KMC - Should remove this file!! |
| **************************************************/ |
| |
| #ifndef _MEDIAIP_FW_DEFINES_H_ |
| #define _MEDIAIP_FW_DEFINES_H_ |
| |
| /* In use MACROS for use by types shared across modules */ |
| /* When adding new modules, endeavour to maintain the same 'position' as that suggested by the */ |
| /* module's position in the MEDIAIP_FW_HANDLE_TYPE enumeration - see Modules/Public/handle.h */ |
| |
| #define IN_USE_DECODER ( 1 << 0x0 ) |
| #define IN_USE_ENCODER ( 1 << 0x1 ) |
| #define IN_USE_IMG_PORT ( 1 << 0x2 ) |
| #define IN_USE_DISPLAY ( 1 << 0x3 ) |
| #define IN_USE_VAMUX ( 1 << 0x4 ) |
| #define IN_USE_VIPP ( 1 << 0x5 ) |
| #define IN_USE_SYS_API ( 1 << 0x10 ) |
| |
| ///////////////////////////////////////////////// |
| // Frame Store Display Data make-up |
| |
| // Read |
| #define FRAME_STORE_DISP_DATA_FSID(r) ((r>>0)&0x3f) |
| #define FRAME_STORE_DISP_DATA_RPT_FIRST_FLD(r) ((r>>15)&0x1) // IDJ: Pass RFF (borrow a bit from unused base addr field) |
| #define FRAME_STORE_DISP_DATA_SPS_IDC_BITS(r) ((r>>16)&0x7) |
| #define FRAME_STORE_DISP_DATA_DANG_FIELD_BIT(r) ((r>>19)&0x1) |
| #define FRAME_STORE_DISP_DATA_FIELD_MODE_BIT(r) ((r>>20)&0x1) |
| #define FRAME_STORE_DISP_DATA_BOT_FIRST_BIT(r) ((r>>21)&0x1) |
| #define FRAME_STORE_DISP_DATA_SKIP_PIC_BITS(r) ((r>>22)&0x3) |
| #define FRAME_STORE_DISP_DATA_SYS_DATA_BITS(r) ((r>>24)&0xFF) |
| #define FRAME_STORE_DISP_DATA_FRAME_BADDR(r) ((r>>0)&0x7FFF) |
| #define FRAME_STORE_DATAFIELDS(a) (a&0xffff8000) // IDJ - bit 15 used above |
| |
| // Write |
| #define FRAME_STORE_DISP_DATA_PUT_FSID(a) ((a&0x3f) << 0) |
| #define FRAME_STORE_DISP_DATA_PUT_FRAME_BADDR(a) ((a&0x7fff) << 0) |
| #define FRAME_STORE_DISP_DATA_PUT_DUPLC_FRAME_SENT(a) ((a&0x1) << 14) // RayC/JKD: but used to control when duplicate frames are sent |
| #define FRAME_STORE_DISP_DATA_PUT_DUPLC_FRAME_SENT_GET(a) ((a>>14)&0x1) |
| #define FRAME_STORE_DISP_DATA_PUT_RPT_FIRST_FIELD(a) ((a&0x1) << 15) // IDJ Borrow a bit from BADDR field (not used) |
| #define FRAME_STORE_DISP_DATA_PUT_DISP_PARAM_ID(a) ((a&0x7) << 16) |
| #define FRAME_STORE_DISP_DATA_PUT_DANGLING_FIELD(a) ((a&0x1) << 19) |
| #define FRAME_STORE_DISP_DATA_PUT_FIELD_MODE(a) ((a&0x1) << 20) |
| #define FRAME_STORE_DISP_DATA_PUT_BOT_FIELD_FIRST(a) ((a&0x1) << 21) |
| #define FRAME_STORE_DISP_DATA_PUT_TOP_SKIPPED(a) ((a&0x1) << 22) |
| #define FRAME_STORE_DISP_DATA_PUT_BOT_SKIPPED(a) ((a&0x1) << 23) |
| #define FRAME_STORE_DISP_DATA_PUT_SYS_DATA(a) ((a&0xff) << 24) |
| |
| #define NUM_DISP_PUSHES_MASK 0xFF00 |
| #define NUM_DISP_PUSHES_POS 8 |
| #define NUM_DISP_PUSHES_SET(x) (x<<NUM_DISP_PUSHES_POS) |
| #define NUM_DISP_PUSHES_GET(x) ( (x&NUM_DISP_PUSHES_MASK) >> NUM_DISP_PUSHES_POS) |
| |
| ///////////////////////////////////////////////// |
| // Display Params |
| |
| #define DISP_INFO_USER_DATA_ATTACHED_MASK 0x1 |
| #define DISP_INFO_USER_DATA_ATTACHED_POS 0 |
| #define DISP_INFO_GET_USER_DATA_ATTACHED(x) ((x&DISP_INFO_USER_DATA_ATTACHED_MASK)>>DISP_INFO_USER_DATA_ATTACHED_POS) |
| #define DISP_INFO_USER_DATA_MASK 0xFFFF |
| #define DISP_INFO_USER_DATA_POS 16 |
| #define DISP_INFO_GET_USER_DATA(x) ((x>>DISP_INFO_USER_DATA_POS)&DISP_INFO_USER_DATA_MASK) |
| |
| // uScanFormat defines |
| |
| #define DISP_SCAN_FORMAT_INTERLACED 0x0 |
| #define DISP_SCAN_FORMAT_PROGRESSIVE 0x1 |
| #define DISP_SCAN_FORMAT_VALID_GET(r) (r&0x1) |
| #define DISP_SCAN_FORMAT_GET(r) ((r&0x2)>>1) |
| #define DISP_SCAN_FORMAT_VALID_SET(r) ((r&0x1)<<0) |
| #define DISP_SCAN_FORMAT_SET(r) ((r&0x1)<<1) |
| |
| ///////////////////////////////////////////////// |
| // General defines - base on Stream descriptor for Pecos |
| |
| #define STOP_IMMEDIATE 0x0 |
| #define STOP_COMPLETE_DISPLAY 0x1 |
| |
| #define FORMAT_VC1 0x2 |
| #define FORMAT_MPEG2 0x1 |
| #define FORMAT_MPEG4 0x0 |
| #define FORMAT_MPEG2_DBEN 0x1 |
| #define FORMAT_MPEG2_DBDRNGEN 0x2 |
| |
| #define STREAM_MODE_ES 0x1 |
| #define STREAM_MODE_PES 0x0 |
| |
| #define DELIVERY_MODE_TSP_DIRECT 0x0 |
| #define DELIVERY_MODE_BSP 0x1 |
| #define DELIVERY_MODE_BSDMA 0x2 |
| |
| // Buffer Indices |
| #define SD_BUFIND_ESBUF_MASK 0xFF |
| #define SD_BUFIND_ESBUF_SHIFT 0 |
| #define SD_BUFIND_STC_MASK 0x30000 |
| #define SD_BUFIND_STC_SHIFT 16 |
| #define SD_BUFIND_ESBUF_GET(x) ((x&SD_BUFIND_ESBUF_MASK)>>SD_BUFIND_ESBUF_SHIFT) |
| #define SD_BUFIND_STC_GET(x) ((x&SD_BUFIND_STC_MASK)>>SD_BUFIND_STC_SHIFT) |
| |
| #define UD_ORDER_DECODE 0x1 |
| #define UD_ORDER_DISPLAY 0x2 |
| #define UD_ORDER_DECODEANDDISPLAY 0x3 |
| |
| #define PRINT_UART4(a,b,c,d) |
| #define PRINT_UART5(a,b,c,d,e) |
| |
| #define DISPLAY_ASPECT_RATIO_4_3 0x2 |
| #define DISPLAY_ASPECT_RATIO_16_9 0x3 |
| |
| |
| ///////////////////////////////////////////////// |
| // PTS capture descriptor flags |
| #define PTS_DESCRIPTOR_PTS_LO 0x00000000 |
| #define PTS_DESCRIPTOR_DTS_LO 0x00000004 |
| #define PTS_DESCRIPTOR_FLAGS 0x00000008 |
| #define PTS_DESCRIPTOR_WRAP_COUNT 0x00000009 |
| #define PTS_DESCRIPTOR_TIMEBASE_ID 0x0000000A |
| #define PTS_DESCRIPTOR_MATURITY_ADDRESS 0x0000000C |
| |
| #define PTS_DESCRIPTOR_FLAG_PTS_HI_MASK 0x00000001 |
| #define PTS_DESCRIPTOR_FLAG_PTS_HI_BIT 0 |
| #define PTS_DESCRIPTOR_FLAG_DTS_HI_MASK 0x00000002 |
| #define PTS_DESCRIPTOR_FLAG_DTS_HI_BIT 1 |
| #define PTS_DESCRIPTOR_FLAG_STC_PARITY_MASK 0x00000004 |
| #define PTS_DESCRIPTOR_FLAG_STC_PARITY_BIT 2 |
| #define PTS_DESCRIPTOR_FLAG_PENDING_MASK 0x00000008 |
| #define PTS_DESCRIPTOR_FLAG_PENDING_BIT 3 |
| #define PTS_DESCRIPTOR_FLAG_PESERROR_MASK 0x00000010 |
| #define PTS_DESCRIPTOR_FLAG_PESERROR_BIT 4 |
| |
| #define PTS_DESCRIPTOR_FLAG_ADDRESS_WRAP_COUNT_BIT 8 |
| #define PTS_DESCRIPTOR_FLAG_ADDRESS_WRAP_COUNT_MASK 0x0000FF00 |
| #define PTS_DESCRIPTOR_FLAG_TIMEBASE_ID_BIT 16 |
| #define PTS_DESCRIPTOR_FLAG_TIMEBASE_ID_MASK 0x000F0000 |
| #define PTS_DESCRIPTOR_FLAG_AVC_TAG_BIT 24 |
| #define PTS_DESCRIPTOR_FLAG_AVC_TAG_MASK 0xFF000000 |
| |
| // PTS debug descriptor extensions |
| #define PTS_DESCRIPTOR_DEBUG 0x00000010 |
| #define PTS_DESCRIPTOR_DEBUG_PTS_DTS 0x00000010 |
| #define PTS_DESCRIPTOR_DEBUG_STC_SNAPSHOT 0x00000014 |
| #define PTS_DESCRIPTOR_DEBUG_DIFFERENCE 0x00000018 |
| #define PTS_DESCRIPTOR_DEBUG_FLAGS 0x0000001C |
| |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_NO_PTS 0x00000001 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_NO_STC 0x00000002 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_IS_DTS 0x00000004 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_RUNNING 0x00000008 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_INSANE 0x00000010 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_STC_B 0x00000020 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_STC_CURRENT 0x00000040 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_TIMEBASE_MISMATCH 0x00000080 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_LATE 0x00000100 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_EARLY 0x00000200 |
| #define PTS_DESCRIPTOR_DEBUG_FLAG_VERY_LATE 0x00000100 |
| |
| ///////////////////////////////////////////////// |
| // Tag descriptor defines |
| // Flag definitions |
| #define TAGLIST_SEI_PIC_STRUCT_FLAG_MASK 0x1 |
| #define TAGLIST_SEI_PIC_STRUCT_FLAG_SHIFT 0 |
| #define TAGLIST_SEI_FRAME_FREEZE_FLAG_MASK 0x2 |
| #define TAGLIST_SEI_FRAME_FREEZE_FLAG_SHIFT 1 |
| #define TAGLIST_SEI_FRAME_RELEASE_FLAG_MASK 0x4 |
| #define TAGLIST_SEI_FRAME_RELEASE_FLAG_SHIFT 2 |
| #define TAGLIST_SEI_SKIP_FLAG_MASK 0x8 |
| #define TAGLIST_SEI_SKIP_FLAG_SHIFT 3 |
| |
| ////////////////////////////////////////////////////////////// |
| // Frame status ~ TEMP |
| #define FRAME_INUSE_BYIPP 0x1 |
| #define FRAME_FREE 0x0 |
| |
| ////////////////////////////////////////////////////////////// |
| // Scan format ~ TEMP |
| #define SCAN_FORMAT_INTERLACED 0x0 |
| #define SCAN_FORMAT_PROGRESSIVE 0x1 |
| #define SCAN_FORMAT_VALID_GET(r) (r&0x1) |
| #define SCAN_FORMAT_GET(r) ((r&0x2)>>1) |
| #define SCAN_FORMAT_VALID_SET(r) ((r&0x1)<<0) |
| #define SCAN_FORMAT_SET(r) ((r&0x1)<<1) |
| |
| ////////////////////////////////////////////////////////////// |
| // Internal System Control Defines |
| |
| #define NO_INTERNAL_CONTROL 0xFF |
| #define SFD_INTERNAL_CONTROL 0x1 |
| #define AUTORECOVER_INTERNAL_CONTROL 0x2 |
| |
| ////////////////////////////////////////////////////////////// |
| // SVC specific defines |
| #define MEDIAIP_MAX_SVC_DID 0x3 |
| #define MEDIAIP_MAX_SVC_STR_BUFFERS 0x3 |
| |
| ////////////////////////////////////////////////////////////// |
| // Malone specific defines |
| #define MEDIAIP_MAX_NUM_MALONES 0x2 |
| #define MEDIAIP_MAX_NUM_MALONE_IRQ_PINS 0x2 |
| |
| #define MEDIAIP_MAX_NUM_FSLCACHES 0x4 |
| |
| ////////////////////////////////////////////////////////////// |
| // Windsor specific defines |
| #define MEDIAIP_MAX_NUM_WINDSORS 0x1 |
| #define MEDIAIP_MAX_NUM_WINDSOR_IRQ_PINS 0x2 |
| |
| ////////////////////////////////////////////////////////////// |
| // Subsystem specific defines |
| #define MEDIAIP_MAX_NUM_IRQ_PINS 0x10 |
| #define MEDIAIP_MAX_NUM_CMD_IRQ_PINS 0x2 |
| #define MEDIAIP_MAX_NUM_MSG_IRQ_PINS 0x1 |
| #define MEDIAIP_MAX_NUM_TIMER_IRQ_PINS 0x4 |
| #define MEDIAIP_MAX_NUM_TIMER_IRQ_SLOTS 0x4 |
| |
| #define SUBSYSTEM_CFG_MAGIC_COOKIE 0xB0B1B2B3 |
| |
| ////////////////////////////////////////////////////////////// |
| // Max supported picture resolution, except H.264 and JPEG |
| |
| #define MEDIAIP_MAX_PIC_WIDTH 2048 |
| #define MEDIAIP_MAX_PIC_HEIGHT 2048 |
| |
| ////////////////////////////////////////////////////////////// |
| // Encoder user data programming vals |
| |
| #define MEDIAIP_ENC_USER_DATA_WORDS 16 |
| #define MEDIAIP_ENC_USER_DATA_BYTES ( MEDIAIP_ENC_USER_DATA_WORDS << 2 ) |
| |
| |
| |
| #endif /* _MEDIAIP_FW_DEFINES_H_ */ |
| |
| /* End of File */ |