multiboot2: Fix bug where old ACPI tag would not get passed if RSDP rev == 0
diff --git a/common/lib/acpi.c b/common/lib/acpi.c
index 7c564623..301e99dd 100644
--- a/common/lib/acpi.c
+++ b/common/lib/acpi.c
@@ -43,7 +43,7 @@ void *acpi_get_rsdp_v1(void) {
// revision, return it.
struct rsdp *rsdp = acpi_get_rsdp();
- if (rsdp != NULL && rsdp->rev == 1)
+ if (rsdp != NULL && rsdp->rev < 2)
return rsdp;
return NULL;
diff --git a/test/multiboot2.c b/test/multiboot2.c
index fbfef24f..ef522285 100644
--- a/test/multiboot2.c
+++ b/test/multiboot2.c
@@ -45,6 +45,20 @@ void multiboot2_main(uint32_t magic, struct multiboot_info* mb_info_addr) {
break;
}
+ case MULTIBOOT_TAG_TYPE_ACPI_OLD: {
+ struct multiboot_tag_old_acpi *old_acpi = (struct multiboot_tag_old_acpi *)tag;
+ e9_printf("\t acpi_old:");
+ e9_printf("\t\t rsdp=%s", old_acpi->rsdp);
+ break;
+ }
+
+ case MULTIBOOT_TAG_TYPE_ACPI_NEW: {
+ struct multiboot_tag_new_acpi *new_acpi = (struct multiboot_tag_new_acpi *)tag;
+ e9_printf("\t acpi_new:");
+ e9_printf("\t\t rsdp=%s", new_acpi->rsdp);
+ break;
+ }
+
case MULTIBOOT_TAG_TYPE_MODULE: {
struct multiboot_tag_module *module = (struct multiboot_tag_module *)tag;
e9_printf("\t module:");
