Hi,
Recently I'm trying to boot a kernel with 16K page size, but edk2
firmware failed to load the kernel on my CM4, with unsupported message:
Failed to execute Archlinux ARM (\Image-custom): Unsupported
While 4K and 64K page sized kernels are fine to boot.
A quick search shows that Cortex A processors support 4K and 64K page
size, and 16K page size is not a mandatory requirement.
On the other hand, other aarch64 processors, like Apple M1 only supports
4K and 16K page size, no 64K page size support.
Although ARM documents show ID_AA64MMFR0_EL1 would report such info, is
there any user space tool or kernel messages to show an
end-user-friendly output about what page sizes are support?
Thanks,
Qu
Qu Wenruo <[email protected]> writes:
> Hi,
>
> Recently I'm trying to boot a kernel with 16K page size, but edk2
> firmware failed to load the kernel on my CM4, with unsupported message:
>
> Failed to execute Archlinux ARM (\Image-custom): Unsupported
>
> While 4K and 64K page sized kernels are fine to boot.
>
> A quick search shows that Cortex A processors support 4K and 64K page
> size, and 16K page size is not a mandatory requirement.
>
> On the other hand, other aarch64 processors, like Apple M1 only supports
> 4K and 16K page size, no 64K page size support.
>
>
> Although ARM documents show ID_AA64MMFR0_EL1 would report such info, is
> there any user space tool or kernel messages to show an
> end-user-friendly output about what page sizes are support?
Not that I'm aware of but a chunk of the ID registers are exposed to
user space to read (although some bits are masked). I think the kernel
hides the translation granules support and I think only exposes the page
size the kernel has booted into.
I guess you could hack the kernel to dump the real ID register value in
dmesg or something like that?
>
> Thanks,
> Qu
--
Alex Bennée