Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0 |
|
#
24abb6b8 |
| 20-Feb-2023 |
Andrew Turner <andrew@FreeBSD.org> |
When saving a context on arm call the vfp handler
When adding kernel VFP support on arm a comparison instruction was removed, however the branch to vfp_save_state was still conditional. Remove the c
When saving a context on arm call the vfp handler
When adding kernel VFP support on arm a comparison instruction was removed, however the branch to vfp_save_state was still conditional. Remove the conditional check and always call into vfp_save_state as it could cause unexpected results otherwise.
Sponsored by: Arm Ltd
show more ...
|
#
6926e269 |
| 04-Feb-2023 |
Kornel Dulęba <kd@FreeBSD.org> |
arm: Add support for using VFP in kernel
Add missing logic to allow in-kernel VFP usage for ARMv7 NEON. The implementation is strongly based on arm64 code. It introduces a family of fpu_kern_* funct
arm: Add support for using VFP in kernel
Add missing logic to allow in-kernel VFP usage for ARMv7 NEON. The implementation is strongly based on arm64 code. It introduces a family of fpu_kern_* functions to enable the usage of VFP instructions in kernel. Apart from that the existing armv7 VFP logic was modified, taking into account that the state of the VFP registers can now be modified in the kernel.
Co-developed by: Wojciech Macek <wma@FreeBSD.org> Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D37419
show more ...
|
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
#
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 Foundati
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
show more ...
|
#
a36b6ec0 |
| 27-Jan-2018 |
Michal Meloun <mmel@FreeBSD.org> |
Implement mitigation for Spectre version 2 attacks on ARMv7.
Similarly as we already do for arm64, for mitigation is necessary to flush branch predictor when we: - do task switch - receive prefetch
Implement mitigation for Spectre version 2 attacks on ARMv7.
Similarly as we already do for arm64, for mitigation is necessary to flush branch predictor when we: - do task switch - receive prefetch abort on non-userspace address
The user can disable this mitigation by setting 'machdep.disable_bp_hardening' sysctl variable, or it can check actual system status by reading 'machdep.spectre_v2_safe'
The situation is complicated by fact that: - for Cortex-A8, the BPIALL instruction is effectively NOP until the IBE bit in ACTLR is set. - for Cortex-A15, the BPIALL is always NOP. The branch predictor can be only flushed by doing ICIALLU with special bit (Enable invalidates of BTB) set in ACTLR.
Since access to the ACTLR register is locked to secure monitor/firmware on most boards, they will also need update of firmware / U-boot. In worst case, when secure monitor is on-chip ROM (e.g. PandaBoard), the board is unfixable.
MFC after: 2 weeks Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D13931
show more ...
|
Revision tags: release/10.4.0, release/11.1.0, release/11.0.1 |
|
#
8c4282b3 |
| 24-Sep-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r305892 through r306302.
|
Revision tags: release/11.0.0 |
|
#
fa878ec3 |
| 22-Sep-2016 |
Ed Schouten <ed@FreeBSD.org> |
Make it possible to safely use TPIDRURW from userspace.
On amd64, arm64 and i386, we have the possibility to switch between TLS areas in userspace. The nice thing about this is that it makes it easi
Make it possible to safely use TPIDRURW from userspace.
On amd64, arm64 and i386, we have the possibility to switch between TLS areas in userspace. The nice thing about this is that it makes it easier to do light-weight threading, if we ever feel like doing that. On armv6, let's go into the same direction by making it possible to safely use the TPIDRURW register, which is intended for this purpose.
Clean up the ARMv6 code to remove md_tp entirely. Simply add a dedicated field to the PCB to hold the value of TPIDRURW across context switches, like we do for any other register. As userspace currently uses the read-only TPIDRURO register, simply ensure that we keep both values in sync where possible. The system calls for modifying the read-only register will simply write the intended value into both registers, so that it lazily ends up in the PCB during the next context switch.
Reviewed by: https://reviews.freebsd.org/D7951 Approved by: andrew Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D7951
show more ...
|
#
5c2cf818 |
| 16-Jun-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Update comments for the MD functions managing contexts for new threads, to make it less confusing and using modern kernel terms.
Rename the functions to reflect current use of the functions, instead
Update comments for the MD functions managing contexts for new threads, to make it less confusing and using modern kernel terms.
Rename the functions to reflect current use of the functions, instead of the historic KSE conventions: cpu_set_fork_handler -> cpu_fork_kthread_handler (for kthreads) cpu_set_upcall -> cpu_copy_thread (for forks) cpu_set_upcall_kse -> cpu_set_upcall (for new threads creation)
Reviewed by: jhb (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (hrs) Differential revision: https://reviews.freebsd.org/D6731
show more ...
|
#
a66dc0c5 |
| 25-May-2016 |
Ian Lepore <ian@FreeBSD.org> |
Include machine/acle-compat.h in cdefs.h on arm if the compiler doesn't have ACLE support built in. The ACLE (ARM C Language Extensions) defines a set of standardized symbols which indicate the arch
Include machine/acle-compat.h in cdefs.h on arm if the compiler doesn't have ACLE support built in. The ACLE (ARM C Language Extensions) defines a set of standardized symbols which indicate the architecture version and features available. ACLE support is built in to modern compilers (both clang and gcc), but absent from gcc prior to 4.4.
ARM (the company) provides the acle-compat.h header file to define the right symbols for older versions of gcc. Basically, acle-compat.h does for arm about the same thing cdefs.h does for freebsd: defines standardized macros that work no matter which compiler you use. If ARM hadn't provided this file we would have ended up with a big #ifdef __arm__ section in cdefs.h with our own compatibility shims.
Remove #include <machine/acle-compat.h> from the zillion other places (an ever-growing list) that it appears. Since style(9) requires sys/types.h or sys/param.h early in the include list, and both of those lead to including cdefs.h, only a couple special cases still need to include acle-compat.h directly.
Loves it: imp
show more ...
|
#
bdb02ec7 |
| 28-Apr-2016 |
Michal Meloun <mmel@FreeBSD.org> |
ARM: Use kernel pmap as intermediate mapping in context switch. On ARM, we can directly switch between translation tables only when the size of the mapping for any given virtual address is the same i
ARM: Use kernel pmap as intermediate mapping in context switch. On ARM, we can directly switch between translation tables only when the size of the mapping for any given virtual address is the same in the old and new translation tables. The load of new TTB and subsequent TLB flush is not atomic operation. So speculative page table walk can load TLB entry from new mapping while rest of TLB entries are still the old ones. In worst case, this can lead to situation when TLB cache can contain multiple matching TLB entries. One (from old mapping) L2 entry for VA + 4k and one (from new mapping) L1 entry for VA.
Thus, we must switch to kernel pmap translation table as intermediate mapping because all sizes of these (old pmap and kernel pmap) mappings are same (or unmapped). The same is true for switch from kernel pmap translation table to new pmap one.
show more ...
|
Revision tags: release/10.3.0 |
|
#
a49d8b6e |
| 06-Feb-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r294961 through r295350.
|
#
2414e864 |
| 03-Feb-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
MfH @r295202
Expect to see panics in routing code at least now.
|
#
221b3499 |
| 02-Feb-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
74767d85 |
| 31-Jan-2016 |
Michal Meloun <mmel@FreeBSD.org> |
ARM: Convert spaces to tabs, fix formatting. Not a functional change.
|
#
23c2675f |
| 31-Jan-2016 |
Michal Meloun <mmel@FreeBSD.org> |
ARM: Next round of cleanup in swtch-v*.S. - remove now useless #if __ARM_ARCH conditional - use macro for accessing CP15 registers - remove unused PCPU_SIZE
Pointed by: kib
|
#
46c90126 |
| 30-Jan-2016 |
Michal Meloun <mmel@FreeBSD.org> |
ARM: Split swtch.S into common, ARMv4 and ARMv6 parts. Cleanup them.
|