1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
2 /*******************************************************************************
4 * Module Name: rsdumpinfo - Tables used to display resource descriptors.
6 ******************************************************************************/
12 #define _COMPONENT ACPI_RESOURCES
13 ACPI_MODULE_NAME("rsdumpinfo")
15 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUGGER)
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 /*******************************************************************************
21 * Resource Descriptor info tables
23 * Note: The first table entry must be a Title or Literal and must contain
24 * the table length (number of table entries)
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",
33 {ACPI_RSD_1BITFLAG
, ACPI_RSD_OFFSET(irq
.polarity
), "Polarity",
35 {ACPI_RSD_2BITFLAG
, ACPI_RSD_OFFSET(irq
.shareable
), "Sharing",
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
}
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",
47 {ACPI_RSD_1BITFLAG
, ACPI_RSD_OFFSET(dma
.bus_master
), "Mastering",
49 {ACPI_RSD_2BITFLAG
, ACPI_RSD_OFFSET(dma
.transfer
), "Transfer Type",
51 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(dma
.channel_count
), "Channel Count",
53 {ACPI_RSD_SHORTLIST
, ACPI_RSD_OFFSET(dma
.channels
[0]), "Channel List",
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
}
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
}
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",
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",
84 struct acpi_rsdump_info acpi_rs_dump_fixed_io
[3] = {
85 {ACPI_RSD_TITLE
, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_io
),
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
}
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",
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",
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",
112 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(memory24
.maximum
), "Address Maximum",
114 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(memory24
.alignment
), "Alignment",
116 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(memory24
.address_length
),
117 "Address Length", NULL
}
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",
127 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(memory32
.maximum
), "Address Maximum",
129 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(memory32
.alignment
), "Alignment",
131 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(memory32
.address_length
),
132 "Address Length", NULL
}
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",
142 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(fixed_memory32
.address_length
),
143 "Address Length", NULL
}
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
},
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
),
157 "Translation Offset", NULL
},
158 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(address16
.address
.address_length
),
159 "Address Length", NULL
},
160 {ACPI_RSD_SOURCE
, ACPI_RSD_OFFSET(address16
.resource_source
), NULL
, NULL
}
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
},
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
),
174 "Translation Offset", NULL
},
175 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(address32
.address
.address_length
),
176 "Address Length", NULL
},
177 {ACPI_RSD_SOURCE
, ACPI_RSD_OFFSET(address32
.resource_source
), NULL
, NULL
}
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
},
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
),
191 "Translation Offset", NULL
},
192 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(address64
.address
.address_length
),
193 "Address Length", NULL
},
194 {ACPI_RSD_SOURCE
, ACPI_RSD_OFFSET(address64
.resource_source
), NULL
, NULL
}
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
},
201 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(ext_address64
.address
.granularity
),
202 "Granularity", NULL
},
203 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(ext_address64
.address
.minimum
),
204 "Address Minimum", NULL
},
205 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(ext_address64
.address
.maximum
),
206 "Address Maximum", NULL
},
208 ACPI_RSD_OFFSET(ext_address64
.address
.translation_offset
),
209 "Translation Offset", NULL
},
210 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(ext_address64
.address
.address_length
),
211 "Address Length", NULL
},
212 {ACPI_RSD_UINT64
, ACPI_RSD_OFFSET(ext_address64
.type_specific
),
213 "Type-Specific Attribute", NULL
}
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",
225 {ACPI_RSD_2BITFLAG
, ACPI_RSD_OFFSET(extended_irq
.shareable
), "Sharing",
226 acpi_gbl_shr_decode
},
227 {ACPI_RSD_SOURCE
, ACPI_RSD_OFFSET(extended_irq
.resource_source
), 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
}
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",
240 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(generic_reg
.bit_width
), "Bit Width",
242 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(generic_reg
.bit_offset
), "Bit Offset",
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
}
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
.shareable
), "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",
264 {ACPI_RSD_2BITFLAG
, ACPI_RSD_OFFSET(gpio
.polarity
), "Polarity",
266 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(gpio
.drive_strength
), "DriveStrength",
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",
277 {ACPI_RSD_SHORTLISTX
, ACPI_RSD_OFFSET(gpio
.vendor_data
), "VendorData",
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
),
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
.shareable
), "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",
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
),
304 struct acpi_rsdump_info acpi_rs_dump_pin_config
[11] = {
305 {ACPI_RSD_TITLE
, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_config
),
307 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(pin_config
.revision_id
), "RevisionId",
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
.shareable
), "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",
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
),
329 struct acpi_rsdump_info acpi_rs_dump_pin_group
[8] = {
330 {ACPI_RSD_TITLE
, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_group
),
332 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(pin_group
.revision_id
), "RevisionId",
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",
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
),
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
),
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
.shareable
),
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
),
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
),
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
.shareable
),
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
),
395 struct acpi_rsdump_info acpi_rs_dump_fixed_dma
[4] = {
396 {ACPI_RSD_TITLE
, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_dma
),
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",
402 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(fixed_dma
.width
), "TransferWidth",
403 acpi_gbl_dts_decode
},
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}, \
411 {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (common_serial_bus.connection_sharing),"ConnectionSharing", acpi_gbl_shr_decode}, \
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},
418 struct acpi_rsdump_info acpi_rs_dump_common_serial_bus
[11] = {
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
424 struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus
[14] = {
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
.
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
},
437 struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus
[18] = {
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",
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
},
458 struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus
[20] = {
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
.
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",
471 {ACPI_RSD_UINT8
, ACPI_RSD_OFFSET(uart_serial_bus
.parity
), "Parity",
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
),
477 {ACPI_RSD_UINT16
, ACPI_RSD_OFFSET(uart_serial_bus
.tx_fifo_size
),
479 {ACPI_RSD_UINT32
, ACPI_RSD_OFFSET(uart_serial_bus
.default_baud_rate
),
480 "ConnectionSpeed", NULL
},
484 * Tables used for common address descriptor flag fields
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
,
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
}
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
}
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
}
524 * Table used to dump _PRT contents
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
}