|
@@ -1,6 +1,6 @@
|
|
|
/*******************************************************************************
|
|
|
*
|
|
|
- * Module Name: rsdump - Functions to display the resource structures.
|
|
|
+ * Module Name: rsdump - AML debugger support for resource structures.
|
|
|
*
|
|
|
******************************************************************************/
|
|
|
|
|
@@ -48,7 +48,10 @@
|
|
|
#define _COMPONENT ACPI_RESOURCES
|
|
|
ACPI_MODULE_NAME("rsdump")
|
|
|
|
|
|
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUGGER)
|
|
|
+/*
|
|
|
+ * All functions in this module are used by the AML Debugger only
|
|
|
+ */
|
|
|
+#if defined(ACPI_DEBUGGER)
|
|
|
/* Local prototypes */
|
|
|
static void acpi_rs_out_string(char *title, char *value);
|
|
|
|
|
@@ -78,6 +81,116 @@ static void acpi_rs_dump_address_common(union acpi_resource_data *resource);
|
|
|
static void
|
|
|
acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table);
|
|
|
|
|
|
+/*******************************************************************************
|
|
|
+ *
|
|
|
+ * FUNCTION: acpi_rs_dump_resource_list
|
|
|
+ *
|
|
|
+ * PARAMETERS: resource_list - Pointer to a resource descriptor list
|
|
|
+ *
|
|
|
+ * RETURN: None
|
|
|
+ *
|
|
|
+ * DESCRIPTION: Dispatches the structure to the correct dump routine.
|
|
|
+ *
|
|
|
+ ******************************************************************************/
|
|
|
+
|
|
|
+void acpi_rs_dump_resource_list(struct acpi_resource *resource_list)
|
|
|
+{
|
|
|
+ u32 count = 0;
|
|
|
+ u32 type;
|
|
|
+
|
|
|
+ ACPI_FUNCTION_ENTRY();
|
|
|
+
|
|
|
+ /* Check if debug output enabled */
|
|
|
+
|
|
|
+ if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_RESOURCES, _COMPONENT)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Walk list and dump all resource descriptors (END_TAG terminates) */
|
|
|
+
|
|
|
+ do {
|
|
|
+ acpi_os_printf("\n[%02X] ", count);
|
|
|
+ count++;
|
|
|
+
|
|
|
+ /* Validate Type before dispatch */
|
|
|
+
|
|
|
+ type = resource_list->type;
|
|
|
+ if (type > ACPI_RESOURCE_TYPE_MAX) {
|
|
|
+ acpi_os_printf
|
|
|
+ ("Invalid descriptor type (%X) in resource list\n",
|
|
|
+ resource_list->type);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Sanity check the length. It must not be zero, or we loop forever */
|
|
|
+
|
|
|
+ if (!resource_list->length) {
|
|
|
+ acpi_os_printf
|
|
|
+ ("Invalid zero length descriptor in resource list\n");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Dump the resource descriptor */
|
|
|
+
|
|
|
+ if (type == ACPI_RESOURCE_TYPE_SERIAL_BUS) {
|
|
|
+ acpi_rs_dump_descriptor(&resource_list->data,
|
|
|
+ acpi_gbl_dump_serial_bus_dispatch
|
|
|
+ [resource_list->data.
|
|
|
+ common_serial_bus.type]);
|
|
|
+ } else {
|
|
|
+ acpi_rs_dump_descriptor(&resource_list->data,
|
|
|
+ acpi_gbl_dump_resource_dispatch
|
|
|
+ [type]);
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Point to the next resource structure */
|
|
|
+
|
|
|
+ resource_list = ACPI_NEXT_RESOURCE(resource_list);
|
|
|
+
|
|
|
+ /* Exit when END_TAG descriptor is reached */
|
|
|
+
|
|
|
+ } while (type != ACPI_RESOURCE_TYPE_END_TAG);
|
|
|
+}
|
|
|
+
|
|
|
+/*******************************************************************************
|
|
|
+ *
|
|
|
+ * FUNCTION: acpi_rs_dump_irq_list
|
|
|
+ *
|
|
|
+ * PARAMETERS: route_table - Pointer to the routing table to dump.
|
|
|
+ *
|
|
|
+ * RETURN: None
|
|
|
+ *
|
|
|
+ * DESCRIPTION: Print IRQ routing table
|
|
|
+ *
|
|
|
+ ******************************************************************************/
|
|
|
+
|
|
|
+void acpi_rs_dump_irq_list(u8 *route_table)
|
|
|
+{
|
|
|
+ struct acpi_pci_routing_table *prt_element;
|
|
|
+ u8 count;
|
|
|
+
|
|
|
+ ACPI_FUNCTION_ENTRY();
|
|
|
+
|
|
|
+ /* Check if debug output enabled */
|
|
|
+
|
|
|
+ if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_RESOURCES, _COMPONENT)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ prt_element = ACPI_CAST_PTR(struct acpi_pci_routing_table, route_table);
|
|
|
+
|
|
|
+ /* Dump all table elements, Exit on zero length element */
|
|
|
+
|
|
|
+ for (count = 0; prt_element->length; count++) {
|
|
|
+ acpi_os_printf("\n[%02X] PCI IRQ Routing Table Package\n",
|
|
|
+ count);
|
|
|
+ acpi_rs_dump_descriptor(prt_element, acpi_rs_dump_prt);
|
|
|
+
|
|
|
+ prt_element = ACPI_ADD_PTR(struct acpi_pci_routing_table,
|
|
|
+ prt_element, prt_element->length);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/*******************************************************************************
|
|
|
*
|
|
|
* FUNCTION: acpi_rs_dump_descriptor
|
|
@@ -355,116 +468,6 @@ static void acpi_rs_dump_address_common(union acpi_resource_data *resource)
|
|
|
acpi_rs_dump_descriptor(resource, acpi_rs_dump_general_flags);
|
|
|
}
|
|
|
|
|
|
-/*******************************************************************************
|
|
|
- *
|
|
|
- * FUNCTION: acpi_rs_dump_resource_list
|
|
|
- *
|
|
|
- * PARAMETERS: resource_list - Pointer to a resource descriptor list
|
|
|
- *
|
|
|
- * RETURN: None
|
|
|
- *
|
|
|
- * DESCRIPTION: Dispatches the structure to the correct dump routine.
|
|
|
- *
|
|
|
- ******************************************************************************/
|
|
|
-
|
|
|
-void acpi_rs_dump_resource_list(struct acpi_resource *resource_list)
|
|
|
-{
|
|
|
- u32 count = 0;
|
|
|
- u32 type;
|
|
|
-
|
|
|
- ACPI_FUNCTION_ENTRY();
|
|
|
-
|
|
|
- /* Check if debug output enabled */
|
|
|
-
|
|
|
- if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_RESOURCES, _COMPONENT)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /* Walk list and dump all resource descriptors (END_TAG terminates) */
|
|
|
-
|
|
|
- do {
|
|
|
- acpi_os_printf("\n[%02X] ", count);
|
|
|
- count++;
|
|
|
-
|
|
|
- /* Validate Type before dispatch */
|
|
|
-
|
|
|
- type = resource_list->type;
|
|
|
- if (type > ACPI_RESOURCE_TYPE_MAX) {
|
|
|
- acpi_os_printf
|
|
|
- ("Invalid descriptor type (%X) in resource list\n",
|
|
|
- resource_list->type);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /* Sanity check the length. It must not be zero, or we loop forever */
|
|
|
-
|
|
|
- if (!resource_list->length) {
|
|
|
- acpi_os_printf
|
|
|
- ("Invalid zero length descriptor in resource list\n");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /* Dump the resource descriptor */
|
|
|
-
|
|
|
- if (type == ACPI_RESOURCE_TYPE_SERIAL_BUS) {
|
|
|
- acpi_rs_dump_descriptor(&resource_list->data,
|
|
|
- acpi_gbl_dump_serial_bus_dispatch
|
|
|
- [resource_list->data.
|
|
|
- common_serial_bus.type]);
|
|
|
- } else {
|
|
|
- acpi_rs_dump_descriptor(&resource_list->data,
|
|
|
- acpi_gbl_dump_resource_dispatch
|
|
|
- [type]);
|
|
|
- }
|
|
|
-
|
|
|
- /* Point to the next resource structure */
|
|
|
-
|
|
|
- resource_list = ACPI_NEXT_RESOURCE(resource_list);
|
|
|
-
|
|
|
- /* Exit when END_TAG descriptor is reached */
|
|
|
-
|
|
|
- } while (type != ACPI_RESOURCE_TYPE_END_TAG);
|
|
|
-}
|
|
|
-
|
|
|
-/*******************************************************************************
|
|
|
- *
|
|
|
- * FUNCTION: acpi_rs_dump_irq_list
|
|
|
- *
|
|
|
- * PARAMETERS: route_table - Pointer to the routing table to dump.
|
|
|
- *
|
|
|
- * RETURN: None
|
|
|
- *
|
|
|
- * DESCRIPTION: Print IRQ routing table
|
|
|
- *
|
|
|
- ******************************************************************************/
|
|
|
-
|
|
|
-void acpi_rs_dump_irq_list(u8 * route_table)
|
|
|
-{
|
|
|
- struct acpi_pci_routing_table *prt_element;
|
|
|
- u8 count;
|
|
|
-
|
|
|
- ACPI_FUNCTION_ENTRY();
|
|
|
-
|
|
|
- /* Check if debug output enabled */
|
|
|
-
|
|
|
- if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_RESOURCES, _COMPONENT)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- prt_element = ACPI_CAST_PTR(struct acpi_pci_routing_table, route_table);
|
|
|
-
|
|
|
- /* Dump all table elements, Exit on zero length element */
|
|
|
-
|
|
|
- for (count = 0; prt_element->length; count++) {
|
|
|
- acpi_os_printf("\n[%02X] PCI IRQ Routing Table Package\n",
|
|
|
- count);
|
|
|
- acpi_rs_dump_descriptor(prt_element, acpi_rs_dump_prt);
|
|
|
-
|
|
|
- prt_element = ACPI_ADD_PTR(struct acpi_pci_routing_table,
|
|
|
- prt_element, prt_element->length);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/*******************************************************************************
|
|
|
*
|
|
|
* FUNCTION: acpi_rs_out*
|