arm64: lop off another 24MB of KVA for early device mappings

This grows the block enough to fit a 4K 32-bit depth framebuffer; some
firmware would present smaller GOP modes to be able to boot with a
smaller framebuffer on these devices, but the Windows Devkit firmware
is simply not that nice.  Instead, it offers exactly one GOP mode that
matches the current resolution of the attached display, so with limited
control over resolution on most of my displays it'd be nice if we could
Just Work(TM) at 4K.

andrew notes that he has some ideas for removing PMAP_MAPDEV_EARLY_SIZE
entirely, so this limitation could end up removed altogether in the
future.

Reviewed by:	andrew, emaste
Differential Revision:	https://reviews.freebsd.org/D42726
This commit is contained in:
Kyle Evans
2023-11-23 10:21:33 -06:00
parent ae9437671a
commit a3ceeef26b
+5 -1
View File
@@ -164,7 +164,11 @@ typedef uint64_t pt_entry_t; /* page table entry */
/* 0x2 also marks an invalid address */
#define L3_PAGE 0x3
#define PMAP_MAPDEV_EARLY_SIZE (L2_SIZE * 8)
/*
* A substantial portion of this is to make sure that we can cope with 4K
* framebuffers in early boot, assuming a common 4K resolution @ 32-bit depth.
*/
#define PMAP_MAPDEV_EARLY_SIZE (L2_SIZE * 20)
#if PAGE_SIZE == PAGE_SIZE_4K
#define L0_ENTRIES_SHIFT 9