History log of /freebsd/sys/arm64/include/armreg.h (Results 1 – 25 of 192)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


# 4e3831c6 23-Jan-2025 Harry Moulton <harry.moulton@arm.com>

arm64: fix ID_AA64ISAR2_WFxT_IMPL value

Bits 3:0 of ID_AA64ISAR2_EL1 are reserved for FEAT_WFxT in ARMv8.7, with
bit 1 used to determine whether the feature is supported. The macro,
ID_AA64ISAR2_WFx

arm64: fix ID_AA64ISAR2_WFxT_IMPL value

Bits 3:0 of ID_AA64ISAR2_EL1 are reserved for FEAT_WFxT in ARMv8.7, with
bit 1 used to determine whether the feature is supported. The macro,
ID_AA64ISAR2_WFxT_IMPL can be used to check if this bit is set, however
it is currently incorrectly set to check bit 0. This has now been
corrected.

Reviewed by: andrew
Sponsored by: Arm Ltd
Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Differential Revision: https://reviews.freebsd.org/D48577

show more ...


# 4b516226 11-Dec-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add CTR_EL0 op and CR values

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47813


# b77b7aeb 11-Dec-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Fix the alt name for ZCR_EL1

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47810


Revision tags: release/14.2.0
# a84653c5 24-Oct-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Don't enable interrupts when in a spinlock

When we receive an exception while in a spinlock we shouldn't enable
interrupts. When entering a spinlock we disable interrupts so enabling
them her

arm64: Don't enable interrupts when in a spinlock

When we receive an exception while in a spinlock we shouldn't enable
interrupts. When entering a spinlock we disable interrupts so enabling
them here could cause surprising results.

The three cases that could cause this are:
1. A break-before-make sequence
2. Accessing possibly unmapped code with a fault handler
3. Buggy code

1 and 2 are supported later in the data abort handler, and 3 should be
fixed when found.

Reviewed by: mmel, kib, markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D46816

show more ...


# a090372f 18-Oct-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Decode CTR_EL0 via a table

Use the same method to decode CTR_EL0 as for the ID registers. This
will allow us to create a common view over all CPUs.

This will also allow us to create a common

arm64: Decode CTR_EL0 via a table

Use the same method to decode CTR_EL0 as for the ID registers. This
will allow us to create a common view over all CPUs.

This will also allow us to create a common view for userspace and the
kernel if we detect a difference on some CPUs, or to handle errata.

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47124

show more ...


# 590c3232 18-Oct-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add ID register field width values

In preperation for supporting non-4 bit field width to identcpu.c,
e.g. for ctr_el0, add the width of the existing ID register fields.

Reviewed by: imp
Spo

arm64: Add ID register field width values

In preperation for supporting non-4 bit field width to identcpu.c,
e.g. for ctr_el0, add the width of the existing ID register fields.

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47118

show more ...


# 2b3d9ac8 18-Oct-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Remove old I-Cache types

The VPIPT and AIVIVT cache types are reserved from Armv8.0. Remove
them as nothing will report these values.

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revi

arm64: Remove old I-Cache types

The VPIPT and AIVIVT cache types are reserved from Armv8.0. Remove
them as nothing will report these values.

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47117

show more ...


# 205c1007 27-Sep-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Enable SVE in userspace

Report when SVE is present and allow it to be used by calling
sve_restore_state on an SVE exception from userspace.

Reviewed by: kib
Sponsored by: Arm Ltd
Differentia

arm64: Enable SVE in userspace

Report when SVE is present and allow it to be used by calling
sve_restore_state on an SVE exception from userspace.

Reviewed by: kib
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43310

show more ...


# 332c4263 27-Sep-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Initial SVE support

Add initial kernel support for SVE. This detects if SVE is present on
all CPUs, and if so allows for the use of SVE in the future.

As the SVE registers are a superset of

arm64: Initial SVE support

Add initial kernel support for SVE. This detects if SVE is present on
all CPUs, and if so allows for the use of SVE in the future.

As the SVE registers are a superset of the VFP registers we don't need
to restore the VFP registers when SVE is enabled.

Ths interface to enable SVE is provided, but not used until SVE is
supported in signals and with ptrace.

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43306

show more ...


Revision tags: release/13.4.0
# 1f0174c9 10-Aug-2024 Ayrton Munoz <a.munoz3327@gmail.com>

arm64: Add support for FIQs

arm64 supports FIQs, fast interrupt requests, which are required by
Apple silicon which hardwires the ARM timers to FIQs. This is needed by
the upcoming Apple Interrupt C

arm64: Add support for FIQs

arm64 supports FIQs, fast interrupt requests, which are required by
Apple silicon which hardwires the ARM timers to FIQs. This is needed by
the upcoming Apple Interrupt Controller. Based on work by andrew@ and
kevans@ in https://reviews.freebsd.org/D40161.

Signed-off-by: Ayrton Munoz <a.munoz3327@gmail.com>
Co-authored-by: Kyle Evans <kevans@FreeBSD.org>
Co-authored-by: Andrew Turner <andrew@FreeBSD.org>
Reviewed-by: imp,mmel,mhorne
Pull-Request: https://github.com/freebsd/freebsd-src/pull/1363

show more ...


# 3a3aa2cc 05-Sep-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Remove TCR_CACHE_ATTRS and TCR_SMP_ATTRS

These are only used in one place so expand them there.

While here always set TCR_SH0_IS and TCR_SH1_IS. There is no advantage
to not set them in a UP

arm64: Remove TCR_CACHE_ATTRS and TCR_SMP_ATTRS

These are only used in one place so expand them there.

