From 3d76435d4cc6dfeeaace2cc08e30f82ced8b076b Mon Sep 17 00:00:00 2001 From: mintsuki Date: Thu, 10 Dec 2020 08:47:37 +0100 Subject: [PATCH] stivale: Make bootloader reclaImable entries aligned by spec --- STIVALE.md | 16 ++++++++-------- STIVALE2.md | 14 +++++++------- limine-pxe.bin | Bin 29514 -> 29629 bytes limine.bin | Bin 29898 -> 30013 bytes stage2.map | Bin 4413 -> 4429 bytes stage2/mm/pmm.c | 30 ++++++++++++++++++++++++++++-- stage2/mm/pmm.h | 3 +++ stage2/protos/stivale.c | 15 ++++++++------- 8 files changed, 54 insertions(+), 24 deletions(-) diff --git a/STIVALE.md b/STIVALE.md index 4b5a21cc..4e4c288e 100644 --- a/STIVALE.md +++ b/STIVALE.md @@ -110,7 +110,7 @@ All other general purpose registers are set to 0. ## Bootloader-reserved memory In order for stivale to function, it needs to reserve memory areas for either internal -usage (such as page tables, GDT, SMP), or for kernel interfacing (such as returned +usage (such as page tables, GDT), or for kernel interfacing (such as returned structures). stivale ensures that none of these areas are found in any of the sections @@ -124,8 +124,8 @@ before switching to its own address space, as unmarked memory areas in use by the bootloader may become unavailable. Once the OS is done needing the bootloader, memory map areas marked as "bootloader -reclaimable" may be used as usable memory. These areas are not guaranteed to be -aligned, but they are guaranteed to not overlap other sections of the memory map. +reclaimable" may be used as usable memory. These areas are guaranteed to be +4096-byte aligned, and they are guaranteed to not overlap other sections of the memory map. ## stivale header (.stivalehdr) @@ -220,14 +220,14 @@ All other values are undefined. The kernel and modules loaded **are not** marked as usable memory. They are marked as Kernel/Modules (type 10). -Usable RAM chunks are guaranteed to be 4096 byte aligned for both base and length. - The entries are guaranteed to be sorted by base address, lowest to highest. -Usable RAM chunks are guaranteed not to overlap with any other entry. +Usable and bootloader reclaimable entries are guaranteed to be 4096 byte aligned for both base and length. -To the contrary, all non-usable RAM chunks are not guaranteed any alignment, nor -is it guaranteed that they do not overlap each other (except usable RAM). +Usable and bootloader reclaimable entries are guaranteed not to overlap with any other entry. + +To the contrary, all non-usable entries (including kernel/modules) are not guaranteed any alignment, nor +is it guaranteed that they do not overlap other entries (except usable and bootloader reclaimable entries). ## Modules diff --git a/STIVALE2.md b/STIVALE2.md index 9afffdc0..c97ace76 100644 --- a/STIVALE2.md +++ b/STIVALE2.md @@ -124,8 +124,8 @@ before switching to its own address space, as unmarked memory areas in use by the bootloader may become unavailable. Once the OS is done needing the bootloader, memory map areas marked as "bootloader -reclaimable" may be used as usable memory. These areas are not guaranteed to be -aligned, but they are guaranteed to not overlap other sections of the memory map. +reclaimable" may be used as usable memory. These areas are guaranteed to be +4096-byte aligned, and they are guaranteed to not overlap other sections of the memory map. ## stivale2 header (.stivale2hdr) @@ -305,14 +305,14 @@ All other values are undefined. The kernel and modules loaded **are not** marked as usable memory. They are marked as Kernel/Modules (type 0x1001). -Usable RAM chunks are guaranteed to be 4096 byte aligned for both base and length. - The entries are guaranteed to be sorted by base address, lowest to highest. -Usable RAM chunks are guaranteed not to overlap with any other entry. +Usable and bootloader reclaimable entries are guaranteed to be 4096 byte aligned for both base and length. -To the contrary, all non-usable RAM chunks are not guaranteed any alignment, nor -is it guaranteed that they do not overlap each other (except usable RAM). +Usable and bootloader reclaimable entries are guaranteed not to overlap with any other entry. + +To the contrary, all non-usable entries (including kernel/modules) are not guaranteed any alignment, nor +is it guaranteed that they do not overlap other entries (except usable and bootloader reclaimable entries). #### Framebuffer structure tag diff --git a/limine-pxe.bin b/limine-pxe.bin index 20c6fdc97569dce73e6a411412b9606cb9b454c7..1aadc6f49d8284c5533c8b4db43c9790803483bd 100644 GIT binary patch delta 27822 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 F006N795?^~ diff --git a/limine.bin b/limine.bin index 877400f01e7bb4f59eee020b04f886613284a22f..ceb9238da392887983e37188464a25183a4c134c 100644 GIT binary patch delta 27819 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 C?;H>S diff --git a/stage2.map b/stage2.map index e0cd4e56ac3fe3fa62b582b344181a45ede5a126..48bd1c6f70d8a9df7beb16bb3a982e6281434dba 100644 GIT binary patch delta 769 zcmZvaKX27A6va=V5|rVIp)5rz@Ff1IVki$J7%LSCiBG_0xygNbRvpJmob*);`34Bl zsawSWf(3TOfW*Rp=*G&xrvO2@c1#`uvc$i0uFt)W^LG4k{CacLNv(1t$hc|`>)(J{ z8s$_?K~hvh{QzvGj1vVFg|t}v3FI{3Jx0ZQe%mjZ`${3TE>lrSlM@b*faakp>Y?-g ztI_GZkCOj-l;PPwj@z?@H-F1G+W$UU?QWb%kd~(Pv-DlC#gd=a_~x2g(&$(+v@5L4 z$sgziGrt3aPIAOdDx*u8;o(vOtxPi)0k=*isGVx1Cb8Wpoedc)%j|T~sx5D^cyMM> z9k#ze+t1=;j$>ZOs7W9GbTxsUlkguC<@p3|>Z~X&862)fs)&bLzK}ppHbgq3bO)P} z$jEM66FxDA`=C3M4NNcc0i;!FtbROjhqAmjd`Bu3+PI$Trk>$Rq}u;JvfjamD0uJ}h9eg0!iw6-$_c)l&*OL;RGP6FMH$7&JH`Xm$SORz$%b7 zmfDCZ1uX>;t^6NE3oAh^67|jQcqiFr=l6YYzV~)!KMmdvUfo-Ie9lgDj~mmBaHRprAQ^VAQ!q*DdO(U(sM@VjMv zX2?cLTT`hV-%bh`ZJViV@!*tz4|<{u$*o44e4g?6G&{3odB7C$c~s)>h^eE~IGm)VH2G4>LXRkJNaSX~j_ z$o!f=fRUpnc7s)OXqxiv_i!zxBs1*FXNB-eNFel^wU*dxg$?}S=P$?_@iYJc diff --git a/stage2/mm/pmm.c b/stage2/mm/pmm.c index 530ef8d5..c3d5695b 100644 --- a/stage2/mm/pmm.c +++ b/stage2/mm/pmm.c @@ -11,8 +11,8 @@ #define MEMMAP_BASE ((size_t)0x100000) #define MEMMAP_MAX_ENTRIES 256 -static struct e820_entry_t memmap[MEMMAP_MAX_ENTRIES]; -static size_t memmap_entries = 0; +struct e820_entry_t memmap[MEMMAP_MAX_ENTRIES]; +size_t memmap_entries = 0; static const char *memmap_type(uint32_t type) { switch (type) { @@ -152,13 +152,34 @@ static void sanitise_entries(bool align_entries) { i--; } } + + // Align bootloader-reclaimable entries + if (align_entries) { + for (size_t i = 0; i < memmap_entries; i++) { + if (memmap[i].type != MEMMAP_BOOTLOADER_RECLAIMABLE) + continue; + + if (!align_entry(&memmap[i].base, &memmap[i].length)) { + // Eradicate from memmap + for (size_t j = i; j < memmap_entries - 1; j++) { + memmap[j] = memmap[j+1]; + } + memmap_entries--; + i--; + } + } + } } +static bool allocations_disallowed = true; + struct e820_entry_t *get_memmap(size_t *entries) { sanitise_entries(true); *entries = memmap_entries; + allocations_disallowed = true; + return memmap; } @@ -172,6 +193,8 @@ void init_memmap(void) { } sanitise_entries(false); + + allocations_disallowed = false; } void *ext_mem_alloc(size_t count) { @@ -188,6 +211,9 @@ void *ext_mem_alloc_type(size_t count, uint32_t type) { // Allocate memory top down, hopefully without bumping into kernel or modules void *ext_mem_alloc_aligned_type(size_t count, size_t alignment, uint32_t type) { + if (allocations_disallowed) + panic("Extended memory allocations disallowed"); + for (int i = memmap_entries - 1; i >= 0; i--) { if (memmap[i].type != 1) continue; diff --git a/stage2/mm/pmm.h b/stage2/mm/pmm.h index 9390f9a9..be014cf0 100644 --- a/stage2/mm/pmm.h +++ b/stage2/mm/pmm.h @@ -12,6 +12,9 @@ #define MEMMAP_BOOTLOADER_RECLAIMABLE 0x1000 #define MEMMAP_KERNEL_AND_MODULES 0x1001 +extern struct e820_entry_t memmap[]; +extern size_t memmap_entries; + void init_memmap(void); struct e820_entry_t *get_memmap(size_t *entries); void print_memmap(struct e820_entry_t *mm, size_t size); diff --git a/stage2/protos/stivale.c b/stage2/protos/stivale.c index ee812aab..3a5738e7 100644 --- a/stage2/protos/stivale.c +++ b/stage2/protos/stivale.c @@ -229,15 +229,16 @@ pagemap_t stivale_build_pagemap(bool level5pg) { map_page(pagemap, higher_half_base + i, i, 0x03); } - size_t memmap_entries; - struct e820_entry_t *memmap = get_memmap(&memmap_entries); + size_t _memmap_entries = memmap_entries; + struct e820_entry_t *_memmap = + conv_mem_alloc(_memmap_entries * sizeof(struct e820_entry_t)); + for (size_t i = 0; i < _memmap_entries; i++) + _memmap[i] = memmap[i]; // Map any other region of memory from the memmap - for (size_t i = 0; i < memmap_entries; i++) { - memmap = get_memmap(&memmap_entries); - - uint64_t base = memmap[i].base; - uint64_t length = memmap[i].length; + for (size_t i = 0; i < _memmap_entries; i++) { + uint64_t base = _memmap[i].base; + uint64_t length = _memmap[i].length; uint64_t top = base + length; uint64_t aligned_base = ALIGN_DOWN(base, PAGE_SIZE);