The branch main has been updated by andrew:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=719908c8130012234898c3602eb0c0db9af0a620

commit 719908c8130012234898c3602eb0c0db9af0a620
Author:     Andrew Turner <and...@freebsd.org>
AuthorDate: 2024-04-25 13:06:23 +0000
Commit:     Andrew Turner <and...@freebsd.org>
CommitDate: 2024-05-10 09:29:24 +0000

    arm64: Merge common page table creation code
    
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D45061
---
 sys/arm64/arm64/locore.S | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
index 94a50b735bc6..67bdece402c2 100644
--- a/sys/arm64/arm64/locore.S
+++ b/sys/arm64/arm64/locore.S
@@ -520,17 +520,27 @@ common:
         * when the page size is larger than 4k, L2 blocks are too large to
         * map the kernel with such an alignment.
         */
+#define        PTE_SHIFT       L3_SHIFT
+#define        BUILD_PTE_FUNC  build_l3_page_pagetable
+#else
+#define        PTE_SHIFT       L2_SHIFT
+#define        BUILD_PTE_FUNC  build_l2_block_pagetable
+#endif
 
-       /* Get the number of l3 pages to allocate, rounded down */
-       lsr     x10, x8, #(L3_SHIFT)
+       /* Get the number of blocks/pages to allocate, rounded down */
+       lsr     x10, x8, #(PTE_SHIFT)
 
-       /* Create the kernel space L2 table */
+       /* Create the kernel space PTE table */
        mov     x6, x26
        mov     x7, #(ATTR_S1_IDX(VM_MEMATTR_WRITE_BACK))
        mov     x8, #(KERNBASE)
        mov     x9, x28
-       bl      build_l3_page_pagetable
+       bl      BUILD_PTE_FUNC
+
+#undef PTE_SHIFT
+#undef BUILD_PTE_FUNC
 
+#if PAGE_SIZE != PAGE_SIZE_4K
        /* Move to the l2 table */
        ldr     x9, =(PAGE_SIZE * L3_PAGE_COUNT)
        add     x26, x26, x9
@@ -539,16 +549,6 @@ common:
        mov     x9, x6
        mov     x6, x26
        bl      link_l2_pagetable
-#else
-       /* Get the number of l2 pages to allocate, rounded down */
-       lsr     x10, x8, #(L2_SHIFT)
-
-       /* Create the kernel space L2 table */
-       mov     x6, x26
-       mov     x7, #(ATTR_S1_IDX(VM_MEMATTR_WRITE_BACK))
-       mov     x8, #(KERNBASE)
-       mov     x9, x28
-       bl      build_l2_block_pagetable
 #endif
 
        /* Move to the l1 table */

Reply via email to