cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

coda_regs.h (23474B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * linux/drivers/media/platform/chips-media/coda_regs.h
      4 *
      5 * Copyright (C) 2012 Vista Silicon SL
      6 *    Javier Martin <javier.martin@vista-silicon.com>
      7 *    Xavier Duret
      8 */
      9
     10#ifndef _REGS_CODA_H_
     11#define _REGS_CODA_H_
     12
     13/* HW registers */
     14#define CODA_REG_BIT_CODE_RUN			0x000
     15#define		CODA_REG_RUN_ENABLE		(1 << 0)
     16#define CODA_REG_BIT_CODE_DOWN			0x004
     17#define		CODA_DOWN_ADDRESS_SET(x)	(((x) & 0xffff) << 16)
     18#define		CODA_DOWN_DATA_SET(x)		((x) & 0xffff)
     19#define CODA_REG_BIT_HOST_IN_REQ		0x008
     20#define CODA_REG_BIT_INT_CLEAR			0x00c
     21#define		CODA_REG_BIT_INT_CLEAR_SET	0x1
     22#define CODA_REG_BIT_INT_STATUS		0x010
     23#define CODA_REG_BIT_CODE_RESET		0x014
     24#define		CODA_REG_RESET_ENABLE		(1 << 0)
     25#define CODA_REG_BIT_CUR_PC			0x018
     26#define CODA9_REG_BIT_SW_RESET			0x024
     27#define		CODA9_SW_RESET_BPU_CORE   0x008
     28#define		CODA9_SW_RESET_BPU_BUS    0x010
     29#define		CODA9_SW_RESET_VCE_CORE   0x020
     30#define		CODA9_SW_RESET_VCE_BUS    0x040
     31#define		CODA9_SW_RESET_GDI_CORE   0x080
     32#define		CODA9_SW_RESET_GDI_BUS    0x100
     33#define CODA9_REG_BIT_SW_RESET_STATUS		0x034
     34
     35/* Static SW registers */
     36#define CODA_REG_BIT_CODE_BUF_ADDR		0x100
     37#define CODA_REG_BIT_WORK_BUF_ADDR		0x104
     38#define CODA_REG_BIT_PARA_BUF_ADDR		0x108
     39#define CODA_REG_BIT_STREAM_CTRL		0x10c
     40#define		CODA7_STREAM_BUF_PIC_RESET	(1 << 4)
     41#define		CODADX6_STREAM_BUF_PIC_RESET	(1 << 3)
     42#define		CODA7_STREAM_BUF_PIC_FLUSH	(1 << 3)
     43#define		CODADX6_STREAM_BUF_PIC_FLUSH	(1 << 2)
     44#define		CODA7_STREAM_BUF_DYNALLOC_EN	(1 << 5)
     45#define		CODADX6_STREAM_BUF_DYNALLOC_EN	(1 << 4)
     46#define		CODADX6_STREAM_CHKDIS_OFFSET	(1 << 1)
     47#define		CODA7_STREAM_SEL_64BITS_ENDIAN	(1 << 1)
     48#define		CODA_STREAM_ENDIAN_SELECT	(1 << 0)
     49#define CODA_REG_BIT_FRAME_MEM_CTRL		0x110
     50#define		CODA9_FRAME_ENABLE_BWB		(1 << 12)
     51#define		CODA9_FRAME_TILED2LINEAR	(1 << 11)
     52#define		CODA_FRAME_CHROMA_INTERLEAVE	(1 << 2)
     53#define		CODA_IMAGE_ENDIAN_SELECT	(1 << 0)
     54#define CODA_REG_BIT_BIT_STREAM_PARAM		0x114
     55#define		CODA_BIT_STREAM_END_FLAG	(1 << 2)
     56#define		CODA_BIT_DEC_SEQ_INIT_ESCAPE	(1 << 0)
     57#define CODA_REG_BIT_TEMP_BUF_ADDR		0x118
     58#define CODA_REG_BIT_RD_PTR(x)			(0x120 + 8 * (x))
     59#define CODA_REG_BIT_WR_PTR(x)			(0x124 + 8 * (x))
     60#define CODA_REG_BIT_FRM_DIS_FLG(x)		(0x150 + 4 * (x))
     61#define CODADX6_REG_BIT_SEARCH_RAM_BASE_ADDR	0x140
     62#define CODA7_REG_BIT_AXI_SRAM_USE		0x140
     63#define		CODA9_USE_HOST_BTP_ENABLE	(1 << 13)
     64#define		CODA9_USE_HOST_OVL_ENABLE	(1 << 12)
     65#define		CODA7_USE_HOST_ME_ENABLE	(1 << 11)
     66#define		CODA9_USE_HOST_DBK_ENABLE	(3 << 10)
     67#define		CODA7_USE_HOST_OVL_ENABLE	(1 << 10)
     68#define		CODA7_USE_HOST_DBK_ENABLE	(1 << 9)
     69#define		CODA9_USE_HOST_IP_ENABLE	(1 << 9)
     70#define		CODA7_USE_HOST_IP_ENABLE	(1 << 8)
     71#define		CODA9_USE_HOST_BIT_ENABLE	(1 << 8)
     72#define		CODA7_USE_HOST_BIT_ENABLE	(1 << 7)
     73#define		CODA9_USE_BTP_ENABLE		(1 << 5)
     74#define		CODA7_USE_ME_ENABLE		(1 << 4)
     75#define		CODA9_USE_OVL_ENABLE		(1 << 4)
     76#define		CODA7_USE_OVL_ENABLE		(1 << 3)
     77#define		CODA9_USE_DBK_ENABLE		(3 << 2)
     78#define		CODA7_USE_DBK_ENABLE		(1 << 2)
     79#define		CODA7_USE_IP_ENABLE		(1 << 1)
     80#define		CODA7_USE_BIT_ENABLE		(1 << 0)
     81
     82#define CODA_REG_BIT_BUSY			0x160
     83#define		CODA_REG_BIT_BUSY_FLAG		1
     84#define CODA_REG_BIT_RUN_COMMAND		0x164
     85#define		CODA_COMMAND_SEQ_INIT		1
     86#define		CODA_COMMAND_SEQ_END		2
     87#define		CODA_COMMAND_PIC_RUN		3
     88#define		CODA_COMMAND_SET_FRAME_BUF	4
     89#define		CODA_COMMAND_ENCODE_HEADER	5
     90#define		CODA_COMMAND_ENC_PARA_SET	6
     91#define		CODA_COMMAND_DEC_PARA_SET	7
     92#define		CODA_COMMAND_DEC_BUF_FLUSH	8
     93#define		CODA_COMMAND_RC_CHANGE_PARAMETER 9
     94#define		CODA_COMMAND_FIRMWARE_GET	0xf
     95#define CODA_REG_BIT_RUN_INDEX			0x168
     96#define		CODA_INDEX_SET(x)		((x) & 0x3)
     97#define CODA_REG_BIT_RUN_COD_STD		0x16c
     98#define		CODADX6_MODE_DECODE_MP4		0
     99#define		CODADX6_MODE_ENCODE_MP4		1
    100#define		CODADX6_MODE_DECODE_H264	2
    101#define		CODADX6_MODE_ENCODE_H264	3
    102#define		CODA7_MODE_DECODE_H264		0
    103#define		CODA7_MODE_DECODE_VC1		1
    104#define		CODA7_MODE_DECODE_MP2		2
    105#define		CODA7_MODE_DECODE_MP4		3
    106#define		CODA7_MODE_DECODE_DV3		3
    107#define		CODA7_MODE_DECODE_RV		4
    108#define		CODA7_MODE_DECODE_MJPG		5
    109#define		CODA7_MODE_ENCODE_H264		8
    110#define		CODA7_MODE_ENCODE_MP4		11
    111#define		CODA7_MODE_ENCODE_MJPG		13
    112#define		CODA9_MODE_DECODE_H264		0
    113#define		CODA9_MODE_DECODE_VC1		1
    114#define		CODA9_MODE_DECODE_MP2		2
    115#define		CODA9_MODE_DECODE_MP4		3
    116#define		CODA9_MODE_DECODE_DV3		3
    117#define		CODA9_MODE_DECODE_RV		4
    118#define		CODA9_MODE_DECODE_AVS		5
    119#define		CODA9_MODE_DECODE_MJPG		6
    120#define		CODA9_MODE_DECODE_VPX		7
    121#define		CODA9_MODE_ENCODE_H264		8
    122#define		CODA9_MODE_ENCODE_MP4		11
    123#define		CODA9_MODE_ENCODE_MJPG		13
    124#define		CODA_MODE_INVALID		0xffff
    125#define CODA_REG_BIT_INT_ENABLE		0x170
    126#define		CODA_INT_INTERRUPT_ENABLE	(1 << 3)
    127#define CODA_REG_BIT_INT_REASON			0x174
    128#define CODA7_REG_BIT_RUN_AUX_STD		0x178
    129#define		CODA_MP4_AUX_MPEG4		0
    130#define		CODA_MP4_AUX_DIVX3		1
    131#define		CODA_VPX_AUX_THO		0
    132#define		CODA_VPX_AUX_VP6		1
    133#define		CODA_VPX_AUX_VP8		2
    134#define		CODA_H264_AUX_AVC		0
    135#define		CODA_H264_AUX_MVC		1
    136
    137/*
    138 * Commands' mailbox:
    139 * registers with offsets in the range 0x180-0x1d0
    140 * have different meaning depending on the command being
    141 * issued.
    142 */
    143
    144/* Decoder Sequence Initialization */
    145#define CODA_CMD_DEC_SEQ_BB_START		0x180
    146#define CODA_CMD_DEC_SEQ_BB_SIZE		0x184
    147#define CODA_CMD_DEC_SEQ_OPTION			0x188
    148#define		CODA_NO_INT_ENABLE			(1 << 10)
    149#define		CODA_REORDER_ENABLE			(1 << 1)
    150#define		CODADX6_QP_REPORT			(1 << 0)
    151#define		CODA7_MP4_DEBLK_ENABLE			(1 << 0)
    152#define CODA_CMD_DEC_SEQ_SRC_SIZE		0x18c
    153#define CODA_CMD_DEC_SEQ_START_BYTE		0x190
    154#define CODA_CMD_DEC_SEQ_PS_BB_START		0x194
    155#define CODA_CMD_DEC_SEQ_PS_BB_SIZE		0x198
    156#define CODA_CMD_DEC_SEQ_JPG_THUMB_EN		0x19c
    157#define CODA_CMD_DEC_SEQ_MP4_ASP_CLASS		0x19c
    158#define		CODA_MP4_CLASS_MPEG4			0
    159#define CODA_CMD_DEC_SEQ_X264_MV_EN		0x19c
    160#define CODA_CMD_DEC_SEQ_SPP_CHUNK_SIZE		0x1a0
    161
    162#define CODA7_RET_DEC_SEQ_ASPECT		0x1b0
    163#define CODA9_RET_DEC_SEQ_BITRATE		0x1b4
    164#define CODA_RET_DEC_SEQ_SUCCESS		0x1c0
    165#define CODA_RET_DEC_SEQ_SRC_FMT		0x1c4 /* SRC_SIZE on CODA7 */
    166#define CODA_RET_DEC_SEQ_SRC_SIZE		0x1c4
    167#define CODA_RET_DEC_SEQ_SRC_F_RATE		0x1c8
    168#define CODA9_RET_DEC_SEQ_ASPECT		0x1c8
    169#define CODA_RET_DEC_SEQ_FRAME_NEED		0x1cc
    170#define CODA_RET_DEC_SEQ_FRAME_DELAY		0x1d0
    171#define CODA_RET_DEC_SEQ_INFO			0x1d4
    172#define CODA_RET_DEC_SEQ_CROP_LEFT_RIGHT	0x1d8
    173#define CODA_RET_DEC_SEQ_CROP_TOP_BOTTOM	0x1dc
    174#define CODA_RET_DEC_SEQ_NEXT_FRAME_NUM		0x1e0
    175#define CODA_RET_DEC_SEQ_ERR_REASON		0x1e0
    176#define CODA_RET_DEC_SEQ_FRATE_NR		0x1e4
    177#define CODA_RET_DEC_SEQ_FRATE_DR		0x1e8
    178#define CODA_RET_DEC_SEQ_JPG_PARA		0x1e4
    179#define CODA_RET_DEC_SEQ_JPG_THUMB_IND		0x1e8
    180#define CODA7_RET_DEC_SEQ_HEADER_REPORT		0x1ec
    181
    182/* Decoder Picture Run */
    183#define CODA_CMD_DEC_PIC_ROT_MODE		0x180
    184#define CODA_CMD_DEC_PIC_ROT_ADDR_Y		0x184
    185#define CODA9_CMD_DEC_PIC_ROT_INDEX		0x184
    186#define CODA_CMD_DEC_PIC_ROT_ADDR_CB		0x188
    187#define CODA9_CMD_DEC_PIC_ROT_ADDR_Y		0x188
    188#define CODA_CMD_DEC_PIC_ROT_ADDR_CR		0x18c
    189#define CODA9_CMD_DEC_PIC_ROT_ADDR_CB		0x18c
    190#define CODA_CMD_DEC_PIC_ROT_STRIDE		0x190
    191#define CODA9_CMD_DEC_PIC_ROT_ADDR_CR		0x190
    192#define CODA9_CMD_DEC_PIC_ROT_STRIDE		0x1b8
    193
    194#define CODA_CMD_DEC_PIC_OPTION			0x194
    195#define		CODA_PRE_SCAN_EN			(1 << 0)
    196#define		CODA_PRE_SCAN_MODE_DECODE		(0 << 1)
    197#define		CODA_PRE_SCAN_MODE_RETURN		(1 << 1)
    198#define		CODA_IFRAME_SEARCH_EN			(1 << 2)
    199#define		CODA_SKIP_FRAME_MODE			(0x3 << 3)
    200#define CODA_CMD_DEC_PIC_SKIP_NUM		0x198
    201#define CODA_CMD_DEC_PIC_CHUNK_SIZE		0x19c
    202#define CODA_CMD_DEC_PIC_BB_START		0x1a0
    203#define CODA_CMD_DEC_PIC_START_BYTE		0x1a4
    204#define CODA_RET_DEC_PIC_SIZE			0x1bc
    205#define CODA_RET_DEC_PIC_FRAME_NUM		0x1c0
    206#define CODA_RET_DEC_PIC_FRAME_IDX		0x1c4
    207#define CODA_RET_DEC_PIC_ERR_MB			0x1c8
    208#define CODA_RET_DEC_PIC_TYPE			0x1cc
    209#define		CODA_PIC_TYPE_MASK			0x7
    210#define		CODA_PIC_TYPE_MASK_VC1			0x3f
    211#define		CODA9_PIC_TYPE_FIRST_MASK		(0x7 << 3)
    212#define		CODA9_PIC_TYPE_IDR_MASK			(0x3 << 6)
    213#define		CODA7_PIC_TYPE_H264_NPF_MASK		(0x3 << 16)
    214#define		CODA7_PIC_TYPE_INTERLACED		(1 << 18)
    215#define CODA_RET_DEC_PIC_POST			0x1d0
    216#define CODA_RET_DEC_PIC_MVC_REPORT		0x1d0
    217#define CODA_RET_DEC_PIC_OPTION			0x1d4
    218#define CODA_RET_DEC_PIC_SUCCESS		0x1d8
    219#define CODA_RET_DEC_PIC_CUR_IDX		0x1dc
    220#define CODA_RET_DEC_PIC_CROP_LEFT_RIGHT	0x1e0
    221#define CODA_RET_DEC_PIC_CROP_TOP_BOTTOM	0x1e4
    222#define CODA_RET_DEC_PIC_FRAME_NEED		0x1ec
    223
    224#define CODA9_RET_DEC_PIC_VP8_PIC_REPORT	0x1e8
    225#define CODA9_RET_DEC_PIC_ASPECT		0x1f0
    226#define CODA9_RET_DEC_PIC_VP8_SCALE_INFO	0x1f0
    227#define CODA9_RET_DEC_PIC_FRATE_NR		0x1f4
    228#define CODA9_RET_DEC_PIC_FRATE_DR		0x1f8
    229
    230/* Encoder Sequence Initialization */
    231#define CODA_CMD_ENC_SEQ_BB_START				0x180
    232#define CODA_CMD_ENC_SEQ_BB_SIZE				0x184
    233#define CODA_CMD_ENC_SEQ_OPTION				0x188
    234#define		CODA7_OPTION_AVCINTRA16X16ONLY_OFFSET		9
    235#define		CODA9_OPTION_MVC_PREFIX_NAL_OFFSET		9
    236#define		CODA7_OPTION_GAMMA_OFFSET			8
    237#define		CODA9_OPTION_MVC_PARASET_REFRESH_OFFSET		8
    238#define		CODA7_OPTION_RCQPMAX_OFFSET			7
    239#define		CODA9_OPTION_GAMMA_OFFSET			7
    240#define		CODADX6_OPTION_GAMMA_OFFSET			7
    241#define		CODA7_OPTION_RCQPMIN_OFFSET			6
    242#define		CODA9_OPTION_RCQPMAX_OFFSET			6
    243#define		CODA_OPTION_LIMITQP_OFFSET			6
    244#define		CODA_OPTION_RCINTRAQP_OFFSET			5
    245#define		CODA_OPTION_FMO_OFFSET				4
    246#define		CODA9_OPTION_MVC_INTERVIEW_OFFSET		4
    247#define		CODA_OPTION_AVC_AUD_OFFSET			2
    248#define		CODA_OPTION_SLICEREPORT_OFFSET			1
    249#define CODA_CMD_ENC_SEQ_COD_STD				0x18c
    250#define		CODA_STD_MPEG4					0
    251#define		CODA9_STD_H264					0
    252#define		CODA_STD_H263					1
    253#define		CODA_STD_H264					2
    254#define		CODA9_STD_MPEG4					3
    255
    256#define CODA_CMD_ENC_SEQ_SRC_SIZE				0x190
    257#define		CODA7_PICWIDTH_OFFSET				16
    258#define		CODA7_PICWIDTH_MASK				0xffff
    259#define		CODADX6_PICWIDTH_OFFSET				10
    260#define		CODADX6_PICWIDTH_MASK				0x3ff
    261#define		CODA_PICHEIGHT_OFFSET				0
    262#define		CODADX6_PICHEIGHT_MASK				0x3ff
    263#define		CODA7_PICHEIGHT_MASK				0xffff
    264#define CODA_CMD_ENC_SEQ_SRC_F_RATE				0x194
    265#define		CODA_FRATE_RES_OFFSET				0
    266#define		CODA_FRATE_RES_MASK				0xffff
    267#define		CODA_FRATE_DIV_OFFSET				16
    268#define		CODA_FRATE_DIV_MASK				0xffff
    269#define CODA_CMD_ENC_SEQ_MP4_PARA				0x198
    270#define		CODA_MP4PARAM_VERID_OFFSET			6
    271#define		CODA_MP4PARAM_VERID_MASK			0x01
    272#define		CODA_MP4PARAM_INTRADCVLCTHR_OFFSET		2
    273#define		CODA_MP4PARAM_INTRADCVLCTHR_MASK		0x07
    274#define		CODA_MP4PARAM_REVERSIBLEVLCENABLE_OFFSET	1
    275#define		CODA_MP4PARAM_REVERSIBLEVLCENABLE_MASK		0x01
    276#define		CODA_MP4PARAM_DATAPARTITIONENABLE_OFFSET	0
    277#define		CODA_MP4PARAM_DATAPARTITIONENABLE_MASK		0x01
    278#define CODA_CMD_ENC_SEQ_263_PARA				0x19c
    279#define		CODA_263PARAM_ANNEXJENABLE_OFFSET		2
    280#define		CODA_263PARAM_ANNEXJENABLE_MASK		0x01
    281#define		CODA_263PARAM_ANNEXKENABLE_OFFSET		1
    282#define		CODA_263PARAM_ANNEXKENABLE_MASK		0x01
    283#define		CODA_263PARAM_ANNEXTENABLE_OFFSET		0
    284#define		CODA_263PARAM_ANNEXTENABLE_MASK		0x01
    285#define CODA_CMD_ENC_SEQ_264_PARA				0x1a0
    286#define		CODA_264PARAM_DEBLKFILTEROFFSETBETA_OFFSET	12
    287#define		CODA_264PARAM_DEBLKFILTEROFFSETBETA_MASK	0x0f
    288#define		CODA_264PARAM_DEBLKFILTEROFFSETALPHA_OFFSET	8
    289#define		CODA_264PARAM_DEBLKFILTEROFFSETALPHA_MASK	0x0f
    290#define		CODA_264PARAM_DISABLEDEBLK_OFFSET		6
    291#define		CODA_264PARAM_DISABLEDEBLK_MASK		0x03
    292#define		CODA_264PARAM_CONSTRAINEDINTRAPREDFLAG_OFFSET	5
    293#define		CODA_264PARAM_CONSTRAINEDINTRAPREDFLAG_MASK	0x01
    294#define		CODA_264PARAM_CHROMAQPOFFSET_OFFSET		0
    295#define		CODA_264PARAM_CHROMAQPOFFSET_MASK		0x1f
    296#define CODA_CMD_ENC_SEQ_SLICE_MODE				0x1a4
    297#define		CODA_SLICING_SIZE_OFFSET			2
    298#define		CODA_SLICING_SIZE_MASK				0x3fffffff
    299#define		CODA_SLICING_UNIT_OFFSET			1
    300#define		CODA_SLICING_UNIT_MASK				0x01
    301#define		CODA_SLICING_MODE_OFFSET			0
    302#define		CODA_SLICING_MODE_MASK				0x01
    303#define CODA_CMD_ENC_SEQ_GOP_SIZE				0x1a8
    304#define		CODA_GOP_SIZE_OFFSET				0
    305#define		CODA_GOP_SIZE_MASK				0x3f
    306#define CODA_CMD_ENC_SEQ_RC_PARA				0x1ac
    307#define		CODA_RATECONTROL_AUTOSKIP_OFFSET		31
    308#define		CODA_RATECONTROL_AUTOSKIP_MASK			0x01
    309#define		CODA_RATECONTROL_INITIALDELAY_OFFSET		16
    310#define		CODA_RATECONTROL_INITIALDELAY_MASK		0x7fff
    311#define		CODA_RATECONTROL_BITRATE_OFFSET		1
    312#define		CODA_RATECONTROL_BITRATE_MASK			0x7fff
    313#define		CODA_RATECONTROL_ENABLE_OFFSET			0
    314#define		CODA_RATECONTROL_ENABLE_MASK			0x01
    315#define CODA_CMD_ENC_SEQ_RC_BUF_SIZE				0x1b0
    316#define CODA_CMD_ENC_SEQ_INTRA_REFRESH				0x1b4
    317#define CODADX6_CMD_ENC_SEQ_FMO					0x1b8
    318#define		CODA_FMOPARAM_TYPE_OFFSET			4
    319#define		CODA_FMOPARAM_TYPE_MASK				1
    320#define		CODA_FMOPARAM_SLICENUM_OFFSET			0
    321#define		CODA_FMOPARAM_SLICENUM_MASK			0x0f
    322#define CODADX6_CMD_ENC_SEQ_INTRA_QP				0x1bc
    323#define CODA7_CMD_ENC_SEQ_SEARCH_BASE				0x1b8
    324#define CODA7_CMD_ENC_SEQ_SEARCH_SIZE				0x1bc
    325#define CODA7_CMD_ENC_SEQ_INTRA_QP				0x1c4
    326#define CODA_CMD_ENC_SEQ_RC_QP_MIN_MAX				0x1c8
    327#define		CODA_QPMIN_OFFSET				8
    328#define		CODA_QPMIN_MASK					0x3f
    329#define		CODA_QPMAX_OFFSET				0
    330#define		CODA_QPMAX_MASK					0x3f
    331#define CODA_CMD_ENC_SEQ_RC_GAMMA				0x1cc
    332#define		CODA_GAMMA_OFFSET				0
    333#define		CODA_GAMMA_MASK					0xffff
    334#define CODA_CMD_ENC_SEQ_RC_INTERVAL_MODE			0x1d0
    335#define CODA9_CMD_ENC_SEQ_INTRA_WEIGHT				0x1d4
    336#define CODA9_CMD_ENC_SEQ_ME_OPTION				0x1d8
    337#define CODA_RET_ENC_SEQ_SUCCESS				0x1c0
    338
    339#define CODA_CMD_ENC_SEQ_JPG_PARA				0x198
    340#define CODA_CMD_ENC_SEQ_JPG_RST_INTERVAL			0x19C
    341#define CODA_CMD_ENC_SEQ_JPG_THUMB_EN				0x1a0
    342#define CODA_CMD_ENC_SEQ_JPG_THUMB_SIZE				0x1a4
    343#define CODA_CMD_ENC_SEQ_JPG_THUMB_OFFSET			0x1a8
    344
    345/* Encoder Parameter Change */
    346#define CODA_CMD_ENC_PARAM_CHANGE_ENABLE	0x180
    347#define		CODA_PARAM_CHANGE_RC_GOP			BIT(0)
    348#define		CODA_PARAM_CHANGE_RC_INTRA_QP			BIT(1)
    349#define		CODA_PARAM_CHANGE_RC_BITRATE			BIT(2)
    350#define		CODA_PARAM_CHANGE_RC_FRAME_RATE			BIT(3)
    351#define		CODA_PARAM_CHANGE_INTRA_MB_NUM			BIT(4)
    352#define		CODA_PARAM_CHANGE_SLICE_MODE			BIT(5)
    353#define		CODA_PARAM_CHANGE_HEC_MODE			BIT(6)
    354#define CODA_CMD_ENC_PARAM_RC_GOP		0x184
    355#define CODA_CMD_ENC_PARAM_RC_INTRA_QP		0x188
    356#define CODA_CMD_ENC_PARAM_RC_BITRATE		0x18c
    357#define CODA_CMD_ENC_PARAM_RC_FRAME_RATE	0x190
    358#define CODA_CMD_ENC_PARAM_INTRA_MB_NUM		0x194
    359#define CODA_CMD_ENC_PARAM_SLICE_MODE		0x198
    360#define CODA_CMD_ENC_PARAM_HEC_MODE		0x19c
    361#define CODA_RET_ENC_PARAM_CHANGE_SUCCESS	0x1c0
    362
    363/* Encoder Picture Run */
    364#define CODA9_CMD_ENC_PIC_SRC_INDEX		0x180
    365#define CODA9_CMD_ENC_PIC_SRC_STRIDE		0x184
    366#define CODA9_CMD_ENC_PIC_SUB_FRAME_SYNC	0x1a4
    367#define CODA9_CMD_ENC_PIC_SRC_ADDR_Y		0x1a8
    368#define CODA9_CMD_ENC_PIC_SRC_ADDR_CB		0x1ac
    369#define CODA9_CMD_ENC_PIC_SRC_ADDR_CR		0x1b0
    370#define CODA_CMD_ENC_PIC_SRC_ADDR_Y	0x180
    371#define CODA_CMD_ENC_PIC_SRC_ADDR_CB	0x184
    372#define CODA_CMD_ENC_PIC_SRC_ADDR_CR	0x188
    373#define CODA_CMD_ENC_PIC_QS		0x18c
    374#define CODA_CMD_ENC_PIC_ROT_MODE	0x190
    375#define		CODA_ROT_MIR_ENABLE				(1 << 4)
    376#define		CODA_ROT_0					(0x0 << 0)
    377#define		CODA_ROT_90					(0x1 << 0)
    378#define		CODA_ROT_180					(0x2 << 0)
    379#define		CODA_ROT_270					(0x3 << 0)
    380#define		CODA_MIR_NONE					(0x0 << 2)
    381#define		CODA_MIR_VER					(0x1 << 2)
    382#define		CODA_MIR_HOR					(0x2 << 2)
    383#define		CODA_MIR_VER_HOR				(0x3 << 2)
    384#define CODA_CMD_ENC_PIC_OPTION		0x194
    385#define		CODA_FORCE_IPICTURE				BIT(1)
    386#define		CODA_REPORT_MB_INFO				BIT(3)
    387#define		CODA_REPORT_MV_INFO				BIT(4)
    388#define		CODA_REPORT_SLICE_INFO				BIT(5)
    389#define CODA_CMD_ENC_PIC_BB_START	0x198
    390#define CODA_CMD_ENC_PIC_BB_SIZE	0x19c
    391#define CODA_RET_ENC_FRAME_NUM		0x1c0
    392#define CODA_RET_ENC_PIC_TYPE		0x1c4
    393#define CODA_RET_ENC_PIC_FRAME_IDX	0x1c8
    394#define CODA_RET_ENC_PIC_SLICE_NUM	0x1cc
    395#define CODA_RET_ENC_PIC_FLAG		0x1d0
    396#define CODA_RET_ENC_PIC_SUCCESS	0x1d8
    397
    398/* Set Frame Buffer */
    399#define CODA_CMD_SET_FRAME_BUF_NUM		0x180
    400#define CODA_CMD_SET_FRAME_BUF_STRIDE		0x184
    401#define CODA_CMD_SET_FRAME_SLICE_BB_START	0x188
    402#define CODA_CMD_SET_FRAME_SLICE_BB_SIZE	0x18c
    403#define CODA9_CMD_SET_FRAME_SUBSAMP_A		0x188
    404#define CODA9_CMD_SET_FRAME_SUBSAMP_B		0x18c
    405#define CODA7_CMD_SET_FRAME_AXI_BIT_ADDR	0x190
    406#define CODA7_CMD_SET_FRAME_AXI_IPACDC_ADDR	0x194
    407#define CODA7_CMD_SET_FRAME_AXI_DBKY_ADDR	0x198
    408#define CODA7_CMD_SET_FRAME_AXI_DBKC_ADDR	0x19c
    409#define CODA7_CMD_SET_FRAME_AXI_OVL_ADDR	0x1a0
    410#define CODA7_CMD_SET_FRAME_MAX_DEC_SIZE	0x1a4
    411#define CODA9_CMD_SET_FRAME_AXI_BTP_ADDR	0x1a4
    412#define CODA7_CMD_SET_FRAME_SOURCE_BUF_STRIDE	0x1a8
    413#define CODA9_CMD_SET_FRAME_CACHE_SIZE		0x1a8
    414#define CODA9_CMD_SET_FRAME_CACHE_CONFIG	0x1ac
    415#define		CODA9_CACHE_BYPASS_OFFSET		28
    416#define		CODA9_CACHE_DUALCONF_OFFSET		26
    417#define		CODA9_CACHE_PAGEMERGE_OFFSET		24
    418#define		CODA9_CACHE_LUMA_BUFFER_SIZE_OFFSET	16
    419#define		CODA9_CACHE_CB_BUFFER_SIZE_OFFSET	8
    420#define		CODA9_CACHE_CR_BUFFER_SIZE_OFFSET	0
    421#define CODA9_CMD_SET_FRAME_SUBSAMP_A_MVC	0x1b0
    422#define CODA9_CMD_SET_FRAME_SUBSAMP_B_MVC	0x1b4
    423#define CODA9_CMD_SET_FRAME_DP_BUF_BASE		0x1b0
    424#define CODA9_CMD_SET_FRAME_DP_BUF_SIZE		0x1b4
    425#define CODA9_CMD_SET_FRAME_MAX_DEC_SIZE	0x1b8
    426#define CODA9_CMD_SET_FRAME_DELAY		0x1bc
    427
    428/* Encoder Header */
    429#define CODA_CMD_ENC_HEADER_CODE	0x180
    430#define		CODA_GAMMA_OFFSET	0
    431#define		CODA_HEADER_H264_SPS	0
    432#define		CODA_HEADER_H264_PPS	1
    433#define		CODA_HEADER_MP4V_VOL	0
    434#define		CODA_HEADER_MP4V_VOS	1
    435#define		CODA_HEADER_MP4V_VIS	2
    436#define		CODA9_HEADER_FRAME_CROP	(1 << 3)
    437#define CODA_CMD_ENC_HEADER_BB_START	0x184
    438#define CODA_CMD_ENC_HEADER_BB_SIZE	0x188
    439#define CODA9_CMD_ENC_HEADER_FRAME_CROP_H	0x18c
    440#define CODA9_CMD_ENC_HEADER_FRAME_CROP_V	0x190
    441
    442/* Get Version */
    443#define CODA_CMD_FIRMWARE_VERNUM		0x1c0
    444#define		CODA_FIRMWARE_PRODUCT(x)	(((x) >> 16) & 0xffff)
    445#define		CODA_FIRMWARE_MAJOR(x)		(((x) >> 12) & 0x0f)
    446#define		CODA_FIRMWARE_MINOR(x)		(((x) >> 8) & 0x0f)
    447#define		CODA_FIRMWARE_RELEASE(x)	((x) & 0xff)
    448#define		CODA_FIRMWARE_VERNUM(product, major, minor, release)	\
    449			((product) << 16 | ((major) << 12) |		\
    450			((minor) << 8) | (release))
    451#define CODA9_CMD_FIRMWARE_CODE_REV		0x1c4
    452
    453#define CODA9_GDMA_BASE				0x1000
    454#define CODA9_GDI_CONTROL			(CODA9_GDMA_BASE + 0x034)
    455#define CODA9_GDI_PIC_INIT_HOST			(CODA9_GDMA_BASE + 0x038)
    456#define CODA9_GDI_STATUS			(CODA9_GDMA_BASE + 0x080)
    457#define CODA9_GDI_WPROT_ERR_CLR			(CODA9_GDMA_BASE + 0x0a0)
    458#define CODA9_GDI_WPROT_RGN_EN			(CODA9_GDMA_BASE + 0x0ac)
    459
    460#define CODA9_GDI_BUS_CTRL			(CODA9_GDMA_BASE + 0x0f0)
    461#define CODA9_GDI_BUS_STATUS			(CODA9_GDMA_BASE + 0x0f4)
    462
    463#define CODA9_GDI_INFO_CONTROL			(CODA9_GDMA_BASE + 0x400)
    464#define CODA9_GDI_INFO_PIC_SIZE			(CODA9_GDMA_BASE + 0x404)
    465#define CODA9_GDI_INFO_BASE_Y			(CODA9_GDMA_BASE + 0x408)
    466#define CODA9_GDI_INFO_BASE_CB			(CODA9_GDMA_BASE + 0x40c)
    467#define CODA9_GDI_INFO_BASE_CR			(CODA9_GDMA_BASE + 0x410)
    468
    469#define CODA9_GDI_XY2_CAS_0			(CODA9_GDMA_BASE + 0x800)
    470#define CODA9_GDI_XY2_CAS_F			(CODA9_GDMA_BASE + 0x83c)
    471
    472#define CODA9_GDI_XY2_BA_0			(CODA9_GDMA_BASE + 0x840)
    473#define CODA9_GDI_XY2_BA_1			(CODA9_GDMA_BASE + 0x844)
    474#define CODA9_GDI_XY2_BA_2			(CODA9_GDMA_BASE + 0x848)
    475#define CODA9_GDI_XY2_BA_3			(CODA9_GDMA_BASE + 0x84c)
    476
    477#define CODA9_GDI_XY2_RAS_0			(CODA9_GDMA_BASE + 0x850)
    478#define CODA9_GDI_XY2_RAS_F			(CODA9_GDMA_BASE + 0x88c)
    479
    480#define CODA9_GDI_XY2_RBC_CONFIG		(CODA9_GDMA_BASE + 0x890)
    481#define		CODA9_XY2RBC_SEPARATE_MAP		BIT(19)
    482#define		CODA9_XY2RBC_TOP_BOT_SPLIT		BIT(18)
    483#define		CODA9_XY2RBC_TILED_MAP			BIT(17)
    484#define		CODA9_XY2RBC_CA_INC_HOR			BIT(16)
    485#define CODA9_GDI_RBC2_AXI_0			(CODA9_GDMA_BASE + 0x8a0)
    486#define CODA9_GDI_RBC2_AXI_1F			(CODA9_GDMA_BASE + 0x91c)
    487#define	CODA9_GDI_TILEDBUF_BASE			(CODA9_GDMA_BASE + 0x920)
    488
    489#define CODA9_JPEG_BASE				0x3000
    490#define CODA9_REG_JPEG_PIC_START		(CODA9_JPEG_BASE + 0x000)
    491#define CODA9_REG_JPEG_PIC_STATUS		(CODA9_JPEG_BASE + 0x004)
    492#define		CODA9_JPEG_STATUS_OVERFLOW		BIT(3)
    493#define		CODA9_JPEG_STATUS_BBC_INT		BIT(2)
    494#define		CODA9_JPEG_STATUS_ERROR			BIT(1)
    495#define		CODA9_JPEG_STATUS_DONE			BIT(0)
    496#define CODA9_REG_JPEG_PIC_ERRMB		(CODA9_JPEG_BASE + 0x008)
    497#define		CODA9_JPEG_ERRMB_RESTART_IDX_MASK	(0xf << 24)
    498#define		CODA9_JPEG_ERRMB_MCU_POS_X_MASK		(0xfff << 12)
    499#define		CODA9_JPEG_ERRMB_MCU_POS_Y_MASK		0xfff
    500#define CODA9_REG_JPEG_PIC_CTRL			(CODA9_JPEG_BASE + 0x010)
    501#define		CODA9_JPEG_PIC_CTRL_USER_HUFFMAN_EN	BIT(6)
    502#define		CODA9_JPEG_PIC_CTRL_TC_DIRECTION	BIT(4)
    503#define		CODA9_JPEG_PIC_CTRL_ENCODER_EN		BIT(3)
    504#define CODA9_REG_JPEG_PIC_SIZE			(CODA9_JPEG_BASE + 0x014)
    505#define CODA9_REG_JPEG_MCU_INFO			(CODA9_JPEG_BASE + 0x018)
    506#define		CODA9_JPEG_MCU_BLOCK_NUM_OFFSET		16
    507#define		CODA9_JPEG_COMP_NUM_OFFSET		12
    508#define		CODA9_JPEG_COMP0_INFO_OFFSET		8
    509#define		CODA9_JPEG_COMP1_INFO_OFFSET		4
    510#define		CODA9_JPEG_COMP2_INFO_OFFSET		0
    511#define CODA9_REG_JPEG_ROT_INFO			(CODA9_JPEG_BASE + 0x01c)
    512#define		CODA9_JPEG_ROT_MIR_ENABLE		BIT(4)
    513#define		CODA9_JPEG_ROT_MIR_MODE_MASK		0xf
    514#define CODA9_REG_JPEG_SCL_INFO			(CODA9_JPEG_BASE + 0x020)
    515#define		CODA9_JPEG_SCL_ENABLE			BIT(4)
    516#define		CODA9_JPEG_SCL_HOR_MODE_MASK		(0x3 << 2)
    517#define		CODA9_JPEG_SCL_VER_MODE_MASK		(0x3 << 0)
    518#define CODA9_REG_JPEG_IF_INFO			(CODA9_JPEG_BASE + 0x024)
    519#define		CODA9_JPEG_SENS_IF_CLR			BIT(1)
    520#define		CODA9_JPEG_DISP_IF_CLR			BIT(0)
    521#define CODA9_REG_JPEG_OP_INFO			(CODA9_JPEG_BASE + 0x02c)
    522#define		CODA9_JPEG_BUS_REQ_NUM_OFFSET		0
    523#define		CODA9_JPEG_BUS_REQ_NUM_MASK		0x7
    524#define CODA9_REG_JPEG_DPB_CONFIG		(CODA9_JPEG_BASE + 0x030)
    525#define CODA9_REG_JPEG_DPB_BASE00		(CODA9_JPEG_BASE + 0x040)
    526#define CODA9_REG_JPEG_HUFF_CTRL		(CODA9_JPEG_BASE + 0x080)
    527#define CODA9_REG_JPEG_HUFF_ADDR		(CODA9_JPEG_BASE + 0x084)
    528#define CODA9_REG_JPEG_HUFF_DATA		(CODA9_JPEG_BASE + 0x088)
    529#define CODA9_REG_JPEG_QMAT_CTRL		(CODA9_JPEG_BASE + 0x090)
    530#define CODA9_REG_JPEG_QMAT_ADDR		(CODA9_JPEG_BASE + 0x094)
    531#define CODA9_REG_JPEG_QMAT_DATA		(CODA9_JPEG_BASE + 0x098)
    532#define CODA9_REG_JPEG_RST_INTVAL		(CODA9_JPEG_BASE + 0x0b0)
    533#define CODA9_REG_JPEG_RST_INDEX		(CODA9_JPEG_BASE + 0x0b4)
    534#define CODA9_REG_JPEG_RST_COUNT		(CODA9_JPEG_BASE + 0x0b8)
    535#define CODA9_REG_JPEG_DPCM_DIFF_Y		(CODA9_JPEG_BASE + 0x0f0)
    536#define CODA9_REG_JPEG_DPCM_DIFF_CB		(CODA9_JPEG_BASE + 0x0f4)
    537#define CODA9_REG_JPEG_DPCM_DIFF_CR		(CODA9_JPEG_BASE + 0x0f8)
    538#define CODA9_REG_JPEG_GBU_CTRL			(CODA9_JPEG_BASE + 0x100)
    539#define CODA9_REG_JPEG_GBU_BT_PTR		(CODA9_JPEG_BASE + 0x110)
    540#define CODA9_REG_JPEG_GBU_WD_PTR		(CODA9_JPEG_BASE + 0x114)
    541#define CODA9_REG_JPEG_GBU_TT_CNT		(CODA9_JPEG_BASE + 0x118)
    542#define CODA9_REG_JPEG_GBU_BBSR			(CODA9_JPEG_BASE + 0x140)
    543#define CODA9_REG_JPEG_GBU_BBER			(CODA9_JPEG_BASE + 0x144)
    544#define CODA9_REG_JPEG_GBU_BBIR			(CODA9_JPEG_BASE + 0x148)
    545#define CODA9_REG_JPEG_GBU_BBHR			(CODA9_JPEG_BASE + 0x14c)
    546#define CODA9_REG_JPEG_GBU_BCNT			(CODA9_JPEG_BASE + 0x158)
    547#define CODA9_REG_JPEG_GBU_FF_RPTR		(CODA9_JPEG_BASE + 0x160)
    548#define CODA9_REG_JPEG_GBU_FF_WPTR		(CODA9_JPEG_BASE + 0x164)
    549#define CODA9_REG_JPEG_BBC_END_ADDR		(CODA9_JPEG_BASE + 0x208)
    550#define CODA9_REG_JPEG_BBC_WR_PTR		(CODA9_JPEG_BASE + 0x20c)
    551#define CODA9_REG_JPEG_BBC_RD_PTR		(CODA9_JPEG_BASE + 0x210)
    552#define CODA9_REG_JPEG_BBC_EXT_ADDR		(CODA9_JPEG_BASE + 0x214)
    553#define CODA9_REG_JPEG_BBC_INT_ADDR		(CODA9_JPEG_BASE + 0x218)
    554#define CODA9_REG_JPEG_BBC_DATA_CNT		(CODA9_JPEG_BASE + 0x21c)
    555#define CODA9_REG_JPEG_BBC_COMMAND		(CODA9_JPEG_BASE + 0x220)
    556#define CODA9_REG_JPEG_BBC_BUSY			(CODA9_JPEG_BASE + 0x224)
    557#define CODA9_REG_JPEG_BBC_CTRL			(CODA9_JPEG_BASE + 0x228)
    558#define CODA9_REG_JPEG_BBC_CUR_POS		(CODA9_JPEG_BASE + 0x22c)
    559#define CODA9_REG_JPEG_BBC_BAS_ADDR		(CODA9_JPEG_BASE + 0x230)
    560#define CODA9_REG_JPEG_BBC_STRM_CTRL		(CODA9_JPEG_BASE + 0x234)
    561#define CODA9_REG_JPEG_BBC_FLUSH_CMD		(CODA9_JPEG_BASE + 0x238)
    562
    563#endif