 Richard HendersonandPeter Maydell
|
d0e16dcad9
|
linux-user/aarch64: Implement prctls for GCS
This is PR_GET_SHADOW_STACK_STATUS, PR_SET_SHADOW_STACK_STATUS,
and PR_LOCK_SHADOW_STACK_STATUS.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-64-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
9c5dfe8b56
|
target/arm: Enable FEAT_GCS with -cpu max
Tested-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20251008215613.300150-63-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
70440a5858
|
target/arm: Implement EXLOCK check during exception return
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-62-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
d77ed96016
|
target/arm: Copy EXLOCKEn to EXLOCK on exception to the same EL
Per R_WTXBY, PSTATE.EXLOCK is 0 on an exception to a higher EL,
and copied from EXLOCKEn otherwise.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-61-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
3d366bb67f
|
target/arm: Load gcs record for RET with PAuth
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-60-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
488fab6fc9
|
target/arm: Load gcs record for RET
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-59-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
d28bb06dc8
|
target/arm: Add gcs record for BLR with PAuth
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-58-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
978bad65f8
|
target/arm: Add gcs record for BLR
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-57-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
a664ba1fc6
|
target/arm: Add gcs record for BL
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-56-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
e85fc2c623
|
target/arm: Implement GCSSS2
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-55-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
22d20e3804
|
target/arm: Implement GCSSS1
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-54-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
a94b6aab8e
|
target/arm: Implement GCSPOPCX
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-53-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
75c8d645b9
|
target/arm: Implement GCSPOPX
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-52-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
6fb1678f90
|
target/arm: Implement GCSPUSHX
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-51-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
0982f58db6
|
target/arm: Implement GCSPOPM
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-50-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
3afe6037e7
|
target/arm: Implement GCSPUSHM
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-49-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
d383c43d6d
|
target/arm: Implement GCSB
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-48-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
6a5596bad3
|
target/arm: Implement GCSSTR, GCSSTTR
Note that CreateAccDescGCS() does not enable tagchecked,
and Data Aborts from GCS instructions do not set iss.isv.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-47-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
0e15a9a53c
|
target/arm: Emit v7m LTPSIZE exception out of line
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-46-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
923e7c432e
|
target/arm: Emit HSTR trap exception out of line
Use delay_exception_el to move the exception out of line.
Use TCG_COND_TSTNE instead of separate AND+NE.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-45-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
609f5d7692
|
target/arm: Introduce delay_exception{_el}
Add infrastructure to raise an exception out of line.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-44-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
49b49214f3
|
target/arm: Split {full,core}_a64_user_mem_index
Separate get_a64_user_mem_index into two separate functions, one which
returns the full ARMMMUIdx and one which returns the core mmu_idx.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20251008215613.300150-43-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:10 +01:00 |
|
 Richard HendersonandPeter Maydell
|
766c99beab
|
target/arm: Implement EXLOCKException for ELR_ELx and SPSR_ELx
If PSTATE.EXLOCK is set, and the GCS EXLOCK enable bit is set,
and nested virt is in the appropriate state, then we need to
raise an EXLOCK exception.
Since PSTATE.EXLOCK cannot be set without GCS being present
and enabled, no explicit check for GCS is required.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20251008215613.300150-42-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:09 +01:00 |
|
 Richard HendersonandPeter Maydell
|
399d40b985
|
target/arm: Split out access_nv1_with_nvx
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20251008215613.300150-41-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:09 +01:00 |
|
 Richard HendersonandPeter Maydell
|
3a6a957b89
|
target/arm: Use arm_hcr_el2_nvx_eff in access_nv1
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20251008215613.300150-40-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
2025-10-10 13:19:09 +01:00 |
|