History log of /freebsd-current/sys/arm/include/armreg.h
Revision Date Author Comments
# 4a5e2ddb 30-Apr-2024 Mark Johnston <markj@FreeBSD.org>

arm: Remove duplicate definitions in armreg.h

No functional change intended.

MFC after: 1 week


# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 3d6f4411 12-Apr-2022 John Baldwin <jhb@FreeBSD.org>

Remove checks for <sys/cdefs.h> being included.

These files no longer depend on the macros required when these checks
were added.

PR: 263102 (exp-run)
Reviewed by: brooks, imp, emaste
Differential Revision: https://reviews.freebsd.org/D34804


# 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.


# c81b12e0 27-Jul-2018 Warner Losh <imp@FreeBSD.org>

Revert r336773: it removed too much.

r336773 removed all things xscale. However, some things xscale are
really armv5. Revert that entirely. A more modest removal will follow.

Noticed by: andrew@


# 626930c2 27-Jul-2018 Warner Losh <imp@FreeBSD.org>

Remove xscale support

The OLD XSCALE stuff hasn't been useful in a while. The original
committer (cognet@) was the only one that had boards for it. He's
blessed this removal. Newer XSCALE (GUMSTIX) is for hardware that's
quite old. After discussion on arm@, it was clear there was no support
for keeping it.

Differential Review: https://reviews.freebsd.org/D16313


# af3dc4a7 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/arm: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 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


# c1bc87b1 07-Nov-2016 Stanislav Galabov <sgalabov@FreeBSD.org>

Generate an error if machine/armreg.h is included without sys/cdefs.h

machine/armreg.h requires access to the __ARM_ARCH macro, which is not
always properly defined (especially by gcc 4.2.1). We should include
sys/cdefs.h in order to get the definitions in machine/acle-compat.h,
which would properly define the __ARM_ARCH macro in these cases.

So, in cases where machine/armreg.h is included without _SYS_CDEFS_H_
being defined - generate an #error.

Reviewed by: andrew
Sponsored by: Smartcom - Bulgaria AD
Differential Revision: https://reviews.freebsd.org/D8460


# 90533987 03-Oct-2016 Andrew Turner <andrew@FreeBSD.org>

Add the Cortex-A{53,57,72} ID register values. These can all run 32-bit
code so could run a 32-bit kernel.

Sponsored by: ABT Systems Ltd


# 968e30ef 30-Sep-2016 Andrew Turner <andrew@FreeBSD.org>

Fix the spelling of Cortex.


# 8a771462 07-Jun-2016 Andrew Turner <andrew@FreeBSD.org>

Start to clean MIDR values using the CPUID scheme. We don't need to know
the exact CPU we are running on to set the cpu functions. Relax the check
to ignore the CPU revision. Even so this may still be too specific.

Reviewed by: mmel
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D6504


# 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


# 1d687ba2 27-Nov-2015 Michal Meloun <mmel@FreeBSD.org>

ARM: Add support for new KRAIT 300 CPU revision.

Approved by: kib (mentor)


# 4dbc0083 09-Nov-2015 Michal Meloun <mmel@FreeBSD.org>

ARM: Remove trailing whitespace from sys/arm/include
No functional changes.

Approved by: kib (mentor)


# 36fb9d5f 04-Nov-2015 Svatopluk Kraus <skra@FreeBSD.org>

Fix comment about unpriviledged instructions. Now, it matches with
current state after r289372.

While here, do some style and comment cleanups. No functional changes.

Approved by: kib (mentor)


# 232e189a 02-Nov-2015 Zbigniew Bodek <zbb@FreeBSD.org>

Add support for branch instruction on armv7 with ptrace single step

Previous code supported only "continuous" code without any kind of
branch instructions. To change that, new function was implemented
which parses current instruction and returns an addres where
the jump might happen (alternative addr).
mdthread structure was extended to support two breakpoints
(one directly below current instruction and the second placed
at the alternative location).
One of them must trigger regardless the instruction has or has not been
executed due to condition field.
Upon cleanup, both software breakpoints are removed.

This implementation parses only the most common instructions
that are present in the code (like 99.99% of all), but there
is a chance there are some left, not covered by the parsing routine.
Parsing is done only for 32-bit instruction, no Thumb nor Thumb-2
support is provided.

Reviewed by: kib
Submitted by: Wojciech Macek <wma@semihalf.com>
Obtained from: Semihalf
Sponsored by: Juniper Networks Inc.
Differential Revision: https://reviews.freebsd.org/D4021


# 5b44efcf 13-Aug-2015 Marcel Moolenaar <marcel@FreeBSD.org>

The Broadcom BCM56060 chip has a Cortex-A9R4 core.

Submitted by: Steve Kiernan <stevek@juniper.net>
Reviewed by: imp@
Differential Revision: https://reviews.freebsd.org/D3357


# 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


# 9fc0d68a 10-Feb-2015 Zbigniew Bodek <zbb@FreeBSD.org>

