From e22d5eff39c9044c17fc7d75eb47c7a9077ad6c9 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Sun, 17 Apr 2022 07:56:41 +0200 Subject: [PATCH] limine: Increment default stack size to 64KiB --- PROTOCOL.md | 4 ++-- common/protos/limine.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PROTOCOL.md b/PROTOCOL.md index 2e5e2e02..8db31cb5 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -149,7 +149,7 @@ Legacy PIC and IO APIC IRQs are all masked. If booted by EFI/UEFI, boot services are exited. `rsp` is set to point to a stack, in bootloader-reserved memory, which is -at least 16KiB (16384 bytes) in size, or the size specified in the Stack +at least 64KiB (65536 bytes) in size, or the size specified in the Stack Size Request (see below). An invalid return address of 0 is pushed to the stack before jumping to the kernel. @@ -602,7 +602,7 @@ struct limine_smp_info { * `processor_id` - ACPI Processor UID as specified by the MADT * `lapic_id` - Local APIC ID of the processor as specified by the MADT * `goto_address` - An atomic write to this field causes the parked CPU to -jump to the written address, on a 16KiB (or Stack Size Request size) stack. A pointer to the +jump to the written address, on a 64KiB (or Stack Size Request size) stack. A pointer to the `struct limine_smp_info` structure of the CPU is passed in `RDI`. Other than that, the CPU state will be the same as described for the bootstrap processor. This field is unused for the structure describing the bootstrap diff --git a/common/protos/limine.c b/common/protos/limine.c index 6401e2f8..12ae1121 100644 --- a/common/protos/limine.c +++ b/common/protos/limine.c @@ -373,7 +373,7 @@ FEAT_END #endif // Stack size - uint64_t stack_size = 16384; + uint64_t stack_size = 65536; FEAT_START struct limine_stack_size_request *stack_size_request = get_request(LIMINE_STACK_SIZE_REQUEST); if (stack_size_request == NULL) {