| #
4f82ce51
|
| 03-Feb-2026 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add the Fine-Grained Trap registers
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54685
|
| #
be0ded8d
|
| 12-Nov-2025 |
Sarah Walker <sarah.walker2@arm.com> |
arm64: Add a define for MDCR_EL2_E2PB_EL1_0_NO_TRAP
This will be used by the SPE driver.
(commit message by andrew@)
Reviewed by: andrew Sponsored by: Arm Ltd
|
| #
b57a571a
|
| 27-Oct-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Split out accessing special registers
We shouldn't need to include armreg.h just to access special registers that are not defined in this file. Split out the parts that should be common with
arm64: Split out accessing special registers
We shouldn't need to include armreg.h just to access special registers that are not defined in this file. Split out the parts that should be common with arm64.h and hypervisor.h.
Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D53324
show more ...
|
| #
4aa762f3
|
| 02-Oct-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Sort hypervisor.h
Move the MDCR_EL2 macros into the correct alphabetical location.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D52805
|
| #
d552556b
|
| 02-Oct-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Rename the MDCR_EL2 macros
To be consistent within the register prefix all fields with MDCR_EL2_.
Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org
arm64: Rename the MDCR_EL2 macros
To be consistent within the register prefix all fields with MDCR_EL2_.
Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D52804
show more ...
|
| #
f38792ff
|
| 22-Sep-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64/vmm: Clean up enabling guest timer access
Clean up the name of CNTHCTL_EL2 field macros and expand to include more fields. This makes it easier to see which accesses are trapped or not trapped
arm64/vmm: Clean up enabling guest timer access
Clean up the name of CNTHCTL_EL2 field macros and expand to include more fields. This makes it easier to see which accesses are trapped or not trapped.
While here set the register directly. We already set it in locore.S so there is no need to read that and modify it.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D51817
show more ...
|
| #
3a4927ad
|
| 30-Jul-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add CNTPOFF_EL2 op/CR values
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D51376
|
| #
3041b636
|
| 24-Jan-2025 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Support mapping a 52-bit physical adddress
When FEAT_LPA2 is enabled the physical address space increases from 48-bits to 52-bits. The top two address bits are moved to the now unused shareab
arm64: Support mapping a 52-bit physical adddress
When FEAT_LPA2 is enabled the physical address space increases from 48-bits to 52-bits. The top two address bits are moved to the now unused shareability field.
Update the kernel to support this new larger address space.
Reviewed by: alc, kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46624
show more ...
|
| #
4d1acfb1
|
| 23-Jan-2025 |
Harry Moulton <harry.moulton@arm.com> |
arm64: add HCRX_EL2 register
HCRX_EL2 is the Extended Hypervisor Configuration Register introduced with FEAT_HCX in ARMv8.7. All fields in this register are used for features in ARMv8.7 and above. I
arm64: add HCRX_EL2 register
HCRX_EL2 is the Extended Hypervisor Configuration Register introduced with FEAT_HCX in ARMv8.7. All fields in this register are used for features in ARMv8.7 and above. Initially zero the register, incase firmware has not properly configured it.
Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D48583 Signed-off-by: Harry Moulton <harry.moulton@arm.com>
show more ...
|
| #
e248e08a
|
| 06-Dec-2024 |
John Baldwin <jhb@FreeBSD.org> |
arm64: Add a constant to document the TZ bit in CPTR_EL2 without VHE
Reviewed by: emaste Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D47882
|
| #
fe5ed249
|
| 27-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Don't trap SVE to EL2
As with floating point instructions don't trap SVE instructions to the hypervisor. This lets us handle then in the kernel.
Reviewed by: imp (earlier version) Sponsored
arm64: Don't trap SVE to EL2
As with floating point instructions don't trap SVE instructions to the hypervisor. This lets us handle then in the kernel.
Reviewed by: imp (earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43303
show more ...
|
| #
d5463136
|
| 11-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add CPTR_TRAP_ALL and use it in vmm
Add a new macro that enables all CPTR_EL2 traps. This helps ensure we trap all extensions we don't support.
Sponsored by: Arm Ltd Differential Revision: h
arm64: Add CPTR_TRAP_ALL and use it in vmm
Add a new macro that enables all CPTR_EL2 traps. This helps ensure we trap all extensions we don't support.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46516
show more ...
|
| #
9f3d15fd
|
| 11-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add CPTR_E2H_TTA
The TTA field moves depending on the HCR_EL2.E2H field. Add a macro to hold the E2H == 1 case.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46515
|
| #
16e66192
|
| 11-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add E2H to CPTR_EL2 register values
Rename register fields that are only valid when HCR_EL2.E2H == 1. Some fields move around depending on the value of the E2H field.
Sponsored by: Arm Ltd D
arm64: Add E2H to CPTR_EL2 register values
Rename register fields that are only valid when HCR_EL2.E2H == 1. Some fields move around depending on the value of the E2H field.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46514
show more ...
|
| #
7a488d83
|
| 11-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Adjust the indentation of CPTR_EL2 values
Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46513
|
| #
610348a9
|
| 03-Jul-2024 |
Zachary Leaf <zachary.leaf@arm.com> |
arm64: add additional MDCR_EL2 fields
Monitor Debug Configuration Register provides EL2 configuration options for self-hosted debug and the Performance Monitors Extension.
Reviewed by: andrew Spons
arm64: add additional MDCR_EL2 fields
Monitor Debug Configuration Register provides EL2 configuration options for self-hosted debug and the Performance Monitors Extension.
Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46191
show more ...
|
| #
d52c3190
|
| 05-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Make shareability attributes dynamic
When LPA2 is enabled the shareability attribute in the page table are replaces with output address bits. To support a larger physical address space make t
arm64: Make shareability attributes dynamic
When LPA2 is enabled the shareability attribute in the page table are replaces with output address bits. To support a larger physical address space make this attribute dynamic so we only set it when appropriate.
Reviewed by: alc, kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46394
show more ...
|
| #
a745cdc1
|
| 19-Aug-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64/vmm: Teach the vtimer about VHE
Teach the virtual timer about the cnthctl_el2 field layout under VHE. As with non-VHE we need to trap the physical timer and not trap the virtual timer.
Sponso
arm64/vmm: Teach the vtimer about VHE
Teach the virtual timer about the cnthctl_el2 field layout under VHE. As with non-VHE we need to trap the physical timer and not trap the virtual timer.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46074
show more ...
|
| #
034c83fd
|
| 23-Jul-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Ensure sctlr and pstate are in known states
Before entering the kernel exception level ensure sctlr_el2 and sctlr_el1 are in a known state. The EOS flag needs to be set to ensure an eret inst
arm64: Ensure sctlr and pstate are in known states
Before entering the kernel exception level ensure sctlr_el2 and sctlr_el1 are in a known state. The EOS flag needs to be set to ensure an eret instruction is a context synchronization event.
Set spcr_el1 when entering the kernel from EL1 and use an eret instruction to return to the caller. This ensures the CPU pstate is consistent with the value in spcr_el1 as it is the only way to set it directly.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45528
show more ...
|
| #
997511df
|
| 23-Jul-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Support counter access with E2H
When entering the kernel with the E2H field set the layout of the cnthctl_el2 register changes. Use the correct field locations to enable access to the counter
arm64: Support counter access with E2H
When entering the kernel with the E2H field set the layout of the cnthctl_el2 register changes. Use the correct field locations to enable access to the counter and timer registers from EL1.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45529
show more ...
|
| #
b3bbec37
|
| 21-Feb-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add a macro to find a VM fault address
Add a macro to find which bits from far_el2 are needed to be copied to get the full intermediate physical address (IPA).
The hpfar_el2 register only co
arm64: Add a macro to find a VM fault address
Add a macro to find which bits from far_el2 are needed to be copied to get the full intermediate physical address (IPA).
The hpfar_el2 register only contains a 4k aligned fault address. We need to include the lower bits from far_el2 if we need the full faulting IPA.
show more ...
|
| #
9c52f98c
|
| 21-Feb-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Add the TCR_EL2.PS mask
|
| #
4f12883c
|
| 01-Dec-2023 |
Mark Johnston <markj@FreeBSD.org> |
arm64: Add register definitions for MDCR_EL2
This is needed to support the bhyve gdb stub implementation on arm64.
Reviewed by: andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revis
arm64: Add register definitions for MDCR_EL2
This is needed to support the bhyve gdb stub implementation on arm64.
Reviewed by: andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D42867
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
dc8616ed
|
| 24-Feb-2023 |
Kyle Evans <kevans@FreeBSD.org> |
arm64: set FPEN if we're stuck with HCR_EL2.E2H
On Apple Silicon systems, E2H can't actually be cleared; we're stuck with it. Check it again when we're setting up CPTR_EL2 and set FPEN appropriatel
arm64: set FPEN if we're stuck with HCR_EL2.E2H
On Apple Silicon systems, E2H can't actually be cleared; we're stuck with it. Check it again when we're setting up CPTR_EL2 and set FPEN appropriately to avoid later trapping to EL2 on writes to SIMD registers.
Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D38819
show more ...
|