Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F174790539
D36296.id109671.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
D36296.id109671.diff
View Options
Index: sys/arm64/arm64/cpufunc_asm.S
===================================================================
--- sys/arm64/arm64/cpufunc_asm.S
+++ sys/arm64/arm64/cpufunc_asm.S
@@ -143,6 +143,18 @@
ret
END(arm64_dic_idc_icache_sync_range)
+/*
+ * void arm64_idc_aliasing_icache_sync_range(vm_offset_t, vm_size_t)
+ * When the CTR_EL0.IDC bit is set cleaning to PoU becomes a dsb.
+ */
+ENTRY(arm64_idc_aliasing_icache_sync_range)
+ dsb ishst
+ ic ialluis
+ dsb ish
+ isb
+ ret
+END(arm64_idc_aliasing_icache_sync_range)
+
/*
* void arm64_aliasing_icache_sync_range(vm_offset_t, vm_size_t)
*/
Index: sys/arm64/arm64/identcpu.c
===================================================================
--- sys/arm64/arm64/identcpu.c
+++ sys/arm64/arm64/identcpu.c
@@ -1918,6 +1918,10 @@
arm64_icache_sync_range = &arm64_dic_idc_icache_sync_range;
if (bootverbose)
printf("Enabling DIC & IDC ICache sync\n");
+ } else if (idc) {
+ arm64_icache_sync_range = &arm64_idc_aliasing_icache_sync_range;
+ if (bootverbose)
+ printf("Enabling IDC ICache sync\n");
}
if ((elf_hwcap & HWCAP_ATOMICS) != 0) {
Index: sys/arm64/include/cpufunc.h
===================================================================
--- sys/arm64/include/cpufunc.h
+++ sys/arm64/include/cpufunc.h
@@ -241,6 +241,7 @@
void arm64_nullop(void);
void arm64_tlb_flushID(void);
void arm64_dic_idc_icache_sync_range(vm_offset_t, vm_size_t);
+void arm64_idc_aliasing_icache_sync_range(vm_offset_t, vm_size_t);
void arm64_aliasing_icache_sync_range(vm_offset_t, vm_size_t);
int arm64_icache_sync_range_checked(vm_offset_t, vm_size_t);
void arm64_dcache_wbinv_range(vm_offset_t, vm_size_t);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Oct 7, 12:34 AM (14 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40326061
Default Alt Text
D36296.id109671.diff (1 KB)
Attached To
Mode
D36296: Add an IDC only arm64 icache sync function
Attached
Detach File
Event Timeline
Log In to Comment