• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  * Copyright(c) 2016 - 2019 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  ******************************************************************************/
15 
16 #ifndef _HAL_H2CEXTRAINFO_H2C_C2H_NIC_H_
17 #define _HAL_H2CEXTRAINFO_H2C_C2H_NIC_H_
18 
19 /* H2C extra info (rsvd page) usage, unit : page (128byte)*/
20 /* dlfw : not include txdesc size*/
21 /* update pkt : not include txdesc size*/
22 /* cfg param : not include txdesc size*/
23 /* scan info : not include txdesc size*/
24 /* dl flash : not include txdesc size*/
25 #define DLFW_RSVDPG_SIZE 2048
26 #define UPDATE_PKT_RSVDPG_SIZE 2048
27 #define CFG_PARAM_RSVDPG_SIZE 2048
28 #define SCAN_INFO_RSVDPG_SIZE 256
29 #define DL_FLASH_RSVDPG_SIZE 2048
30 /* su0 snding pkt : include txdesc size */
31 #define SU0_SNDING_PKT_OFFSET 0
32 #define SU0_SNDING_PKT_RSVDPG_SIZE 128
33 
34 #define PARAM_INFO_GET_LEN(extra_info) LE_BITS_TO_4BYTE(extra_info + 0X00, 0, 8)
35 #define PARAM_INFO_SET_LEN(extra_info, value)                                  \
36 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 0, 8, value)
37 #define PARAM_INFO_GET_IO_CMD(extra_info)                                      \
38 	LE_BITS_TO_4BYTE(extra_info + 0X00, 8, 7)
39 #define PARAM_INFO_SET_IO_CMD(extra_info, value)                               \
40 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 8, 7, value)
41 #define PARAM_INFO_GET_MSK_EN(extra_info)                                      \
42 	LE_BITS_TO_4BYTE(extra_info + 0X00, 15, 1)
43 #define PARAM_INFO_SET_MSK_EN(extra_info, value)                               \
44 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 15, 1, value)
45 #define PARAM_INFO_GET_LLT_PG_BNDY(extra_info)                                 \
46 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 8)
47 #define PARAM_INFO_SET_LLT_PG_BNDY(extra_info, value)                          \
48 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 8, value)
49 #define PARAM_INFO_GET_EFUSE_RSVDPAGE_LOC(extra_info)                          \
50 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 8)
51 #define PARAM_INFO_SET_EFUSE_RSVDPAGE_LOC(extra_info, value)                   \
52 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 8, value)
53 #define PARAM_INFO_GET_EFUSE_PATCH_EN(extra_info)                              \
54 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 8)
55 #define PARAM_INFO_SET_EFUSE_PATCH_EN(extra_info, value)                       \
56 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 8, value)
57 #define PARAM_INFO_GET_RF_ADDR(extra_info)                                     \
58 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 8)
59 #define PARAM_INFO_SET_RF_ADDR(extra_info, value)                              \
60 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 8, value)
61 #define PARAM_INFO_GET_IO_ADDR(extra_info)                                     \
62 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 16)
63 #define PARAM_INFO_SET_IO_ADDR(extra_info, value)                              \
64 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 16, value)
65 #define PARAM_INFO_GET_DELAY_VAL(extra_info)                                   \
66 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 16)
67 #define PARAM_INFO_SET_DELAY_VAL(extra_info, value)                            \
68 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 16, value)
69 #define PARAM_INFO_GET_RF_PATH(extra_info)                                     \
70 	LE_BITS_TO_4BYTE(extra_info + 0X00, 24, 8)
71 #define PARAM_INFO_SET_RF_PATH(extra_info, value)                              \
72 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 24, 8, value)
73 #define PARAM_INFO_GET_DATA(extra_info)                                        \
74 	LE_BITS_TO_4BYTE(extra_info + 0X04, 0, 32)
75 #define PARAM_INFO_SET_DATA(extra_info, value)                                 \
76 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 0, 32, value)
77 #define PARAM_INFO_GET_MASK(extra_info)                                        \
78 	LE_BITS_TO_4BYTE(extra_info + 0X08, 0, 32)
79 #define PARAM_INFO_SET_MASK(extra_info, value)                                 \
80 	SET_BITS_TO_LE_4BYTE(extra_info + 0X08, 0, 32, value)
81 #define CH_INFO_GET_CH(extra_info) LE_BITS_TO_4BYTE(extra_info + 0X00, 0, 8)
82 #define CH_INFO_SET_CH(extra_info, value)                                      \
83 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 0, 8, value)
84 #define CH_INFO_GET_PRI_CH_IDX(extra_info)                                     \
85 	LE_BITS_TO_4BYTE(extra_info + 0X00, 8, 4)
86 #define CH_INFO_SET_PRI_CH_IDX(extra_info, value)                              \
87 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 8, 4, value)
88 #define CH_INFO_GET_BW(extra_info) LE_BITS_TO_4BYTE(extra_info + 0X00, 12, 4)
89 #define CH_INFO_SET_BW(extra_info, value)                                      \
90 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 12, 4, value)
91 #define CH_INFO_GET_TIMEOUT(extra_info)                                        \
92 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 8)
93 #define CH_INFO_SET_TIMEOUT(extra_info, value)                                 \
94 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 8, value)
95 #define CH_INFO_GET_ACTION_ID(extra_info)                                      \
96 	LE_BITS_TO_4BYTE(extra_info + 0X00, 24, 7)
97 #define CH_INFO_SET_ACTION_ID(extra_info, value)                               \
98 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 24, 7, value)
99 #define CH_INFO_GET_EXTRA_INFO(extra_info)                                     \
100 	LE_BITS_TO_4BYTE(extra_info + 0X00, 31, 1)
101 #define CH_INFO_SET_EXTRA_INFO(extra_info, value)                              \
102 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 31, 1, value)
103 #define CH_EXTRA_INFO_GET_ID(extra_info)                                       \
104 	LE_BITS_TO_4BYTE(extra_info + 0X00, 0, 7)
105 #define CH_EXTRA_INFO_SET_ID(extra_info, value)                                \
106 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 0, 7, value)
107 #define CH_EXTRA_INFO_GET_INFO(extra_info)                                     \
108 	LE_BITS_TO_4BYTE(extra_info + 0X00, 7, 1)
109 #define CH_EXTRA_INFO_SET_INFO(extra_info, value)                              \
110 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 7, 1, value)
111 #define CH_EXTRA_INFO_GET_SIZE(extra_info)                                     \
112 	LE_BITS_TO_4BYTE(extra_info + 0X00, 8, 8)
113 #define CH_EXTRA_INFO_SET_SIZE(extra_info, value)                              \
114 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 8, 8, value)
115 #define CH_EXTRA_INFO_GET_DATA(extra_info)                                     \
116 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 1)
117 #define CH_EXTRA_INFO_SET_DATA(extra_info, value)                              \
118 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 1, value)
119 #define HIOE_INSTRUCTION_INFO_GET_BYTEDATA_L(extra_info)                       \
120 	LE_BITS_TO_4BYTE(extra_info + 0X00, 0, 16)
121 #define HIOE_INSTRUCTION_INFO_SET_BYTEDATA_L(extra_info, value)                \
122 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 0, 16, value)
123 #define HIOE_INSTRUCTION_INFO_GET_BITDATA(extra_info)                          \
124 	LE_BITS_TO_4BYTE(extra_info + 0X00, 0, 16)
125 #define HIOE_INSTRUCTION_INFO_SET_BITDATA(extra_info, value)                   \
126 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 0, 16, value)
127 #define HIOE_INSTRUCTION_INFO_GET_BYTEDATA_H(extra_info)                       \
128 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 16)
129 #define HIOE_INSTRUCTION_INFO_SET_BYTEDATA_H(extra_info, value)                \
130 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 16, value)
131 #define HIOE_INSTRUCTION_INFO_GET_BITMASK(extra_info)                          \
132 	LE_BITS_TO_4BYTE(extra_info + 0X00, 16, 16)
133 #define HIOE_INSTRUCTION_INFO_SET_BITMASK(extra_info, value)                   \
134 	SET_BITS_TO_LE_4BYTE(extra_info + 0X00, 16, 16, value)
135 #define HIOE_INSTRUCTION_INFO_GET_REG_ADDR(extra_info)                         \
136 	LE_BITS_TO_4BYTE(extra_info + 0X04, 0, 22)
137 #define HIOE_INSTRUCTION_INFO_SET_REG_ADDR(extra_info, value)                  \
138 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 0, 22, value)
139 #define HIOE_INSTRUCTION_INFO_GET_DELAY_VALUE(extra_info)                      \
140 	LE_BITS_TO_4BYTE(extra_info + 0X04, 0, 22)
141 #define HIOE_INSTRUCTION_INFO_SET_DELAY_VALUE(extra_info, value)               \
142 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 0, 22, value)
143 #define HIOE_INSTRUCTION_INFO_GET_MODE_SELECT(extra_info)                      \
144 	LE_BITS_TO_4BYTE(extra_info + 0X04, 22, 1)
145 #define HIOE_INSTRUCTION_INFO_SET_MODE_SELECT(extra_info, value)               \
146 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 22, 1, value)
147 #define HIOE_INSTRUCTION_INFO_GET_IO_DELAY(extra_info)                         \
148 	LE_BITS_TO_4BYTE(extra_info + 0X04, 23, 1)
149 #define HIOE_INSTRUCTION_INFO_SET_IO_DELAY(extra_info, value)                  \
150 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 23, 1, value)
151 #define HIOE_INSTRUCTION_INFO_GET_BYTEMASK(extra_info)                         \
152 	LE_BITS_TO_4BYTE(extra_info + 0X04, 24, 4)
153 #define HIOE_INSTRUCTION_INFO_SET_BYTEMASK(extra_info, value)                  \
154 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 24, 4, value)
155 #define HIOE_INSTRUCTION_INFO_GET_RD_EN(extra_info)                            \
156 	LE_BITS_TO_4BYTE(extra_info + 0X04, 28, 1)
157 #define HIOE_INSTRUCTION_INFO_SET_RD_EN(extra_info, value)                     \
158 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 28, 1, value)
159 #define HIOE_INSTRUCTION_INFO_GET_WR_EN(extra_info)                            \
160 	LE_BITS_TO_4BYTE(extra_info + 0X04, 29, 1)
161 #define HIOE_INSTRUCTION_INFO_SET_WR_EN(extra_info, value)                     \
162 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 29, 1, value)
163 #define HIOE_INSTRUCTION_INFO_GET_RAW_R(extra_info)                            \
164 	LE_BITS_TO_4BYTE(extra_info + 0X04, 30, 1)
165 #define HIOE_INSTRUCTION_INFO_SET_RAW_R(extra_info, value)                     \
166 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 30, 1, value)
167 #define HIOE_INSTRUCTION_INFO_GET_RAW(extra_info)                              \
168 	LE_BITS_TO_4BYTE(extra_info + 0X04, 31, 1)
169 #define HIOE_INSTRUCTION_INFO_SET_RAW(extra_info, value)                       \
170 	SET_BITS_TO_LE_4BYTE(extra_info + 0X04, 31, 1, value)
171 #endif
172