blob: 6e74dac7b4d384390b4163f3b68aa6081cdeff94 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
//////
/// don't edit! auto-generated by docc: GaloisDmaMap.h
////////////////////////////////////////////////////////////
#ifndef GaloisDmaMap_h
#define GaloisDmaMap_h (){}
#include "ctypes.h"
#pragma pack(1)
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _DOCC_H_BITOPS_
#define _DOCC_H_BITOPS_ (){}
#define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0)
#define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb))
#define _bCLRMASK_(b) (~_bSETMASK_(b))
#define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb))
#define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb)))
#define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0)
#endif
//////
///
/// $INTERFACE GaloisDmaID (4,4)
/// # # ----------------------------------------------------------
/// : maskSys 0xF000
/// : vPro_Sys 0x0
/// : avio_Sys 0x1000
/// : maskDev 0xF00
/// : vProDma_ID 0x100
/// : vProHbo_ID 0x200
/// : vScope0Hbo_ID 0x300
/// : P3Hbo_ID 0x400
/// : QdeQIO_ID 0x700
/// : avioDma_ID 0x0
/// : drmHbo_ID 0x600
/// ###
/// * Use (id & maskDev) to determine device id
/// ###
/// : maskChannel 0xFF
/// : vProDma_Num 0xC
/// : vProHbo_Num 0xC
/// : vScope0Hbo_Num 0xE
/// : P3Hbo_Num 0x9
/// : P3Hbo1_Num 0x1
/// : QdeQIO_Num 0x2
/// : avioDma_Num 0xD
/// : drmHbo_Num 0x9
/// ###
/// * Use (id & maskChannel) to match with the following channel IDs
/// * vPro DMA, 12 Channels
/// ###
/// : vProDma_Start 0x100
/// : vProDma_End 0x10B
/// ###
/// * Total 12 vPro DMA channels; id = 0x0100 ~ 0x010B
/// ###
/// : m2h_copy 0x100
/// : m2h_copy_cmd_size 0x20
/// : m2h_copy_size 0x200
/// ###
/// * Load data from any memory mapped source on XBAR
/// * Type: DMA
/// * Cmd FIFO size: 32B
/// * Data FIFO size: 512B
/// ###
/// : h2m_copy 0x101
/// : h2m_copy_cmd_size 0x20
/// : h2m_copy_size 0x200
/// ###
/// * Send data to any memory mapped target on XBAR
/// * Type: DMA
/// * Cmd FIFO size: 32B
/// * Data FIFO size: 512B
/// ###
/// : m2h_BiuCfg 0x102
/// : m2h_BiuCfg_cmd_size 0x40
/// : m2h_BiuCfg_size 0x80
/// ###
/// * Read the BIU configuration information for vPro slice level initialization via BIU backdoor
/// * Type: DMA
/// * Cmd FIFO size: 64B
/// * Data FIFO size: 128B
/// ###
/// : h2m_vFmt 0x103
/// : h2m_vFmt_cmd_size 0x40
/// : h2m_vFmt_size 0x400
/// ###
/// * video formatter output write channel
/// * Type: DMA
/// * Cmd FIFO size: 64B
/// * Data FIFO size: 1024B
/// ###
/// : m2h_DsRd 0x104
/// : m2h_DsRd_cmd_size 0x20
/// : m2h_DsRd_size 0x100
/// ###
/// * vScope Data Streamer read channel
/// * Type: DMA
/// * Cmd FIFO size: 32B
/// * Data FIFO size: 256B
/// ###
/// : h2m_DsWr 0x105
/// : h2m_DsWr_cmd_size 0x20
/// : h2m_DsWr_size 0x100
/// ###
/// * vScope Data Streamer write channel
/// * Type: DMA
/// * Cmd FIFO size: 32B
/// * Data FIFO size: 256B
/// ###
/// : m2h_P3dbIn 0x106
/// : m2h_P3DbIn_cmd_size 0x10
/// : m2h_P3dbIn_size 0x80
/// ###
/// * Deblocking filter pixel context fetching for VC-1
/// * Type: DMA
/// * Cmd FIFO size: 16B
/// * Data FIFO size: 128B
/// ###
/// : h2m_P3dbOut 0x107
/// : h2m_P3dbOut_cmd_size 0x10
/// : h2m_P3dbOut_size 0x80
/// ###
/// * Deblocking filter pixel context storing for VC-1
/// * Type: DMA
/// * Cmd FIFO size: 16B
/// * Data FIFO size: 128B
/// ###
/// : m2h_vesIn 0x108
/// : m2h_vesIn_cmd_size 0x80
/// : m2h_vesIn_size 0x100
/// ###
/// * VES fetching for vldX
/// * Type: DMA
/// * Cmd FIFO size: 128B
/// * Data FIFO size: 256B
/// ###
/// : m2h_vld0In 0x109
/// : m2h_vld0In_cmd_size 0x40
/// : m2h_vld0In_size 0x80
/// ###
/// * VES fetching for vld0
/// * Cmd FIFO size: 64B
/// * Data FIFO size: 128B
/// ###
/// : h2m_vlcXOut 0x10A
/// : h2m_vlcXOut_cmd_size 0x20
/// : h2m_vlcXOut_size 0x100
/// ###
/// * VES out for vlcX
/// * Cmd FIFO size: 32B
/// * Data FIFO size: 256B
/// ###
/// : m2h_vcIn 0x10B
/// : m2h_vcIn_cmd_size 0x100
/// : m2h_vcIn_size 0xF00
/// ###
/// * vCache ref region in
/// * Cmd FIFO size: 256B
/// * Data FIFO size: 3840B
/// * End vPro DMA
/// * vPro HBO, 11 channels
/// * Purple hilighted is for decoder
/// * Yellow hilighted is for encoder
/// * Not hilighted is for both
/// ###
/// : vProHbo_Start 0x200
/// : vProHbo_End 0x20A
/// ###
/// * Total 11 vPro HBO channels, ID = 0x0200 ~ 0x020a
/// ###
/// : vPro_hctx 0x200
/// : vPro_hctx_size 0x4000
/// : vPro_hctx_addr 0x0
/// ###
/// * HCTX
/// * Type: HBO
/// * Size: 128Kb (16KB)
/// * Connection: vPro_hctx<->vScope_hctx
/// * HBO bank: 0
/// * Used for decoder mode.
/// ###
/// : vPro_vxhctx 0x200
/// : vPro_vxhctx_size 0x4000
/// : vPro_vxhctx_addr 0x0
/// ###
/// * VXHCTX
/// * Type: HBO
/// * Size: 128Kb (16KB)
/// * Connection: vPro_hctx<->vScope_hctx
/// * HBO bank: 0
/// * Used for encoder mode.
/// ###
/// : vPro_vcMsg 0x201
/// : vPro_vcMsg_size 0x1000
/// : vPro_vcMsg_addr 0x4000
/// ###
/// * vCache messages
/// * Type: HBO
/// * Size: 32Kb (4KB)
/// * Connection: vScope_vcMsg->vCache
/// * HBO Bank: 0
/// * Used for codec mode.
/// ###
/// : vPro_p3Msg 0x202
/// : vPro_p3Msg_size 0x1000
/// : vPro_p3Msg_addr 0x5000
/// ###
/// * vCache messages
/// * Type: HBO
/// * Size: 32Kb (4KB)
/// * Connection: vScope->P3
/// * HBO Bank: 0
/// * Used for decoder
/// ###
/// : vPro_laInfo 0x202
/// : vPro_laInfo_size 0x400
/// : vPro_laInfo_addr 0x5000
/// ###
/// * look ahead information
/// * Type: HBO
/// * Size: 32Kb (4KB)
/// * Connection: vScope->P3
/// * HBO Bank: 0
/// * Used for encoder
/// ###
/// : vPro_qtc 0x203
/// : vPro_qtc_size 0x800
/// : vPro_qtc_addr 0x5800
/// ###
/// * vCache messages
/// * Type: HBO
/// * Size: 32Kb (4KB)
/// * Connection: p3-> vx
/// * HBO Bank: 0
/// * Used for encoder
/// * End of Bank 0 / Start of Bank 1; address base = 0x8000
/// ###
/// : vPro_fop 0x204
/// : vPro_fop_size 0x1000
/// : vPro_fop_addr 0x8000
/// ###
/// * FOP
/// * Type: HBO
/// * Size: 32Kb (4KB)
/// * Connection: vScope_fop->PCube
/// * HBO Bank: 1
/// ###
/// : vPro_tc 0x205
/// : vPro_tc_size 0x4000
/// : vPro_tc_addr 0x9000
/// ###
/// * Transform coefficients
/// * Type: HBO
/// * Size: 128Kb (16KB)
/// * Connection: vScope_tc->PCube
/// * HBO Bank: 1
/// * used for decoder
/// ###
/// : vPro_p3hctx 0x206
/// : vPro_p3hctx_size 0x4000
/// : vPro_p3hctx_addr 0x9000
/// ###
/// * Transform coefficients
/// * Type: HBO
/// * Size: 128Kb (16KB)
/// * Connection: vScope_tc->PCube
/// * HBO Bank: 1
/// * used for encoder
/// ###
/// : vPro_mbctx 0x207
/// : vPro_mbctx_size 0x800
/// : vPro_mbctx_addr 0x8000
/// ###
/// * mb context
/// * Type: HBO
/// * Size: 16Kb (2KB)
/// * Connection: pCube-> vScope
/// * HBO Bank: 1
/// * used for encoder
/// ###
/// : vPro_mbstat 0x208
/// : vPro_mbstat_size 0x200
/// : vPro_mbstat_addr 0x8800
/// ###
/// * mb status
/// * Type: HBO
/// * Size: 4Kb (512KB)
/// * Connection: pCube-> vScope
/// * HBO Bank: 1
/// * used for encoder
/// * End of Bank 1 / Start of Bank 2
/// ###
/// : vPro_db 0x209
/// : vPro_db_size 0x8000
/// : vPro_db_addr 0x10000
/// ###
/// * H.264 Deblocking context
/// * Type: HBO
/// * Size: 256Kb (32KB)
/// * Connection: PCube<->PCube
/// * HBO Bank: 2
/// ###
/// : vPro_ip 0x20A
/// : vPro_ip_size 0x2000
/// : vPro_ip_addr 0x18000
/// ###
/// * H.264 Intra prediction context
/// * Type: HBO
/// * Size: 64Kb (8KB)
/// * Connection: Pcube.WA<->PCube.RA
/// * HBO Bank: 2
/// ###
/// : vPro_ipro 0x20B
/// : vPro_ipro_size 0x2000
/// : vPro_ipro_addr 0x18000
/// ###
/// * H.264 Intra prediction context, the same as vPro_ip, but different FIFO channel for simplicity. SW will guarantee no conflict.
/// * Type: HBO
/// * Size: 64Kb (8KB)
/// * Connection: pcube.IPRO<->pcube.RA
/// * HBO Bank: 2
/// * End of Bank 2 / End of vPro HBO
/// * vScope HBO, 14 channels
/// ###
/// : vScopeHbo0_Start 0x300
/// : vScopeHbo0_End 0x30D
/// ###
/// * Total 14 vScope HBO channels; ID = 0x0300 ~ 0x030D
/// * Start of Bank 0
/// ###
/// : vScope_hctxIn 0x300
/// : vScope_hctxIn_size 0x200
/// ###
/// * vScope HCTX in
/// * Type: HBO
/// * Size: 4Kb (512B)
/// * Connection: vPro_hctx->FIGO0
/// * Bank: vScope Hbo0 bank0
/// ###
/// : vScope_hctxOut 0x301
/// : vScope_hctxOut_size 0x200
/// ###
/// * vScope HCTX out
/// * Type: HBO
/// * Size: 4Kb (512B)
/// * Connection: FIGO0->vPro_hctx
/// * Bank: vScope HBO0 bank0
/// ###
/// : vScope_p3Msg 0x302
/// : vScope_p3Msg_size 0x400
/// ###
/// * pCube messages
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO0 -> vPro_p3Msg
/// * Bank: vScope HBO0 Bank0
/// ###
/// : vScope_encprop 0x302
/// : vScope_encprop_size 0x80
/// ###
/// * The information of first pass encoding and calculated DMV, reuse the P3Msg channel in decoder.
/// * Type: HBO
/// * Size: 128 B (at least 16 macroblocks)
/// * Connection: vScope syntax Processor --> PCube Parser
/// * Bank: vScope HBO 0 Bank 1
/// ###
/// : vScope_ds 0x303
/// : vScope_ds_size 0x80
/// ###
/// * vScope data streamer command
/// * Type: HBO
/// * Size: 1Kb (128B), or 16 entries
/// * Connection: FIGO0/FIGO1 -> Data Streamer
/// * Bank: vScope HBO0 Bank0
/// * End of Bank 0 / Start of BANK 1
/// ###
/// : vScope_mbctx 0x304
/// : vScope_mbctx_size 0x800
/// ###
/// * MBCTX, the whole context of current MB, address comes from another link list
/// * Type: HBO
/// * Size: 2048 B
/// * connection: h2m (from vPro HBO)
/// * Bank: vScope HBO 0 Bank 0
/// ###
/// : vScope_ctxAddr 0x305
/// : vScope_ctxAddr_size 0x80
/// ###
/// * ctxAddr, the address link list buffer for MBCTX FIFO
/// * Type: HBO
/// * Size: 128 B
/// * Connection: m2h
/// * Bank: vScope HBO 0 Bank 0
/// ###
/// : vScope_tc 0x306
/// : vScope_tc_size 0x400
/// ###
/// * Transform Coefficients
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO1->vPro_tc
/// * Bank: vScope HBO1 Bank0
/// ###
/// : vScope_ds1 0x307
/// : vScope_ds1_size 0x80
/// ###
/// * vScope data streamer command 1
/// * Type: HBO
/// * Size: 1Kb (128B), or 16 entries
/// * Connection: FIGO0/FIGO1 -> Data Streamer
/// * Bank: vScope HBO0 Bank0
/// ###
/// : vScope_cfg 0x308
/// : vScope_cfg_size 0x80
/// ###
/// * configuration channel
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO0/FIGO1 -> biu backdoor configuration
/// * Bank: vScope HBO 0 Bank1
/// ###
/// : vScope_vld 0x309
/// : vScope_vld_size 0x80
/// ###
/// * VLD alternative input
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO0/FIGO1 -> vldX
/// * Bank: vScope HBO 0 Bank1
/// ###
/// : vScope_qtc 0x30A
/// : vScope_qtc_size 0x400
/// ###
/// * Quantized coefficients
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: vPro_tc -> FIGO1
/// * Bank: vScope HBO 0 Bank1
/// ###
/// : vScope_mbstat 0x30B
/// : vScope_mbstat_size 0x100
/// ###
/// * Information for VLC encoding and generated by QDQ such as CBP, total zeros/trailing ones.
/// * Type: HBO
/// * Size: 256 B (at least 16 macroblocks)
/// * Connection: PCube Encoder -> vScope Parser
/// * Bank: vScope HBO 0 Bank 1
/// * End of Bank 1 / Start of Bank 2
/// ###
/// : vScope_fop 0x30C
/// : vScope_fop_size 0x400
/// ###
/// * FOP messages
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO1 -> vPro_fop
/// * Bank: vScope HBO0 bank2
/// ###
/// : vScope_vcMsg 0x30D
/// : vScope_vcMsg_size 0x400
/// ###
/// * vCache messages
/// * Type: HBO
/// * Size: 8Kb (1KB)
/// * Connection: FIGO0 -> vPro_vcMsg
/// * Bank: vScope Hbo0 bank2
/// * End vScope HBO
/// * PCube HBO0, 10 channels
/// ###
/// : P3Hbo_Start 0x400
/// : P3Hbo_End 0x409
/// ###
/// * Total 10 PCube HBO channels; ID = 0x0400 ~ 0409
/// ###
/// : P3CtlMsg 0x400
/// : P3CtlMsg_size 0x100
/// ###
/// * PCube message input
/// * Type: HBO
/// * Size: 256 B
/// * Connection: vPro HBO -> PCube
/// ###
/// : pCube_encprop 0x400
/// : pCube_encprop_size 0x80
/// ###
/// * LA information from vScope
/// * Type: HBO
/// * Size: 128 B
/// * Connection: h2m vpro->pcube, reuse the mbprop queue in decoder
/// ###
/// : RAmsg 0x401
/// : RAmsg_size 0x80
/// ###
/// * PCube Read agent message
/// * Type: HBO
/// * Size: 128 B
/// * Connection: PCube,Figo -> PCube.ReadAgent
/// ###
/// : WAmsg 0x402
/// : WAmsg_size 0xC0
/// ###
/// * PCube Write agent message
/// * Type: HBO
/// * Size: 192B
/// * Connection: PCube,Figo -> PCube.WriteAgent
/// ###
/// : pCube_hctxIn 0x403
/// : pCube_hctxIn_size 0x200
/// ###
/// * HCTX output to vPro
/// * Type: HBO
/// * Size: 512 B
/// * Connection: h2m vpro->pcube
/// ###
/// : pCube_hctxOut 0x404
/// : pCube_hctxOut_size 0x200
/// ###
/// * HCTX output to vPro
/// * Type: HBO
/// * Size: 512 B
/// * Connection: m2h pcube->vpro
/// ###
/// : pCube_mbctx 0x405
/// : pCube_mbctx_size 0x800
/// ###
/// * PCube MBCTX
/// * Type: HBO
/// * Size: 2048
/// * Connection: m2h pcube->vpro->vscope
/// ###
/// : pCube_mbstat 0x406
/// : pCube_mbstat_size 0x100
/// ###
/// * MB statistics get from QDQ
/// * Type: HBO
/// * Size: 256
/// * Connection: m2h pcube->vpro->vscope
/// ###
/// : pCube_fop 0x407
/// : pCube_fop_size 0x200
/// ###
/// * FOP for PCube figo3.
/// * Type: HBO
/// * Size: 512 B (at least 16 macroblocks)
/// * Connection: PCube --> RA
/// * Bank: PCube HBO Bank 1
/// ###
/// : pCube_ctxAddr 0x408
/// : pCube_ctxAddr_size 0x100
/// ###
/// * Address link list FIFO used for mbctx. Needs 32 entries
/// * Type: HBO
/// * Size: 128 B
/// * Connection: m2h
/// ###
/// : P3_DTCM 0x420
/// ###
/// * Memory type access.
/// * End PCube HBO
/// * QdeQ Input/Output OCPf, 2 channels, connect to pCube WA/RA
/// ###
/// : QdeQ_in 0x701
/// : QdeQ_out 0x702
/// ###
/// * End QdeQ I/O
/// * AVIO DMA, 12 channels
/// ###
/// : avioDma_Start 0x1000
/// : avioDma_End 0x100B
/// ###
/// * Total 12 AVIO DMA channels; ID = 0x1000 ~ 0x100B
/// ###
/// : m2h_i2sOutMain_0 0x1000
/// : m2h_i2sOutMain_0_size 0x200
/// ###
/// * For I2S main audio output (7.1)
/// * Type: DMA
/// * Size: 4Kb (512B)
/// * Connection: DDR -> i2s.main[0]
/// * Semaphore: i2sOutMain_0 (consumer)
/// ###
/// : m2h_i2sOutMain_1 0x1001
/// : m2h_i2sOutMain_1_size 0x200
/// ###
/// * For I2S main audio output (7.1)
/// * Type: DMA
/// * Size: 4Kb (512B)
/// * Connection: DDR -> i2s.main[1]
/// * Semaphore: i2sOutMain_1 (consumer)
/// ###
/// : m2h_i2sOutMain_2 0x1002
/// : m2h_i2sOutMain_2_size 0x200
/// ###
/// * For I2S main audio output (7.1)
/// * Type: DMA
/// * Size: 4Kb (512B)
/// * Connection: DDR -> i2s.main[2]
/// * Semaphore: i2sOutMain_2 (consumer)
/// ###
/// : m2h_i2sOutMain_3 0x1003
/// : m2h_i2sOutMain_3_size 0x200
/// ###
/// * For I2S main audio output (7.1)
/// * Type: DMA
/// * Size: 4Kb (512B)
/// * Connection: DDR -> i2s.main[3]
/// * Semaphore: i2sOutMain_3 (consumer)
/// ###
/// : m2h_i2sOut2nd 0x1004
/// : m2h_i2sOut2nd_size 0x200
/// ###
/// * For I2S 2nd audio output (stereo)
/// * Type: DMA
/// * Size: 4Kb (512B)
/// * Connection: DDR -> i2s.2nd
/// * Semaphore: i2sOut2nd (consumer)
/// ###
/// : m2h_SPDIF 0x1005
/// : m2h_SPDIF_size 0x100
/// ###
/// * For SPDIF audio output
/// * Type: DMA
/// * Size: 2Kb (256B)
/// * Connection: DDR -> SPDIF
/// * Semaphore: SPDIF (consumer)
/// ###
/// : h2m_i2sIn 0x1006
/// : h2m_i2sIn_size 0x100
/// ###
/// * For I2S audio input (stereo)
/// * Type: DMA
/// * Size: 2Kb (256B)
/// * Connection: i2s.in -> DDR
/// * Semaphore: i2sIn (producer)
/// ###
/// : m2h_vmain 0x1007
/// : m2h_vmain_size 0x800
/// ###
/// * For main video (YUV422) output
/// * Type: DMA
/// * Size: 16Kb (2KB)
/// * Connection: DDR -> vop.main
/// * Semaphore: N/A
/// ###
/// : m2h_v2nd 0x1008
/// : m2h_v2nd_size 0x800
/// ###
/// * For 2nd video (YUV422) output
/// * Type: DMA
/// * Size: 16Kb (2KB)
/// * Connection: DDR -> vop.2nd
/// * Semaphore: N/A
/// ###
/// : m2h_gplane0 0x100A
/// : m2h_subtitle_size 0x600
/// ###
/// * For RGB graphic plane 0 output
/// * Type: DMA
/// * Size: 12Kb (1536B)
/// * Connection: DDR -> vop.osd.gfx0
/// * Semaphore: N/A
/// ###
/// : m2h_gplane1 0x1009
/// : m2h_OSD_size 0x600
/// ###
/// * For RGB graphic plane 1 output
/// * Type: DMA
/// * Size: 12Kb (1536B)
/// * Connection: DDR -> vop.osd.gfx1
/// * Semaphore: N/A
/// ###
/// : m2h_gplane2 0x100B
/// : m2h_cursor_size 0x200
/// ###
/// * For RGB graphic plane 2 output
/// * Type: DMA
/// * Size: 4Kb (assuming no wider than 256) (512B)
/// * Connection: DDR -> vop.osd.cursor
/// * Semaphore: N/A
/// * End AVIO DMA
/// ###
/// @ 0x00000 dummy (P)
/// %unsigned 1 dummy
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 1b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_GaloisDmaID
#define h_GaloisDmaID (){}
#define GaloisDmaID_maskSys 0xF000
#define GaloisDmaID_vPro_Sys 0x0
#define GaloisDmaID_avio_Sys 0x1000
#define GaloisDmaID_maskDev 0xF00
#define GaloisDmaID_vProDma_ID 0x100
#define GaloisDmaID_vProHbo_ID 0x200
#define GaloisDmaID_vScope0Hbo_ID 0x300
#define GaloisDmaID_P3Hbo_ID 0x400
#define GaloisDmaID_QdeQIO_ID 0x700
#define GaloisDmaID_avioDma_ID 0x0
#define GaloisDmaID_drmHbo_ID 0x600
#define GaloisDmaID_maskChannel 0xFF
#define GaloisDmaID_vProDma_Num 0xC
#define GaloisDmaID_vProHbo_Num 0xC
#define GaloisDmaID_vScope0Hbo_Num 0xE
#define GaloisDmaID_P3Hbo_Num 0x9
#define GaloisDmaID_P3Hbo1_Num 0x1
#define GaloisDmaID_QdeQIO_Num 0x2
#define GaloisDmaID_avioDma_Num 0xD
#define GaloisDmaID_drmHbo_Num 0x9
#define GaloisDmaID_vProDma_Start 0x100
#define GaloisDmaID_vProDma_End 0x10B
#define GaloisDmaID_m2h_copy 0x100
#define GaloisDmaID_m2h_copy_cmd_size 0x20
#define GaloisDmaID_m2h_copy_size 0x200
#define GaloisDmaID_h2m_copy 0x101
#define GaloisDmaID_h2m_copy_cmd_size 0x20
#define GaloisDmaID_h2m_copy_size 0x200
#define GaloisDmaID_m2h_BiuCfg 0x102
#define GaloisDmaID_m2h_BiuCfg_cmd_size 0x40
#define GaloisDmaID_m2h_BiuCfg_size 0x80
#define GaloisDmaID_h2m_vFmt 0x103
#define GaloisDmaID_h2m_vFmt_cmd_size 0x40
#define GaloisDmaID_h2m_vFmt_size 0x400
#define GaloisDmaID_m2h_DsRd 0x104
#define GaloisDmaID_m2h_DsRd_cmd_size 0x20
#define GaloisDmaID_m2h_DsRd_size 0x100
#define GaloisDmaID_h2m_DsWr 0x105
#define GaloisDmaID_h2m_DsWr_cmd_size 0x20
#define GaloisDmaID_h2m_DsWr_size 0x100
#define GaloisDmaID_m2h_P3dbIn 0x106
#define GaloisDmaID_m2h_P3DbIn_cmd_size 0x10
#define GaloisDmaID_m2h_P3dbIn_size 0x80
#define GaloisDmaID_h2m_P3dbOut 0x107
#define GaloisDmaID_h2m_P3dbOut_cmd_size 0x10
#define GaloisDmaID_h2m_P3dbOut_size 0x80
#define GaloisDmaID_m2h_vesIn 0x108
#define GaloisDmaID_m2h_vesIn_cmd_size 0x80
#define GaloisDmaID_m2h_vesIn_size 0x100
#define GaloisDmaID_m2h_vld0In 0x109
#define GaloisDmaID_m2h_vld0In_cmd_size 0x40
#define GaloisDmaID_m2h_vld0In_size 0x80
#define GaloisDmaID_h2m_vlcXOut 0x10A
#define GaloisDmaID_h2m_vlcXOut_cmd_size 0x20
#define GaloisDmaID_h2m_vlcXOut_size 0x100
#define GaloisDmaID_m2h_vcIn 0x10B
#define GaloisDmaID_m2h_vcIn_cmd_size 0x100
#define GaloisDmaID_m2h_vcIn_size 0xF00
#define GaloisDmaID_vProHbo_Start 0x200
#define GaloisDmaID_vProHbo_End 0x20A
#define GaloisDmaID_vPro_hctx 0x200
#define GaloisDmaID_vPro_hctx_size 0x4000
#define GaloisDmaID_vPro_hctx_addr 0x0
#define GaloisDmaID_vPro_vxhctx 0x200
#define GaloisDmaID_vPro_vxhctx_size 0x4000
#define GaloisDmaID_vPro_vxhctx_addr 0x0
#define GaloisDmaID_vPro_vcMsg 0x201
#define GaloisDmaID_vPro_vcMsg_size 0x1000
#define GaloisDmaID_vPro_vcMsg_addr 0x4000
#define GaloisDmaID_vPro_p3Msg 0x202
#define GaloisDmaID_vPro_p3Msg_size 0x1000
#define GaloisDmaID_vPro_p3Msg_addr 0x5000
#define GaloisDmaID_vPro_laInfo 0x202
#define GaloisDmaID_vPro_laInfo_size 0x400
#define GaloisDmaID_vPro_laInfo_addr 0x5000
#define GaloisDmaID_vPro_qtc 0x203
#define GaloisDmaID_vPro_qtc_size 0x800
#define GaloisDmaID_vPro_qtc_addr 0x5800
#define GaloisDmaID_vPro_fop 0x204
#define GaloisDmaID_vPro_fop_size 0x1000
#define GaloisDmaID_vPro_fop_addr 0x8000
#define GaloisDmaID_vPro_tc 0x205
#define GaloisDmaID_vPro_tc_size 0x4000
#define GaloisDmaID_vPro_tc_addr 0x9000
#define GaloisDmaID_vPro_p3hctx 0x206
#define GaloisDmaID_vPro_p3hctx_size 0x4000
#define GaloisDmaID_vPro_p3hctx_addr 0x9000
#define GaloisDmaID_vPro_mbctx 0x207
#define GaloisDmaID_vPro_mbctx_size 0x800
#define GaloisDmaID_vPro_mbctx_addr 0x8000
#define GaloisDmaID_vPro_mbstat 0x208
#define GaloisDmaID_vPro_mbstat_size 0x200
#define GaloisDmaID_vPro_mbstat_addr 0x8800
#define GaloisDmaID_vPro_db 0x209
#define GaloisDmaID_vPro_db_size 0x8000
#define GaloisDmaID_vPro_db_addr 0x10000
#define GaloisDmaID_vPro_ip 0x20A
#define GaloisDmaID_vPro_ip_size 0x2000
#define GaloisDmaID_vPro_ip_addr 0x18000
#define GaloisDmaID_vPro_ipro 0x20B
#define GaloisDmaID_vPro_ipro_size 0x2000
#define GaloisDmaID_vPro_ipro_addr 0x18000
#define GaloisDmaID_vScopeHbo0_Start 0x300
#define GaloisDmaID_vScopeHbo0_End 0x30D
#define GaloisDmaID_vScope_hctxIn 0x300
#define GaloisDmaID_vScope_hctxIn_size 0x200
#define GaloisDmaID_vScope_hctxOut 0x301
#define GaloisDmaID_vScope_hctxOut_size 0x200
#define GaloisDmaID_vScope_p3Msg 0x302
#define GaloisDmaID_vScope_p3Msg_size 0x400
#define GaloisDmaID_vScope_encprop 0x302
#define GaloisDmaID_vScope_encprop_size 0x80
#define GaloisDmaID_vScope_ds 0x303
#define GaloisDmaID_vScope_ds_size 0x80
#define GaloisDmaID_vScope_mbctx 0x304
#define GaloisDmaID_vScope_mbctx_size 0x800
#define GaloisDmaID_vScope_ctxAddr 0x305
#define GaloisDmaID_vScope_ctxAddr_size 0x80
#define GaloisDmaID_vScope_tc 0x306
#define GaloisDmaID_vScope_tc_size 0x400
#define GaloisDmaID_vScope_ds1 0x307
#define GaloisDmaID_vScope_ds1_size 0x80
#define GaloisDmaID_vScope_cfg 0x308
#define GaloisDmaID_vScope_cfg_size 0x80
#define GaloisDmaID_vScope_vld 0x309
#define GaloisDmaID_vScope_vld_size 0x80
#define GaloisDmaID_vScope_qtc 0x30A
#define GaloisDmaID_vScope_qtc_size 0x400
#define GaloisDmaID_vScope_mbstat 0x30B
#define GaloisDmaID_vScope_mbstat_size 0x100
#define GaloisDmaID_vScope_fop 0x30C
#define GaloisDmaID_vScope_fop_size 0x400
#define GaloisDmaID_vScope_vcMsg 0x30D
#define GaloisDmaID_vScope_vcMsg_size 0x400
#define GaloisDmaID_P3Hbo_Start 0x400
#define GaloisDmaID_P3Hbo_End 0x409
#define GaloisDmaID_P3CtlMsg 0x400
#define GaloisDmaID_P3CtlMsg_size 0x100
#define GaloisDmaID_pCube_encprop 0x400
#define GaloisDmaID_pCube_encprop_size 0x80
#define GaloisDmaID_RAmsg 0x401
#define GaloisDmaID_RAmsg_size 0x80
#define GaloisDmaID_WAmsg 0x402
#define GaloisDmaID_WAmsg_size 0xC0
#define GaloisDmaID_pCube_hctxIn 0x403
#define GaloisDmaID_pCube_hctxIn_size 0x200
#define GaloisDmaID_pCube_hctxOut 0x404
#define GaloisDmaID_pCube_hctxOut_size 0x200
#define GaloisDmaID_pCube_mbctx 0x405
#define GaloisDmaID_pCube_mbctx_size 0x800
#define GaloisDmaID_pCube_mbstat 0x406
#define GaloisDmaID_pCube_mbstat_size 0x100
#define GaloisDmaID_pCube_fop 0x407
#define GaloisDmaID_pCube_fop_size 0x200
#define GaloisDmaID_pCube_ctxAddr 0x408
#define GaloisDmaID_pCube_ctxAddr_size 0x100
#define GaloisDmaID_P3_DTCM 0x420
#define GaloisDmaID_QdeQ_in 0x701
#define GaloisDmaID_QdeQ_out 0x702
#define GaloisDmaID_avioDma_Start 0x1000
#define GaloisDmaID_avioDma_End 0x100B
#define GaloisDmaID_m2h_i2sOutMain_0 0x1000
#define GaloisDmaID_m2h_i2sOutMain_0_size 0x200
#define GaloisDmaID_m2h_i2sOutMain_1 0x1001
#define GaloisDmaID_m2h_i2sOutMain_1_size 0x200
#define GaloisDmaID_m2h_i2sOutMain_2 0x1002
#define GaloisDmaID_m2h_i2sOutMain_2_size 0x200
#define GaloisDmaID_m2h_i2sOutMain_3 0x1003
#define GaloisDmaID_m2h_i2sOutMain_3_size 0x200
#define GaloisDmaID_m2h_i2sOut2nd 0x1004
#define GaloisDmaID_m2h_i2sOut2nd_size 0x200
#define GaloisDmaID_m2h_SPDIF 0x1005
#define GaloisDmaID_m2h_SPDIF_size 0x100
#define GaloisDmaID_h2m_i2sIn 0x1006
#define GaloisDmaID_h2m_i2sIn_size 0x100
#define GaloisDmaID_m2h_vmain 0x1007
#define GaloisDmaID_m2h_vmain_size 0x800
#define GaloisDmaID_m2h_v2nd 0x1008
#define GaloisDmaID_m2h_v2nd_size 0x800
#define GaloisDmaID_m2h_gplane0 0x100A
#define GaloisDmaID_m2h_subtitle_size 0x600
#define GaloisDmaID_m2h_gplane1 0x1009
#define GaloisDmaID_m2h_OSD_size 0x600
#define GaloisDmaID_m2h_gplane2 0x100B
#define GaloisDmaID_m2h_cursor_size 0x200
///////////////////////////////////////////////////////////
#define RA_GaloisDmaID_dummy 0x0000
#define BA_GaloisDmaID_dummy_dummy 0x0000
#define B16GaloisDmaID_dummy_dummy 0x0000
#define LSb32GaloisDmaID_dummy_dummy 0
#define LSb16GaloisDmaID_dummy_dummy 0
#define bGaloisDmaID_dummy_dummy 1
#define MSK32GaloisDmaID_dummy_dummy 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_GaloisDmaID {
///////////////////////////////////////////////////////////
#define GET32GaloisDmaID_dummy_dummy(r32) _BFGET_(r32, 0, 0)
#define SET32GaloisDmaID_dummy_dummy(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16GaloisDmaID_dummy_dummy(r16) _BFGET_(r16, 0, 0)
#define SET16GaloisDmaID_dummy_dummy(r16,v) _BFSET_(r16, 0, 0,v)
#define w32GaloisDmaID_dummy {\
UNSG32 udummy_dummy : 1;\
UNSG32 RSVDx0_b1 : 31;\
}
union { UNSG32 u32GaloisDmaID_dummy;
struct w32GaloisDmaID_dummy;
};
///////////////////////////////////////////////////////////
} SIE_GaloisDmaID;
typedef union T32GaloisDmaID_dummy
{ UNSG32 u32;
struct w32GaloisDmaID_dummy;
} T32GaloisDmaID_dummy;
///////////////////////////////////////////////////////////
typedef union TGaloisDmaID_dummy
{ UNSG32 u32[1];
struct {
struct w32GaloisDmaID_dummy;
};
} TGaloisDmaID_dummy;
///////////////////////////////////////////////////////////
SIGN32 GaloisDmaID_drvrd(SIE_GaloisDmaID *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 GaloisDmaID_drvwr(SIE_GaloisDmaID *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void GaloisDmaID_reset(SIE_GaloisDmaID *p);
SIGN32 GaloisDmaID_cmp (SIE_GaloisDmaID *p, SIE_GaloisDmaID *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define GaloisDmaID_check(p,pie,pfx,hLOG) GaloisDmaID_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define GaloisDmaID_print(p, pfx,hLOG) GaloisDmaID_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: GaloisDmaID
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE GaloisSemID (4,4)
/// # # ----------------------------------------------------------
/// : maskSem 0xF00
/// : vproID 0x0
/// : avioID 0x100
/// : maskChannel 0xFF
/// : vproNum 0x20
/// : avioNum 0x18
/// ###
/// * 'vpro-semaphore' channels
/// ###
/// : dspWb 0x1
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : dbIn 0x2
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : dbWb 0x3
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : ipIn 0x4
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : ipWb 0x5
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : tcIn 0x6
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : fopLd 0x7
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : dpWa 0x8
/// ###
/// * Producer & Consumer: PCube data path -> PCube Write Agent
/// ###
/// : waDp 0x9
/// ###
/// * Producer & Consumer: PCube Write Agent -> PCube data path
/// ###
/// : dpRa 0xA
/// ###
/// * Producer & Consumer: PCube data path -> PCube Read Agent
/// ###
/// : raDp 0xB
/// ###
/// * Producer & Consumer: PCube Read Agent -> PCube data path
/// * 'Global Semaphores 01~31; 16~31 accessible by PCube RA/WA
/// ###
/// : vhubCh0 0x0
/// ###
/// * Interrupt for vPro dHub channel 0
/// ###
/// : vhubCh1 0x1
/// ###
/// * Interrupt for vPro dHub channel 1
/// ###
/// : vhubCh2 0x2
/// ###
/// * Interrupt for vPro dHub channel 2
/// ###
/// : vhubCh3 0x3
/// ###
/// * interrupt for vPro dHub channel 3
/// ###
/// : vhubCh4 0x4
/// ###
/// * interrupt for vPro dHub channel 4
/// ###
/// : vhubCh5 0x5
/// ###
/// * interrupt for vPro dHub channel 5
/// ###
/// : vhubCh6 0x6
/// ###
/// * interrupt for vPro dHub channel 6
/// ###
/// : vhubCh7 0x7
/// ###
/// * interrupt for vPro dHub channel 7
/// ###
/// : vhubCh8 0x8
/// ###
/// * interrupt for vPro dHub channel 8
/// ###
/// : vhubCh9 0x9
/// ###
/// * interrupt for vPro dHub channel 9
/// ###
/// : vhubChA 0xA
/// ###
/// * interrupt for vPro dHub channel 10
/// ###
/// : vhubChB 0xB
/// ###
/// * interrupt for vPro dHub channel 11
/// ###
/// : vxFigo0 0xC
/// ###
/// * vScope syntax processor interrupt; 1bit
/// ###
/// : vxFigo1 0xD
/// ###
/// * vScope stream parser interrupt; 1bit
/// ###
/// : p3Cmdr 0xE
/// ###
/// * PCube commander interrupt; 1bit
/// ###
/// : p3Ctlr 0xF
/// ###
/// * PCube controller interrupt; 1bit
/// ###
/// : vldX 0x10
/// ###
/// * vldX interrupt; 1bit
/// ###
/// : vld0 0x11
/// ###
/// * vld0 interrupt; 1bit
/// ###
/// : P3db 0x15
/// ###
/// * Producer: dma.m2h_P3dbOut; consumer: P3dbIn 16bit
/// ###
/// : refIn 0x13
/// ###
/// * Producer & Consumer: PCube -> PCube
/// ###
/// : P3EOF 0x14
/// ###
/// * pCube end-of-frame interrupt
/// ###
/// : P3Dbg 0x12
/// ###
/// * pCube debug semaphore (software only)
/// ###
/// : refIn2 0x16
/// ###
/// * Producer & Consumer: PCube DR -> PCube encoder
/// ###
/// @ 0x00000 vpro (P)
/// %unsigned 16 SemaphoreNum 0x20
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_GaloisSemID
#define h_GaloisSemID (){}
#define GaloisSemID_maskSem 0xF00
#define GaloisSemID_vproID 0x0
#define GaloisSemID_avioID 0x100
#define GaloisSemID_maskChannel 0xFF
#define GaloisSemID_vproNum 0x20
#define GaloisSemID_avioNum 0x18
#define GaloisSemID_dspWb 0x1
#define GaloisSemID_dbIn 0x2
#define GaloisSemID_dbWb 0x3
#define GaloisSemID_ipIn 0x4
#define GaloisSemID_ipWb 0x5
#define GaloisSemID_tcIn 0x6
#define GaloisSemID_fopLd 0x7
#define GaloisSemID_dpWa 0x8
#define GaloisSemID_waDp 0x9
#define GaloisSemID_dpRa 0xA
#define GaloisSemID_raDp 0xB
#define GaloisSemID_vhubCh0 0x0
#define GaloisSemID_vhubCh1 0x1
#define GaloisSemID_vhubCh2 0x2
#define GaloisSemID_vhubCh3 0x3
#define GaloisSemID_vhubCh4 0x4
#define GaloisSemID_vhubCh5 0x5
#define GaloisSemID_vhubCh6 0x6
#define GaloisSemID_vhubCh7 0x7
#define GaloisSemID_vhubCh8 0x8
#define GaloisSemID_vhubCh9 0x9
#define GaloisSemID_vhubChA 0xA
#define GaloisSemID_vhubChB 0xB
#define GaloisSemID_vxFigo0 0xC
#define GaloisSemID_vxFigo1 0xD
#define GaloisSemID_p3Cmdr 0xE
#define GaloisSemID_p3Ctlr 0xF
#define GaloisSemID_vldX 0x10
#define GaloisSemID_vld0 0x11
#define GaloisSemID_P3db 0x15
#define GaloisSemID_refIn 0x13
#define GaloisSemID_P3EOF 0x14
#define GaloisSemID_P3Dbg 0x12
#define GaloisSemID_refIn2 0x16
///////////////////////////////////////////////////////////
#define RA_GaloisSemID_vpro 0x0000
#define BA_GaloisSemID_vpro_SemaphoreNum 0x0000
#define B16GaloisSemID_vpro_SemaphoreNum 0x0000
#define LSb32GaloisSemID_vpro_SemaphoreNum 0
#define LSb16GaloisSemID_vpro_SemaphoreNum 0
#define bGaloisSemID_vpro_SemaphoreNum 16
#define MSK32GaloisSemID_vpro_SemaphoreNum 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_GaloisSemID {
///////////////////////////////////////////////////////////
#define GET32GaloisSemID_vpro_SemaphoreNum(r32) _BFGET_(r32,15, 0)
#define SET32GaloisSemID_vpro_SemaphoreNum(r32,v) _BFSET_(r32,15, 0,v)
#define GET16GaloisSemID_vpro_SemaphoreNum(r16) _BFGET_(r16,15, 0)
#define SET16GaloisSemID_vpro_SemaphoreNum(r16,v) _BFSET_(r16,15, 0,v)
#define w32GaloisSemID_vpro {\
UNSG32 uvpro_SemaphoreNum : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32GaloisSemID_vpro;
struct w32GaloisSemID_vpro;
};
///////////////////////////////////////////////////////////
} SIE_GaloisSemID;
typedef union T32GaloisSemID_vpro
{ UNSG32 u32;
struct w32GaloisSemID_vpro;
} T32GaloisSemID_vpro;
///////////////////////////////////////////////////////////
typedef union TGaloisSemID_vpro
{ UNSG32 u32[1];
struct {
struct w32GaloisSemID_vpro;
};
} TGaloisSemID_vpro;
///////////////////////////////////////////////////////////
SIGN32 GaloisSemID_drvrd(SIE_GaloisSemID *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 GaloisSemID_drvwr(SIE_GaloisSemID *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void GaloisSemID_reset(SIE_GaloisSemID *p);
SIGN32 GaloisSemID_cmp (SIE_GaloisSemID *p, SIE_GaloisSemID *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define GaloisSemID_check(p,pie,pfx,hLOG) GaloisSemID_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define GaloisSemID_print(p, pfx,hLOG) GaloisSemID_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: GaloisSemID
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: GaloisDmaMap.h
////////////////////////////////////////////////////////////