kernel: update limine to 11 and use base revision 6

This commit is contained in:
Matheus
2026-04-01 16:45:42 -03:00
parent 02b88573b0
commit 774ae10e99
18 changed files with 64 additions and 52 deletions
+3 -3
View File
@@ -35,12 +35,12 @@ static section_t sections[PMM_SECTION_COUNT] = {
};
static volatile struct limine_hhdm_request hhdmreq = {
.id = LIMINE_HHDM_REQUEST,
.id = LIMINE_HHDM_REQUEST_ID,
.revision = 0
};
volatile struct limine_memmap_request pmm_liminemap = {
.id = LIMINE_MEMMAP_REQUEST,
.id = LIMINE_MEMMAP_REQUEST_ID,
.revision = 0
};
@@ -235,7 +235,7 @@ void pmm_init() {
for (size_t i = 0; i < pmm_liminemap.response->entry_count; ++i) {
struct limine_memmap_entry *e = pmm_liminemap.response->entries[i];
printf("pmm: %016p -> %016p: %d\n", e->base, e->base + e->length, e->type);
if (e->type == LIMINE_MEMMAP_USABLE || e->type == LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE || e->type == LIMINE_MEMMAP_KERNEL_AND_MODULES) {
if (e->type == LIMINE_MEMMAP_USABLE || e->type == LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE || e->type == LIMINE_MEMMAP_EXECUTABLE_AND_MODULES) {
size_t sectiontop = e->base + e->length;
if (sectiontop > top)
top = sectiontop;
+4 -1
View File
@@ -1024,10 +1024,13 @@ void vmm_init() {
for (uint64_t i = 0; i < pmm_liminemap.response->entry_count; ++i) {
struct limine_memmap_entry *e = pmm_liminemap.response->entries[i];
if (e->type != LIMINE_MEMMAP_USABLE && e->type != LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE && e->type != LIMINE_MEMMAP_KERNEL_AND_MODULES && e->type != LIMINE_MEMMAP_FRAMEBUFFER)
if (e->type != LIMINE_MEMMAP_USABLE && e->type != LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE && e->type != LIMINE_MEMMAP_EXECUTABLE_AND_MODULES && e->type != LIMINE_MEMMAP_FRAMEBUFFER)
continue;
mmuflags_t mmuflags = ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC | ARCH_MMU_FLAGS_GLOBAL;
if (e->type == LIMINE_MEMMAP_FRAMEBUFFER)
mmuflags |= ARCH_MMU_FLAGS_WC;
__assert(vmm_map(MAKE_HHDM(e->base), e->length, VMM_FLAGS_EXACT, mmuflags, NULL));
}