On Tue, Apr 16, 2024 at 07:19:27PM +0300, Mike Rapoport wrote: > > "last page of the first gigabyte" - why first gigabyte? Do you mean > > last page of *last* gigabyte? > > With 3G-1G split linear map can map only 1G from 0xc0000000 to 0xffffffff > (or 0x00000000 with 32-bit overflow): > > [ 0.000000] lowmem : 0xc0000000 - 0x00000000 (1024 MB) ... but you can't map that much. You need to reserve space for (may not be exhaustive): - PCI BARs (or other MMIO) - vmap - kmap - percpu - ioremap - modules - fixmap - Maybe EFI runtime services? You'll be lucky to get 800MB of ZONE_NORMAL.