⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctkav_biu.h

📁 ct952 source code use for Digital Frame Photo
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __CTKAV_BIU_H__#define __CTKAV_BIU_H__#ifdef __cplusplusextern "C" {#endif //__cplusplus// define BIU registers#define REG_BIU_BASE            (CT909_IO_START+0x800)                      // memory address base for BIU#define REG_BIU_BIUCTL          (*((volatile DWORD *) REG_BIU_BASE))        // BIU Control Register#define REG_BIU_BIUCTL_ADDR     ((PDWORD) REG_BIU_BASE)                     // BIU Control Register#define REG_BIU_BIURRD          (*((volatile DWORD *) (REG_BIU_BASE+0x04))) // BIU Data Port for Read#define REG_BIU_BIUWRD          (*((volatile DWORD *) (REG_BIU_BASE+0x08))) // BIU Data Port for Write#define REG_BIU_SECTORLEN       (*((volatile DWORD *) (REG_BIU_BASE+0x0c))) // Set Input Sector Length#define REG_BIU_MEDIAKEYLSB     (*((volatile DWORD *) (REG_BIU_BASE+0x10))) // LSB of Encrypted Disc Key/Media Key#define REG_BIU_MEDIAKEYMSB     (*((volatile DWORD *) (REG_BIU_BASE+0x14))) // MSB of Encrypted Disc Key/Media Key#define REG_BIU_IDALBUMLSB      (*((volatile DWORD *) (REG_BIU_BASE+0x18))) // LSB of Encrypted Reference Disc Key/Album ID#define REG_BIU_IDALBUMMSB      (*((volatile DWORD *) (REG_BIU_BASE+0x1c))) // MSB of Encrypted Reference Disc Key/Album ID#define REG_BIU_FRAMELENGTH     (*((volatile DWORD *) (REG_BIU_BASE+0x20))) // Input Frame length/keep length#define REG_BIU_BIUBPCNT        (*((volatile DWORD *) (REG_BIU_BASE+0x24))) // BIU By-pass Mode Counter#define REG_BIU_BIUBPCNT_ADDR   ((PDWORD) (REG_BIU_BASE+0x24))              // BIU By-pass Mode Counter#define REG_BIU_BIUBPREM        (*((volatile DWORD *) (REG_BIU_BASE+0x28))) // BIU By-pass Mode Bytes Remainder#define REG_BIU_BIUBPREM_ADDR   ((PDWORD) (REG_BIU_BASE+0x28))              // BIU By-pass Mode Bytes Remainder#define REG_BIU_BIUCLIPLEN      (*((volatile DWORD *) (REG_BIU_BASE+0x2c))) // BIU clip length for prefix/suffix of BIU_SECTORLEN#define REG_BIU_BIUFNPEC        (*((volatile DWORD *) (REG_BIU_BASE+0x30))) // BIU By-pass/Skip Mode Byte counter#define REG_BIU_BIUBSCNT        (*((volatile DWORD *) (REG_BIU_BASE+0x34))) // BIU By-pass/Skip Mode Word counter#define REG_BIU_BIUTGTPAT0      (*((volatile DWORD *) (REG_BIU_BASE+0x38))) // BIU target pattern0 to be found#define REG_BIU_BIUTGTPAT1      (*((volatile DWORD *) (REG_BIU_BASE+0x3c))) // BIU target pattern1 to be found#define REG_BIU_BIUPATMASK      (*((volatile DWORD *) (REG_BIU_BASE+0x40))) // BIU target pattern mask#define REG_BIU_BIUTGRAB01      (*((volatile DWORD *) (REG_BIU_BASE+0x44))) // BIU choose which bit should be keep for BIUDT0/1#define REG_BIU_BIUTGRAB23      (*((volatile DWORD *) (REG_BIU_BASE+0x48))) // BIU choose which bit should be keep for BIUDT2/3#define REG_BIU_BIUDT0          (*((volatile DWORD *) (REG_BIU_BASE+0x4c))) // BIU data register 0 to keep clipped bits#define REG_BIU_BIUDT1          (*((volatile DWORD *) (REG_BIU_BASE+0x50))) // BIU data register 1 to keep clipped bits#define REG_BIU_BIUDT2          (*((volatile DWORD *) (REG_BIU_BASE+0x54))) // BIU data register 2 to keep clipped bits#define REG_BIU_BIUDT3          (*((volatile DWORD *) (REG_BIU_BASE+0x58))) // BIU data register 3 to keep clipped bits#define REG_BIU_BIUCGEN         (*((volatile DWORD *) (REG_BIU_BASE+0x5c))) // BIU Clock#define REG_BIU_BIUCGDIS        (*((volatile DWORD *) (REG_BIU_BASE+0x60))) // BIU data register 3 to keep clipped bits// define BIU control bits at REG_BIU_BIUCTL#define BIU_CTL_PATSTS                  (0x80000000)    // status of which pattern to be found#define BIU_CTL_CNT_EN                  (0x40000000)    // enable contine run after find start code#define BIU_CTL_OUT_LITTLE_ENDIAN       (0x0c000000)    // enable output at little endian mode BOEdnSel[11]#define BIU_CTL_IN_LITTLE_ENDIAN        (0x03000000)    // enable input  at little endian mode BIEdnSel[11]#define BIU_CTL_PADDING                 (0x10000000)    // push last bypass data to DRAM by padding to 64-bit#define BIU_CTL_BIUSKIP_EN              (0x00008000)    // enable skip data at by-pass mode#define BIU_CTL_CPRMDSC_EN              (0x00000100)    // enable CPRM descramble mode#define BIU_CTL_CPPMDSC_EN              (0x00000080)    // enable CPPM descramble mode#define BIU_CTL_CSSDSC_EN               (0x00000008)    // enable CSS descramble mode#define BIU_CTL_DVDDSC_EN               (0x00000004)    // enable DVD descramble mode#define BIU_CTL_BOFF_EN                 (0x00000002)    // enable output FIFO#define BIU_CTL_BIFF_EN                 (0x00000001)    // enable input FIFO#define BIU_CTL_CNT_EN                  (0x40000000)    // enable continue run after find start code// define BIU Operation bits at REG_BIU_BIUCTL#define BIU_OP_CALC2G2                  (0x20000000)    // start to do C2_G() operation for processing 2nd to 5th data portions#define BIU_OP_FNP_GO                   (0x00010000)    // start to find next pattern#define BIU_OP_BIUBP_GO                 (0x00000800)    // start by-pass mode#define BIU_OP_CALC2D                   (0x00000400)    // start to do C2_D() operation#define BIU_OP_CALC2G                   (0x00000200)    // start to do C2_G() operation#define BIU_OP_CALCSSTKEY               (0x00000040)    // start to calculate CSS Title key#define BIU_OP_CALCSSRDKEY              (0x00000020)    // start to calculate CSS Reference Disc key#define BIU_OP_CALCSSDKEY               (0x00000010)    // start to calculate CSS Disc key// define BIU interrupt bits at REG_BIU_BIUCTL#define BIU_INT_BIUINTCLR               (0x00800000)    // clear all BIU interrupts#define BIU_INT_CSSERR                  (0x00400000)    // error occurred while calculating CSS Title Key#define BIU_INT_FNPINT                  (0x00200000)    // find next pattern is done#define BIU_INT_BPINT                   (0x00100000)    // by-pass mode is done#define BIU_INT_CSSINT_EN               (0x00080000)    // enable CSS_ERR interrupt#define BIU_INT_FNPINT_EN               (0x00040000)    // enable find next pattern interrupt#define BIU_INT_BPINT_EN                (0x00020000)    // enable by-pass mode interrupt #define BIU_MASK_INPUT_FIFO_READY       (0x00001000)// J500KWShih_121, fixed#define BIU_MASK_OUTPUT_FIFO_REMAINDER  (0x00004000)#define BIU_MASK_OUTPUT_FIFO_READY      (0x00002000)// define BIU status bits at REG_BIU_BIUCTL#define BIU_STATUS_BOBUFREM             (0x00004000)    // report if there is a 32-bit data at BIU output FIFO#define BIU_STATUS_MBOWRRDY             (0x00002000)    // report if BIU output FIFO is ready#define BIU_STATUS_BIURDDRDY            (0x00001000)    // report if BIU is ready for reading data// define BIU remainder mask#define BIU_REMAINDER_MASK              (0x03)          // remainder mask bit#define BIU_COUNTER_MASK                (0x0000ffff)// define default settings for REG_BIU_FRAMELENGTH#define BIU_FRAME_DEFAULT               (0x00080008)    // input is 8 bytes --> output is 8 bytes#define BIU_FRAME_DVD                   (0x00040004)    // input is 4 bytes --> output os 4 bytes// define default settings for REG_BIU_BIUCLIPLEN// <data comes from internal servo>// -- one DVD block is 0xa000 and contains 16 sectors// -- one CD block is 0xa00 and contains 1 sector only, its format is://       [2352 bytes][96 bytes subcode][112 bytes dummy]//    ** we can clip the tail, subcode+dummy or dummy, through MCU H/W support// <data comes from ATAPI (DVD-ROM,...)// -- one block is one sector no matter CD or DVD#define BIU_DEFAULT_CLIP                (0x00000000)    // no clip at all#define BIU_DVD_CLIP                    (0x0004000c)    // clip 12 bytes at front and 4 byte at rear#define BIU_DVD_BLOCK_LEN               (0xa000)        // length of a dvd block#define BIU_DVD_SECTOR_LEN              (2064)#define BIU_DVD_DATA_LEN                (2048)#define BIU_DVD_SECTORS_PER_BLOCK       (16)#define BIU_CD_BLOCK_LEN                (0xa00)#define BIU_CD_SECTOR_LEN               (2352)#define BIU_CD_SUBCODE_LEN              (96)#define BIU_CD_SECTOR_SUBCODE_LEN       (BIU_CD_SECTOR_LEN+BIU_CD_SUBCODE_LEN)#define BIU_CD_M1_DATA_CLIP             (0x01200010)    // clip 16+288 bytes at front+rear and data field is 2048 bytes                                                        // clip tail 208 bytes, subcode+dummy, via MCU H/W                                                        // (???RESERVED) clip tail 496 bytes, EDC+Space+ECC+subcode+dummy, via MCU H/W#define BIU_CD_M1_DATA_LEN              (2048)#define BIU_CD_M2_DATA_CLIP             (0x00000010)    // clip 16 bytes at front and data field is 2336 bytes                                                        // clip tail 208 bytes, subcode+dummy, via MCU H/W#define BIU_CD_M2_DATA_LEN              (2336)#define BIU_CD_M2F1_SECTOR_LEN          (2072)#define BIU_CD_M2F1_DATA_CLIP           (0x01180018)    // clip 24+280 bytes at front+rear and data field is 2048 bytes                                                        // clip tail 208 bytes, subcode+dummy, via MCU H/W                                                        // (???RESERVED) clip tail 488 bytes, EDC+ECC+subcode+dummy, via MCU H/W#define BIU_CD_M2F1_DATA_LEN            (2048)#define BIU_CD_M2F2_DATA_CLIP           (0x00040018)    // clip 24+4 bytes at front+rear and data field is 2324 bytes                                                        // clip tail 208 bytes, subcode+dummy, via MCU H/W#define BIU_CD_M2F2_DATA_LEN            (2324)#define BIU_DEFAULT_GRAB01              (0x00040000)#define BIU_DEFAULT_GRAB23              (0x080c0008)#define BIU_DVB_CD_DATA_CLIP            (0x01c80010)    // clip 16+288+168 bytes at front+rear and data field is 2048 bytes#define BIU_DVB_CD_DATA_LEN             (1880)#define BIU_DVB_DATA_LEN                (43 * 188)#define BIU_DVB_BLOCK_LEN               (0x2000)#define BIU_DVB_SECTOR_LEN              BIU_DVB_DATA_LEN// define structurestypedef struct  _tagBIU_CLIP_STRU{    SHORT       sSuffix;    SHORT       sPrefix;} BIU_CLIP_STRU, *PBIU_CLIP_STRU;union   BIU_CLIP_UNION{    DWORD           dwClipReg;    BIU_CLIP_STRU   ClipStru;};typedef struct  _tagTEST_BIU_CSS_STRU{    DWORD       dwBitsDRAMAddr;         // bitstream input buffer address    LONG        lBitsLen;               // in 8 bytes (64-bit) unit    DWORD       dwWriteDRAMAddr;        // output stream buffer address    DWORD       dwPatternDRAMAddr;      // pattern buffer address    LONG        lSecterLen;             // sector length in byte unit    DWORD       dwEncDiscKeyL;          // 31:0 of disc key    DWORD       dwEncDiscKeyU;          // 39:32 of disc key    DWORD       dwEncDiscRefKeyL;       // 31:0 of disc reference key    DWORD       dwEncDiscRefKeyU;       // 39:32 of disc reference key    DWORD       dwEncTitleKeyL;         // 31:0 of title key    DWORD       dwEncTitleKeyU;         // 39:32 of title key    union BIU_CLIP_UNION    BIUClip;    // the sum of prefix and suffix should be modulated by 8} TEST_BIU_CSS_STRU, *PTEST_BIU_CSS_STRU;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -