Commit | Line | Data |
---|---|---|
95857638 | 1 | // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 |
42f8fb75 BM |
2 | /******************************************************************************* |
3 | * | |
4 | * Module Name: rsdumpinfo - Tables used to display resource descriptors. | |
5 | * | |
6 | ******************************************************************************/ | |
7 | ||
42f8fb75 BM |
8 | #include <acpi/acpi.h> |
9 | #include "accommon.h" | |
10 | #include "acresrc.h" | |
11 | ||
12 | #define _COMPONENT ACPI_RESOURCES | |
13 | ACPI_MODULE_NAME("rsdumpinfo") | |
14 | ||
3334861b | 15 | #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUGGER) |
42f8fb75 BM |
16 | #define ACPI_RSD_OFFSET(f) (u8) ACPI_OFFSET (union acpi_resource_data,f) |
17 | #define ACPI_PRT_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_pci_routing_table,f) | |
18 | #define ACPI_RSD_TABLE_SIZE(name) (sizeof(name) / sizeof (struct acpi_rsdump_info)) | |
19 | /******************************************************************************* | |
20 | * | |
21 | * Resource Descriptor info tables | |
22 | * | |
23 | * Note: The first table entry must be a Title or Literal and must contain | |
24 | * the table length (number of table entries) | |
25 | * | |
26 | ******************************************************************************/ | |
27 | struct acpi_rsdump_info acpi_rs_dump_irq[7] = { | |
28 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_irq), "IRQ", NULL}, | |
29 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(irq.descriptor_length), | |
30 | "Descriptor Length", NULL}, | |
31 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(irq.triggering), "Triggering", | |
32 | acpi_gbl_he_decode}, | |
33 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(irq.polarity), "Polarity", | |
34 | acpi_gbl_ll_decode}, | |
35 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(irq.sharable), "Sharing", | |
36 | acpi_gbl_shr_decode}, | |
37 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(irq.interrupt_count), | |
38 | "Interrupt Count", NULL}, | |
39 | {ACPI_RSD_SHORTLIST, ACPI_RSD_OFFSET(irq.interrupts[0]), | |
40 | "Interrupt List", NULL} | |
41 | }; | |
42 | ||
43 | struct acpi_rsdump_info acpi_rs_dump_dma[6] = { | |
44 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_dma), "DMA", NULL}, | |
45 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(dma.type), "Speed", | |
46 | acpi_gbl_typ_decode}, | |
47 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(dma.bus_master), "Mastering", | |
48 | acpi_gbl_bm_decode}, | |
49 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(dma.transfer), "Transfer Type", | |
50 | acpi_gbl_siz_decode}, | |
51 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(dma.channel_count), "Channel Count", | |
52 | NULL}, | |
53 | {ACPI_RSD_SHORTLIST, ACPI_RSD_OFFSET(dma.channels[0]), "Channel List", | |
54 | NULL} | |
55 | }; | |
56 | ||
57 | struct acpi_rsdump_info acpi_rs_dump_start_dpf[4] = { | |
58 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_start_dpf), | |
59 | "Start-Dependent-Functions", NULL}, | |
60 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(start_dpf.descriptor_length), | |
61 | "Descriptor Length", NULL}, | |
62 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(start_dpf.compatibility_priority), | |
63 | "Compatibility Priority", acpi_gbl_config_decode}, | |
64 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(start_dpf.performance_robustness), | |
65 | "Performance/Robustness", acpi_gbl_config_decode} | |
66 | }; | |
67 | ||
68 | struct acpi_rsdump_info acpi_rs_dump_end_dpf[1] = { | |
69 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_end_dpf), | |
70 | "End-Dependent-Functions", NULL} | |
71 | }; | |
72 | ||
73 | struct acpi_rsdump_info acpi_rs_dump_io[6] = { | |
74 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_io), "I/O", NULL}, | |
75 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(io.io_decode), "Address Decoding", | |
76 | acpi_gbl_io_decode}, | |
77 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(io.minimum), "Address Minimum", NULL}, | |
78 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(io.maximum), "Address Maximum", NULL}, | |
79 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(io.alignment), "Alignment", NULL}, | |
80 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(io.address_length), "Address Length", | |
81 | NULL} | |
82 | }; | |
83 | ||
84 | struct acpi_rsdump_info acpi_rs_dump_fixed_io[3] = { | |
85 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_io), | |
86 | "Fixed I/O", NULL}, | |
87 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(fixed_io.address), "Address", NULL}, | |
88 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(fixed_io.address_length), | |
89 | "Address Length", NULL} | |
90 | }; | |
91 | ||
92 | struct acpi_rsdump_info acpi_rs_dump_vendor[3] = { | |
93 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_vendor), | |
94 | "Vendor Specific", NULL}, | |
95 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(vendor.byte_length), "Length", NULL}, | |
96 | {ACPI_RSD_LONGLIST, ACPI_RSD_OFFSET(vendor.byte_data[0]), "Vendor Data", | |
97 | NULL} | |
98 | }; | |
99 | ||
100 | struct acpi_rsdump_info acpi_rs_dump_end_tag[1] = { | |
101 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_end_tag), "EndTag", | |
102 | NULL} | |
103 | }; | |
104 | ||
105 | struct acpi_rsdump_info acpi_rs_dump_memory24[6] = { | |
106 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_memory24), | |
107 | "24-Bit Memory Range", NULL}, | |
108 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(memory24.write_protect), | |
109 | "Write Protect", acpi_gbl_rw_decode}, | |
110 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(memory24.minimum), "Address Minimum", | |
111 | NULL}, | |
112 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(memory24.maximum), "Address Maximum", | |
113 | NULL}, | |
114 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(memory24.alignment), "Alignment", | |
115 | NULL}, | |
116 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(memory24.address_length), | |
117 | "Address Length", NULL} | |
118 | }; | |
119 | ||
120 | struct acpi_rsdump_info acpi_rs_dump_memory32[6] = { | |
121 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_memory32), | |
122 | "32-Bit Memory Range", NULL}, | |
123 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(memory32.write_protect), | |
124 | "Write Protect", acpi_gbl_rw_decode}, | |
125 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(memory32.minimum), "Address Minimum", | |
126 | NULL}, | |
127 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(memory32.maximum), "Address Maximum", | |
128 | NULL}, | |
129 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(memory32.alignment), "Alignment", | |
130 | NULL}, | |
131 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(memory32.address_length), | |
132 | "Address Length", NULL} | |
133 | }; | |
134 | ||
135 | struct acpi_rsdump_info acpi_rs_dump_fixed_memory32[4] = { | |
136 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_memory32), | |
137 | "32-Bit Fixed Memory Range", NULL}, | |
138 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(fixed_memory32.write_protect), | |
139 | "Write Protect", acpi_gbl_rw_decode}, | |
140 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(fixed_memory32.address), "Address", | |
141 | NULL}, | |
142 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(fixed_memory32.address_length), | |
143 | "Address Length", NULL} | |
144 | }; | |
145 | ||
146 | struct acpi_rsdump_info acpi_rs_dump_address16[8] = { | |
147 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_address16), | |
148 | "16-Bit WORD Address Space", NULL}, | |
149 | {ACPI_RSD_ADDRESS, 0, NULL, NULL}, | |
a45de93e LZ |
150 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(address16.address.granularity), |
151 | "Granularity", NULL}, | |
152 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(address16.address.minimum), | |
153 | "Address Minimum", NULL}, | |
154 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(address16.address.maximum), | |
155 | "Address Maximum", NULL}, | |
156 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(address16.address.translation_offset), | |
42f8fb75 | 157 | "Translation Offset", NULL}, |
a45de93e | 158 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(address16.address.address_length), |
42f8fb75 BM |
159 | "Address Length", NULL}, |
160 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(address16.resource_source), NULL, NULL} | |
161 | }; | |
162 | ||
163 | struct acpi_rsdump_info acpi_rs_dump_address32[8] = { | |
164 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_address32), | |
165 | "32-Bit DWORD Address Space", NULL}, | |
166 | {ACPI_RSD_ADDRESS, 0, NULL, NULL}, | |
a45de93e LZ |
167 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(address32.address.granularity), |
168 | "Granularity", NULL}, | |
169 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(address32.address.minimum), | |
170 | "Address Minimum", NULL}, | |
171 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(address32.address.maximum), | |
172 | "Address Maximum", NULL}, | |
173 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(address32.address.translation_offset), | |
42f8fb75 | 174 | "Translation Offset", NULL}, |
a45de93e | 175 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(address32.address.address_length), |
42f8fb75 BM |
176 | "Address Length", NULL}, |
177 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(address32.resource_source), NULL, NULL} | |
178 | }; | |
179 | ||
180 | struct acpi_rsdump_info acpi_rs_dump_address64[8] = { | |
181 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_address64), | |
182 | "64-Bit QWORD Address Space", NULL}, | |
183 | {ACPI_RSD_ADDRESS, 0, NULL, NULL}, | |
a45de93e LZ |
184 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(address64.address.granularity), |
185 | "Granularity", NULL}, | |
186 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(address64.address.minimum), | |
187 | "Address Minimum", NULL}, | |
188 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(address64.address.maximum), | |
189 | "Address Maximum", NULL}, | |
190 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(address64.address.translation_offset), | |
42f8fb75 | 191 | "Translation Offset", NULL}, |
a45de93e | 192 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(address64.address.address_length), |
42f8fb75 BM |
193 | "Address Length", NULL}, |
194 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(address64.resource_source), NULL, NULL} | |
195 | }; | |
196 | ||
197 | struct acpi_rsdump_info acpi_rs_dump_ext_address64[8] = { | |
198 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_ext_address64), | |
199 | "64-Bit Extended Address Space", NULL}, | |
200 | {ACPI_RSD_ADDRESS, 0, NULL, NULL}, | |
a45de93e | 201 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(ext_address64.address.granularity), |
42f8fb75 | 202 | "Granularity", NULL}, |
a45de93e | 203 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(ext_address64.address.minimum), |
42f8fb75 | 204 | "Address Minimum", NULL}, |
a45de93e | 205 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(ext_address64.address.maximum), |
42f8fb75 | 206 | "Address Maximum", NULL}, |
a45de93e LZ |
207 | {ACPI_RSD_UINT64, |
208 | ACPI_RSD_OFFSET(ext_address64.address.translation_offset), | |
42f8fb75 | 209 | "Translation Offset", NULL}, |
a45de93e | 210 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(ext_address64.address.address_length), |
42f8fb75 BM |
211 | "Address Length", NULL}, |
212 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(ext_address64.type_specific), | |
213 | "Type-Specific Attribute", NULL} | |
214 | }; | |
215 | ||
216 | struct acpi_rsdump_info acpi_rs_dump_ext_irq[8] = { | |
217 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_ext_irq), | |
218 | "Extended IRQ", NULL}, | |
219 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(extended_irq.producer_consumer), | |
220 | "Type", acpi_gbl_consume_decode}, | |
221 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(extended_irq.triggering), | |
222 | "Triggering", acpi_gbl_he_decode}, | |
223 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(extended_irq.polarity), "Polarity", | |
224 | acpi_gbl_ll_decode}, | |
225 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(extended_irq.sharable), "Sharing", | |
226 | acpi_gbl_shr_decode}, | |
227 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(extended_irq.resource_source), NULL, | |
228 | NULL}, | |
229 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(extended_irq.interrupt_count), | |
230 | "Interrupt Count", NULL}, | |
231 | {ACPI_RSD_DWORDLIST, ACPI_RSD_OFFSET(extended_irq.interrupts[0]), | |
232 | "Interrupt List", NULL} | |
233 | }; | |
234 | ||
235 | struct acpi_rsdump_info acpi_rs_dump_generic_reg[6] = { | |
236 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_generic_reg), | |
237 | "Generic Register", NULL}, | |
238 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(generic_reg.space_id), "Space ID", | |
239 | NULL}, | |
240 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(generic_reg.bit_width), "Bit Width", | |
241 | NULL}, | |
242 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(generic_reg.bit_offset), "Bit Offset", | |
243 | NULL}, | |
244 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(generic_reg.access_size), | |
245 | "Access Size", NULL}, | |
246 | {ACPI_RSD_UINT64, ACPI_RSD_OFFSET(generic_reg.address), "Address", NULL} | |
247 | }; | |
248 | ||
249 | struct acpi_rsdump_info acpi_rs_dump_gpio[16] = { | |
250 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_gpio), "GPIO", NULL}, | |
251 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(gpio.revision_id), "RevisionId", NULL}, | |
252 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(gpio.connection_type), | |
253 | "ConnectionType", acpi_gbl_ct_decode}, | |
254 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(gpio.producer_consumer), | |
255 | "ProducerConsumer", acpi_gbl_consume_decode}, | |
256 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(gpio.pin_config), "PinConfig", | |
257 | acpi_gbl_ppc_decode}, | |
258 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(gpio.sharable), "Sharing", | |
259 | acpi_gbl_shr_decode}, | |
260 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(gpio.io_restriction), | |
261 | "IoRestriction", acpi_gbl_ior_decode}, | |
262 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(gpio.triggering), "Triggering", | |
263 | acpi_gbl_he_decode}, | |
264 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(gpio.polarity), "Polarity", | |
265 | acpi_gbl_ll_decode}, | |
266 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(gpio.drive_strength), "DriveStrength", | |
267 | NULL}, | |
268 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(gpio.debounce_timeout), | |
269 | "DebounceTimeout", NULL}, | |
270 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(gpio.resource_source), | |
271 | "ResourceSource", NULL}, | |
272 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(gpio.pin_table_length), | |
273 | "PinTableLength", NULL}, | |
274 | {ACPI_RSD_WORDLIST, ACPI_RSD_OFFSET(gpio.pin_table), "PinTable", NULL}, | |
275 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(gpio.vendor_length), "VendorLength", | |
276 | NULL}, | |
277 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(gpio.vendor_data), "VendorData", | |
278 | NULL}, | |
279 | }; | |
280 | ||
2b726930 MW |
281 | struct acpi_rsdump_info acpi_rs_dump_pin_function[10] = { |
282 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_function), | |
283 | "PinFunction", NULL}, | |
284 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_function.revision_id), | |
285 | "RevisionId", NULL}, | |
286 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_function.pin_config), "PinConfig", | |
287 | acpi_gbl_ppc_decode}, | |
288 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_function.sharable), "Sharing", | |
289 | acpi_gbl_shr_decode}, | |
290 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_function.function_number), | |
291 | "FunctionNumber", NULL}, | |
292 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(pin_function.resource_source), | |
293 | "ResourceSource", NULL}, | |
294 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_function.pin_table_length), | |
295 | "PinTableLength", NULL}, | |
296 | {ACPI_RSD_WORDLIST, ACPI_RSD_OFFSET(pin_function.pin_table), "PinTable", | |
297 | NULL}, | |
298 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_function.vendor_length), | |
299 | "VendorLength", NULL}, | |
300 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_function.vendor_data), | |
301 | "VendorData", NULL}, | |
302 | }; | |
303 | ||
97028ce6 MW |
304 | struct acpi_rsdump_info acpi_rs_dump_pin_config[11] = { |
305 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_config), | |
306 | "PinConfig", NULL}, | |
307 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_config.revision_id), "RevisionId", | |
308 | NULL}, | |
309 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_config.producer_consumer), | |
310 | "ProducerConsumer", acpi_gbl_consume_decode}, | |
311 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_config.sharable), "Sharing", | |
312 | acpi_gbl_shr_decode}, | |
313 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_config.pin_config_type), | |
314 | "PinConfigType", NULL}, | |
315 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(pin_config.pin_config_value), | |
316 | "PinConfigValue", NULL}, | |
317 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(pin_config.resource_source), | |
318 | "ResourceSource", NULL}, | |
319 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_config.pin_table_length), | |
320 | "PinTableLength", NULL}, | |
321 | {ACPI_RSD_WORDLIST, ACPI_RSD_OFFSET(pin_config.pin_table), "PinTable", | |
322 | NULL}, | |
323 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_config.vendor_length), | |
324 | "VendorLength", NULL}, | |
325 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_config.vendor_data), | |
326 | "VendorData", NULL}, | |
327 | }; | |
328 | ||
fdaa0980 MW |
329 | struct acpi_rsdump_info acpi_rs_dump_pin_group[8] = { |
330 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_group), | |
331 | "PinGroup", NULL}, | |
332 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_group.revision_id), "RevisionId", | |
333 | NULL}, | |
334 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_group.producer_consumer), | |
335 | "ProducerConsumer", acpi_gbl_consume_decode}, | |
336 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_group.pin_table_length), | |
337 | "PinTableLength", NULL}, | |
338 | {ACPI_RSD_WORDLIST, ACPI_RSD_OFFSET(pin_group.pin_table), "PinTable", | |
339 | NULL}, | |
340 | {ACPI_RSD_LABEL, ACPI_RSD_OFFSET(pin_group.resource_label), | |
341 | "ResourceLabel", NULL}, | |
342 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_group.vendor_length), | |
343 | "VendorLength", NULL}, | |
344 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_group.vendor_data), | |
345 | "VendorData", NULL}, | |
346 | }; | |
347 | ||
f8a6c866 MW |
348 | struct acpi_rsdump_info acpi_rs_dump_pin_group_function[9] = { |
349 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_group_function), | |
350 | "PinGroupFunction", NULL}, | |
351 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_group_function.revision_id), | |
352 | "RevisionId", NULL}, | |
353 | {ACPI_RSD_1BITFLAG, | |
354 | ACPI_RSD_OFFSET(pin_group_function.producer_consumer), | |
355 | "ProducerConsumer", acpi_gbl_consume_decode}, | |
356 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_group_function.sharable), | |
357 | "Sharing", acpi_gbl_shr_decode}, | |
358 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_group_function.function_number), | |
359 | "FunctionNumber", NULL}, | |
360 | {ACPI_RSD_SOURCE_LABEL, | |
361 | ACPI_RSD_OFFSET(pin_group_function.resource_source_label), | |
362 | "ResourceSourceLabel", NULL}, | |
363 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(pin_group_function.resource_source), | |
364 | "ResourceSource", NULL}, | |
365 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_group_function.vendor_length), | |
366 | "VendorLength", NULL}, | |
367 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_group_function.vendor_data), | |
368 | "VendorData", NULL}, | |
369 | }; | |
370 | ||
044b7239 MW |
371 | struct acpi_rsdump_info acpi_rs_dump_pin_group_config[10] = { |
372 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_group_config), | |
373 | "PinGroupConfig", NULL}, | |
374 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_group_config.revision_id), | |
375 | "RevisionId", NULL}, | |
376 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_group_config.producer_consumer), | |
377 | "ProducerConsumer", acpi_gbl_consume_decode}, | |
378 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_group_config.sharable), | |
379 | "Sharing", acpi_gbl_shr_decode}, | |
380 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_group_config.pin_config_type), | |
381 | "PinConfigType", NULL}, | |
382 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(pin_group_config.pin_config_value), | |
383 | "PinConfigValue", NULL}, | |
384 | {ACPI_RSD_SOURCE_LABEL, | |
385 | ACPI_RSD_OFFSET(pin_group_config.resource_source_label), | |
386 | "ResourceSourceLabel", NULL}, | |
387 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(pin_group_config.resource_source), | |
388 | "ResourceSource", NULL}, | |
389 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_group_config.vendor_length), | |
390 | "VendorLength", NULL}, | |
391 | {ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_group_config.vendor_data), | |
392 | "VendorData", NULL}, | |
393 | }; | |
394 | ||
42f8fb75 BM |
395 | struct acpi_rsdump_info acpi_rs_dump_fixed_dma[4] = { |
396 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_dma), | |
397 | "FixedDma", NULL}, | |
398 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(fixed_dma.request_lines), | |
399 | "RequestLines", NULL}, | |
400 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(fixed_dma.channels), "Channels", | |
401 | NULL}, | |
402 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(fixed_dma.width), "TransferWidth", | |
403 | acpi_gbl_dts_decode}, | |
404 | }; | |
405 | ||
406 | #define ACPI_RS_DUMP_COMMON_SERIAL_BUS \ | |
407 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (common_serial_bus.revision_id), "RevisionId", NULL}, \ | |
408 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (common_serial_bus.type), "Type", acpi_gbl_sbt_decode}, \ | |
409 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (common_serial_bus.producer_consumer), "ProducerConsumer", acpi_gbl_consume_decode}, \ | |
410 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (common_serial_bus.slave_mode), "SlaveMode", acpi_gbl_sm_decode}, \ | |
14f98579 | 411 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (common_serial_bus.connection_sharing),"ConnectionSharing", acpi_gbl_shr_decode}, \ |
42f8fb75 BM |
412 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (common_serial_bus.type_revision_id), "TypeRevisionId", NULL}, \ |
413 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (common_serial_bus.type_data_length), "TypeDataLength", NULL}, \ | |
414 | {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (common_serial_bus.resource_source), "ResourceSource", NULL}, \ | |
415 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (common_serial_bus.vendor_length), "VendorLength", NULL}, \ | |
416 | {ACPI_RSD_SHORTLISTX,ACPI_RSD_OFFSET (common_serial_bus.vendor_data), "VendorData", NULL}, | |
417 | ||
14f98579 | 418 | struct acpi_rsdump_info acpi_rs_dump_common_serial_bus[11] = { |
42f8fb75 BM |
419 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_common_serial_bus), |
420 | "Common Serial Bus", NULL}, | |
421 | ACPI_RS_DUMP_COMMON_SERIAL_BUS | |
422 | }; | |
423 | ||
14f98579 | 424 | struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus[14] = { |
42f8fb75 BM |
425 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_i2c_serial_bus), |
426 | "I2C Serial Bus", NULL}, | |
427 | ACPI_RS_DUMP_COMMON_SERIAL_BUS {ACPI_RSD_1BITFLAG, | |
428 | ACPI_RSD_OFFSET(i2c_serial_bus. | |
429 | access_mode), | |
430 | "AccessMode", acpi_gbl_am_decode}, | |
431 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(i2c_serial_bus.connection_speed), | |
432 | "ConnectionSpeed", NULL}, | |
433 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(i2c_serial_bus.slave_address), | |
434 | "SlaveAddress", NULL}, | |
435 | }; | |
436 | ||
14f98579 | 437 | struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus[18] = { |
42f8fb75 BM |
438 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_spi_serial_bus), |
439 | "Spi Serial Bus", NULL}, | |
440 | ACPI_RS_DUMP_COMMON_SERIAL_BUS {ACPI_RSD_1BITFLAG, | |
441 | ACPI_RSD_OFFSET(spi_serial_bus. | |
442 | wire_mode), "WireMode", | |
443 | acpi_gbl_wm_decode}, | |
444 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(spi_serial_bus.device_polarity), | |
445 | "DevicePolarity", acpi_gbl_dp_decode}, | |
446 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(spi_serial_bus.data_bit_length), | |
447 | "DataBitLength", NULL}, | |
448 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(spi_serial_bus.clock_phase), | |
449 | "ClockPhase", acpi_gbl_cph_decode}, | |
450 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(spi_serial_bus.clock_polarity), | |
451 | "ClockPolarity", acpi_gbl_cpo_decode}, | |
452 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(spi_serial_bus.device_selection), | |
453 | "DeviceSelection", NULL}, | |
454 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(spi_serial_bus.connection_speed), | |
455 | "ConnectionSpeed", NULL}, | |
456 | }; | |
457 | ||
14f98579 | 458 | struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[20] = { |
42f8fb75 BM |
459 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_uart_serial_bus), |
460 | "Uart Serial Bus", NULL}, | |
461 | ACPI_RS_DUMP_COMMON_SERIAL_BUS {ACPI_RSD_2BITFLAG, | |
462 | ACPI_RSD_OFFSET(uart_serial_bus. | |
463 | flow_control), | |
464 | "FlowControl", acpi_gbl_fc_decode}, | |
465 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(uart_serial_bus.stop_bits), | |
466 | "StopBits", acpi_gbl_sb_decode}, | |
467 | {ACPI_RSD_3BITFLAG, ACPI_RSD_OFFSET(uart_serial_bus.data_bits), | |
468 | "DataBits", acpi_gbl_bpb_decode}, | |
469 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(uart_serial_bus.endian), "Endian", | |
470 | acpi_gbl_ed_decode}, | |
471 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(uart_serial_bus.parity), "Parity", | |
472 | acpi_gbl_pt_decode}, | |
473 | {ACPI_RSD_UINT8, ACPI_RSD_OFFSET(uart_serial_bus.lines_enabled), | |
474 | "LinesEnabled", NULL}, | |
475 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(uart_serial_bus.rx_fifo_size), | |
476 | "RxFifoSize", NULL}, | |
477 | {ACPI_RSD_UINT16, ACPI_RSD_OFFSET(uart_serial_bus.tx_fifo_size), | |
478 | "TxFifoSize", NULL}, | |
479 | {ACPI_RSD_UINT32, ACPI_RSD_OFFSET(uart_serial_bus.default_baud_rate), | |
480 | "ConnectionSpeed", NULL}, | |
481 | }; | |
482 | ||
483 | /* | |
484 | * Tables used for common address descriptor flag fields | |
485 | */ | |
486 | struct acpi_rsdump_info acpi_rs_dump_general_flags[5] = { | |
487 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_general_flags), NULL, | |
488 | NULL}, | |
489 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.producer_consumer), | |
490 | "Consumer/Producer", acpi_gbl_consume_decode}, | |
491 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.decode), "Address Decode", | |
492 | acpi_gbl_dec_decode}, | |
493 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.min_address_fixed), | |
494 | "Min Relocatability", acpi_gbl_min_decode}, | |
495 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.max_address_fixed), | |
496 | "Max Relocatability", acpi_gbl_max_decode} | |
497 | }; | |
498 | ||
499 | struct acpi_rsdump_info acpi_rs_dump_memory_flags[5] = { | |
500 | {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_memory_flags), | |
501 | "Resource Type", (void *)"Memory Range"}, | |
502 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.info.mem.write_protect), | |
503 | "Write Protect", acpi_gbl_rw_decode}, | |
504 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(address.info.mem.caching), | |
505 | "Caching", acpi_gbl_mem_decode}, | |
506 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(address.info.mem.range_type), | |
507 | "Range Type", acpi_gbl_mtp_decode}, | |
508 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.info.mem.translation), | |
509 | "Translation", acpi_gbl_ttp_decode} | |
510 | }; | |
511 | ||
512 | struct acpi_rsdump_info acpi_rs_dump_io_flags[4] = { | |
513 | {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_io_flags), | |
514 | "Resource Type", (void *)"I/O Range"}, | |
515 | {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET(address.info.io.range_type), | |
516 | "Range Type", acpi_gbl_rng_decode}, | |
517 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.info.io.translation), | |
518 | "Translation", acpi_gbl_ttp_decode}, | |
519 | {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(address.info.io.translation_type), | |
520 | "Translation Type", acpi_gbl_trs_decode} | |
521 | }; | |
522 | ||
523 | /* | |
524 | * Table used to dump _PRT contents | |
525 | */ | |
526 | struct acpi_rsdump_info acpi_rs_dump_prt[5] = { | |
527 | {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_prt), NULL, NULL}, | |
528 | {ACPI_RSD_UINT64, ACPI_PRT_OFFSET(address), "Address", NULL}, | |
529 | {ACPI_RSD_UINT32, ACPI_PRT_OFFSET(pin), "Pin", NULL}, | |
530 | {ACPI_RSD_STRING, ACPI_PRT_OFFSET(source[0]), "Source", NULL}, | |
531 | {ACPI_RSD_UINT32, ACPI_PRT_OFFSET(source_index), "Source Index", NULL} | |
532 | }; | |
533 | ||
534 | #endif |