cedrus_regs.h 4.31 KB
Newer Older
Jens Kuske's avatar
Jens Kuske committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
 * Copyright (c) 2013-2016 Jens Kuske <jenskuske@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef CEDRUS_REGS_H_
#define CEDRUS_REGS_H_

#include <stdint.h>

static inline void writel(uint32_t val, void *addr)
{
	*((volatile uint32_t *)addr) = val;
}

static inline uint32_t readl(void *addr)
{
	return *((volatile uint32_t *) addr);
}

#define VE_CTRL				0x000
#define VE_EXTRA_OUT_FMT_OFFSET		0x0e8
#define VE_VERSION			0x0f0

#define VE_MPEG_PIC_HDR			0x100
#define VE_MPEG_VOP_HDR			0x104
#define VE_MPEG_SIZE			0x108
#define VE_MPEG_FRAME_SIZE		0x10c
#define VE_MPEG_MBA			0x110
#define VE_MPEG_CTRL			0x114
#define VE_MPEG_TRIGGER			0x118
#define VE_MPEG_STATUS			0x11c
#define VE_MPEG_TRBTRD_FIELD		0x120
#define VE_MPEG_TRBTRD_FRAME		0x124
#define VE_MPEG_VLD_ADDR		0x128
#define VE_MPEG_VLD_OFFSET		0x12c
#define VE_MPEG_VLD_LEN			0x130
#define VE_MPEG_VLD_END			0x134
#define VE_MPEG_MBH_ADDR		0x138
#define VE_MPEG_DCAC_ADDR		0x13c
#define VE_MPEG_NCF_ADDR		0x144
#define VE_MPEG_REC_LUMA		0x148
#define VE_MPEG_REC_CHROMA		0x14c
#define VE_MPEG_FWD_LUMA		0x150
#define VE_MPEG_FWD_CHROMA		0x154
#define VE_MPEG_BACK_LUMA		0x158
#define VE_MPEG_BACK_CHROMA		0x15c
#define VE_MPEG_IQ_MIN_INPUT		0x180
#define VE_MPEG_QP_INPUT		0x184

#define VE_MPEG_ROT_LUMA		0x1cc
#define VE_MPEG_ROT_CHROMA		0x1d0
#define VE_MPEG_SDROT_CTRL		0x1d4

#define VE_H264_FRAME_SIZE		0x200
#define VE_H264_PIC_HDR			0x204
#define VE_H264_SLICE_HDR		0x208
#define VE_H264_SLICE_HDR2		0x20c
#define VE_H264_PRED_WEIGHT		0x210
#define VE_H264_QP_PARAM		0x21c
#define VE_H264_CTRL			0x220
#define VE_H264_TRIGGER			0x224
#define VE_H264_STATUS			0x228
#define VE_H264_CUR_MB_NUM		0x22c
#define VE_H264_VLD_ADDR		0x230
#define VE_H264_VLD_OFFSET		0x234
#define VE_H264_VLD_LEN			0x238
#define VE_H264_VLD_END			0x23c
#define VE_H264_SDROT_CTRL		0x240
#define VE_H264_SDROT_LUMA		0x244
#define VE_H264_SDROT_CHROMA		0x248
#define VE_H264_OUTPUT_FRAME_IDX	0x24c
#define VE_H264_EXTRA_BUFFER1		0x250
#define VE_H264_EXTRA_BUFFER2		0x254
#define VE_H264_BASIC_BITS		0x2dc
#define VE_H264_RAM_WRITE_PTR		0x2e0
#define VE_H264_RAM_WRITE_DATA		0x2e4

#define VE_SRAM_H264_PRED_WEIGHT_TABLE	0x000
#define VE_SRAM_H264_FRAMEBUFFER_LIST	0x400
#define VE_SRAM_H264_REF_LIST0		0x640
#define VE_SRAM_H264_REF_LIST1		0x664
#define VE_SRAM_H264_SCALING_LISTS	0x800

#define VE_HEVC_NAL_HDR			0x500
#define VE_HEVC_SPS			0x504
#define VE_HEVC_PIC_SIZE		0x508
#define VE_HEVC_PCM_HDR			0x50c
#define VE_HEVC_PPS0			0x510
#define VE_HEVC_PPS1			0x514
#define VE_HEVC_SCALING_LIST_CTRL	0x518
#define VE_HEVC_SLICE_HDR0		0x520
#define VE_HEVC_SLICE_HDR1		0x524
#define VE_HEVC_SLICE_HDR2		0x528
#define VE_HEVC_CTB_ADDR		0x52c
#define VE_HEVC_CTRL			0x530
#define VE_HEVC_TRIG			0x534
#define VE_HEVC_STATUS			0x538
#define VE_HEVC_CTU_NUM			0x53c
#define VE_HEVC_BITS_ADDR		0x540
#define VE_HEVC_BITS_OFFSET		0x544
#define VE_HEVC_BITS_LEN		0x548
#define VE_HEVC_BITS_END_ADDR		0x54c
#define VE_HEVC_REC_BUF_IDX 		0x55c
#define VE_HEVC_NEIGHBOR_INFO_ADDR	0x560
#define VE_HEVC_TILE_LIST_ADDR		0x564
#define VE_HEVC_TILE_START_CTB		0x568
#define VE_HEVC_TILE_END_CTB		0x56c
#define VE_HEVC_SCALING_LIST_DC_COEF0	0x578
#define VE_HEVC_SCALING_LIST_DC_COEF1	0x57c
#define VE_HEVC_BITS_DATA		0x5dc
#define VE_HEVC_SRAM_ADDR		0x5e0
#define VE_HEVC_SRAM_DATA		0x5e4

#define VE_SRAM_HEVC_PRED_WEIGHT_LUMA_L0	0x000
#define VE_SRAM_HEVC_PRED_WEIGHT_CHROMA_L0	0x020
#define VE_SRAM_HEVC_PRED_WEIGHT_LUMA_L1	0x060
#define VE_SRAM_HEVC_PRED_WEIGHT_CHROMA_L1	0x080
#define VE_SRAM_HEVC_PIC_LIST			0x400
#define VE_SRAM_HEVC_SCALING_LISTS		0x800
#define VE_SRAM_HEVC_REF_PIC_LIST0		0xc00
#define VE_SRAM_HEVC_REF_PIC_LIST1		0xc10

#endif