limine-bootloader / limine

Modern, advanced, portable, multiprotocol bootloader and boot manager.
https://limine-bootloader.org
BSD 2-Clause "Simplified" License
1.87k stars 141 forks source link

protos/limine: increase MEMMAP_MAX #413

Closed monkuous closed 2 months ago

monkuous commented 2 months ago

On some systems, the memory map exceeds 256 entries (on my system, it has 312 entries). That causes the bootloader to panic when booting Limine payloads. This PR simply doubles the limit.

mintsuki commented 2 months ago

Hello, thanks for the PR!

May I know what system is this, and whether we're talking BIOS or UEFI? Thanks.

monkuous commented 2 months ago

The issue only occurs in UEFI mode. The memory map mostly consists of small LIMINE_MEMMAP_USABLE entries, each followed by a small LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE entry.

mintsuki commented 2 months ago

Is there a chance you could post the full memory map alongside mentioning what kernel specifically you were trying to load and if it does anything unusual (like loading lots of modules, etc)?

monkuous commented 2 months ago

I was attempting to load a custom closed-source kernel. It doesn't do anything special, and I managed to reproduce the issue by adding a memory map request to limine-c-template-x86-64. Here's the Limine config I used, as well as the memory map dump: https://hst.sh/onirisinog.yaml. Note that the memory map was transcribed using OCR, so it might have small errors, though I haven't caught any during a quick look though the transcribed text.

mintsuki commented 2 months ago

Thanks. May I also know the Limine version used just in case?

monkuous commented 2 months ago

I initially encountered it on 8.0.13, but while diagnosing the issue I was using https://github.com/limine-bootloader/limine/commit/7d66858bcb75995625360c462eff925bd45f9a9e

mintsuki commented 2 months ago

Do you think it would be possible for you to join the Limine Discord server linked in the README.md file in order to run some live tests on that machine?

I have no issues with this PR, but my main concern is that this may be some band aid fix for another underlying Limine issue (triggered by that specific machine's firmware/memory map). So in that case, I'd rather fix the underlying issue.