diff options
Diffstat (limited to 'meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch')
-rw-r--r-- | meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch b/meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch index 7094c8bc8f..a9a839ea8d 100644 --- a/meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch +++ b/meta-arm/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch @@ -1,7 +1,7 @@ -From c8bd941579fb062359b683b184b851eea2ddb761 Mon Sep 17 00:00:00 2001 +From f526797b83113cc64e3e658c22d8a5d269896a2a Mon Sep 17 00:00:00 2001 From: Ben Horgan <ben.horgan@arm.com> Date: Fri, 4 Mar 2022 16:48:14 +0000 -Subject: [PATCH 1/5] feat: emulate cntp timer register accesses using cnthps +Subject: [PATCH] feat: emulate cntp timer register accesses using cnthps Upstream-Status: Inappropriate [Experimental feature] Signed-off-by: Ben Horgan <ben.horgan@arm.com> @@ -19,10 +19,10 @@ Change-Id: I67508203273baf3bd8e6be2d99717028db945715 create mode 100644 src/arch/aarch64/hypervisor/timer_el1.h diff --git a/Makefile b/Makefile -index c9fb16f..6371a8a 100644 +index 95cab9a5..21cca938 100644 --- a/Makefile +++ b/Makefile -@@ -59,7 +59,8 @@ CHECKPATCH := $(CURDIR)/third_party/linux/scripts/checkpatch.pl \ +@@ -60,7 +60,8 @@ CHECKPATCH := $(CURDIR)/third_party/linux/scripts/checkpatch.pl \ # debug_el1.c : uses XMACROS, which checkpatch doesn't understand. # perfmon.c : uses XMACROS, which checkpatch doesn't understand. # feature_id.c : uses XMACROS, which checkpatch doesn't understand. @@ -33,7 +33,7 @@ index c9fb16f..6371a8a 100644 OUT ?= out/$(PROJECT) OUT_DIR = out/$(PROJECT) diff --git a/src/arch/aarch64/hypervisor/BUILD.gn b/src/arch/aarch64/hypervisor/BUILD.gn -index 6068d1e..de1a414 100644 +index 6068d1e8..de1a414d 100644 --- a/src/arch/aarch64/hypervisor/BUILD.gn +++ b/src/arch/aarch64/hypervisor/BUILD.gn @@ -45,6 +45,7 @@ source_set("hypervisor") { @@ -45,10 +45,10 @@ index 6068d1e..de1a414 100644 ] diff --git a/src/arch/aarch64/hypervisor/cpu.c b/src/arch/aarch64/hypervisor/cpu.c -index c6cebdd..cb41e6e 100644 +index bcf5ffce..d2df77d8 100644 --- a/src/arch/aarch64/hypervisor/cpu.c +++ b/src/arch/aarch64/hypervisor/cpu.c -@@ -91,13 +91,20 @@ void arch_regs_reset(struct vcpu *vcpu) +@@ -98,13 +98,20 @@ void arch_regs_reset(struct vcpu *vcpu) if (is_primary) { /* * cnthctl_el2 is redefined when VHE is enabled. @@ -72,7 +72,7 @@ index c6cebdd..cb41e6e 100644 } diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c -index cd64d68..c9068c5 100644 +index 4bd8a3b4..4c1b6e48 100644 --- a/src/arch/aarch64/hypervisor/handler.c +++ b/src/arch/aarch64/hypervisor/handler.c @@ -34,6 +34,7 @@ @@ -83,7 +83,7 @@ index cd64d68..c9068c5 100644 /** * Hypervisor Fault Address Register Non-Secure. -@@ -1276,6 +1277,11 @@ void handle_system_register_access(uintreg_t esr_el2) +@@ -1277,6 +1278,11 @@ void handle_system_register_access(uintreg_t esr_el2) inject_el1_unknown_exception(vcpu, esr_el2); return; } @@ -97,7 +97,7 @@ index cd64d68..c9068c5 100644 return; diff --git a/src/arch/aarch64/hypervisor/timer_el1.c b/src/arch/aarch64/hypervisor/timer_el1.c new file mode 100644 -index 0000000..c30e554 +index 00000000..c30e5543 --- /dev/null +++ b/src/arch/aarch64/hypervisor/timer_el1.c @@ -0,0 +1,104 @@ @@ -207,7 +207,7 @@ index 0000000..c30e554 +} diff --git a/src/arch/aarch64/hypervisor/timer_el1.h b/src/arch/aarch64/hypervisor/timer_el1.h new file mode 100644 -index 0000000..04a43b6 +index 00000000..04a43b6c --- /dev/null +++ b/src/arch/aarch64/hypervisor/timer_el1.h @@ -0,0 +1,20 @@ @@ -232,7 +232,7 @@ index 0000000..04a43b6 +bool timer_el1_process_access(struct vcpu *vcpu, ffa_vm_id_t vm_id, + uintreg_t esr); diff --git a/src/arch/aarch64/msr.h b/src/arch/aarch64/msr.h -index cd6778b..55e7833 100644 +index cd6778b4..55e78330 100644 --- a/src/arch/aarch64/msr.h +++ b/src/arch/aarch64/msr.h @@ -126,3 +126,11 @@ @@ -247,6 +247,4 @@ index cd6778b..55e7833 100644 +#define MSR_CNTHPS_CTL_EL2 S3_4_C14_C5_1 +#define MSR_CNTHPS_CVAL_EL2 S3_4_C14_C5_2 +#define MSR_CNTHPS_TVAL_EL2 S3_4_C14_C5_0 --- -2.17.1 |