Resolve cache line size from CP15

Switch the cache line size during invalidations/flushes
to be read from CP15 cache type register.

Submitted by: Wojciech Macek <wma@semihalf.com>
Reviewed by: ian, imp
Obtained from: Semihalf


# d84d6e77 13-Jan-2015 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Correct cpu type, it was rather Cortex A12 R0.

Approved by: stas (mentor)


# cebf67b0 13-Jan-2015 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add CPU ID for ARM Cortex A17.

Approved by: stas (mentor)


# 7e55f8c1 03-Jan-2015 Ian Lepore <ian@FreeBSD.org>

Add a new trap-v6.c which has support for all armv7 exceptions. This
mostly paves the way for the new pmap code, and shouldn't result in any
noticible behavior differences.

Submitted by: Svatopluk Kraus <onwahe@gmail.com>,
Michal Meloun <meloun@miracle.cz


# b8fd1e31 10-Sep-2014 Andrew Turner <andrew@FreeBSD.org>

Unify interrupts bit definition and usage. While here remove PSR_C_bit.

Submitted by: Svatopluk Kraus <onwahe at gmail.com>,
Michal Meloun <meloun at miracle.cz>
Differential Revision: https://reviews.freebsd.org/D754


# d7f129a3 10-Sep-2014 Andrew Turner <andrew@FreeBSD.org>

Add more register values to armreg.h and remove CPU_CONTROL_32BP_ENABLE
from asm.h as they were already defined in armreg.h.

Submitted by: Michal Meloun <meloun at miracle.cz>


# 66e227bf 31-Mar-2014 Ruslan Bukin <br@FreeBSD.org>

Add Cortex-A15 cpu id revisions.


# a2970289 09-Mar-2014 Ian Lepore <ian@FreeBSD.org>

Remove all traces of support for ARM chips prior to the arm9 series. We
never actually ran on these chips (other than using SA1 support in an
emulator to do the early porting to FreeBSD long long ago). The clutter
and complexity of some of this code keeps getting in the way of other
maintenance, so it's time to go.


# 255a0cc6 12-Feb-2014 Ian Lepore <ian@FreeBSD.org>

Use the right symbols for determining arm architecture. Include the
necessary header file which has the new FAULT_WNR symbol defined in it.


# 543c9e95 19-Dec-2013 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add identification and necessary type checks for Krait CPU cores. Krait CPU is used in
Qualcomm Snapdragon S4 and Snapdragon 400/600/800 SoCs and has architectural
similarities to ARM Cortex-A15. As for development boards IFC6400 series embedded
boards from Inforce Computing uses Snapdragon S4 Pro/APQ8064.

Approved by: stas (mentor)


# 7a22215c 30-Nov-2013 Eitan Adler <eadler@FreeBSD.org>

Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this
shifts into the sign bit. Instead use (1U << 31) which gets the
expected result.

This fix is not ideal as it assumes a 32 bit int, but does fix the issue
for most cases.

A similar change was made in OpenBSD.

Discussed with: -arch, rdivacky
Reviewed by: cperciva


# e0b4b3a7 28-Oct-2013 Zbigniew Bodek <zbb@FreeBSD.org>

Remove not working and deprecated PJ4Bv6 support

Sheeva PJ4Bv6 - based chips were only prototypes for V7 class Armada
SoC family. Current in-tree support for PJ4Bv6 will not work and also
there should be no platforms in active use that would incorporate that
CPU revision.


# 03a1c6d1 16-Oct-2013 Ruslan Bukin <br@FreeBSD.org>

Add CPU ID for ARM Cortex A5.

Approved by: cognet (mentor)


# dd5c5e71 01-Aug-2013 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add identification for Cortex-A7 (R0) cores.

Reviewed by: cognet@


# 57ae6edf 28-Jun-2013 Aleksandr Rybalko <ray@FreeBSD.org>

Add identification for Cortex-A15 (R0) cores.

Submitted by: Ruslan Bukin <br@bsdpad.com>


# b8b08bef 22-May-2013 Grzegorz Bernacki <gber@FreeBSD.org>

Switch to AP[2:1] access permissions model. Store "referenced"
bit in PTE.

Enable Access Flag in CPU control. With AF enabled each valid mapping
needs to have referenced bit in PTE set in order to be able to cache
it in the TLB.

AP[0] bit is to be used as reference flag.
All access permissions are encoded by AP[2:1] wherein AP[1] is in fact
"user enable" and AP[2](APX) is "write disable".

All mappings are always set to be valid. Reference emulation is performed
by setting/clearing reference flag in PTE.

md.pvh_attrs are no longer necessary however pv_flags are still being used
for now.

Marking vm_page as "dirty" or "referenced" is being performed on:
- page or flag fault servicing in pmap_fault_fixup(), basing on the fault
type
- vm_fault servicing in pmap_enter() according to the desired protections
and faulty access type
Redundant page marking has been removed as on ARM we know exactly when the
particular page is referenced or is going to be written.

