#
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 |
|
#
a30149b2 |
| 12-Jun-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Create a version of vfp_save_state for cpu_switch
This will be used when we add SVE support to reduce the registers needed to be saved on context switch.
Reviewed by: imp Sponsored by: Arm L
arm64: Create a version of vfp_save_state for cpu_switch
This will be used when we add SVE support to reduce the registers needed to be saved on context switch.
Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43305
show more ...
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
12257233 |
| 03-Jan-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Split out a savectx version of vfp_save_state
Rather than try to detect when vfp_save_state is called by savectx use a separate function that sets up the pcb as needed.
Reviewed by: imp Spon
arm64: Split out a savectx version of vfp_save_state
Rather than try to detect when vfp_save_state is called by savectx use a separate function that sets up the pcb as needed.
Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43304
show more ...
|
Revision tags: 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 ...
|
#
df0d0fc9 |
| 16-May-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add helpers to allocate an arm64 VFP state struct
This will be used by bhyve and will allow the size to change, e.g. for SVE.
Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https:/
Add helpers to allocate an arm64 VFP state struct
This will be used by bhyve and will allow the size to change, e.g. for SVE.
Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D40131
show more ...
|
#
255adf35 |
| 16-May-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Export arm64 VFP handling functions
These will be used by bhyve to manage the host VFP registers, e.g. saving the host state before entering a guest.
Reviewed by: markj Sponsored by: Arm Ltd Differ
Export arm64 VFP handling functions
These will be used by bhyve to manage the host VFP registers, e.g. saving the host state before entering a guest.
Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D40130
show more ...
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
baf8f20a |
| 24-Jun-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Split out vfp_new_thread
To keep the vfp thread creation code in one place move into vfp.c. This will also help with adding SVE support as it depends on VFP.
Reviewed by: markj Sponsored by: The Fr
Split out vfp_new_thread
To keep the vfp thread creation code in one place move into vfp.c. This will also help with adding SVE support as it depends on VFP.
Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35615
show more ...
|
Revision tags: release/13.1.0 |
|
#
add00c38 |
| 23-Mar-2022 |
John Baldwin <jhb@FreeBSD.org> |
Use a regset for NT_ARM_VFP.
This includes adding support for NT_ARM_VFP for 32-bit binaries running under aarch64 kernels both for ptrace(), and coredumps via the kernel and gcore.
Reviewed by: an
Use a regset for NT_ARM_VFP.
This includes adding support for NT_ARM_VFP for 32-bit binaries running under aarch64 kernels both for ptrace(), and coredumps via the kernel and gcore.
Reviewed by: andrew, markj Sponsored by: University of Cambridge, Google, Inc. Differential Revision: https://reviews.freebsd.org/D34448
show more ...
|
Revision tags: release/12.3.0 |
|
#
fd860ace |
| 25-Aug-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Remove the DN flag from the initial arm64 fpcr value
This fixes software that expects NaN values to propagate.
Sponsored by: The FreeBSD Foundation
|
#
9feff969 |
| 08-Aug-2021 |
Ed Maste <emaste@FreeBSD.org> |
Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights
These ones were unambiguous cases where the Foundation was the only listed copyright holder (in the associated license block).
S
Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights
These ones were unambiguous cases where the Foundation was the only listed copyright holder (in the associated license block).
Sponsored by: The FreeBSD Foundation
show more ...
|
Revision tags: release/13.0.0 |
|
#
df754977 |
| 23-Mar-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Replace the arm64 initial_fpcr with a macro
This value was never changed from its default value. Replace it with a macro.
Sponsored by: Innovate UK
|
#
953a7d7c |
| 09-Mar-2021 |
Alex Richardson <arichardson@FreeBSD.org> |
Arch64: Clear VFP state on execve()
I noticed that many of the math-related tests were failing on AArch64. After a lot of debugging, I noticed that the floating point exception flags were not being
Arch64: Clear VFP state on execve()
I noticed that many of the math-related tests were failing on AArch64. After a lot of debugging, I noticed that the floating point exception flags were not being reset when starting a new process. This change resets the VFP inside exec_setregs() to ensure no VFP register state is leaked from parent processes to children.
This commit also moves the clearing of fpcr that was added in 65618fdda0f27 from fork() to execve() since that makes more sense: fork() can retain current register values, but execve() should result in a well-defined clean state.
Reviewed By: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29060
show more ...
|
#
65618fdd |
| 23-Jan-2021 |
Michal Meloun <mmel@FreeBSD.org> |
arm64: Initialize VFP control register.
The RW fields in this register reset to architecturally unknown values, so initialize these to the proper rounding and denormal mode. MFC after: 1 week
|
Revision tags: release/12.2.0 |
|
#
50cedfed |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
arm64: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0 |
|
#
400c0119 |
| 12-Jun-2020 |
Andrew Turner <andrew@FreeBSD.org> |
Teach the arm64 vfp.h about struct thread.
Ensure struct thread is defined in vfp.h. In some cases it is not and stops the kernel from building.
Sponsored by: Innovate UK
|
Revision tags: release/12.1.0, release/11.3.0 |
|
#
8c9c3144 |
| 13-Jan-2019 |
Olivier Houchard <cognet@FreeBSD.org> |
Impleent COMPAT_FREEBSD32 for arm64. This is based on early work by andrew@.
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
849ce31a |
| 23-Feb-2018 |
Conrad Meyer <cem@FreeBSD.org> |
Remove unused error return from API that cannot fail
No implementation of fpu_kern_enter() can fail, and it was causing needless error checking boilerplate and confusion. Change the return code to v
Remove unused error return from API that cannot fail
No implementation of fpu_kern_enter() can fail, and it was causing needless error checking boilerplate and confusion. Change the return code to void to match reality.
(This trivial change took nine days to land because of the commit hook on sys/dev/random. Please consider removing the hook or otherwise lowering the bar -- secteam never seems to have free time to review patches.)
Reported by: Lachlan McIlroy <Lachlan.McIlroy AT isilon.com> Reviewed by: delphij Approved by: secteam (delphij) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D14380
show more ...
|
Revision tags: release/10.4.0 |
|
#
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.
|
#
52453d22 |
| 09-Jun-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Allow the arm64 machine/vfp.h to be included without first including machine/pcb.h. It he latter is only needed for struct pcb.
|
#
5763f796 |
| 21-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307383 through r307735.
|