#
a7c5c88c |
| 15-Oct-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Stop trashing x28 in savectx
While here make it return void, we don't set any useful return value and nothing checks for it.
Sponsored by: Arm Ltd
|
#
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, release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
d5d97bed |
| 26-Jul-2023 |
Mike Karels <karels@FreeBSD.org> |
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 wh
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 when building with -m32. Ifdef the arm64 headers that are installed in /usr/include/machine and used by user-level software (including references from /usr/include/*.h) so that if __arm__ is defined when including the arm64 version, <arm/foo.h> is included rather than using the rest of the file's contents. Some arm headers had no arm64 equivalent; headers were added just to do the redirection. These files use #error if __arm__ is not defined to guard against confusion. Also add an include/arm Makefile, and modify Makefiles as needed to install everything, including the arm files in /usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h.
The new arm64 headers are: acle-compat.h cpuinfo.h sysreg.h
Reviewed by: jrtc27, imp Differential Revision: https://reviews.freebsd.org/D40944
show more ...
|
#
6a9c2e63 |
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://review
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39777
show more ...
|
#
fb421e96 |
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Make arm64 pcb padding explicit
There is padding between some fields. Mark those I have found so they can be reused later if needed.
Sponsored by: Arm Ltd
|
Revision tags: release/13.2.0 |
|
#
1c1f31a5 |
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm Ltd Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35378
show more ...
|
#
1c33a94a |
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: A
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: Arm Ltd
show more ...
|
Revision tags: release/12.4.0 |
|
#
376025cf |
| 06-Sep-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Move the non-exported PCB_FP_* flags to the upper bits
To make way for a flag for SVE move the PCB_FP_* flags we don't export to userspace to the upper bits.
Sponsored by: The FreeBSD Foundation
|
Revision tags: release/13.1.0, release/12.3.0, release/13.0.0 |
|
#
5f66d5a3 |
| 21-Dec-2020 |
mhorne <mhorne@FreeBSD.org> |
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus.
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus. Rather than writing to this field in more places, it can be removed in favor of using the value in the link register.
To make this clearer, pcb->pcb_x[30] is renamed to pcb->pcb_lr, similar to what already exists in struct trapframe. Also, prefer lr to x30 in assembly, as it better conveys intention.
This improves PC_REGS() for kdb_thread != curthread. It is required for a functional gdb(4) stub, fixing the output of `info threads`, in particular.
The space occupied by pcb_pc is retained, for compatibility with kgdb.
Reviewed by: markj, jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27720
show more ...
|
Revision tags: release/12.2.0, release/11.4.0 |
|
#
05f39d1a |
| 03-Nov-2019 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to set hardware breakpoints.
The struct dbreg is based on Linux to ease adding hardware breakpoint support to debuggers.
Reviewed by: jhb Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22195
show more ...
|
Revision tags: release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0, release/10.4.0 |
|
#
b754c279 |
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|
#
1be4c195 |
| 25-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322870
|
#
6683b30c |
| 22-Aug-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Move the l0 pagetable address to struct mdproc. It is a property of the whole process so should live there.
Sponsored by: DARPA, AFRL
|
#
531c2d7a |
| 24-Jul-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r320180
|
#
bca9d05f |
| 23-Jul-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r319973 through 321382.
|
Revision tags: release/11.1.0 |
|
#
2fef18f8 |
| 19-Jul-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320994 through r321238.
|
#
a2d16bc5 |
| 18-Jul-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for passing FPU_KERN_NOCTX to fpu_kern_enter on arm64. This will be used to call into UEFI from the kernel.
Sponsored by: DARPA, AFRL
|
#
686fb94a |
| 10-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r319548 through r319778.
|
#
9a19869a |
| 09-Jun-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Store the read-only thread pointer when scheduling a new thread. This is not currently set, however we may wish to set it later.
|
#
5763f796 |
| 21-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307383 through r307735.
|
#
6ed982a2 |
| 20-Oct-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for the fpu_kern(9) KPI on arm64. It hooks into the existing VFP code to store the old context, with lazy loading of the new context when needed.
FPU_KERN_NOCTX is missing as this is unu
Add support for the fpu_kern(9) KPI on arm64. It hooks into the existing VFP code to store the old context, with lazy loading of the new context when needed.
FPU_KERN_NOCTX is missing as this is unused in the crypto code this has been tested with, and I am unsure on the requirements of the UEFI Runtime Services.
Reviewed by: kib Obtained from: ABT Systeems Ltd Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8276
show more ...
|
#
4c247b97 |
| 18-Oct-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Add PCB_FP_USERMASK so we can mask off floating point flags that should not be sent to userspace, for example the future flag to tell when we are using floating point in the kernel.
Obtained from: A
Add PCB_FP_USERMASK so we can mask off floating point flags that should not be sent to userspace, for example the future flag to tell when we are using floating point in the kernel.
Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
show more ...
|
#
a0e610c4 |
| 16-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r306906 through r307382.
|
#
8ff00301 |
| 14-Oct-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Rework how we store the VFP registers in the pcb. This will be used when creating a floating-point context within the kernel without having to move the stored values in memory.
Sponsored by: The Fre
Rework how we store the VFP registers in the pcb. This will be used when creating a floating-point context within the kernel without having to move the stored values in memory.
Sponsored by: The FreeBSD Foundation
show more ...
|