git: 995090202cae - main - powerpc: document the magic constants for 16MB page size

From: Adrian Chadd <adrian_at_FreeBSD.org>
Date: Mon, 16 Feb 2026 17:50:05 UTC
The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=995090202cae47567cc5b0d92301692d49c1c035

commit 995090202cae47567cc5b0d92301692d49c1c035
Author:     Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2026-02-16 17:49:52 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2026-02-16 17:49:52 +0000

    powerpc: document the magic constants for 16MB page size
    
    After discussion with jhibbits@, we pulled out what is supported here
    and how it's supported.
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D55093
---
 sys/powerpc/aim/moea64_native.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/sys/powerpc/aim/moea64_native.c b/sys/powerpc/aim/moea64_native.c
index 7714187c2f4d..a3f54940ab1a 100644
--- a/sys/powerpc/aim/moea64_native.c
+++ b/sys/powerpc/aim/moea64_native.c
@@ -130,6 +130,19 @@
 /* POWER9 only permits a 64k partition table size. */
 #define	PART_SIZE	0x10000
 
+/*
+ * These values are derived from the POWER8 user manual Version 1.3
+ * (16-March-2016), 3.8.4 (large page support) and 3.8.16 (TLBIE Invalidate
+ * Entry instructions.)
+ *
+ * Notably:
+ *
+ * + POWER8 supports an MPSS (Multple Page Sizes per Segment) configuration
+ *   of 4KB base, 16MB actual page size
+ * + RB[56:58] encoding for 16MB page == 100, RB[54:55] segment either 00 or 01
+ * + RB[56:58] encoding for 4K page == 000, RB[54:55] segment either 00 or 01
+ */
+
 /* Actual page sizes (to be used with tlbie, when L=0) */
 #define	AP_4K		0x00
 #define	AP_16M		0x80