diff options
Diffstat (limited to 'src/fw/paravirt.c')
-rw-r--r-- | src/fw/paravirt.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c index 00e327d..569fd25 100644 --- a/src/fw/paravirt.c +++ b/src/fw/paravirt.c @@ -18,6 +18,7 @@ #include "output.h" // dprintf #include "paravirt.h" // qemu_cfg_preinit #include "romfile.h" // romfile_loadint +#include "romfile_loader.h" // romfile_loader_execute #include "string.h" // memset #include "util.h" // pci_setup #include "x86.h" // cpuid @@ -147,6 +148,27 @@ qemu_platform_setup(void) pirtable_setup(); mptable_setup(); smbios_setup(); + + if (CONFIG_FW_ROMFILE_LOAD) { + int loader_err; + + dprintf(3, "load ACPI tables\n"); + + loader_err = romfile_loader_execute("etc/table-loader"); + + RsdpAddr = find_acpi_rsdp(); + + if (RsdpAddr) + return; + + /* If present, loader should have installed an RSDP. + * Not installed? We might still be able to continue + * using the builtin RSDP. + */ + if (!loader_err) + warn_internalerror(); + } + acpi_setup(); } |