|
@@ -582,64 +582,67 @@ static acpi_status osl_table_initialize(void)
|
|
|
return (AE_OK);
|
|
|
}
|
|
|
|
|
|
- /* Get RSDP from memory */
|
|
|
+ if (!gbl_dump_customized_tables) {
|
|
|
|
|
|
- status = osl_load_rsdp();
|
|
|
- if (ACPI_FAILURE(status)) {
|
|
|
- return (status);
|
|
|
- }
|
|
|
+ /* Get RSDP from memory */
|
|
|
+
|
|
|
+ status = osl_load_rsdp();
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
+ return (status);
|
|
|
+ }
|
|
|
|
|
|
- /* Get XSDT from memory */
|
|
|
+ /* Get XSDT from memory */
|
|
|
|
|
|
- if (gbl_rsdp.revision && !gbl_do_not_dump_xsdt) {
|
|
|
- if (gbl_xsdt) {
|
|
|
- free(gbl_xsdt);
|
|
|
- gbl_xsdt = NULL;
|
|
|
+ if (gbl_rsdp.revision && !gbl_do_not_dump_xsdt) {
|
|
|
+ if (gbl_xsdt) {
|
|
|
+ free(gbl_xsdt);
|
|
|
+ gbl_xsdt = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ gbl_revision = 2;
|
|
|
+ status = osl_get_bios_table(ACPI_SIG_XSDT, 0,
|
|
|
+ ACPI_CAST_PTR(struct
|
|
|
+ acpi_table_header
|
|
|
+ *, &gbl_xsdt),
|
|
|
+ &address);
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
+ return (status);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- gbl_revision = 2;
|
|
|
- status = osl_get_bios_table(ACPI_SIG_XSDT, 0,
|
|
|
- ACPI_CAST_PTR(struct
|
|
|
- acpi_table_header *,
|
|
|
- &gbl_xsdt), &address);
|
|
|
- if (ACPI_FAILURE(status)) {
|
|
|
- return (status);
|
|
|
+ /* Get RSDT from memory */
|
|
|
+
|
|
|
+ if (gbl_rsdp.rsdt_physical_address) {
|
|
|
+ if (gbl_rsdt) {
|
|
|
+ free(gbl_rsdt);
|
|
|
+ gbl_rsdt = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = osl_get_bios_table(ACPI_SIG_RSDT, 0,
|
|
|
+ ACPI_CAST_PTR(struct
|
|
|
+ acpi_table_header
|
|
|
+ *, &gbl_rsdt),
|
|
|
+ &address);
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
+ return (status);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /* Get RSDT from memory */
|
|
|
+ /* Get FADT from memory */
|
|
|
|
|
|
- if (gbl_rsdp.rsdt_physical_address) {
|
|
|
- if (gbl_rsdt) {
|
|
|
- free(gbl_rsdt);
|
|
|
- gbl_rsdt = NULL;
|
|
|
+ if (gbl_fadt) {
|
|
|
+ free(gbl_fadt);
|
|
|
+ gbl_fadt = NULL;
|
|
|
}
|
|
|
|
|
|
- status = osl_get_bios_table(ACPI_SIG_RSDT, 0,
|
|
|
+ status = osl_get_bios_table(ACPI_SIG_FADT, 0,
|
|
|
ACPI_CAST_PTR(struct
|
|
|
acpi_table_header *,
|
|
|
- &gbl_rsdt), &address);
|
|
|
+ &gbl_fadt),
|
|
|
+ &gbl_fadt_address);
|
|
|
if (ACPI_FAILURE(status)) {
|
|
|
return (status);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- /* Get FADT from memory */
|
|
|
-
|
|
|
- if (gbl_fadt) {
|
|
|
- free(gbl_fadt);
|
|
|
- gbl_fadt = NULL;
|
|
|
- }
|
|
|
-
|
|
|
- status = osl_get_bios_table(ACPI_SIG_FADT, 0,
|
|
|
- ACPI_CAST_PTR(struct acpi_table_header *,
|
|
|
- &gbl_fadt),
|
|
|
- &gbl_fadt_address);
|
|
|
- if (ACPI_FAILURE(status)) {
|
|
|
- return (status);
|
|
|
- }
|
|
|
-
|
|
|
- if (!gbl_dump_customized_tables) {
|
|
|
|
|
|
/* Add mandatory tables to global table list first */
|
|
|
|