Submitted by: Zbigniew Bodek <zbb@semihalf.com>
Sponsored by: The FreeBSD Foundation, Semihalf


# 735c7fe5 27-Apr-2013 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port.

Submitted by: Thomas Skibo <ThomasSkibo (at) sbcglobal.net>
Tested by: wkoszek (ZedBoard)
Reviewed by: wkoszek, freebsd-arm@ (no objections raised)


# c5f8f894 19-Dec-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Replace generic ARM11 option with more specific
support for ARM1136 and ARM1176

Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp>
Obtained from: NetBSD


# f3d01034 14-Sep-2012 Grzegorz Bernacki <gber@FreeBSD.org>

Support identification of new PJ4B cores.

Obtained from: Semihalf


# cf1a573f 14-Aug-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Merging projects/armv6, part 1

Cummulative patch of changes that are not vendor-specific:
- ARMv6 and ARMv7 architecture support
- ARM SMP support
- VFP/Neon support
- ARM Generic Interrupt Controller driver
- Simplification of startup code for all platforms


# ee5cac8a 12-Jun-2012 Warner Losh <imp@FreeBSD.org>

trim trailing whitespace


# 0b898a9e 16-Apr-2012 Andrew Turner <andrew@FreeBSD.org>

Replace the C implementation of __aeabi_read_tp with an assembly version.
This ensures we follow the ABI by preserving registers r1-r3.

Reviewed by: jmallett, imp


# b30d62be 07-Apr-2012 Stanislav Sedov <stas@FreeBSD.org>

- Revert part of r234005, which I did not intend to commit.
Sorry! :(


# 47db1ea0 07-Apr-2012 Stanislav Sedov <stas@FreeBSD.org>

- Add kernel config file for QEMU-emulated gumstix board.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# dbb0e359 20-Feb-2010 Kevin Lo <kevlo@FreeBSD.org>

Correct both FA526/FA626TE cpu ids since the cpu id is always
masked with 0xfffffff0


# 4e92112d 13-Feb-2010 Kevin Lo <kevlo@FreeBSD.org>

Correct cpu id for FA526.
While I'm here, add cpu id for FA626TE.


# b74f293f 22-Dec-2008 Sam Leffler <sam@FreeBSD.org>

add IXP465 and generic IXP425 definition


# d2120224 12-Dec-2008 Sam Leffler <sam@FreeBSD.org>

Merge WIP from p4:
o recognize ixp435 cpu
o change memory layout for for ixp4xx to not assume memory is aliases
to 0x10000000 (Cambria/ixp435 memory starts at zero)
o handle 64 irqs for ixp435
o dual EHCI USB 2.0 controller integral to ixp435
o overhaul NPE code for ixp435 and better MAC+MII naming
o updated NPE firmware (including NPE-A image for ixp435/ixp465)
o Gateworks Cambria board support:
- IDE compact flash
- MCU
- front panel LED on i2c bus
- Octal LED latch

Sanity-tested with NFS-root on Avila and Cambria boards. Requires
pending boot2 mods for CF-boot on Cambria.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# ba6faad6 13-Oct-2008 Rafal Jaworowski <raj@FreeBSD.org>

Introduce low-level support for new Marvell core CPUs: 88FR131, 88FR571.

They are compliant with ARMv5TE and integrated on 88F6281 (Kirkwood) and
MV78100 (Discovery) system-on-chip families.

Obtained from: Marvell, Semihalf


# dfb7d4cd 17-Oct-2007 Warner Losh <imp@FreeBSD.org>

Merge definitions for ARM9E, ARM10 and ARM11 processors from p4 (which
got them from NetBSD).


# 5f78cb4a 27-Jul-2007 Olivier Houchard <cognet@FreeBSD.org>

XScale core 3 definitions.

Approved by: re (blanket)


# 676b1fbd 07-Nov-2006 Olivier Houchard <cognet@FreeBSD.org>

Identify the xscale 81342.


# 11d1528c 24-Aug-2006 Olivier Houchard <cognet@FreeBSD.org>

Finally bring it support for the i80219 XScale processor.

Submitted by: Max M. Boyarov <m.boyarov bsd by>


# f9126cfb 21-Nov-2005 Olivier Houchard <cognet@FreeBSD.org>

Add an alternate ID for the arm920t (the real solution is to have
per-cpu class masks, but oh well).


# d8315c79 05-Jan-2005 Warner Losh <imp@FreeBSD.org>

Start all license statements with /*-


# 6fc729af 14-May-2004 Olivier Houchard <cognet@FreeBSD.org>

Import FreeBSD/arm kernel bits.
It only supports sa1110 (on simics) right now, but xscale support should come
soon.
Some of the initial work has been provided by :
Stephane Potvin <sepotvin at videotron.ca>
Most of this comes from NetBSD.