History log of /freebsd-current/sys/arm/include/asm.h
Revision Date Author Comments
# 29363fb4 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


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

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

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


# 7a165460 24-Jul-2023 Andrew Turner <andrew@FreeBSD.org>

arm: Only include sysreg.h when needed in asm.h

We only need sysreg.h for armv6 barriers

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D41141


# c3f1a139 15-Nov-2022 Mateusz Guzik <mjg@FreeBSD.org>

Retire broken GPROF support from the kernel

The option is not even recognized and with that patched it does not
compile. Even if it did work, it would be prohibitively expensive to
use.

Interested parties can use pmcstat or dtrace instead.


# e7961ccd 10-Jan-2022 Andrew Turner <andrew@FreeBSD.org>

Remove Arm barriers for pre-armv6 CPUs

Remove the macros that define the Arm barriers on Armv5 and earlier. We
don't support these CPUs.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33807


# ac795a77 10-Jan-2022 Andrew Turner <andrew@FreeBSD.org>

Remove old arm CPU macros

The _ARM_ARCH_* and _HAVE_ARMv*_INSTRUCTIONS macros are FreeBSD
specific. Remove them as they are unused in the base system.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33806


# 65454883 01-Sep-2020 Mateusz Guzik <mjg@FreeBSD.org>

arm: clean up empty lines in .c and .h files


# b04e1431 18-Jul-2018 Andrew Turner <andrew@FreeBSD.org>

Also check if __ARM_ARCH_6KZ__ is defined when detecting when to use ARMv6
instructions. There is some code that still uses the _ARM_ARCH_* macros.

Sponsored by: DARPA, AFRL


# 51369649 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

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.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# 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


# 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


# cef367e6 16-May-2016 Eitan Adler <eadler@FreeBSD.org>

Don't repeat the the word 'the'

(one manual change to fix grammar)

Confirmed With: db
Approved by: secteam (not really, but this is a comment typo fix)


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

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

Approved by: kib (mentor)


# ba2f5f5e 04-Oct-2015 Robert Watson <rwatson@FreeBSD.org>

Add missing stack unwind information to several assembly functions on
ARMv6/7:

- Define _SAVE() macro to allow unwind data to be conditionally defined for
ARM assembly code in the kernel.

- Use _SAVE() to provide unwind information for bcopy_page(), and two (of
many) instances of copyin() and copyout().

Reviewed by: andrew, imp
MFC after: 3 days
Sponsored by: University of Cambridge


# ae160b23 31-May-2015 Andrew Turner <andrew@FreeBSD.org>

We only support the ARM EABI in head, remove the check on __ARM_EABI__.


# 8465de8e 11-May-2015 Andrew Turner <andrew@FreeBSD.org>

Mark thumb entry points as such when building for thumb, otherwise mark
them as arm.


# 827422e3 11-May-2015 Andrew Turner <andrew@FreeBSD.org>

Use the Thumb compliant version of the add instruction. We can only use
"add Rd, Rn, Rm" from within an IT (if-then) block.


# 301e1601 02-Jan-2015 Ian Lepore <ian@FreeBSD.org>

Fix alignment directives in arm asm code after clang 3.5 import.

The ancient gas we've been using interprets .align 0 as align to the
minimum required alignment for the current section. Clang's integrated
assembler interprets it as align to a byte boundary. Fortunately both
assemblers interpret a non-zero value as align to 2^N so just make sure
we have appropriate non-zero values everywhere.


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


# efa8bab7 26-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Include acle-compat.h directly (we use its symbols) rather than getting
it via sysreg.h.


# eb4585bc 25-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Add macros for asm barrier instructions with arch-specific implementations.


# b05d247e 25-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Create 'L' variants of all the ENTRY macros for file-static/local symbols.

If it seems like this is getting out of hand, I quite agree. I wonder if
it's safe, here in the 21st century, to lose the distinction between C and
ASM symbols?


# 71442935 25-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Fix the GLOBAL macro so it works (upper vs lowercase X), use it in _EENTRY.


# de064ce4 25-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Stylish changes... put tabs where they need to be in macros, move lines
around so that related things are more grouped together, rewrite comments.

