#
c2e0d56f |
|
04-Jun-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Support BTI checking in most of the kernel LLD has the -zbti-report=error argument to check if the BTI note is present when linking. To allow for this to be used when linking the kernel and modules: - Add the BTI note to the remaining assembly files - Mark ptrauth.c as protected by BTI - Disable -zbti-report for vmm hypervisor switching code as it's not used there. The linux64 module doesn't build with the flag as it includes vdso code that doesn't include the note. Reviewed by: imp, kib, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45466
|
#
9fabf976 |
|
18-Nov-2023 |
Eliot Solomon <ehs3@rice.edu> |
arm64: fix free queue and reservation configuration for 16KB pages Correctly configure the free page queues and the reservation size when the base page size is 16KB. In particular, the reservation size was less than the L2 Block size, making L2 promotions and mappings all but impossible. Reviewed by: markj Tested by: gallatin Differential Revision: https://reviews.freebsd.org/D42737
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
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). Sponsored by: The FreeBSD Foundation
|
#
474c444e |
|
18-Oct-2020 |
Andrew Turner <andrew@FreeBSD.org> |
Move the arm64 userspace access checks to macros In the functions that copy between userspace and kernel space we check the user space address is valid before performing the copy. These are mostly identical within each type of function so create two macros to perform the check. Obtained from: CheriBSD Sponsored by: Innovate UK
|
#
3d839d4b |
|
14-Oct-2020 |
Andrew Turner <andrew@FreeBSD.org> |
Remove direct user access from the arm64 copyinstr These already use the load variant that simulates userspace access. Remove the macros that enable normal loads and stores from userspace as they are unneeded. Sponsored by: Innovate UK
|
#
fc2a8776 |
|
20-Mar-2018 |
Ed Maste <emaste@FreeBSD.org> |
Rename assym.s to assym.inc assym is only to be included by other .s files, and should never actually be assembled by itself. Reviewed by: imp, bdrewery (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14180
|
#
d6a0af23 |
|
13-Apr-2017 |
Andrew Turner <andrew@FreeBSD.org> |
In ARMv8.1 ARM has added a process state bit to disable access to userspace from the kernel. Make use of this to restrict accessing userspace to just the functions that explicitly handle crossing the user kernel boundary. Reported by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D10371
|
#
c577e950 |
|
11-Apr-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Use the unprivileged variant of the load and store instructions most places possible in the kernel. This forces these functions to fail if userspace is unable to access a given memory location, even if it is in the user memory range. This will simplify adding Privileged Access Never support later. MFC after: 1 week Sponsored by: DARPA, AFRL
|
#
c7d4b461 |
|
06-Apr-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Allow vmparam.h to be included from assembly files on arm64. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
f379b463 |
|
24-Mar-2016 |
Wojciech Macek <wma@FreeBSD.org> |
arm64: Fixing user space boudary checking in copyinout.S Big buffer size could cause integer overflow and as a result attempt to copy beyond VM_USERMAX_ADDRESS. Fixing copyinstr boundary checking where compared value has been overwritten by accident when setting fault handler. Submitted by: Dominik Ermel <der@semihalf.com> Obtained from: Semihalf Sponsored by: Cavium Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D5719
|
#
f3e730a1 |
|
23-Mar-2016 |
Wojciech Macek <wma@FreeBSD.org> |
ARM64 copyinout improvements The first of set of patches. Use wider load/stores when aligned buffer is being copied. In a simple test: dd if=/dev/zero of=/dev/null bs=1M count=1024 the performance jumped from 410MB/s up to 3.6GB/s. TODO: - better handling of unaligned buffers (WiP) - implement similar mechanism to bzero Submitted by: Dominik Ermel <der@semihalf.com> Obtained from: Semihalf Sponsored by: Cavium Reviewed by: kib, andrew, emaste Differential Revision: https://reviews.freebsd.org/D5664
|
#
153bf0bc |
|
17-Oct-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Add checks for kernel VA accesses to the copyin(9) and related functions on arm64. Reviewed by: andrew Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D3907
|
#
8fe99e42 |
|
09-Sep-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Rework copyinstr to: * Fail when the length passed in is 0 * Remove an unneeded increment of the count on success * Return ENAMETOOLONG when the input pointer is too long Sponsored by: ABT Systems Ltd
|
#
e5acd89c |
|
13-Apr-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Bring in the start of the arm64 kernel. This is only the minimum set of files needed to boot in qemu. As such it is missing a few things. The bus_dma code is currently only stub functions with a full implementation from the development tree to follow. The gic driver has been copied as the interrupt framework is different. It is expected the two drivers will be merged by the arm intrng project, however this will need to be imported into the tree and support for arm64 would need to be added. This includes code developed by myself, SemiHalf, Ed Maste, and Robin Randhawa from ARM. This has been funded by the FreeBSD Foundation, with early development by myself in my spare time with assistance from Robin. Differential Revision: https://reviews.freebsd.org/D2199 Reviewed by: emaste, imp Relnotes: yes Sponsored by: The FreeBSD Foundation
|