Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F156705060
D22606.id65050.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D22606.id65050.diff
View Options
Index: sys/arm64/arm64/locore.S
===================================================================
--- sys/arm64/arm64/locore.S
+++ sys/arm64/arm64/locore.S
@@ -118,6 +118,9 @@
/* Enable the mmu */
bl start_mmu
+ /* Load the new ttbr0 pagetable */
+ adr x27, pagetable_l0_ttbr0
+
/* Jump to the virtual address space */
ldr x15, .Lvirtdone
br x15
@@ -128,6 +131,15 @@
mov sp, x25
sub sp, sp, #PCB_SIZE
+ /* Load the kernel ttbr0 pagetable */
+ msr ttbr0_el1, x27
+ isb
+
+ /* Invalidate the TLB */
+ tlbi vmalle1
+ dsb sy
+ isb
+
/* Zero the BSS */
ldr x15, .Lbss
ldr x14, .Lend
@@ -193,11 +205,14 @@
/* Load the kernel page table */
adr x24, pagetable_l0_ttbr1
/* Load the identity page table */
- adr x27, pagetable_l0_ttbr0
+ adr x27, pagetable_l0_ttbr0_boostrap
/* Enable the mmu */
bl start_mmu
+ /* Load the new ttbr0 pagetable */
+ adr x27, pagetable_l0_ttbr0
+
/* Jump to the virtual address space */
ldr x15, =mp_virtdone
br x15
@@ -208,6 +223,15 @@
mul x5, x0, x5
add sp, x4, x5
+ /* Load the kernel ttbr0 pagetable */
+ msr ttbr0_el1, x27
+ isb
+
+ /* Invalidate the TLB */
+ tlbi vmalle1
+ dsb sy
+ isb
+
b init_secondary
END(mpentry)
#endif
@@ -682,10 +706,13 @@
//.section .init_pagetable
.align 12 /* 4KiB aligned */
/*
- * 3 initial tables (in the following order):
+ * 6 initial tables (in the following order):
* L2 for kernel (High addresses)
* L1 for kernel
- * L1 for user (Low addresses)
+ * L0 for kernel
+ * L1 bootstrap for user (Low addresses)
+ * L0 bootstrap for user
+ * L0 for user
*/
pagetable:
.space PAGE_SIZE
@@ -693,7 +720,9 @@
.space PAGE_SIZE
pagetable_l0_ttbr1:
.space PAGE_SIZE
-pagetable_l1_ttbr0:
+pagetable_l1_ttbr0_bootstrap:
+ .space PAGE_SIZE
+pagetable_l0_ttbr0_boostrap:
.space PAGE_SIZE
pagetable_l0_ttbr0:
.space PAGE_SIZE
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, May 16, 7:27 PM (6 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33147707
Default Alt Text
D22606.id65050.diff (1 KB)
Attached To
Mode
D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled
Attached
Detach File
Event Timeline
Log In to Comment