No functional changes, this is all so that the functional changes in the
next commit will stand out.


# be483be8 24-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Remove _PROF_PROLOGUE from the EENTRY() macros. These macros define
'extra' entry points which are nested within or provide a synonym name
for another function. It's most likely not safe to be messing with the
IP and LR registers at anything other than the primary entry point to a
function. Anywhere beyond initial function entry, those registers may
be in use as scratch or variable registers.


# 7f9b314f 01-Dec-2014 Andrew Turner <andrew@FreeBSD.org>

Pull in the NetBSD global offset table handling code. Clang 3.5 creates
relocations the linker complains about.

Obtained from: NetBSD
MFC after: 1 Week


# b643b934 29-Nov-2014 Andrew Turner <andrew@FreeBSD.org>

Update _ENTRY to use _EENTRY to reduce the common code.


# 294246bb 24-Nov-2014 Ed Maste <emaste@FreeBSD.org>

Revert r274772: it is not valid on MIPS

Reported by: sbruno


# 688fd61a 20-Nov-2014 Ed Maste <emaste@FreeBSD.org>

Use canonical __PIC__ flag

It is automatically set when -fPIC is passed to the compiler.

Reviewed by: dim, kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1179


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


# 15668837 01-Sep-2014 Ian Lepore <ian@FreeBSD.org>

Do not generate unwind info in asm functions if _STANDALONE is defined.
The .fnend op causes the assembler to emit RELOC references to unwind
support functions that don't exist in libstand.


# 25166187 01-Aug-2014 Ian Lepore <ian@FreeBSD.org>

Fix unwind-info errors in our hand-written arm assembler code.

We have functions nested within functions, and places where we start a
function then never end it, we just jump to the middle of something else.
We tried to express this with nested ENTRY()/END() macros (which result
in .fnstart and .fnend directives), but it turns out there's no way to
express that nesting in ARM EHABI unwind info, and newer tools treat
multiple .fnstart directives without an intervening .fnend as an error.

These changes introduce two new macros, EENTRY() and EEND(). EENTRY()
creates a global label you can call/jump to just like ENTRY(), but it
doesn't emit a .fnstart. EEND() is a no-op that just documents the
conceptual endpoint that matches up with the same-named EENTRY().

This is based on patches submitted by Stepan Dyatkovskiy, but I made some
changes and added the EEND() stuff, so blame any problems on me.

Submitted by: Stepan Dyatkovskiy <stpworld@narod.ru>


# 0a794529 07-Jun-2013 Andrew Turner <andrew@FreeBSD.org>

Reduce the difference to NetBSD.

* Stop pretending we support anything other than ELF by removing code
surrounded by #ifdef __ELF__ ... #endif.
* Remove _JB_MAGIC_SETJMP and _JB_MAGIC__SETJMP, they are defined in
setjmp.h, which is able to be included from asm.
* Fix the spelling of dependent.
* Rename END _END and add END and ASEND to complement ENTRY and ASENTRY
respectively
* Add macros to simplify accessing the Global Offset Table, some of these
will be used in the upcoming update to the setjmp functions.


# 573447b6 15-Mar-2013 Andrew Turner <andrew@FreeBSD.org>

Add an END macro to ARM. This is mostly used to tell gas where the bounds
of the functions are when creating the EABI unwind tables.


# 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


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


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

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


# 258f866c 12-Oct-2007 Olivier Houchard <cognet@FreeBSD.org>

Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available.

MFC After: 3 days


# 705fda84 19-May-2007 Olivier Houchard <cognet@FreeBSD.org>

Use __mcount() instead of _mcount() to reduce diffs with NetBSD.


# 4731df1e 30-Aug-2006 Olivier Houchard <cognet@FreeBSD.org>

Remove dead code, already defined in sys/cdef.h

Spotted out by: bde


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

Start all license statements with /*-


# 5f2c6402 09-Nov-2004 Olivier Houchard <cognet@FreeBSD.org>

Import a RET macro, that will use bx if the arch supports it.

Obtained from: NetBSD


# a40d2bb6 23-Sep-2004 Olivier Houchard <cognet@FreeBSD.org>

We are using _mcount, not __mcount.
Remove the !__ELF__ case.


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