From 1302a92d9ddcbe4b3d95c2296e999c8da902051a Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Mon, 20 Apr 2026 10:35:38 -0400 Subject: [PATCH] sp1: bpt: Add RSDP field to protovars Signed-off-by: Ian Moffett --- usr/src/sp1/common/bpt/bpt_limine.c | 9 +++++++++ usr/src/sp1/head/os/bpt.h | 1 + 2 files changed, 10 insertions(+) diff --git a/usr/src/sp1/common/bpt/bpt_limine.c b/usr/src/sp1/common/bpt/bpt_limine.c index 82e407a..2a12275 100644 --- a/usr/src/sp1/common/bpt/bpt_limine.c +++ b/usr/src/sp1/common/bpt/bpt_limine.c @@ -27,6 +27,13 @@ static volatile struct limine_hhdm_request hhdm_req = { .revision = 0 }; +/* ACPI RSDP request */ +static struct limine_rsdp_response *rsdp_resp = NULL; +static volatile struct limine_rsdp_request rsdp_req = { + .id = LIMINE_RSDP_REQUEST, + .revision = 0 +}; + /* * Obtain the boot protocol variables * @@ -40,6 +47,7 @@ limine_get_protovar(struct bpt_protovar *res) } res->kload_base = hhdm_resp->offset; + res->rsdp = rsdp_resp->address; return STATUS_SUCCESS; } @@ -80,6 +88,7 @@ bpt_init_limine(struct bpt_ops *ops) hhdm_resp = hhdm_req.response; memmap_resp = memmap_req.response; + rsdp_resp = rsdp_req.response; ops->get_protovar = limine_get_protovar; ops->mem_entry_i = limine_mem_entry_i; diff --git a/usr/src/sp1/head/os/bpt.h b/usr/src/sp1/head/os/bpt.h index ac597a7..0721eda 100644 --- a/usr/src/sp1/head/os/bpt.h +++ b/usr/src/sp1/head/os/bpt.h @@ -52,6 +52,7 @@ struct mem_entry { */ struct bpt_protovar { uintptr_t kload_base; + void *rsdp; }; /*