Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Dec 2023 16:50:55 GMT
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 9c2aaaa997d0 - stable/14 - arm64: lop off another 24MB of KVA for early device mappings
Message-ID:  <202312151650.3BFGotuu010817@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=9c2aaaa997d0ad19cee733a7ee78630d3e94dfb3

commit 9c2aaaa997d0ad19cee733a7ee78630d3e94dfb3
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2023-11-23 16:21:33 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2023-12-15 00:58:08 +0000

    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
    
    (cherry picked from commit a3ceeef26bc880b86f4e181bddd9924a2b5e0691)
---
 sys/arm64/include/pte.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sys/arm64/include/pte.h b/sys/arm64/include/pte.h
index aebe24cb82af..a868931604c9 100644
--- a/sys/arm64/include/pte.h
+++ b/sys/arm64/include/pte.h
@@ -163,7 +163,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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202312151650.3BFGotuu010817>