Fix the TCR_TG0_xxx definitions and add TCR_TG0_4K to the initial setting
authorkettenis <kettenis@openbsd.org>
Thu, 2 Sep 2021 10:48:52 +0000 (10:48 +0000)
committerkettenis <kettenis@openbsd.org>
Thu, 2 Sep 2021 10:48:52 +0000 (10:48 +0000)
of TCR_EL1 in locore to make clear we use 4K pages for both userland and
the kernel.

ok patrick@

sys/arch/arm64/arm64/locore.S
sys/arch/arm64/include/armreg.h

index 857db50..5219af1 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.38 2021/06/28 15:45:15 deraadt Exp $ */
+/* $OpenBSD: locore.S,v 1.39 2021/09/02 10:48:52 kettenis Exp $ */
 /*-
  * Copyright (c) 2012-2014 Andrew Turner
  * All rights reserved.
@@ -256,7 +256,7 @@ mair:
                MAIR_ATTR(0x88, 4)
 tcr:
        .quad (TCR_T1SZ(64 - VIRT_BITS) | TCR_T0SZ(64 - 48) | \
-           TCR_AS | TCR_TG1_4K | TCR_CACHE_ATTRS | TCR_SMP_ATTRS)
+           TCR_AS | TCR_TG1_4K | TCR_TG0_4K | TCR_CACHE_ATTRS | TCR_SMP_ATTRS)
 sctlr_set:
        /* Bits to set */
        .quad (SCTLR_UCI | SCTLR_nTWE | SCTLR_nTWI | SCTLR_UCT | SCTLR_DZE | \
index fba285f..fe96344 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: armreg.h,v 1.16 2021/03/27 20:03:15 kettenis Exp $ */
+/* $OpenBSD: armreg.h,v 1.17 2021/09/02 10:48:52 kettenis Exp $ */
 /*-
  * Copyright (c) 2013, 2014 Andrew Turner
  * Copyright (c) 2015 The FreeBSD Foundation
 #define        TCR_A1          (1UL << 22)
 
 #define        TCR_TG0_SHIFT   14
-#define        TCR_TG0_16K     (1UL << TCR_TG0_SHIFT)
-#define        TCR_TG0_4K      (2UL << TCR_TG0_SHIFT)
-#define        TCR_TG0_64K     (3UL << TCR_TG0_SHIFT)
+#define        TCR_TG0_4K      (0UL << TCR_TG0_SHIFT)
+#define        TCR_TG0_64K     (1UL << TCR_TG0_SHIFT)
+#define        TCR_TG0_16K     (2UL << TCR_TG0_SHIFT)
 
 #define        TCR_SH0_SHIFT   12
 #define        TCR_SH0_IS      (0x3UL << TCR_SH0_SHIFT)