While here always set TCR_SH0_IS and TCR_SH1_IS. There is no advantage
to not set them in a UP kernel.

Reviewed by: alc, kib, markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D46393

show more ...


# 7be11454 05-Sep-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add the tcr_el2 ds field

This will be used to support FEAT_LPA2 to allow more than 48 bits of
physical address space.

Reviewed by: alc, kib, markj
Sponsored by: Arm Ltd
Differential Revision

arm64: Add the tcr_el2 ds field

This will be used to support FEAT_LPA2 to allow more than 48 bits of
physical address space.

Reviewed by: alc, kib, markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D46392

show more ...


# 8b017284 29-Aug-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Fix the ESR_EL1_op2 value

This leads to an unallocated register. Fix the value to point to
ESR_EL1.

Sponsored by: Arm Ltd


# 4db15ab2 19-Aug-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add counter timer registers to armreg.h

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D46071


# 47361851 23-Jul-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add EL1 and EL12 register alt names

When adding VHE support we may need to access these registers using
the _EL12 or _EL1 name depending on if VHE is enabled or not.

Add the registers we wil

arm64: Add EL1 and EL12 register alt names

When adding VHE support we may need to access these registers using
the _EL12 or _EL1 name depending on if VHE is enabled or not.

Add the registers we will likely need to access from VHE so these can
be updated in the guest switcher code.

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45525

show more ...


# 86bafddd 10-Jun-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Fix indentation to be consistent

Adjust the mair_el1 macro indentation to be consistent with the
surrounding macros.

Reviewed by: emaste
Sponsored by: Arm Ltd
Differential Revision: https://

arm64: Fix indentation to be consistent

Adjust the mair_el1 macro indentation to be consistent with the
surrounding macros.

Reviewed by: emaste
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45524

show more ...


Revision tags: release/14.1.0
# 57d714a2 22-May-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add the pointer auth registers to armreg.h

Add the pointer authentication registers to armreg.h. These will be
used to support pointer authentication in a kernel built with GCC.

Reviewed by:

arm64: Add the pointer auth registers to armreg.h

Add the pointer authentication registers to armreg.h. These will be
used to support pointer authentication in a kernel built with GCC.

Reviewed by: jhb
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45262

show more ...


# 29c1cf98 22-May-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Use the UL macro in TCR_EL1 defines

While clang can handle numbers with a UL suffix in assembly files
gcc/gas is unable to. Switch to use the UL macro for TCR_EL1 defines as
some are used in

arm64: Use the UL macro in TCR_EL1 defines

While clang can handle numbers with a UL suffix in assembly files
gcc/gas is unable to. Switch to use the UL macro for TCR_EL1 defines as
some are used in locore.S

Reviewed by: brooks, jhb
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45261

show more ...


# 4f8ba1c9 10-May-2024 Zachary Leaf <zachary.leaf@arm.com>

arm64: add CONTEXTIDR_EL1 reg

CONTEXTIDR_EL1 is used in debug and trace features to identify the
current process or context.

Reviewed by: andrew
Sponsored by: Arm Ltd
Differential Revision: https:/

arm64: add CONTEXTIDR_EL1 reg

CONTEXTIDR_EL1 is used in debug and trace features to identify the
current process or context.

Reviewed by: andrew
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45173

show more ...


Revision tags: release/13.3.0, release/14.0.0
# 10b3eac8 20-Sep-2023 Zachary Leaf <zachary.leaf@arm.com>

arm64: add PMBSR_MSS_{BSC,FSC} status code field

Bits [5:0] of PMBSR_MSS encodes either Buffer Status Code (BSC) or Fault
Status Code (FSC) depending on PMBSR_EC value.

Add PMBSR_MSS_{BSC,FSC} to c

arm64: add PMBSR_MSS_{BSC,FSC} status code field

Bits [5:0] of PMBSR_MSS encodes either Buffer Status Code (BSC) or Fault
Status Code (FSC) depending on PMBSR_EC value.

Add PMBSR_MSS_{BSC,FSC} to cover this field.

Reviewed by: andrew
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45172

show more ...


# f7bdaa10 10-May-2024 Zachary Leaf <zachary.leaf@arm.com>

arm64: make SPE regs use ALT_NAME macro

When the register is not defined in Armv8.0 i.e. added in a later
extension, like SPE added in v8.2, the alternative name format of:
S<op0>_<op1>_C<crn>_C

arm64: make SPE regs use ALT_NAME macro

When the register is not defined in Armv8.0 i.e. added in a later
extension, like SPE added in v8.2, the alternative name format of:
S<op0>_<op1>_C<crn>_C<crm>_<op2>
should be used; otherwise, calls to {READ,WRITE}_SPECIALREG() will
fail.

Use the MRS_REG_ALT_NAME() macro for SPE changing hex to decimal as
required by the macro.

Reviewed by: andrew
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45171

show more ...


# d6d860c7 13-May-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add MRS_REG_ALT_NAME ID register macros

These can be used even when the compiler is too old for the register
to be included.

Reviewed by: Zachary Leaf <zachary.leaf@arm.com>
Sponsored by: Ar

arm64: Add MRS_REG_ALT_NAME ID register macros

These can be used even when the compiler is too old for the register
to be included.

Reviewed by: Zachary Leaf <zachary.leaf@arm.com>
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45176

show more ...


# c802b486 12-Mar-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add EL1 hardware breakpoint exceptions

Reviewed by: jhb
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D44353


# 09ac9cf8 21-Feb-2024 Andrew Turner <andrew@FreeBSD.org>

arm64: Add ISS_MSR_REG for ESR_ELx.ISS values

Add a macro to get the ESR_ELx ISS value when we trap accessing a
special register.


12345678