Can you run lsefimmap and lspaging on the system in question? lspaging patch is in neighboring thread
Regards Vladimir 'phcoder' Serbinenko Le ven. 11 avr. 2025, 14:01, Vladimir 'phcoder' Serbinenko < phco...@gmail.com> a écrit : > How early is this bug? Do you see "Welcome to GRUB"? Does recompiling with > fPIC help? Do you have memory map dump and paging table dump? > > Regards > Vladimir 'phcoder' Serbinenko > > Le ven. 11 avr. 2025, 13:39, Tobias Heider <tobias.hei...@canonical.com> > a écrit : > >> On arm64 we can't restrict memory usage below 0xffffffff as we do >> on x86 because there is no guarantee memory in that range exists >> at all (an example is Apple Silicon). >> Instead, try to allocate in the lower 4GB range first and fall >> back to the entire available address space if that did not work. >> >> This fixes a bug on Snapdragon X Elite devices such as the Lenovo >> Thinkpad T14s which crashes when accessing memory above 0xffffffff. >> >> Signed-off-by: Tobias Heider <tobias.hei...@canonical.com> >> --- >> >> For previous discussion see >> https://lists.gnu.org/archive/html/grub-devel/2025-04/msg00072.html >> >> In contrast to the previous patch this one affects all archs. >> It seems generally safe not to limit it to arm64 with the fallback >> to the old behaviour but I'd be interested to hear if there are any >> concerns. >> Tested on a Snapdragon X Elite and Macbook M2 Air. >> >> grub-core/kern/efi/mm.c | 16 +++++++++++++--- >> 1 file changed, 13 insertions(+), 3 deletions(-) >> >> diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c >> index df238b165..029d975dd 100644 >> --- a/grub-core/kern/efi/mm.c >> +++ b/grub-core/kern/efi/mm.c >> @@ -168,9 +168,19 @@ grub_efi_allocate_pages_real >> (grub_efi_physical_address_t address, >> void * >> grub_efi_allocate_any_pages (grub_efi_uintn_t pages) >> { >> - return grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, >> - pages, >> GRUB_EFI_ALLOCATE_MAX_ADDRESS, >> - GRUB_EFI_LOADER_DATA); >> + void *ret; >> + >> + ret = grub_efi_allocate_pages_real (0xffffffff, >> + pages, >> GRUB_EFI_ALLOCATE_MAX_ADDRESS, >> + GRUB_EFI_LOADER_DATA); >> + if (ret == NULL) >> + { >> + grub_errno = GRUB_ERR_NONE; >> + ret = grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, >> + pages, >> GRUB_EFI_ALLOCATE_MAX_ADDRESS, >> + GRUB_EFI_LOADER_DATA); >> + } >> + return ret; >> } >> >> void * >> -- >> 2.48.1 >> >>
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel