#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
5c2967f6 |
|
29-Nov-2020 |
Michal Meloun <mmel@FreeBSD.org> |
Remove the pre-ARMv6 and pre-INTRNG code. ARM has required ARMV6+ and INTRNg for some time now, so remove always false #ifdefs and unconditionally do always true #ifdefs.
|
#
6451336c |
|
14-Dec-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Add the virtualisation special register definitions. Submitted by: Mihai Carabas <mihai.carabas@gmail.com> Reviewed by: mmel Differential Revision: https://reviews.freebsd.org/D11846
|
#
e336138c |
|
22-Mar-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Add the early hypervisor code needed on 32-bit ARMv7. This will be used when we bring in bhyve support. Submitted by: Mihai Carabas <mihai.carabas AT gmail.com> Differential Revision: https://reviews.freebsd.org/D10045
|
#
93a065e7 |
|
01-Feb-2017 |
Michal Meloun <mmel@FreeBSD.org> |
Remake support for SMP kernel on UP cpu: - Use new option SMP_ON_UP instead of (mis)using specific CPU type. By this, any SMP kernel can be compiled with SMP_ON_UP support. - Enable runtime detection of CPU multiprocessor extensions only if SMP_ON_UP option is used. In other cases (pure SMP or UP), statically compile only required variant. - Don't leak multiprocessor instructions to UP kernel. - Correctly handle data cache write back to point of unification. DCCMVAU is supported on all armv7 cpus. - For SMP_ON_UP kernels, detect proper TTB flags on runtime. Differential Revision: https://reviews.freebsd.org/D9133
|
#
e9524a3c |
|
02-Nov-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Allow an SMP kernel to boot on Cortex-A8: * Rename ARM_HAVE_MP_EXTENSIONS to ARM_USE_MP_EXTENSIONS and extend it to handle more cases, including when SMP is not enabled. * Check ARM_USE_MP_EXTENSIONS when building for ARMv7+, even if no SMP. * Use ARM_USE_MP_EXTENSIONS in pmap-v6.c to detect when to set PRRR_NS1. With this we should be able to boot on all ARMv7+ Cortex-A cores with 32-bit support. Reviewed by: mmel, imp (earlier version) Relnotes: yes Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D8335
|
#
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 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
|
#
595f8a59 |
|
25-Jan-2016 |
Zbigniew Bodek <zbb@FreeBSD.org> |
Introduce support for HW watchpoints and single stepping for ARMv6/v7 Allows for using hardware watchpoints for 1, 2, 4, 8 byte long addresses. The default configuration of watchpoint is RW but code allows to select RO or WO and X. Since debugging registers are per-CPU (CP14) the watchpoint is set on the CPU that was lucky (or not) to enter DDB. HW breakpoints are used to perform single step in KDB. When HW breakpoint is enabled all watchpoints are temporary disabled to avoid recursive abort on both watchpoint and breakpoint. In case of branch, the breakpoint is set to both - next instruction and possible branch address. This requires at least 2 breakpoints supported in the CPU however this is a must for ARMv6/v7 CPUs. Reviewed by: imp Submitted by: Zbigniew Bodek <zbb@semihalf.com> Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4037
|
#
aeef015e |
|
10-Nov-2015 |
Svatopluk Kraus <skra@FreeBSD.org> |
Fix cp15 PAR definition and function. While here, add cp15 ATS1CPW function which checks an address for privileged (PL1) write access. The function is inlined so it does not bring any cost, but makes function set for checking privileged access complete. Approved by: kib (mentor)
|
#
ad25ff45 |
|
23-May-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Add more cp15_ functions, and use them in cpufunc.c where possible.
|
#
c4b8fcd6 |
|
06-May-2015 |
Zbigniew Bodek <zbb@FreeBSD.org> |
Add new CP15 operations and DB_SHOW_COMMAND to print CP15 registers Submitted by: Wojciech Macek <wma@semihalf.com> Reviewed by: imp, Michal Meloun <meloun@miracle.cz> Obtained from: Semihalf
|
#
7b309274 |
|
01-Apr-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Add the generic timer registers to sysreg.h and cpu-v6.h, and use the access functions in the generic timer driver. Differential Revision: https://reviews.freebsd.org/D2198 Sponsored by: The FreeBSD Foundation
|
#
8a474d01 |
|
07-Jan-2015 |
Ian Lepore <ian@FreeBSD.org> |
Add accessors for the ARM CP15 performance monitor registers. Also ensure that some #ifdef SMP code is also conditional on __ARM_ARCH >= 7; we don't support SMP on armv6, but some drivers and modules are compiled with it forced on via the compiler command line.
|
#
54f9ec88 |
|
01-Jan-2015 |
Ian Lepore <ian@FreeBSD.org> |
Define a WFI macro that expands to the right form of wait-for-interrupt depending on the architecture.
|
#
c93be371 |
|
25-Dec-2014 |
Ian Lepore <ian@FreeBSD.org> |
Define only the CP15 register operations that are valid for the architecture. Submitted by: Svatopluk Kraus <onwahe@gmail.com>, Michal Meloun <meloun@miracle.cz
|
#
3a08e1e3 |
|
30-Sep-2014 |
Andrew Turner <andrew@FreeBSD.org> |
Make sure __ARM_ARCH is defined in sysreg.h by including acle-compat.h
|
#
1af789ed |
|
27-Sep-2014 |
Andrew Turner <andrew@FreeBSD.org> |
Add machine/sysreg.h to simplify accessing the system control coprocessor registers and use it in the ARMv7 CPU functions. The sysreg.h file has been checked by hand, however it may contain errors with the comments on when a register was first introduced. The ARMv7 cpu functions have been checked by compiling both the previous and this version and comparing the md5 of the object files. Submitted by: Svatopluk Kraus <onwahe at gmail.com> Submitted by: Michal Meloun <meloun at miracle.cz> Reviewed by: ian, rpaulo Differential Revision: https://reviews.freebsd.org/D795
|