Home | History | Annotate | only in /src/sys/arch/arm/conf
History log of /src/sys/arch/arm/conf
RevisionDateAuthorComments
 1.58 18-Feb-2024  mrg if we're building with GCC and MACHINE_CPU is aarch64, error out since
that isn't going to work.

doing this better in config(1) is difficult, but at least we can
detect and give a useful error message for this case instead of just
erroring out with some compiler options aren't supported. if we have
a good solution for config(1) we can remove this hack here..

might want to copy this hack for riscv too.
 1.57 28-Jul-2023  rin Simplify fix for PR toolchain/57146

Introduce ARCH_STRIP_SYMBOLS variable to centralize logic for debug
symbols from MD Makefile's to Makefile.kern.inc.
 1.56 26-Jul-2023  rin Fix kernel size inflation for arm and aarch64 (PR toolchain/57146)

For some conditions, SYSTEM_LD_TAIL is set for arm and aarch64.
Then, ctfmerge(1) in default SYSTEM_LD_TAIL is unintentionally
skipped, which results in the catastrophic kernel size inflation,
as reported in the PR.

Also, introduce and use OBJCOPY_STRIPFLAGS variable instead of
STRIPFLAGS, as strip(1) is replaced by objcopy(1) during MI
kernel build procedure.

XXX
For Makefile.{arm,aarch64}, weird logic is used to determine how
to handle debug symbols; MKDEBUG{,KERNEL} are taken into account
later in sys/conf/Makefile.kern.inc.
 1.55 10-Jul-2020  skrll branches: 1.55.20;
Add support for KASAN on ARMv[67]

Thanks to maxv for many pointers and reviews.
 1.54 05-Feb-2020  skrll Fix the armv[67] memory attributes for uncached memory. Previously it was
mapped as strongly-ordered which meant that unaligned accesses would fault.

armv7_generic_bs_map now maps pages with PMAP_DEV which is treated as SO

bus_dma continues to use PMAP_NOCACHE as appropriate, but this now get
mapped to the correct memory attribute bits for armv[67]

DEVMAP_ENTRY usees a new flag PTE_DEV.

The workaround for the unaligned access faults is now removed.

XXX Other armv[67] boards bus_space implementations should be checked.
XXX There is scope to reduce the difference to aarch64
 1.53 06-Jan-2020  skrll branches: 1.53.2;
Use CFLAGS instead of COPTS for -mapcs-frame when using DDB.

Discussed with mrg@
 1.52 02-Jan-2020  skrll gcc 8 needs -mapcs-frame when DDB is specified for backtrace to work
 1.51 11-Nov-2019  joerg Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)
 1.50 26-Aug-2019  rin PR kern/54486

Workaround for alignment faults on ARMv6+, at least occur with
axe(4) and athn(4) drivers.

For ARMv6+, unaligned access is enabled by default. However, it
cannot be used for non-cacheable memory, which is used as DMA
buffers. This results in alignment faults above. A real fix is
to use cacheable memory as DMA buffers. However, it breaks some
drivers, awge(4) and vchiq(4) at least.

Until we figure out problems and fix them, we choose a fail-safe
workaround here; forbid unaligned memory access for whole kernel.
Affects on performance is negligibly small as far as we can see.

XXX
pullup netbsd-9
 1.49 22-Sep-2018  rin branches: 1.49.4;
- Determine KERN_AS automatically depending on whether OPT_MODULAR is
set or not, in the same way as libcompat.

- Specify OPT_MODULAR in the port Makefile instead of KERN_AS.

Now, KERN_AS=library is used for kernels without module(7) for all ports.

OK christos
 1.48 01-May-2015  nat branches: 1.48.16; 1.48.18;
Include splash with genfb.
splash.o is only included with options SPLASHSCREEN.
splash_image.o target moved to Makefile.kern.inc.

This commit was approved by matt@
 1.47 30-Apr-2015  nat Remove unintended whitespace.
 1.46 30-Apr-2015  nat Added a new option for embedding a splash screen into kernel.
Add: options SPLASHSCREEN
makeoptions SPLASHSCREEN_IMAGE="path/to/image"
to your config file. So far it will work on amd64 and RPI/RPI2.

This commit was with ideas, help, and OK from jmcneill@.
 1.45 17-Aug-2014  joerg branches: 1.45.2;
Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
 1.44 14-Aug-2014  joerg Do the wildcard symbol dance for the debug case as well.
 1.43 14-Aug-2014  joerg Use wildcards for stripping/preserving the mapping symbols on ARM and
AArch64. LLVM creates unique symbols in each file of the form $a.n etc.
 1.42 02-Mar-2014  joerg branches: 1.42.4;
Explicitly enable VFP support for vfp_init.c. Fixes build of
INTEGRATOR_CP with clang.
 1.41 23-Jan-2014  martin Compile the armv4 cpufunc file with -mcpu=arm8 instead of arm9, to avoid
an armv4t marked object file which causes failure in the shark objcopy
step when creating the a.out version of the kernel.
 1.40 04-Jan-2014  joerg Explicitly force a CPU for the assembler for the compatibility
cpu_func_* files. LLVM complains about the use of deprecated
instructions when -march=armv7 or equivalent is in use.
 1.39 27-Dec-2013  matt Pass -mfpu=vfp so GAS won't complain about vmsrne
 1.38 28-Oct-2013  matt Make sure certain files are always assembled with -marm
 1.37 03-Feb-2013  skrll branches: 1.37.2;
Fix typo in option name
 1.36 03-Feb-2013  matt Always compile the kernel with -mfloat=soft
 1.35 05-Oct-2012  matt Make arm32_kvminit.o is complied with -fno-stack-protector
 1.34 18-May-2012  skrll branches: 1.34.2;
Remove an '@' to hopefully see what's going on with the daily builds.
 1.33 19-Mar-2012  bsh adjust the size of db_symtab space automatically.
proposed on tech-toolchain@, and got no objections.
 1.32 27-Apr-2008  tsutsui branches: 1.32.20; 1.32.36; 1.32.40; 1.32.44;
Remove local -fno-strict-aliasing hack.
sys/conf/Makefile.kern.inc has it for gcc4.
 1.31 26-Jan-2008  chris branches: 1.31.6; 1.31.8;
Add arm version of cpu_in_cksum. Based on previous in_cksum4 code.

In fact it's mostly the same code, with a different stub on it.

On a cats the regress/sys/net/in_cksum tests show that it takes around
50-60% of the time the C version takes. In some cases it takes as low as
20%.
 1.30 25-Jan-2008  joerg Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
They call a backend function cpu_in_cksum after possibly
computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
The default implementation is moderate fast on most platforms
and provides a 32bit accumulator with 16bit addends for L32 platforms
and a 64bit accumulator with 32bit addends for L64 platforms.
It handles edge cases like very large mbuf chains (could happen with
native IPv6 in the future) and provides a good base for new native
implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.
 1.29 04-Mar-2007  bjh21 branches: 1.29.16; 1.29.20; 1.29.22; 1.29.28;
src/sys/arch/arm32 is long gone, so stop referring to it.
 1.28 10-Dec-2006  scw branches: 1.28.2;
Add a port of Sam Leffler's IXP425 micro-engine support (from FreeBSD).

This is very much a work in progress. At the present time, only Ethernet
is supported.
 1.27 10-Nov-2005  dbj branches: 1.27.22; 1.27.24;
partially revert previous commit stripping arm mapping symbols
it broke ddb when DEBUG wasn't set to -g.
 1.26 21-Oct-2005  dbj strip arm mapping symbols for ddb using STRIPFLAGS instead of SYSTEM_LD_TAIL
this works even for kernels compiled with -g and doesn't interfere with gdb
 1.25 20-Jun-2005  scw branches: 1.25.2; 1.25.4;
Use objcopy (as suggested by Richard Earnshaw) to strip ARM mapping symbols
from the kernel image, as they interfere with ddb. But only do this if
'makeoptions DEBUG="-g"' was not specified, in case they're needed by gdb.
 1.24 31-May-2005  christos s/GENASSYM/GENASSYM_CONF/ so we can use "GENASSYM" as the program name.
 1.23 11-Jan-2005  simonb Add isa_irq.o and spl.o to the list of files that depend on assym.h so
that "make -j<bignum>" works without a "make depend" beforehand.
 1.22 20-Aug-2004  simonb Add dependancies on assym.h for some assembly files so that
"make -j <bignum>" works without having to do a "make depend" first.
 1.21 04-Jun-2004  thorpej Add the %MAKEOPTIONSAPPEND token at the end of the file, after the
common Makefile.kern.inc has been included.
 1.20 30-Oct-2003  skrll branches: 1.20.4;
Fix a typo so that hack actually takes effect.
 1.19 28-Oct-2003  skrll Compile sys/kern/uipc_socket.c -fno-strict-aliasing for now. PR 23044.
 1.18 03-Jan-2003  thorpej branches: 1.18.2;
Don't define -D${MACHINE} in Makefile.arm. Instead, let platforms
that care define it themselves. Note that evbarm NO LONGER defines
-D${MACHINE}.
 1.17 05-Oct-2002  chs add missing protos, clean up includes.
 1.16 31-Jan-2002  chris Set LOOSE_PROTOTYPES to no for cats. This means cats now uses stricter prototype checking.
 1.15 09-Dec-2001  atatat Roll the rest of the ports over to the new MI kernel build machinery.
Any problems reported by testers have been fixed, and massive
cross-compiling of kernels has shown that any problems that remain
with actually building kernels are not related to this.
 1.14 26-Nov-2001  thorpej Allow port-specific Makefile fragments to specify a list of additional
genassym.cf fragments, if desired.
 1.13 25-Nov-2001  thorpej End the "new ARM includes strategy" experiment. The new strategy
broke too many assumptions makde by other parts of the source tree,
and the strategy and how it was supposed to work was never discussed
on tech-userlevel, nor was it applied consistently (to all ARM ports
and to other ports which have common MACHINE_ARCH code, such as MIPS,
m68k, powerpc).

Verified to complete a full "make build" on cats, dnard, evbarm,
and netwinder.
 1.12 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.11 06-Nov-2001  thorpej branches: 1.11.2;
Make it possible for Makefile.${MACHINE}.inc to provide extra
stuff at the end of SYSTEM_LD_TAIL.
 1.10 26-Oct-2001  jmc Change defaults for kernel compiles. Default all to USETOOLS?=no and have
the etc Makefile override that by putting USETOOLS into $.MAKEOVERRIDES
This way the default for kernel compiles is still to use the installed
toolchain instead of depending on $TOOLDIR. $TOOLDIR can be used by
simply adding USETOOLS=yes to the command line as usual.

Adjust each ports template to set the default no setting and also pull in
bsd.own.mk if they weren't already to ensure they'll build correctly
with the new toolchain setup.
 1.9 23-Oct-2001  thorpej branches: 1.9.2;
Use MACHINE, not TARGET_MACHINE.
 1.8 23-Oct-2001  thorpej Pull in <bsd.own.mk> to get the correct toolchain definitions for
the USE_NEW_TOOLCHAIN case.
 1.7 17-Oct-2001  matt Workaround "../../../.."
 1.6 28-Jul-2001  chris finish moving common arm32 bits out into arm/arm32.
 1.5 28-Jul-2001  chris Change -x into -X for linking, it makes traces more meaningful.
 1.4 12-Jul-2001  matt Gah!. Use the variable name (LINKENTRY).
 1.3 12-Jul-2001  matt Fix a few things for NetWinder. NetWinder needs to override the
std entry point so add a hook for that. Also pick up the port
specific .inc file from the right directory.
 1.2 11-Jun-2001  matt branches: 1.2.2; 1.2.4;
Only include dependency on include-dirs if the include directory doesn't
exist.
 1.1 11-Jun-2001  matt Add common Makefile for arm ports. Only include (for now) machine/io.h
if arm32 is defined. io.h is RISCPC specific and isn't needed for other
ports.
 1.2.4.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.2.4.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.1 03-Aug-2001  lukem update to -current
 1.2.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.9.2.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.11.2.5 03-Jan-2003  thorpej Sync with HEAD.
 1.11.2.4 18-Oct-2002  nathanw Catch up to -current.
 1.11.2.3 28-Feb-2002  nathanw Catch up to -current.
 1.11.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.11.2.1 06-Nov-2001  nathanw file Makefile.arm was added on branch nathanw_sa on 2002-01-08 00:23:10 +0000
 1.18.2.7 11-Dec-2005  christos Sync with head.
 1.18.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.18.2.5 17-Jan-2005  skrll Sync with HEAD.
 1.18.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.18.2.2 25-Aug-2004  skrll Sync with HEAD.
 1.18.2.1 03-Aug-2004  skrll Sync with HEAD
 1.20.4.1 06-Feb-2005  jmc Pull up patch (requested by martti in ticket #1086)
Move ipf to sys/dist/ipf and sync w. trunk
 1.25.4.1 26-Oct-2005  yamt sync with head
 1.25.2.4 04-Feb-2008  yamt sync with head.
 1.25.2.3 03-Sep-2007  yamt sync with head.
 1.25.2.2 30-Dec-2006  yamt sync with head.
 1.25.2.1 21-Jun-2006  yamt sync with head.
 1.27.24.1 18-Dec-2006  yamt sync with head.
 1.27.22.1 12-Jan-2007  ad Sync with head.
 1.28.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.29.28.1 18-Feb-2008  mjf Sync with HEAD.
 1.29.22.1 23-Mar-2008  matt sync with HEAD
 1.29.20.1 27-Jan-2008  chris Sync to HEAD.
 1.29.16.1 28-Feb-2008  rjs Sync with HEAD.
 1.31.8.1 18-May-2008  yamt sync with head.
 1.31.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.32.44.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.32.40.2 02-Jun-2012  mrg sync to latest -current.
 1.32.40.1 05-Apr-2012  mrg sync to latest -current.
 1.32.36.4 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.32.36.3 30-Oct-2012  yamt sync with head
 1.32.36.2 23-May-2012  yamt sync with head.
 1.32.36.1 17-Apr-2012  yamt sync with head
 1.32.20.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.34.2.4 03-Dec-2017  jdolecek update from HEAD
 1.34.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.34.2.2 25-Feb-2013  tls resync with head
 1.34.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.37.2.1 18-May-2014  rmind sync with head
 1.42.4.1 05-Jan-2016  snj Pull up following revision(s) (requested by martin in ticket #1058):
sys/arch/arm/conf/Makefile.arm: revision 1.43
sys/arch/aarch64/conf/Makefile.aarch64: revision 1.2
share/mk/bsd.sys.mk: revision 1.243, 1.244
Use wildcards for stripping/preserving the mapping symbols on ARM and
AArch64. LLVM creates unique symbols in each file of the form $a.n etc.
--
Fix typo in OBJCOPYLIBFLAGS_EXTRA for aarch64eb.
 1.45.2.1 06-Jun-2015  skrll Sync with HEAD
 1.48.18.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.48.18.1 10-Jun-2019  christos Sync with HEAD
 1.48.16.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.49.4.2 27-Feb-2020  martin Pull up following revision(s) (requested by skrll in ticket #742):

sys/arch/arm/arm32/pmap.c: revision 1.388
sys/arch/arm/arm32/armv7_generic_space.c: revision 1.11
sys/arch/arm/arm/cpufunc.c: revision 1.176
sys/arch/arm/conf/Makefile.arm: revision 1.54 (via patch)
sys/arch/arm/include/arm32/pmap.h: revision 1.161

Fix the armv[67] memory attributes for uncached memory. Previously it was
mapped as strongly-ordered which meant that unaligned accesses would fault.
armv7_generic_bs_map now maps pages with PMAP_DEV which is treated as SO
bus_dma continues to use PMAP_NOCACHE as appropriate, but this now get
mapped to the correct memory attribute bits for armv[67]

DEVMAP_ENTRY usees a new flag PTE_DEV.

The workaround for the unaligned access faults is now removed.
XXX Other armv[67] boards bus_space implementations should be checked.
XXX There is scope to reduce the difference to aarch64
 1.49.4.1 01-Sep-2019  martin Pull up following revision(s) (requested by rin in ticket #146):

sys/arch/arm/conf/Makefile.arm: revision 1.50
sys/dev/usb/if_axe.c: revision 1.120

PR kern/54486

Workaround for alignment faults on ARMv6+, at least occur with
axe(4) and athn(4) drivers.

For ARMv6+, unaligned access is enabled by default. However, it
cannot be used for non-cacheable memory, which is used as DMA
buffers. This results in alignment faults above. A real fix is
to use cacheable memory as DMA buffers. However, it breaks some
drivers, awge(4) and vchiq(4) at least.

Until we figure out problems and fix them, we choose a fail-safe
workaround here; forbid unaligned memory access for whole kernel.
Affects on performance is negligibly small as far as we can see.

XXX
pullup netbsd-9

-

PR kern/54486
Revert workaround introduced in rev 1.94:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94

This is a problem specific to ARMv6+, and addressed by
arch/arm/conf/Makefile.arm rev 1.50:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50

XXX
pullup netbsd-9
 1.53.2.1 29-Feb-2020  ad Sync with head.
 1.55.20.1 11-Sep-2023  martin Pull up following revision(s) (requested by rin in ticket #363):

sys/arch/aarch64/conf/Makefile.aarch64: revision 1.24
sys/arch/aarch64/conf/Makefile.aarch64: revision 1.25
sys/arch/shark/conf/Makefile.shark.inc: revision 1.28
sys/arch/alpha/conf/Makefile.alpha: revision 1.88
sys/arch/mips/conf/Makefile.mips: revision 1.73
sys/conf/Makefile.kern.inc: revision 1.298
sys/conf/Makefile.kern.inc: revision 1.299
sys/arch/cats/conf/Makefile.cats.inc: revision 1.37
sys/arch/arm/conf/Makefile.arm: revision 1.56
sys/arch/arm/conf/Makefile.arm: revision 1.57
sys/arch/riscv/conf/Makefile.riscv: revision 1.10

Always use arm-elf2aout; no a.out support both for binutils{,.old}

Fix kernel size inflation for arm and aarch64 (PR toolchain/57146)

For some conditions, SYSTEM_LD_TAIL is set for arm and aarch64.
Then, ctfmerge(1) in default SYSTEM_LD_TAIL is unintentionally
skipped, which results in the catastrophic kernel size inflation,
as reported in the PR.

Also, introduce and use OBJCOPY_STRIPFLAGS variable instead of
STRIPFLAGS, as strip(1) is replaced by objcopy(1) during MI
kernel build procedure.

For Makefile.{arm,aarch64}, weird logic is used to determine how
to handle debug symbols; MKDEBUG{,KERNEL} are taken into account
later in sys/conf/Makefile.kern.inc.

Use OBJCOPY_STRIPFLAGS instead of STRIPFLAGS.
Simplify fix for PR toolchain/57146

Introduce ARCH_STRIP_SYMBOLS variable to centralize logic for debug
symbols from MD Makefile's to Makefile.kern.inc.
 1.5 21-Nov-2002  thorpej Remove, with extreme prejudice.
 1.4 05-Mar-2002  thorpej branches: 1.4.8;
Fix size/padding of .data. From Nick.
 1.3 20-Feb-2002  skrll branches: 1.3.2;
Use shell arithmetic as much as possible and reduce the number of times
that awk is used to one.

No functional change.
 1.2 09-Feb-2002  chris branches: 1.2.2;
Update elf2aout to cope with infile and outfile being the same.
Make the cats a.out kernel be called netbsd. This means that make install installs the correct kernel
 1.1 06-Feb-2002  thorpej A slightly cleaned up version of chris/nick's elf2aout.sh for ARM
platforms.
 1.2.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.2.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.2.2.1 09-Feb-2002  jdolecek file elf2aout.sh was added on branch kqueue on 2002-02-11 20:07:20 +0000
 1.3.2.4 11-Dec-2002  thorpej Sync with HEAD.
 1.3.2.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.3.2.2 28-Feb-2002  nathanw Catch up to -current.
 1.3.2.1 20-Feb-2002  nathanw file elf2aout.sh was added on branch nathanw_sa on 2002-02-28 04:07:26 +0000
 1.4.8.1 03-Feb-2003  jmc Apply hand patch (from chris in ticket #1144)
Include the .rodata area into the .text area. Fixes PR#20171
 1.168 20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.167 28-Oct-2022  skrll MI PMAP EFI_RUNTIME support
 1.166 02-Apr-2022  skrll Update to support EFI runtime outside the kernel virtual address space
by creating an EFI RT pmap that can be activated / deactivated when
required.

Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines.

On Arm64 the usage of pmapboot_enter is reduced and the mappings are
created much later in the boot process -- now in cpu_startup_hook.
Backward compatiblity for KVA mapped RT from old bootaa64.efi is
maintained.

Adding support to other platforms should be easier as a result.
 1.165 06-Aug-2021  jmcneill Arm: Add support for SMC Calling Convention

Arm DEN0028 defines a calling mechanism used with Secure Monitor Call (SMC)
and Hypervisor Call (HVC) instructions. To discover SMCCC, we must:

1) Find the PSCI conduit (either via ACPI FADT, or Device Tree)
2) Use PSCI_VERSION to determine whether PSCI_FEATURES is supported
3) Call PSCI_FEATURES with SMCCC_VERSION to determine the implementation
version.
 1.164 21-Oct-2020  christos make process_machdep.c included always since it provides register i/o used by
sys_process_getlwpstatus.c which is always included.
 1.163 20-Oct-2020  christos harmonize process_machdep.c inclusion.
 1.162 29-Sep-2020  jmcneill Collapse all CPU_CORTEXA<n> options into CPU_CORTEX and do runtime
detection instead of ifdefs where required.
 1.161 02-Aug-2020  maxv Add support for Privileged Access Never (ARMv8.1-PAN).

PAN provides the same functionality as SMAP on x86: it forbids kernel
access to userland pages when PSTATE.PAN=1, and allows such accesses when
PSTATE.PAN=0.

We clear SCTLR_SPAN, to guarantee that PAN=1 each time the kernel is
entered. We catch PAN faults and panic right away without further
processing. In copyin, copyout, etc, we temporarily authorize access to
userland pages.

PAN is a very useful exploit mitigation. Reviewed by ryo@, thanks. Tested
on Qemu. Enabled by default.
 1.160 27-Jul-2020  riastradh Enable ChaCha NEON code on armv7 too.

The 4-blocks-at-a-time assembly helper is disabled for now; adapting
it to armv7 is going to be a little annoying with only 16 128-bit
vector registers.

(Should also do a fifth block in the integer registers for 320 bytes
at a time.)
 1.159 27-Jul-2020  riastradh Fix outdated comment.
 1.158 29-Jun-2020  riastradh New permutation-based AES implementation using ARM NEON.

Also derived from Mike Hamburg's public-domain vpaes code.
 1.157 18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.156 13-Apr-2020  maxv Add KASAN-DMA support on aarch64, same as amd64. Discussed with skrll@.
 1.155 13-Apr-2020  maxv Add support for Branch Target Identification (BTI).

On the executable pages that have the GP (Guarded Page) bit, the semantic
of the "br" and "blr" instructions is changed: the CPU expects the first
instruction of the jump/call target to be "bti", and faults if it isn't.

We add the GP bit on the kernel .text pages (and incidentally the .rodata
pages, but we don't care). The compiler adds a "bti c" instruction at the
beginning of each C function. We modify the ENTRY() macros to manually add
"bti c" in the asm functions.

cpuswitch.S needs a specific change: with "br x27" the CPU expects "bti j",
which is bad because the functions begin with "bti c"; switch to "br x16",
for the CPU to accept "bti c".

BTI helps defend against JOP/COP. Tested on Qemu.
 1.154 12-Apr-2020  maxv Add support for Pointer Authentication (PAC).

We use the "pac-ret" option, to sign the return instruction pointer on
function entry, and authenticate it on function exit. This acts as a
mitigation against ROP.

The authentication uses a per-lwp (secret) I-A key stored in the 128bit
APIAKey register and part of the lwp context. During lwp creation, the
kernel generates a random key, and during context switches, it installs
the key of the target lwp on the CPU.

Userland cannot read the APIAKey register directly. However, it can sign
its pointers with it, because the register is architecturally shared
between userland and the kernel. Although part of the CPU design, it is
a bit of an undesired behavior, because it allows to forge valid kernel
pointers from userland. To avoid that, we don't share the key with
userland, and rather switch it in EL0<->EL1 transitions. This means that
when userland executes, a different key is loaded in APIAKey than the one
the kernel uses. For now the userland key is a fixed 128bit zero value.

The DDB stack unwinder is changed to strip the authentication code from
the pointers in lr.

Two problems are known:

* Currently the idlelwps' keys are not really secret. This is because
the RNG is not yet available when we spawn these lwps. Not overly
important, but would be nice to fix with UEFI RNG.
* The key switching in EL0<->EL1 transitions is not the most optimized
code on the planet. Instead of checking aarch64_pac_enabled, it would
be better to hot-patch the code at boot time, but there currently is
no hot-patch support on aarch64.

Tested on Qemu.
 1.153 15-Feb-2020  skrll branches: 1.153.4;
Various updates and improvements to cpu start up on arm/aarch64

- start sharing more code around the AP startup messaging.
- call arm_cpu_topology_set early so that ci_core_id is available for
drivers, e.g. bcm2835_intr.c
- both arm and aarch64 now have
- a static cpu_info_store array
- the same arm_cpu_{hatched,mbox}
 1.152 21-Jan-2020  skrll Sort a bit
 1.151 21-Jan-2020  skrll Trailing whitespace
 1.150 15-Jan-2020  mrg port the arm64 cpu topology setup for big.little to arm.

rename arm64 cpu_do_topology() to arm_cpu_do_topology() and
call it from both arm cpu_attach().

replace both aarch64_set_topology() inline code in arm
cpu_attach() with new arm_cpu_do_topology(), which is called
by the arm64 locore as well (possibly not needed, which would
allow it to become static.)

not yet tested on a real big.little armv7 system. tested
on rockpro64 and pinebook pro.
 1.149 20-Nov-2019  pgoyette branches: 1.149.2;
Move all non-emulation-specific coredump code into the coredump module,
and remove all #ifdef COREDUMP conditional compilation. Now, the
coredump module is completely separated from the emulation modules, and
they can all be independently loaded and unloaded.

Welcome to 9.99.18 !
 1.148 27-Jan-2019  pgoyette Merge the [pgoyette-compat] branch
 1.147 05-Dec-2018  jmcneill Split armv7/armv8 tprof backend config logic from the fdt bus glue.
 1.146 28-Oct-2018  jmcneill Add support for EFI runtime services on aarch64.
 1.145 18-Oct-2018  skrll Provide generic start code that assumes the MMU is off and caches are
disabled as per the linux booting protocol for ARMv6 and ARMv7 boards.
u-boot image type should be changed to 'linux' for correct behaviour.

The new start code builds a minimal "bootstrap" L1PT with cached access
disabled and uses the same table for all processors. AP startup is
performed in less steps and more code is written in C.

The bootstrap tables and stack are placed into an (orphaned) section
"_init_memory" which is given to uvm when it is no longer used.

Various kernels have been converted to use this code and tested. Some
boards were provided by TNF. Thanks!

The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS
kernels. The GENERIC kernel will also work on RPI2 using u-boot.

Thanks to martin@ and aymeric@ for testing on parallella and nanosoc
respectively
 1.144 06-Oct-2018  skrll Whitespace
 1.143 21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.142 16-Sep-2018  skrll Whitespace
 1.141 10-Aug-2018  maxv remove reference to CPU_ARMV2, suggested by jmcneill@
 1.140 10-Aug-2018  maxv Retire CPU_ARM2, CPU_ARM250 and CPU_ARM3, they are all leftovers of
acorn26.

ok jmcneill@ skrll@
 1.139 01-Apr-2018  ryo branches: 1.139.2;
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
 1.138 24-Jan-2018  skrll branches: 1.138.2;
Remove port-acorn26

OK core@
 1.137 17-Jan-2018  skrll G/C ARM32_NEW_VM_LAYOUT
 1.136 10-Nov-2017  matt Add CPU_CORTEXA35
 1.135 08-Oct-2017  jmcneill defflag CPU_CORTEXA53
 1.134 24-Aug-2017  jmcneill Add __HAVE_GENERIC_CPU_INITCLOCKS option. If set, don't export
cpu_initclocks from device drivers as common code (in this case FDT) will
provide its own copy.
 1.133 28-Jun-2017  jmcneill Add support for ARM Power State Coordination Interface (PSCI).
 1.132 26-May-2017  jmcneill branches: 1.132.2;
Recognize Cortex-A57 FPU, GIC, and Generic Timer.
 1.131 11-Nov-2015  skrll Support pmap_pv_track and friends
 1.130 07-Feb-2015  jmcneill According to the Cortex-A5 TRM, the CBAR register is not implemented and
always reads as 0x00000000. Add ARM_CBAR option to set this in kernel
config.
 1.129 01-Dec-2014  matt Add CPU_CORTEXA17
 1.128 26-Nov-2014  matt branches: 1.128.2;
Add option ARM_HAS_LPAE
 1.127 14-Apr-2014  matt branches: 1.127.2;
Support (untested) SHEEVA_L2_CACHE and SHEEVA_L2_CACHE_WT options.
Move prototypes out to <arm/cpufunc.h> to their own file.
Add sdcache routines to cpufunc_asm_sheeva.S
Add code sheeve_setup to init the sdcache and sdcache info.
 1.126 30-Mar-2014  matt branches: 1.126.2;
Make the ARM pmap use ASIDs, split TTBRs, and MP safe. This only happens for
ARMv6 or later CPUs. This means that on context switch that the TLBs and
caches no longer to cleaned/flushed. Also, eXecute Never (XN) protection has
been added so non-exec pages can not be run. Change the page size for ARMv6+
to be 8KB while allows a L1PT to be a normal page. This means that the L1PT
is not special. Use the XN support to only sync pages that are executed from.
 1.125 18-Mar-2014  matt defflag VERBOSE_INIT_ARM
 1.124 20-Feb-2014  matt cpu_cortex doesn't need the arm11 cpufuncs any more
 1.123 12-Nov-2013  matt CPU_ARMV[67] imply ARM32_DISABLE_ALIGNMENT_FAULTS
Make it explicit.
 1.122 17-Aug-2013  matt Nuke atomic.S since we have MI defined atomic ops
 1.121 02-Jul-2013  matt Rework to have CPU_PREARMV6, CPU_ARMV6, as well as CPU_ARMV7
 1.120 22-Jun-2013  matt branches: 1.120.2;
File VBAR option
 1.119 12-Jun-2013  matt Add a ARM_HAS_VBAR option which forces the use of the VBAR register. This
allows much code to deal with vector_page mappings to be eliminated. On a
BEAGLEBONE kernel, this saves 8KB of text and instructions that never have
to be executed. (The PJ4B has VBAR but doesn't implement the security
extensions it is part of so a method was needed to allow it use VBAR with
relying on the default test for the security extensions.)
 1.118 12-Jun-2013  matt Add CPU_ARMV7 and make CPU_PJ4B and CPU_CORTEX instantiate it.
 1.117 19-May-2013  rkujawa Make PJ4B support code compilable.

Obtained from Marvell, Semihalf.
 1.116 14-Feb-2013  matt Add BUSDMA_COUNTERS option
 1.115 28-Jan-2013  matt Disable bzero_page_vfp and bcopy_page_vfp since it really isn't any faster
than memcpy.
 1.114 10-Dec-2012  matt Add code to use VFP(or Neon) instructions to zero or copy a page via
pmap_zero_page and pmap_copy_page. (Not hooked into vfp_init yet).
Requires FPU_VFP
 1.113 05-Dec-2012  matt ARMFPE hasn't compiled since NetBSD 4. Remove it.
Complete support for FPU_VFP.
fpregs now contains vfpreg.
XXX vfpreg only has space for 16 64-bit FP registers though VFPv3 and later
have 32 64-bit FP registers.
 1.112 17-Oct-2012  matt Add a PMAP_NEEDS_ALLOC_POOLPAGE / PMAP_ALLOC_POOLPAGE hook so systems can
allocate pool pages from a specific VM freelist.
 1.111 18-Sep-2012  matt add _ARM32_NEED_BUS_DMA_BOUNCE to opt_arm_bus_space.h (It's not really a
bus_space option but it's close enough).
 1.110 29-Aug-2012  matt branches: 1.110.2;
Add core locator to mainbus. Add support for attaching multiple CPUs
 1.109 29-Aug-2012  matt Rename ARM options PROCESS_ID_IS_CUR{CPU,LWP} to TPIDRPRW_IS_CUR{CPU,LWP}
since TPIDRPRW is the cp15 register name.
Initialize it early in start along with CI_ARM_CPUID.
Remove other initializations.
We alays have ci_curlwp.
Enable TIPRPRW_IS_CURCPU in std.beagle.
[tested on a beaglboard (cortex-a8)]
 1.108 12-Aug-2012  matt Rework VFP support to use PCU.
Add emulation of instruction which save/restore the VFP FPSCR.
Add a sysarch hook to VFP FPSCR manipulation.

[The emulation will be used by libc to store/fetch exception modes and
rounding mode on a per-thread basis.]
 1.107 03-Aug-2012  matt COMPAT_NETBSD32 support for ARM. Which is strange since ARM is already
32-bits. But the newer ARM ABI AAPCS changes the alignment of 64-bit
fields so structures need to copied in and out to deal with the alignment
change. This is a kludge but makes debugging of AAPCS support much easier.
 1.106 21-Jul-2012  skrll Add support for the ARM1176JZS
 1.105 14-Jul-2012  matt Add intrbase locator to mainbus.
 1.104 13-Jul-2012  matt Begin support for Cortex A5, A7, A15 and expand A8 and A9 definitions.
Instead of testing all possible CPUids for a cortex, we know what range
a cortex will be so mask out the insignificant parts and do a single test.
 1.103 11-Dec-2011  kiyohara branches: 1.103.2;
Require arm3_cache_flush for ARM2/ARM250.
 1.102 12-Jun-2011  rmind branches: 1.102.2; 1.102.6;
Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
 1.101 10-Mar-2011  bsh branches: 1.101.2;
Preliminary ARM11 MPCore support.

I have confirmed this commit doesn't affect existing evbarm kernels by
comparing binaries.
 1.100 02-Oct-2010  kiyohara branches: 1.100.2;
Add support Marvell Sheeva Core and SoC. (Orion/Kirkwood)
Discovery Innovation not yet.
 1.99 19-Jun-2010  matt Cleanup the armv7 changes. Add ARM_ARCH_7. Use CPU_CORTEX instead of
CPU_CORTEXA8 everywhere since there more types of Cortex than just the A8.
CPU_CORTEXA8 still exists but causes CPU_CORTEX to be defined.
Add CPU_CORTEXA9 as well. Use .arch armv7a to get us the isb/dsb
instructions.

Test booted to root device prompt on a Beagleboard.
All ARM kernels successfully test built.
 1.98 16-Jun-2010  jmcneill PR port-arm/43299: Support added for igepv2/cortexa8/omap3530

Apply patch from PR, with build fixes. ok skrll, matt
 1.97 27-Dec-2009  uebayasi branches: 1.97.2; 1.97.4;
Add write-through cache work-around for ARM11 as well as ARM9/ARM10. Analyzed
& tested on i.MX35 with help from Tsubai Masanari.
 1.96 18-Jan-2009  bjh21 Adapt the arm32 fusu implementation for use on PROG26 configurations
and use it on acorn26.
 1.95 18-Jan-2009  bjh21 Move arch/arm/arm32/fusu.S to arch/arm/arm/fusu.S in preparation for making
it usable on acorn26 as well.
 1.94 19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.93 14-Oct-2008  matt branches: 1.93.2; 1.93.8;
Add FA526 support (compile tested only)
 1.92 27-Aug-2008  matt Add CPU_CORTEXA8
 1.91 27-Apr-2008  matt branches: 1.91.2; 1.91.6;
Merge kernel changes in matt-armv6 to HEAD.
 1.90 15-Mar-2008  rearnsha branches: 1.90.2; 1.90.4;
VFP support.
 1.89 26-Jan-2008  chris branches: 1.89.2; 1.89.6;
Add arm version of cpu_in_cksum. Based on previous in_cksum4 code.

In fact it's mostly the same code, with a different stub on it.

On a cats the regress/sys/net/in_cksum tests show that it takes around
50-60% of the time the C version takes. In some cases it takes as low as
20%.
 1.88 25-Jan-2008  joerg Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
They call a backend function cpu_in_cksum after possibly
computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
The default implementation is moderate fast on most platforms
and provides a 32bit accumulator with 16bit addends for L32 platforms
and a 64bit accumulator with 32bit addends for L64 platforms.
It handles edge cases like very large mbuf chains (could happen with
native IPv6 in the future) and provides a good base for new native
implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.
 1.87 06-Jan-2008  ad Add MODULAR option. Include kernel linker stuff if MODULAR.
 1.86 17-Oct-2007  garbled branches: 1.86.2; 1.86.8;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.85 07-Jul-2007  tsutsui branches: 1.85.6; 1.85.10; 1.85.12;
Remove leftover netns stuff.
 1.84 17-May-2007  yamt merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
 1.83 09-Mar-2007  thorpej branches: 1.83.2; 1.83.4; 1.83.8; 1.83.10;
Rewrite the ARM mutex implementation to be of the simple-mutex variety.
Because pre-v6 ARM lacks support for an atomic compare-and-swap, we
implement _lock_cas() as a restartable atomic squence that is checked
in the IRQ handler right before AST processing. (This is safe because,
for all practical purposes, there are no SMP pre-v6 ARM systems.)

This can serve as a model for other non-MP platforms that lack the
necessary atomic operations for mutexes (SuperH, for example).

Upshots of this change:
- kmutex_t is now down to 8 bytes on ARM; about as good as we can get.
- ARM2 systems don't have to trap and emulate SWP or SWPB for mutexes.

The acorn26 port is not updated by this commit to do the LOCK_CAS_CHECK.
That is left as an exercise for the port maintainer.

Reviewed and tested by Matt Thomas.
 1.82 06-Jan-2007  christos branches: 1.82.2;
Scott Allan in http://mail-index.netbsd.org/port-arm/2006/07/31/0000.html
Patch to add support for ARM9E
 1.81 11-Dec-2005  christos branches: 1.81.20; 1.81.24;
merge ktrace-lwp.
 1.80 13-Sep-2005  christos split compat_16 functions to their own file and make this compile again.
 1.79 04-Jul-2005  bsh branches: 1.79.2;
The first step to support Intel PXA270.

kernel config option CPU_XSCALE_PXA2X0 is now obsoleted by
CPU_XSCALE_PXA250 and CPU_XSCALE_PXA270. If both of them are defined,
CPU is determined run-time.
 1.78 03-Jun-2005  rearnsha Very basic support for the ARM1136.

This code takes no advantage of any 'new' features provided by
architecture 6 devices (such as physically tagged caches or new
MMU features), and basically runs the chip in a 'legacy v5' mode.
 1.77 03-Apr-2004  bsh add an option to force ARM9 dcache to write-through mode.
 1.76 05-Nov-2003  scw Add "options ARM32_DISABLE_ALIGNMENT_FAULTS" to forcibly disable
alignment fault checking if necessary.

This option gets the acorn32 port working again.

XXX: Richard Earnshaw suggested enabling alignment faults for
XXX: userland only on acorn32. Need to investigate this.
 1.75 23-Oct-2003  scw Add a defflag for __BUS_SPACE_HAS_STREAM_METHODS, and add the
appropriate glue in bus.h, contingent on the option being defined.

This allows stream methods to be available on a port-by-port basis.
 1.74 11-Sep-2003  scw Hand-optimised in_cksum/in4_cksum for ARM and XSCALE.
Contributed by Wasabi Systems, with input from Chris Gilbert,
Richard Earnshaw and David Laight.
 1.73 06-Sep-2003  rearnsha Add build-system support for ARM10.
 1.72 23-May-2003  ichiro branches: 1.72.2;
support IXP425 Intel Network Processor
running on BigEndian
 1.71 21-May-2003  thorpej Move the new pmap from arm32/pmap_new.c to arm32/pmap.c, fully replacing
the old.
 1.70 03-May-2003  thorpej ARM32_PMAP_NEEDS_PTE_SYNC no longer exists.
 1.69 28-Apr-2003  briggs Add arm32 machine-specific remote kgdb support. Largely
from PR port-arm/15530 by bsh@, but with some updates from
me, including a fresh arm32/kgdb_machdep.c--ported from pc532.
 1.68 21-Apr-2003  thorpej Defflag XSCALE_CACHE_READ_WRITE_ALLOCATE and XSCALE_NO_COALESCE_WRITES.
 1.67 18-Apr-2003  scw Add the generic arm32 bits of the new pmap, contributed by Wasabi Systems.

Some features of the new pmap are:

- It allows L1 descriptor tables to be shared efficiently between
multiple processes. A typical "maxusers 32" kernel, where NPROC is set
to 532, requires 35 L1s. A "maxusers 2" kernel runs quite happily
with just 4 L1s. This completely solves the problem of running out
of contiguous physical memory for allocating new L1s at runtime on a
busy system.

- Much improved cache/TLB management "smarts". This change ripples
out to encompass the low-level context switch code, which is also
much smarter about when to flush the cache/TLB, and when not to.

- Faster allocation of L2 page tables and associated metadata thanks,
in part, to the pool_cache enhancements recently contributed to
NetBSD by Wasabi Systems.

- Faster VM space teardown due to accurate referenced tracking of L2
page tables.

- Better/faster cache-alias tracking.

The new pmap is enabled by adding options ARM32_PMAP_NEW to the kernel
config file, and making the necessary changes to the port-specific
initarm() function. Several ports have already been converted and will
be committed shortly.
 1.66 29-Mar-2003  bsh put options XSCALE_CACHE_WRITE_THROUGH into opt_cpuoptions.h.
add XSCALE_CACHE_WRITE_BACK.
 1.65 02-Jan-2003  thorpej Clean up evbarm interrupt support a little:
* Define an ARM_INTR_IMPL option, which specifies a header file
describing the interrupt implementation for the platform. Use
this instead of the list of EVBARM_BOARDTYPE checks.
* Make the s3c2xx0 interrupt dispatch code a bit more generic, and move
it to a generic location so that other platforms can use it.

This eliminates all uses of the EVBARM_BOARDTYPE stuff, so delete it.
 1.64 19-Oct-2002  bsh make atomic_{set,clear}_bit() inline for arm32 ports, and
add <machine/atomic.h> for them.
 1.63 11-Aug-2002  bjh21 branches: 1.63.2;
Move the arm32 copystr.S from arch/arm/arm32 to arch/arm/arm and add support
for 26-bit modes (basically saving R14 when we might get a page fault).
Use it on all ARM architectures now.
 1.62 11-Aug-2002  bjh21 New, improved version of copyin(), copyout(), and kcopy() by Allen Briggs.
This version works on both 26-bit and 32-bit machines. For large copies,
it's up to three times as fast as the old arm32 version and five times as
fast as the old arm26 version. For small copies it seems to be even faster
(getrusage() is apparently over ten times faster on an ARM610).

Hooray for Allen!
 1.61 15-Jul-2002  ichiro add support for ixp12x0
 1.60 03-May-2002  rjs branches: 1.60.2; 1.60.4;
Add correct use of cpu types for SA1100 and SA1110.
 1.59 03-May-2002  thorpej Add the CPU_XSCALE_PXA2X0 option. From Hiroyuki Bessho, PR 16617.
 1.58 12-Apr-2002  thorpej Add some generic bus_space ops, which are pulled in by the
"bus_space_generic" configuration attribute.
 1.57 12-Apr-2002  thorpej Centralize ARM CPU configuration information by adding a new header
file, <arm/cpuconf.h>, which pulls in "opt_cputypes.h" and then defines
the following:
* CPU_NTYPES -- now many CPU types are configured into the kernel. What
you really want to know is "== 1" or "> 1".
* Defines ARM_ARCH_2, ARM_ARCH_3, ARM_ARCH_4, ARM_ARCH_5, depending
on which ARM architecture versions are configured (based on CPU_*
options). Also defines ARM_NARCH to determins how many architecture
versions are configured.
* Defines ARM_MMU_MEMC, ARM_MMU_GENERIC, ARM_MMU_XSCALE depending on
which classes of ARM MMUs are configured into the kernel, and ARM_NMMUS
to determine how many MMU classes are configured.

Remove the needless inclusion of "opt_cputypes.h" in several places.
Convert remaining users to <arm/cpuconf.h>.
 1.56 26-Mar-2002  thorpej Restructure a few things in order to support other XScale core
I/O processors:
* The i80200 and the i80321 have the same CPU ID, so split the
CPU_XSCALE option into CPU_XSCALE_80200 and CPU_XSCALE_80321
options, and don't let them both be defined at the same time.
XXX May want to revisit this in the future.
* Split some registers common between the i80200 and i80321 into
<arm/xscale/xscalereg.h>.
* Rename a few existing functions.
 1.55 24-Mar-2002  bjh21 arm26->acorn26 transition.
 1.54 30-Jan-2002  thorpej Add a sleep routine for the SA-11x0.
 1.53 24-Jan-2002  briggs Two changes for XScale:
1) Add defparam XSCALE_CCLKCFG to define a parameter for the
CCLKCFG register. Default it to '9' on the IQ80310.
2) Add a sleep call to the xscale CPU function vector (replacing
the nullop) which should drop the CPU into "idle" mode when
cpu_switch finds nothing on the run queues.
 1.52 17-Jan-2002  bjh21 Separate out syscall() out into three parts:
swi_handler() does stuff that all SWIs will need, then calls
curproc->p_emul->e_syscall.
syscall() handles native NetBSD system calls.
linux_syscall() handles Linux system calls.
 1.51 14-Jan-2002  bjh21 Crude first cut at ARMLinux binary compatibility. Successfully runs
"/emul/linux/bin/echo hello, world", dynamically linked.
 1.50 12-Jan-2002  bjh21 Combined syscall handler for all ARM ports. This is basically the arm32
version, made readable and compatible with arm26. In addition, this adds
support for NetBSD/arm's newly allocated SWI range.
 1.49 07-Jan-2002  bjh21 On arm26, vectors.S needs to be at the start of the kernel text, so that it's
on a page boundary and can be mapped straight into zero page. This means it
has to be in MD_SFILES on arm26, and not in SFILES.

This probably leaves kernel_text in the wrong place, but it at least leaves the system bootable.
 1.48 21-Dec-2001  bjh21 Merge ast() and userret() between arm32 and arm26. The implementation used
is the arm32 one.
 1.47 20-Dec-2001  thorpej * Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
between arm26 and arm32.
 1.46 28-Nov-2001  lukem - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups
 1.45 26-Nov-2001  thorpej Move the interrupt-related file declarations into port-specific
config descriptions so that each port choose whether or not to
use it.
 1.44 24-Nov-2001  thorpej Make the ARM, Ltd. floating point emulator work w/ ELF.
 1.43 24-Nov-2001  thorpej Move the ARM, Ltd. floating point emulator to arch/arm.
 1.42 22-Nov-2001  thorpej Add 26-bit and 32-bit types.h files, which indicate the programming
model in use for a given platform (__PROG26 vs __PROG32), then pulls
in <arm/types.h>. Change each ARM port to pull in <arm/arm26/types.h>
or <arm/arm32/types.h> as appropriate. Change all references to PROG26
and PROG32 to __PROG26 and __PROG32. Eliminate the opt_progmode.h
header file.
 1.41 20-Nov-2001  lukem cleanup:
options SPACE TAB
makeoptions TAB
psuedo-device TAB
remove trailing whitespace
replace multiple spaces -> tabs
options "FOO" -> options FOO
options "FOO=bar" -> options FOO=bar
options "FOO=\"bar\"" -> options FOO="\"bar\""
 1.40 10-Nov-2001  thorpej branches: 1.40.2;
Split all the model/version-specific cpufuncs into separate files
corresponding to the model/version.
 1.39 18-Oct-2001  rearnsha branches: 1.39.2;
Add CPU_ARM9 to opt_cputypes.h
 1.38 05-Sep-2001  matt Don't compile SPL/INTR stuff if NEWINTR is defined.
 1.37 05-Aug-2001  chris Share procfs_machdep.c across arm.
 1.36 31-Jul-2001  matt Add a CPU_XSCALE defopt (for eventual support).
 1.35 28-Jul-2001  chris Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.
 1.34 10-Jul-2001  bjh21 Purge CPU_ARM7500. Thanks to Reinoud's work, it's no longer needed.
 1.33 08-Jul-2001  rjs branches: 1.33.2;
Initial copy of SA11x0 support from hpcarm.
 1.32 18-Jun-2001  bjh21 Merge arm32/dev/bus_space_notimpl.S and hpcarm/hpcarm/bus_space_notimpl.S
into arm/arm/bus_space_notimpl.S. They were identical anyway.

This file has no excuse for being in assembler, but I'll leave that for another
day.
 1.31 05-Jun-2001  bjh21 Replace arm/arm32/db_trace.c and arm26/arm26/db_trace.c with a unified version
in arm/arm. This version is based on the arm26 version, and includes dumping
the contents of stack frames, with automatic determination of the save code
pointer offset.
 1.30 03-Jun-2001  chris Add support for ARM7TDMI, as provided in a patch from John Fremlin to port-arm32.

Shouldn't effect any currently in tree ports.
 1.29 29-May-2001  bjh21 Move blockio.S from sys/arch/arm32/arm32 to sys/arch/arm/arm, since I want to
start using it on arm26.

hpcarm gets to keep its own version, since it's not identical and I haven't
got an hpcarm box to test.
 1.28 23-May-2001  chris Create an asm based version of in4_cksum based on the sparc version.

Also don't compute psuedo header for nxt == 0
 1.27 13-May-2001  bjh21 strstr() is no longer used in the kernel. G/C it.
 1.26 13-May-2001  bjh21 Move get_bootconf_option() into a new file, sys/arch/arm/arm/bootconfig.c,
since it's in no way machine-dependent. It's not really ARM-specific either,
but I don't think it's useful enough to be made part of the MI kernel.
 1.25 06-May-2001  bjh21 Move "defopt PMAP_DEBUG" into files.arm, since it's used by code in arch/arm.
 1.24 06-May-2001  bjh21 Move cpufunc stuff from arm32/arm32 to arm/arm. The only change involved is
to add recognition of the SA-1100 and SA-1110 for compatibility with hpcarm
(which is now using this code as well).
 1.23 20-Apr-2001  matt Split cpu from mainbus so that cpu can attached to other buses (like ofbus).
 1.22 14-Mar-2001  toshii Move references to arm/arm/disksubr*.c from files.arm to
files.{arm26,arm32,dnard}.
 1.21 11-Mar-2001  bjh21 "needs-flag" for cpu is no longer needed.
 1.20 08-Mar-2001  bjh21 Use the same undefined-instuction handler on both arm26 and arm32. The handler
is derived mostly from the arm32 version, but with a check for an obscure ARM2
bug thrown in.

arm26 fpu and cpu drivers use the new interface for catching undefined
instructions.
 1.19 06-Mar-2001  matt Move arm32/arm32/ast.c to arm/arm32/ast.c
 1.18 05-Mar-2001  bjh21 Move undefined.c from sys/arch/{arm32/arm32,hpcarm/hpcarm} to sys/arch/arm/arm
in preparation for making it usable on arm26 as well.
 1.17 04-Mar-2001  bjh21 branches: 1.17.2;
Merge setregs() from sys/arch/arm32/arm32/machdep.c,
sys/arch/hpcarm/hpcarm/machdep.c and sys/arch/arm26/arm26/vm_machdep.c
into sys/arch/arm/arm/arm_machdep.c.
 1.16 04-Mar-2001  bjh21 Make compat_13_sys_sigreturn() work on arm26, and move it from
arch/arm/arm32/compat_13_machdep.c to arch/arm/arm/compat_13_machdep.c.
 1.15 04-Mar-2001  matt Move compat_13_machdep.c, strstr.c, copystr.S, bcopyinout.S, and
bcopy_page.S to arm/arm32 and remove port-local copies.
 1.14 04-Mar-2001  matt disksubr*.c are now shared. Start moving files from ../../arm32/arm32
 1.13 27-Feb-2001  bjh21 Move "options ARMFPE" to files.arm, so generic ARM files can use it.
 1.12 25-Feb-2001  bjh21 Add PROG32 and PROG26 options.

These are intended to indicate what size of program space is in use, and hence
how to get at the PSR bits. They're currently set automatically by the CPU
type options.
 1.11 25-Feb-2001  bjh21 Allow "cpu" to have children. In the long term, this may be the best way to
handle co-processors. In the short term, it's a necessary hack to get arm26
kernels to configure.
 1.10 24-Feb-2001  reinoud Moved the mainbus files to the arm/conf/file.arm from the arm32 and the
hpcarm/conf/files.hpcarm
 1.9 23-Feb-2001  reinoud Big patch for merging common include files of the new hpcarm tree and the old arm32
tree into the new arm substree. All moved files are relinked with a stub that included
the file from the new location; this might be done better later.
 1.8 13-Feb-2001  bjh21 Move cpu_coredump() from arm32/arm32/vm_machdep.c to arm/arm/vm_machdep_arm.c.
Also ANSIfy it and use it on arm26.
 1.7 13-Feb-2001  bjh21 Move sendsig() and sys___sigreturn14() from arm26/arm26/vm_machdep.c and
arm32/arm32/machdep.c into arm/arm/sig_machdep.c, merging and ANSIfying in
the process.

The code is based on the arm32 version, so I don't think anything should break
there.
 1.6 11-Feb-2001  bjh21 branches: 1.6.2;
Shared ARM ptrace(2) implementation. Mostly the same as the arm32
version, but with some #ifdefs for arm26.

Also, don't define PT_STEP, since we don't implement it. This should
reduce code size a little.
 1.5 13-Jan-2001  bjh21 Separate out sigcode into its own file, since it's shared by arm26 and arm32.
 1.4 12-Jan-2001  bjh21 Move db_disasm.c into sys/arch/arm/arm. Use arm26 version, since it should
generate smaller compiled code.
 1.3 12-Jan-2001  bjh21 Move the generic ARM disassembler from arm32/arm32 to arm/arm.
 1.2 11-Jan-2001  bjh21 Start merging actual code in arm32 and arm26:
arm32/arm32/in_cksum_arm32.c -> arm/arm/in_cksum_arm.c

Also move specification of other checksum stuff to files.arm, even though we
use the MI code for that.
 1.1 10-Jan-2001  bjh21 Empty file to keep config happy.
 1.6.2.4 23-Apr-2001  bouyer Sync with HEAD.
 1.6.2.3 27-Mar-2001  bouyer Sync with HEAD.
 1.6.2.2 12-Mar-2001  bouyer Sync with HEAD.
 1.6.2.1 11-Feb-2001  bouyer file files.arm was added on branch thorpej_scsipi on 2001-03-12 13:27:21 +0000
 1.17.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.17.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.33.2.7 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.33.2.6 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.33.2.5 11-Feb-2002  jdolecek Sync w/ -current.
 1.33.2.4 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.33.2.3 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.33.2.2 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.33.2.1 03-Aug-2001  lukem update to -current
 1.39.2.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.40.2.11 03-Jan-2003  thorpej Sync with HEAD.
 1.40.2.10 11-Nov-2002  nathanw Catch up to -current
 1.40.2.9 13-Aug-2002  nathanw Catch up to -current.
 1.40.2.8 01-Aug-2002  nathanw Catch up to -current.
 1.40.2.7 20-Jun-2002  nathanw Catch up to -current.
 1.40.2.6 17-Apr-2002  nathanw Catch up to -current.
 1.40.2.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.40.2.4 28-Feb-2002  nathanw Catch up to -current.
 1.40.2.3 11-Jan-2002  nathanw More catchup.
 1.40.2.2 08-Jan-2002  nathanw Catch up to -current.
 1.40.2.1 10-Nov-2001  nathanw file files.arm was added on branch nathanw_sa on 2002-01-08 00:23:10 +0000
 1.60.4.1 18-Nov-2002  he Pull up revision 1.62 (requested by bjh21 in ticket #689):
New and much improved version of copyin(), copyout(), and
kcopy() which works on both 26-bit and 32-bit machines.
 1.60.2.2 30-Aug-2002  gehenna catch up with -current.
 1.60.2.1 21-Jul-2002  gehenna catch up with -current.
 1.63.2.1 24-Oct-2002  bjh21 Sync with trunk.
 1.72.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.72.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.72.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.72.2.1 03-Aug-2004  skrll Sync with HEAD
 1.79.2.6 17-Mar-2008  yamt sync with head.
 1.79.2.5 04-Feb-2008  yamt sync with head.
 1.79.2.4 21-Jan-2008  yamt sync with head
 1.79.2.3 03-Sep-2007  yamt sync with head.
 1.79.2.2 26-Feb-2007  yamt sync with head.
 1.79.2.1 21-Jun-2006  yamt sync with head.
 1.81.24.1 21-Feb-2007  snj branches: 1.81.24.1.4;
Pull up following revision(s) (requested by matt in ticket #457):
sys/arch/arm/include/cpufunc.h: revision 1.38
sys/arch/arm/arm/cpufunc.c: revision 1.78
sys/arch/arm/arm/cpufunc_asm_arm10.S: revision 1.6
sys/arch/arm/include/armreg.h: revision 1.37
sys/arch/arm/arm32/cpu.c: revision 1.64
sys/arch/arm/arm/cpufunc_asm_armv5.S: revision 1.3
sys/arch/arm/include/cpuconf.h: revision 1.13
sys/arch/arm/conf/files.arm: revision 1.82
sys/arch/arm/arm/cpufunc_asm_armv5_ec.S: revision 1.1
Scott Allan in http://mail-index.netbsd.org/port-arm/2006/07/31/0000.html
Patch to add support for ARM9E
 1.81.24.1.4.1 10-Nov-2007  matt Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc
 1.81.20.1 12-Jan-2007  ad Sync with head.
 1.82.2.2 29-Mar-2007  skrll Adapt arm32. Thanks to scw for helping out.

Tested on my cats (SA1)

XXX hydra should die. i've made some changes, but no guarantees.
 1.82.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.83.10.2 03-Oct-2007  garbled Sync with HEAD
 1.83.10.1 22-May-2007  matt Update to HEAD.
 1.83.8.2 19-Apr-2007  thorpej Convert to the new atomic ops API.
 1.83.8.1 18-Apr-2007  thorpej Remove _lock_cas() in favor of atomic_cas_32().
 1.83.4.1 11-Jul-2007  mjf Sync with head.
 1.83.2.2 15-Jul-2007  ad Sync with head.
 1.83.2.1 27-May-2007  ad Sync with head.
 1.85.12.5 23-Mar-2008  matt sync with HEAD
 1.85.12.4 28-Jan-2008  matt Add arm/arm/softintr.c back. Contents conditionalized on __HAVE_FAST_SOFTINTS
 1.85.12.3 09-Jan-2008  matt sync with HEAD
 1.85.12.2 12-Oct-2007  matt arm11/armv6 changes.
 1.85.12.1 29-Aug-2007  matt Add CPU_ARM11[37]6 which force CPU_ARM11 on. Add cpufunc_asm_armv6.S
 1.85.10.4 21-Mar-2008  chris Sync with head.
 1.85.10.3 27-Jan-2008  chris Sync to HEAD.
 1.85.10.2 20-Jan-2008  chris Sync to HEAD.
 1.85.10.1 01-Jan-2008  chris Sync with HEAD.
 1.85.6.1 28-Feb-2008  rjs Sync with HEAD.
 1.86.8.1 08-Jan-2008  bouyer Sync with HEAD
 1.86.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.89.6.4 17-Jan-2009  mjf Sync with HEAD.
 1.89.6.3 28-Sep-2008  mjf Sync with HEAD.
 1.89.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.89.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.89.2.1 24-Mar-2008  keiichi sync with head.
 1.90.4.5 09-Oct-2010  yamt sync with head
 1.90.4.4 11-Aug-2010  yamt sync with head.
 1.90.4.3 11-Mar-2010  yamt sync with head
 1.90.4.2 04-May-2009  yamt sync with head.
 1.90.4.1 16-May-2008  yamt sync with head.
 1.90.2.1 18-May-2008  yamt sync with head.
 1.91.6.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.91.6.1 19-Oct-2008  haad Sync with HEAD.
 1.91.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.93.8.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.93.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.97.4.4 21-Apr-2011  rmind sync with head
 1.97.4.3 05-Mar-2011  rmind sync with head
 1.97.4.2 03-Jul-2010  rmind sync with head
 1.97.4.1 18-Mar-2010  rmind Unify /dev/{mem,kmem,zero,null} implementations in MI code. Based on patch
from Joerg Sonnenberger, proposed on tech-kern@, in February 2008.

Work and depression still in progress.
 1.97.2.5 30-Oct-2010  uebayasi Implement pmap_physload_device(9) to replace xmd(4) MD backend.
Implement pmap_mmap(9) and use it from mem(4) and xmd(4).
 1.97.2.4 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.97.2.3 28-Aug-2010  uebayasi xmd(4) glue for arm.
 1.97.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.97.2.1 28-Apr-2010  uebayasi Initial implemention of bus_space_physload(9) for NetBSD/arm (only i.MX31
for now).
 1.100.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.101.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.102.6.1 18-Feb-2012  mrg merge to -current.
 1.102.2.4 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.102.2.3 16-Jan-2013  yamt sync with (a bit old) head
 1.102.2.2 30-Oct-2012  yamt sync with head
 1.102.2.1 17-Apr-2012  yamt sync with head
 1.103.2.1 09-Aug-2012  jdc branches: 1.103.2.1.2;
Pull up revisions:
src/sys/arch/evbarm/dev/plcomreg.h revisions 1.2,1.3,1.4
src/sys/arch/evbarm/conf/INTEGRATOR revision 1.65
src/sys/arch/evbarm/dev/plcom.c revisions 1.34,1.35,1.36,1.37,1.38,1.39,1.40
src/sys/arch/evbarm/ifpga/plcom_ifpga.c revisions 1.12,1.13,1.14
src/sys/arch/evbarm/dev/plcomvar.h revisions 1.9,1.10,1.11
src/sys/arch/evbarm/ifpga/plcom_ifpgavar.h revision 1.2
src/sys/arch/arm/arm/cpufunc.c revisions 1.105,1.108
src/sys/arch/arm/arm32/cpu.c revision 1.79
src/sys/arch/arm/include/armreg.h revisions 1.49,1.54
src/sys/arch/arm/arm32/pmap.c revision 1.229
src/sys/arch/arm/arm32/arm32_machdep.c revision 1.77
src/sys/arch/arm/include/cpu.h revision 1.64
src/sys/arch/arm/arm/cpufunc_asm_arm1136.S revision 1.3
src/sys/arch/arm/arm/cpufunc_asm_arm11x6.S revision 1.1
src/sys/arch/arm/conf/files.arm revision 1.106
src/sys/arch/arm/include/cpufunc.h revision 1.57
src/sys/dev/sdmmc/sdhc.c revisions 1.14,1.24
src/sys/dev/sdmmc/sdhcvar.h revisions 1.7,1.8
src/sys/arch/evbarm/ifpga/ifpgareg.h revision 1.4
src/sys/arch/evbarm/integrator/integrator_machdep.c revision 1.69
src/sys/arch/arm/broadcom/bcm2835_dma.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_emmc.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_intr.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_intr.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835_obio.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_plcom.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_pm.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_pmvar.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835_space.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_tmr.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835reg.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835var.h revision 1.1
src/sys/arch/arm/broadcom/bcm_amba.h revision 1.1
src/sys/arch/arm/broadcom/files.bcm2835 revision 1.1
src/sys/arch/evbarm/Makefile revision 1.9
src/sys/arch/evbarm/conf/RPI revision 1.1
src/sys/arch/evbarm/conf/files.rpi revision 1.1
src/sys/arch/evbarm/conf/mk.rpi revision 1.1
src/sys/arch/evbarm/conf/std.rpi revision 1.1
src/sys/arch/evbarm/rpi/genassym.cf revision 1.1
src/sys/arch/evbarm/rpi/rpi.h revision 1.1
src/sys/arch/evbarm/rpi/rpi_machdep.c revision 1.1
src/sys/arch/evbarm/rpi/rpi_start.S revision 1.1,1.2
src/etc/etc.evbarm/Makefile.inc revision 1.28
(requested by skrll in ticket #454).

don't mix #define<TAB> and #define<SPACE> in a file.

avoid warning with options PLCOM_DEBUG for INTEGRATOR.

Rename register values. No functional change - same code before and after.

Existing names are prefixed with PL01X_ where they're common between the
PL010 and the PL011. The PL010_/PL011_ prefixes are added where they're
found only on the respective chips.

Replace the simple_lock with a kmutex_t. Update the locking to match
com(4) in the few places it didn't already.

DOH. Replace a line that got accidently deleted in the last commit.

device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t

Add the 'Z' to the 1176 cpu product name.

ok matt@

Fix locking botch introduced in 1.36.

Fix a KASSERT. From/OK'ed by matt@

Fix racy softint dispatch that lead to KASSERT(si->si_active) in
softint_execute

Discussed with matt@. "Looks good to me"

Add the documented ARM11[37]6 Auxiliary control register defines.

Add support for the ARM1176JZS

Add a flag for the lack of LED_ON in HOST_CTL (ti omap3 doesn't do that).

Provide a method for attachments to specify capabilites.

Add support for the PL011 to plcom. Pull across a bunch of fixes from
com(4) while I'm here and do some other tidyup.

Tested on a RaspberryPi.

PL010 not tested.

Initial commit of support for the RaspberryPI (www.raspberrypi.org)

This is enough for serial console via the gpio header pins and to get to
multiuser.

A huge thank you to Matt Thomas for all his help.

Add RPI to KERNEL_SETS

Remove #if 0 code.
 1.103.2.1.2.2 14-Feb-2013  matt Add BUSDMA_COUNTERS option
 1.103.2.1.2.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.110.2.5 03-Dec-2017  jdolecek update from HEAD
 1.110.2.4 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.110.2.3 23-Jun-2013  tls resync from head
 1.110.2.2 25-Feb-2013  tls resync with head
 1.110.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.120.2.2 18-May-2014  rmind sync with head
 1.120.2.1 28-Aug-2013  rmind sync with head
 1.126.2.1 10-Aug-2014  tls Rebase.
 1.127.2.1 21-Mar-2015  snj Pull up following revision(s) (requested by jmcneill in ticket #598):
sys/arch/arm/amlogic/amlogic_board.c: up to revision 1.9
sys/arch/arm/amlogic/amlogic_canvasreg.h: revision 1.1
sys/arch/arm/amlogic/amlogic_com.c: up to revision 1.4
sys/arch/arm/amlogic/amlogic_comreg.h: up to revision 1.3
sys/arch/arm/amlogic/amlogic_comvar.h: revision 1.1
sys/arch/arm/amlogic/amlogic_cpufreq.c: up to revision 1.2
sys/arch/arm/amlogic/amlogic_crureg.h: up to revision 1.7
sys/arch/arm/amlogic/amlogic_dwctwo.c: up to revision 1.2
sys/arch/arm/amlogic/amlogic_genfb.c: revision 1.1
sys/arch/arm/amlogic/amlogic_gmac.c: up to revision 1.2
sys/arch/arm/amlogic/amlogic_hdmireg.h: revision 1.1
sys/arch/arm/amlogic/amlogic_intr.h: up to revision 1.5
sys/arch/arm/amlogic/amlogic_io.c: up to revision 1.7
sys/arch/arm/amlogic/amlogic_reg.h: up to revision 1.9
sys/arch/arm/amlogic/amlogic_rng.c: revision 1.1
sys/arch/arm/amlogic/amlogic_sdhc.c: up to revision 1.3
sys/arch/arm/amlogic/amlogic_sdhcreg.h: revision 1.1
sys/arch/arm/amlogic/amlogic_space.c: revision 1.1
sys/arch/arm/amlogic/amlogic_var.h: up to revision 1.8
sys/arch/arm/amlogic/amlogic_vpureg.h: revision 1.1
sys/arch/arm/arm/bootconfig.c: revisions 1.7-1.8
sys/arch/arm/conf/files.arm: revision 1.129
sys/arch/arm/cortex/pl310.c: revisions 1.16-1.17
sys/arch/arm/cortex/a9_mpsubr.S: revisions 1.25-1.29
sys/arch/arm/cortex/a9tmr.c: revisions 1.8-1.12
sys/arch/arm/cortex/a9tmr_var.h: revision 1.4
sys/arch/arm/cortex/a9wdt.c: revisions 1.3-1.4
sys/arch/arm/cortex/armperiph.c: revisions 1.5-1.7
sys/arch/arm/arm/cpufunc.c: revision 1.151
sys/arch/arm/include/bootconfig.h: revision 1.7
sys/arch/arm/include/locore.h: revision 1.19
sys/arch/evbarm/amlogic/amlogic_machdep.c: up to revision 1.17
sys/arch/evbarm/amlogic/amlogic_start.S: up to revision 1.2
sys/arch/evbarm/amlogic/genassym.cf: revision 1.1
sys/arch/evbarm/amlogic/platform.h: revision 1.1
sys/arch/evbarm/conf/files.amlogic: up to revision 1.8
sys/arch/evbarm/conf/std.amlogic: up to revision 1.2
sys/arch/evbarm/conf/mk.amlogic: revision 1.1
sys/arch/evbarm/conf/ODROID-C1: up to revision 1.12
sys/arch/evarm/conf/ODROID-C1_INSTALL: revision 1.1
Don't use not as a variable since it's reserved in C++.
--
clean the a9 l2 cache before turning it on.
--
Add Cortex-A17 support
--
Fix CORTEXA17 support
--
Let the "cbar" device property override the cbar value, to work around
broken bootloaders
--
add a helper to update a9tmr frequency
--
detach and re-attach timecounter when updating freq, and reinit timer on
each cpu
--
fix typo
--
add BOOTOPT_TYPE_MACADDR for parsing mac address parameters
--
make sure we set ACTLR.SMP=1 for CPU_CORTEXA5 in !MP case, ok matt@
--
According to the Cortex-A5 TRM, the CBAR register is not implemented and
always reads as 0x00000000. Add ARM_CBAR option to set this in kernel
config.
--
skip a TLBIALL on Cortex-A5 that stops my odroid-c1 from booting, ok matt
--
match on Cortex-A5
--
match on Cortex-A5
--
allow arml2cc to be used on Cortex-A5 if the "offset" property is specified
--
print "A5" instead of "A9" at attach time if running on a Cortex-A5
--
Improve inline asm around dsb/dmb/isb:
- always use volatile and mark them as memory barrier
- use the common version from locore.h in all places not included from
userland
--
Work-in-progress Odroid-C1 support.
--
no need to override ARM_CBAR, remove unused COM_16750 option
--
Add basic serial console support.
--
add dwctwo and usb devices
--
ODROID-C1 SMP support.
--
auto-detect RAM size
--
ODROID-C1 onboard ethernet support.
--
add amlogicrng, add commented-out genfb placeholder
--
enable amlogicsdhc
--
add ODROID-C1 install kernel
--
Add CPUFREQ option to set boot CPU frequency. ODROID-C1 is advertised
as quad-core 1.5GHz but boots up at 1.2GHz; add CPUFREQ=1512 to config
and make sure to set the correct speed before attaching CPUs.
The speed can still be scaled down with machdep.cpu sysctls.
--
disable DEBUG, LOCKDEBUG, VERBOSE_INIT_ARM
--
Basic framebuffer console support. Work in progress.
 1.128.2.3 28-Aug-2017  skrll Sync with HEAD
 1.128.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.128.2.1 06-Apr-2015  skrll Sync with HEAD
 1.132.2.1 18-Jul-2017  snj branches: 1.132.2.1.2;
Pull up following revision(s) (requested by jmcneill in ticket #114):
sys/arch/arm/samsung/exynos_intr.h: revision 1.3
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.2
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.3
sys/arch/arm/sunxi/sunxi_gates.c: revision 1.1
distrib/utils/embedded/mkimage: revision 1.66
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.4
sys/arch/arm/sunxi/sunxi_rsb.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.5
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.6
sys/arch/arm/sunxi/sun8i_h3_ccu.c: revision 1.7
sys/dev/gpio/gpio.c: revision 1.59
sys/arch/arm/sunxi/sunxi_ccu_prediv.c: revision 1.1
sys/conf/Makefile.kern.inc: revision 1.257
sys/arch/evbarm/conf/ODROID-XU_INSTALL: file removal
sys/arch/arm/sunxi/sunxi_ccu_prediv.c: revision 1.2
sys/conf/Makefile.kern.inc: revision 1.258
sys/arch/arm/fdt/psci_fdt.h: revision 1.1
sys/arch/arm/sunxi/sunxi_resets.c: revision 1.1
sys/arch/evbarm/conf/files.sunxi: revision 1.1
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.8
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.9
sys/arch/arm/samsung/files.exynos: revision 1.22
distrib/utils/embedded/conf/armv7.conf: revision 1.13
sys/arch/arm/samsung/files.exynos: revision 1.23
sys/arch/evbarm/conf/std.tegra: revision 1.15
distrib/utils/embedded/conf/armv7.conf: revision 1.14
sys/arch/arm/samsung/files.exynos: revision 1.24
distrib/utils/embedded/conf/armv7.conf: revision 1.15
sys/arch/evbarm/sunxi/genassym.cf: revision 1.1
sys/arch/arm/samsung/exynos_fdt.c: file removal
sys/dev/fdt/fdt_pinctrl.c: revision 1.4
sys/arch/arm/samsung/exynos_sysmmu.c: revision 1.2
sys/arch/arm/sunxi/sun8i_h3_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_twi.c: revision 1.1
sys/dev/usb/ehci.c: revision 1.255
sys/arch/arm/sunxi/sunxi_twi.c: revision 1.2
sys/arch/arm/sunxi/sun8i_a83t_ccu.h: revision 1.1
sys/dev/ic/dwc_mmc.c: revision 1.11
sys/arch/arm/cortex/gic.c: revision 1.24
distrib/evbarm/instkernel/ramdisk/Makefile: revision 1.17
etc/etc.evbarm/Makefile.inc: revision 1.87
etc/etc.evbarm/Makefile.inc: revision 1.88
sys/arch/arm/fdt/gic_fdt.c: revision 1.5
etc/Makefile: revision 1.429
sys/arch/arm/fdt/gic_fdt.c: revision 1.6
sys/arch/arm/fdt/gic_fdt.c: revision 1.7
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.2
sys/arch/evbarm/conf/std.sunxi: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.3
sys/arch/evbarm/conf/std.sunxi: revision 1.2
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.4
sys/arch/evbarm/conf/std.sunxi: revision 1.3
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.5
sys/arch/arm/sunxi/sunxi_ccu_div.c: revision 1.1
sys/dev/gpio/gpiovar.h: revision 1.17
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.6
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.7
sys/arch/arm/sunxi/sunxi_gpio.c: revision 1.8
sys/arch/arm/sunxi/sunxi_rsb.h: revision 1.1
sys/arch/arm/samsung/exynos_i2c.c: revision 1.12
sys/dev/fdt/fdtvar.h: revision 1.21
sys/arch/evbarm/sunxi/sunxi_start.S: revision 1.1
sys/arch/arm/samsung/exynos_i2c.c: revision 1.13
sys/dev/fdt/fdtvar.h: revision 1.22
sys/arch/evbarm/conf/SUNXI: revision 1.10
sys/dev/fdt/fdtvar.h: revision 1.23
sys/arch/evbarm/conf/SUNXI: revision 1.11
sys/dev/fdt/gpioleds.c: revision 1.1
sys/dev/fdt/fdtvar.h: revision 1.24
sys/arch/evbarm/conf/SUNXI: revision 1.12
sys/arch/evbarm/conf/SUNXI: revision 1.13
sys/arch/arm/cortex/gic.c: revision 1.30
sys/arch/evbarm/conf/SUNXI: revision 1.14
sys/arch/evbarm/conf/SUNXI: revision 1.15
sys/arch/evbarm/conf/SUNXI: revision 1.16
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.1
etc/Makefile: revision 1.430
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.2
etc/Makefile: revision 1.431
sys/arch/evbarm/conf/VEXPRESS_A15: revision 1.17
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.3
sys/arch/arm/sunxi/sunxi_emac.c: revision 1.4
sys/arch/arm/samsung/exynos5422_clock.c: revision 1.6
sys/arch/arm/samsung/exynos_platform.c: revision 1.1
sys/dev/ofw/ofw_subr.c: revision 1.29
sys/arch/arm/samsung/exynos_platform.c: revision 1.2
sys/arch/evbarm/conf/mk.vexpress: revision 1.3
sys/arch/arm/samsung/exynos_platform.c: revision 1.3
sys/arch/evbarm/conf/mk.vexpress: revision 1.4
sys/arch/arm/samsung/exynos_platform.c: revision 1.4
sys/arch/arm/arm/psci.h: revision 1.1
sys/arch/arm/samsung/exynos_platform.c: revision 1.5
sys/arch/arm/samsung/exynos_platform.c: revision 1.6
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.10
external/bsd/mdocml/bin/mandoc/Makefile: revision 1.12
sys/dev/fdt/files.fdt: revision 1.17
sys/dev/fdt/files.fdt: revision 1.18
sys/dev/fdt/files.fdt: revision 1.19
sys/arch/arm/samsung/exynos_sscom.c: revision 1.8
sys/arch/arm/sunxi/sun8i_a83t_ccu.c: revision 1.1
sys/arch/arm/sunxi/sunxi_mmc.c: revision 1.1
sys/arch/arm/samsung/exynos_sscom.c: revision 1.9
sys/arch/arm/conf/files.arm: revision 1.133
sys/arch/arm/samsung/mct_var.h: revision 1.5
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.1
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.2
sys/arch/evbarm/conf/std.vexpress: revision 1.6
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.3
sys/arch/arm/sunxi/sun6i_a31_gpio.c: revision 1.1
sys/arch/arm/sunxi/sunxi_platform.c: revision 1.4
sys/arch/arm/sunxi/sun6i_a31_gpio.c: revision 1.2
sys/arch/arm/sunxi/files.sunxi: revision 1.1
sys/dev/ofw/ofw_subr.c: revision 1.30
sys/arch/arm/sunxi/files.sunxi: revision 1.2
sys/dev/ofw/openfirm.h: revision 1.35
sys/arch/arm/sunxi/files.sunxi: revision 1.3
sys/dev/ofw/openfirm.h: revision 1.36
sys/arch/arm/sunxi/files.sunxi: revision 1.4
sys/arch/arm/sunxi/files.sunxi: revision 1.5
sys/arch/evbarm/exynos/exynos_machdep.c: file removal
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.1
sys/arch/arm/samsung/sscom.c: revision 1.9
sys/arch/arm/sunxi/files.sunxi: revision 1.6
sys/dev/fdt/ohci_fdt.c: revision 1.1
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.1
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.2
sys/arch/arm/sunxi/files.sunxi: revision 1.7
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.2
sys/arch/arm/sunxi/sunxi_gpio.h: revision 1.3
sys/arch/arm/sunxi/files.sunxi: revision 1.8
sys/arch/arm/sunxi/sunxi_usbphy.c: revision 1.3
sys/arch/arm/sunxi/files.sunxi: revision 1.9
sys/arch/arm/samsung/exynos_sscom.c: revision 1.10
sys/arch/evbarm/conf/mk.tegra: revision 1.5
sys/arch/arm/samsung/exynos_dwcmmc.c: revision 1.4
sys/arch/evbarm/conf/mk.tegra: revision 1.6
sys/arch/evbarm/conf/EXYNOS: revision 1.15
sys/arch/evbarm/conf/EXYNOS: revision 1.16
sys/arch/evbarm/conf/EXYNOS: revision 1.17
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.1
sys/arch/evbarm/conf/EXYNOS: revision 1.19
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.4
sys/arch/arm/sunxi/sunxi_ccu.c: revision 1.5
sys/arch/arm/sunxi/sunxi_emac.h: revision 1.1
sys/arch/evbarm/conf/mk.sunxi: revision 1.1
sys/arch/evbarm/include/bootconfig.h: revision 1.7
sys/arch/evbarm/conf/TEGRA: revision 1.24
sys/arch/arm/arm/psci.c: revision 1.1
sys/dev/led.c: revision 1.1
sys/dev/led.c: revision 1.2
sys/arch/arm/arm/psci_arm.S: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_gate.c: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_gate.c: revision 1.2
sys/dev/fdt/ehci_fdt.c: revision 1.1
sys/dev/fdt/ehci_fdt.c: revision 1.2
sys/arch/arm/sunxi/sun6i_a31_ccu.h: revision 1.1
sys/arch/evbarm/conf/EXYNOS: revision 1.21
sys/arch/arm/sunxi/files.sunxi: revision 1.10
sys/arch/arm/sunxi/files.sunxi: revision 1.11
sys/dev/fdt/fdtbus.c: revision 1.14
sys/arch/arm/sunxi/sunxi_mmc.h: revision 1.1
sys/arch/arm/samsung/exynos5422_dma.c: file removal
usr.bin/config/mkmakefile.c: revision 1.69
sys/conf/files: revision 1.1178
sys/arch/arm/sunxi/sunxi_platform.h: revision 1.1
sys/arch/evbarm/exynos/exynos_start.S: revision 1.4
sys/arch/arm/samsung/exynos_pinctrl.c: revision 1.11
sys/arch/arm/samsung/exynos_pinctrl.c: revision 1.12
sys/arch/arm/sunxi/sunxi_rtc.c: revision 1.1
sys/arch/arm/sunxi/sun8i_h3_ccu.h: revision 1.1
sys/arch/arm/samsung/exynos5410_clock.c: revision 1.1
sys/arch/arm/samsung/exynos5410_clock.c: revision 1.2
sys/arch/evbarm/conf/SUNXI: revision 1.1
external/bsd/elftosb/usr.sbin/elftosb/Makefile: revision 1.5
sys/arch/evbarm/conf/SUNXI: revision 1.2
sys/arch/arm/fdt/psci_fdt.c: revision 1.1
sys/arch/evbarm/conf/SUNXI: revision 1.3
sys/arch/evbarm/conf/SUNXI: revision 1.4
sys/arch/evbarm/conf/files.exynos: revision 1.3
sys/arch/evbarm/conf/SUNXI: revision 1.5
sys/arch/evbarm/conf/SUNXI: revision 1.6
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.1
sys/dev/fdt/fixedfactorclock.c: revision 1.1
sys/dev/fdt/fdt_subr.c: revision 1.14
sys/arch/evbarm/conf/SUNXI: revision 1.7
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.2
sys/arch/arm/sunxi/sun8i_a83t_gpio.c: revision 1.1
sys/dev/fdt/fdt_subr.c: revision 1.15
sys/arch/evbarm/conf/SUNXI: revision 1.8
sys/arch/arm/sunxi/sunxi_ccu_nm.c: revision 1.3
sys/dev/ic/dwc_mmc_reg.h: revision 1.6
sys/dev/fdt/fdt_subr.c: revision 1.16
sys/arch/evbarm/conf/SUNXI: revision 1.9
usr.bin/config/mkmakefile.c: revision 1.70
sys/dev/fdt/fdt_phy.c: revision 1.1
sys/arch/evbarm/conf/ODROID-XU: file removal
sys/arch/arm/fdt/arm_fdt.c: revision 1.4
sys/arch/arm/samsung/exynos_reg.h: revision 1.14
sys/conf/files: revision 1.1180
sys/arch/arm/samsung/exynos_reg.h: revision 1.15
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.4
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.5
sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.6
sys/dev/ic/dwc_mmc_var.h: revision 1.6
sys/arch/arm/samsung/exynos_combiner.c: revision 1.7
sys/arch/evbarm/exynos/platform.h: revision 1.2
sys/arch/arm/fdt/files.fdt: revision 1.12
sys/arch/evbarm/conf/std.exynos: revision 1.2
sys/arch/evbarm/conf/std.exynos: revision 1.3
sys/arch/arm/rockchip/rockchip_dwcmmc.c: revision 1.6
sys/arch/arm/sunxi/sunxi_com.c: revision 1.1
sys/dev/led.h: revision 1.1
sys/arch/evbarm/conf/std.exynos: revision 1.5
sys/arch/arm/sunxi/sunxi_com.c: revision 1.2
sys/arch/evbarm/conf/files.evbarm: revision 1.26
usr.bin/config/defs.h: revision 1.99
sys/arch/arm/fdt/arm_fdtvar.h: revision 1.6
sys/arch/arm/samsung/exynos_soc.c: revision 1.32
sys/arch/arm/sunxi/sun6i_a31_ccu.c: revision 1.1
sys/arch/arm/sunxi/sun6i_a31_ccu.c: revision 1.2
sys/arch/arm/samsung/mct.c: revision 1.11
sys/arch/evbarm/conf/ODROID-U: file removal
sys/arch/arm/samsung/mct.c: revision 1.12
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.1
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.2
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.3
sys/arch/arm/sunxi/sunxi_ccu_nkmp.c: revision 1.4
Get the EXYNOS kernel building again with recent FDT changes. Untested.
Use arm_fdt_cpu_hatch and add mmu entry for DTB
Fix exynos5 devmap, bootstrap, and implement early_putchar.
Calculate UART frequency based on bootloader config.
Fix KERNEL_BASE_PHYS (how did this ever work?)
Avoid divide-by-zero for unconfigured PLLs
Correctly initialize i2cbus attach args.
Add delay and enable mct timecounter.
Fix build w/o VERBOSE_INIT_ARM
Remove ODROID-U and ODROID-XU kernel configs as they no longer work.
- Replace CONSADDR with SSCOM2CONSOLE in example
- Remove gtmr (Exynos5422 uses mct)
- cinclude EXYNOS.local instead of TEGRA.local
Use fdtbus_intr_establish to hook in block interrupts instead of
intr_establish.
Simplify MCT; just enable it and then attach an ARMv7 generic timer.
Add support for building DTB files during kernel build, from christos.
build vexpress-v2p-ca15-tc1.dtb with the kernel
build tegra124-apalis-eval.dtb, tegra124-jetson-tk1.dtb, tegra124-nyan-big.dtb, tegra124-nyan-blaze.dtb, and tegra124-venice2.dtb with the kernel
Allow multiline makeoptions to work by quoting the newline..
Bump for quoting makeoptions with multiple lines.
un-c99
bump required config version for multiline makeoptions feature
Set DTS makeoption in kernel config
Assign DTB files to a variable so we can make -V DTB
put the dtb files with their kernels.
no need for debug printing.
Don't assume that CPU index = GIC CPU interface number. We can determine
the current CPU interface number by reading from the read-only
GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has
GIC CPU interface #4.
use -v to get the expanded variable.
Use -v to get the expanded variables.
Get baud rate from sclk_uartN instead of uartN. Print IRQ number at attach.
Fix PLL con0 register locations and add uart clocks
Disable exyortc for now, it doesn't work.
More or less a rewrite of dwc_mmc, based on awin_mmc, adding DMA support.
Update for new dwc_mmc driver
Fix dmesg
Add Exynos 5410 clock controller driver.
Fix a few typos in clock parent names for mmc clocks.
From jmcneill@
Update for new dwc_mmc driver
Implement platform reset for exynos5
Attach fdtbus to a /clocks node with no compatible string.
Add support for ARM Power State Coordination Interface (PSCI).
Support interrupt sharing.
Add initial support for Allwinner H3 SoC.
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF,
U-Boot on some platforms may use SGIs in this range for the PSCI
implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert
to ensure that we don't end up with a conflict.
Add H3 MMC support
SD/MMC clock fixes
Add FDT PHY interface.
Add glue for generic ehci/ohci bindings.
Rename a variable, NFC.
Support parents in different clock domains.
Add USB stuff. Doesn't quite work yet.
Synopsys DesignWare APB UART needs "options COM_AWIN" for now.
Add i2c glue.
Add RTC driver.
PHY registers start at index 1. Now USB works.
Don't allow sharing edge and level triggered interrupts.
Add arm_fdt_memory_dump helper for dumping physical addresses from ddb
Print clocks with aprint_debug
Remove unused defines
Add fdtbus_get_string helper
Add of_search_compatible, which searches an array of compat_data structures
for a matching "compatible" entry matching the supplied OFW node. This
allows us to associate data with compatible strings.
Add driver for Allwinner Gigabit Ethernet (EMAC) as found in sun8i and
later family SoCs.
This is a port of my FreeBSD driver which has been confirmed to work on
Allwinner H3, A83T, and A64 SoCs.
Fix dmesg
Add basic support for Allwinner A31.
Add basic FDT GPIO support.
Fix the pinctrl api to match the spec. A pinctrl config can have more
than one xref, and an xref may have specifier data associated with it.
Enable sunxi pinctrl support
Adjust to new pinctrl API
Add P2WI/RSB driver, based on awin_p2wi.c.
Fix typo in a compat string.
Configure pin defaults at attach
No need to explicitly set pinctrl config 0 now
Fix some register definitions.
Disallow sharing between MPSAFE and non-MPSAFE handlers.
Add of_match_compat_data.
This routine searches an array of compat_data structures for a
matching "compatible" entry matching the supplied OFW node.
Add options __HAVE_CPU_UAREA_ALLOC_IDLELWP
Add support for reserved memory and MEMORY_DISK_DYNAMIC for FDT-based
kernels.
the extent code cannot use the full range of u_long,
so ignore the last page before 4GB too. ok jmcneill@
Copy install ramdisk to releasedir. Provide both a raw ffs and
Legacy U-Boot version of it.
Replace HUMMINGBIRD_A31 with SUNXI kernel on armv7.img and include .dtb
files for SUNXI and TEGRA kernels on the MSDOS partition.
Let the controller provide a default name for pins. This makes pins easier
to locate when we have multiple banks and a variable number of pins per
bank.
Attach gpio(4) to sunxigpio
Test for kernel build directory before reading DTB list
Add support for Allwinner A83T SoC.
Add A83T files
Fixup busdma sync and locking in the RX path. Disable batch RX/TX ints.
Fix AHB2 register definition and explicitly set AHB2 parent to PLL_PERIPH0/2 -- this gives us 50% more bus bandwidth for emac
Restore TX_INTERVAL_DEFAULT to 64
Drop the sunxi_emac_rx_batch feature. It was originally designed to
reduce the amount of mutex unlock/lock cycles during the RX path on
FreeBSD and if_input, but it is not required to drop the lock before
calling if_percpuq_enqueue on NetBSD.
Write back the data value instead of mask in sunxi_gpio_write
Add a helper for exposing LED controls via sysctl.
Add GPIO LED driver.
add gpioleds
Add misc. gates and resets driver, and explicitly enable PIO clocks
at attach.
Add fdtbus_get_string_index helper.
Add driver for fixed-factor clocks.
Add ffclock
Remove the requirement for ehci to attach after companion devices.
"go for it" - skrll@
Remove the hack to find companion devices and just assume 1 companion if
ETTF flag is not set.
Remove pass numbers for ehci/ohci now that the attach order no longer matters
Use unsigned char for ctype functions, suggested by christos
Add : to body of populate_sunxi to appease bash.
port-evbarm/52388: Fix number of args to a debug printf.
 1.132.2.1.2.1 13-Dec-2017  matt Add a few more Cortex (A35, etc.)
 1.138.2.8 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.138.2.7 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.138.2.6 20-Oct-2018  pgoyette Sync with head
 1.138.2.5 30-Sep-2018  pgoyette Ssync with HEAD
 1.138.2.4 27-Sep-2018  pgoyette WIP - clean up some of the Makefiles and conf/files stuff for the
netbsd32 modules.
 1.138.2.3 27-Sep-2018  pgoyette (Try to) move the arm-specific compat_netbsd32_machdep stuff to the
arm directory, not in acorn32!

XXX We still need to come back and hook up the _13 and _16 code!
 1.138.2.2 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.138.2.1 07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.139.2.3 21-Apr-2020  martin Sync with HEAD
 1.139.2.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.139.2.1 10-Jun-2019  christos Sync with HEAD
 1.149.2.3 29-Feb-2020  ad Sync with head.
 1.149.2.2 25-Jan-2020  ad Sync with head.
 1.149.2.1 17-Jan-2020  ad Sync with head.
 1.153.4.1 20-Apr-2020  bouyer Sync with HEAD
 1.13 03-Dec-2007  ad Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.12 19-Sep-2006  he branches: 1.12.8; 1.12.24; 1.12.26; 1.12.28; 1.12.30; 1.12.36;
Convert the NetBSD/cats port to use generic TODR.

This gets rid of the now-unneded "todclock" and "todservice" attributes
from the footbridge device files, which should allow netwinder to build
again after its conversion to generic TODR.

Resulting kernel verified to boot up OK on gxemul (after my recent
fixes of the gxemul package to emulate free-running timers).
 1.11 03-Jan-2003  thorpej branches: 1.11.18; 1.11.48; 1.11.50;
Use the generic irq_dispatch.S
 1.10 03-Nov-2002  chris Checkin new interrupt handling code for the footbridge.
This is based upon Jason's work on xscale.

Most of the interrupt handling code is now written in C using an asm stub to
call into the C code.

spl* now only updates a software mask, and does not update the hardware,
this should be much faster.

The new code works well on cats, it's untested on netwinder, but should work.

The code implements generic soft interrupts.

More work is still required to bring the isa interrupt handling code upto
scratch currently all isa interrupts are handled at IPL_BIO on the footbridge.
This may cause isa interrupts to be handled later than they should be.
I plan to fix this in the near future.
 1.9 18-Oct-2002  thorpej branches: 1.9.2;
Make sure the footbridge device has the interface attribute.
 1.8 12-Apr-2002  thorpej Use the bus_space_generic bus space ops.
 1.7 10-Apr-2002  thorpej G/c FOOTBRIDGE option.
 1.6 28-Nov-2001  lukem - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups
 1.5 20-Jun-2001  chris branches: 1.5.2; 1.5.4; 1.5.10;
Remove defopt EBSA285.
Move the files from footbridge that are cats specific.
Remove EBSA285 kernel as people should be able to use the generic cats kernel for EBSA285 systems.
 1.4 12-Jun-2001  matt Move netwinder_machdep.c to files.netwinder. Eliminate opt_netwinder.h and
use #ifdef netwinder insead. XXX ebsa285_machdep.c should move to the cats
directory and files.cats
 1.3 11-Jun-2001  chris Move defopt FOOTBRIDGE to where it really should be in files.footbridge, which is where I should have left it.
 1.2 09-Jun-2001  chris Move the footbridge dir out of arm32 into arm.
 1.1 23-May-2001  chris Add a files.footbridge for inclusion by cats and netwinder. This is to make moving of the footbridge dir easier (when it eventually moves from arm32)

Also remove EBSA285 defopt from the netwinder file as the netwinder isn't an eval board.
 1.5.10.6 03-Jan-2003  thorpej Sync with HEAD.
 1.5.10.5 11-Nov-2002  nathanw Catch up to -current
 1.5.10.4 18-Oct-2002  thorpej Sync with HEAD.
 1.5.10.3 17-Apr-2002  nathanw Catch up to -current.
 1.5.10.2 08-Jan-2002  nathanw Catch up to -current.
 1.5.10.1 20-Jun-2001  nathanw file files.footbridge was added on branch nathanw_sa on 2002-01-08 00:23:10 +0000
 1.5.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.5.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.9.2.1 09-Nov-2002  bjh21 Catch up with -current.
 1.11.50.1 22-Oct-2006  yamt sync with head
 1.11.48.1 18-Nov-2006  ad Sync with head.
 1.11.18.2 07-Dec-2007  yamt sync with head
 1.11.18.1 30-Dec-2006  yamt sync with head.
 1.12.36.1 08-Dec-2007  mjf Sync with HEAD.
 1.12.30.1 09-Jan-2008  matt sync with HEAD
 1.12.28.3 01-Jan-2008  chris Make branch build again following sync to head.
 1.12.28.2 01-Jan-2008  chris Sync with HEAD.
 1.12.28.1 11-Aug-2007  chris Initial check-in of reworked arm interrupt routines.

Main things to note on this branch:
* spl routines are inlined, less complex, and small (kernel drops in size)
* interrupts are handled in priority order (for most things it doesn't
matter, but pending ipls are used to determine if there is any work to do)
* arm_irqhandler.c is derived from footbridge_irqhandler.c, which was based
on work by thorpej.
* The code tries to touch hardware as little as possible.
* spl masks are no longer tracked, as the system is based on pending ipls

The shared code uses global ipl lists to track which interrupt handlers
are attached to which ipl (arm_iplq[]).

Interrupt sources register with the common code to indicate:
* how many irq lines they have
* a function to set the hardware mask.
* call arm_intr_claim and arm_intr_disestablish to setup handlers

When an interrupt occurs the ipl is flagged as pending, in ipls_pending.
If it can be handled at the current_ipl_level the code does so.
If it can't be handled it's left until the current_ipl_level drops.

As the ipl level changes down a quick test is made of the new ipl level
against the ipls_pending value. If an ipl is pending arm_intr_splx_lifter
is called to handle the pending ipls.

It should be noted that all interrupts are left enabled at the hardware
level, interrupts are only masked when they occur. They are only
re-enabled after it's interrupt handler is called. Hardware masks are not
changed at any other time.

Soft interrupts are treated the same as hardware interrupts, they
register as a provider, and do not get treated specially. All the soft
interrupt handlers are placed onto the relevant global ipl queue, the same
as hard interrupts handlers.

At the moment only footbridge within a cats has been updated to use the new
handling.

Todo:
* change the handling of interrupts, so that the hardware doesn't register
a routine to fetch the hardware status. Instead is makes a call which
provides the mask. This removes the primary flag when registering an
interrupt provider. It also makes more sense with multiple interrupt
sources.
* Arm v5 has the clz asm, which could be used instead of the carefully
hand rolled arm_intr_fls function.
* switch cats isa support to use this framework.
* switch iomd and acorn32 to use this framework.
* switch shark to use this framework.
* port any other arm platforms that are interested
* examine overlaps between this code and ppcoea-renovation branch.
* add support for different trigger types (Edge, level, pulse, etc)

(note that iomd and shark currently touch hardware on every spl change,
hence why they're targets to port)
 1.12.26.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.12.24.1 26-Dec-2007  rjs Sync with HEAD.
 1.12.8.1 03-Dec-2007  ad Sync with HEAD.
 1.6 08-Jan-2007  ichiro branches: 1.6.20;
move devices entry to MD/conf/files.*
catch up to current kernel configuration
 1.5 14-Apr-2003  rjs branches: 1.5.18; 1.5.48;
Remove membase and memsize device config parameters.
 1.4 19-Jul-2002  ichiro make compile "IPAQ"
 1.3 16-Apr-2002  thorpej branches: 1.3.2;
* Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
the magic "files include order" dance in N machine-dependent
configuration definitions.
 1.2 30-Jul-2001  rjs branches: 1.2.6;
Remove unused LCD definitions.
 1.1 08-Jul-2001  rjs branches: 1.1.2;
Initial copy of SA11x0 support from hpcarm.
 1.1.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.2.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.2.1 03-Aug-2001  lukem update to -current
 1.2.6.3 01-Aug-2002  nathanw Catch up to -current.
 1.2.6.2 20-Jun-2002  nathanw Catch up to -current.
 1.2.6.1 30-Jul-2001  nathanw file files.sa11x0 was added on branch nathanw_sa on 2002-06-20 03:38:07 +0000
 1.3.2.1 21-Jul-2002  gehenna catch up with -current.
 1.5.48.1 12-Jan-2007  ad Sync with head.
 1.5.18.1 26-Feb-2007  yamt sync with head.
 1.6.20.1 06-Oct-2007  rjs Switch to new interrupt code.
 1.3 10-Nov-2001  thorpej branches: 1.3.2;
This file is not used.
 1.2 05-Sep-2001  matt branches: 1.2.4; 1.2.6;
Add an obio bus.
 1.1 26-Aug-2001  matt files file for xscale (i80312 aka iopxs)
 1.2.6.1 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.2.4.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.4.1 05-Sep-2001  thorpej file files.xscale was added on branch kqueue on 2001-09-13 01:13:08 +0000
 1.3.2.1 08-Jan-2002  nathanw Catch up to -current.
 1.5 23-Aug-2015  uebayasi Don't need to specify OUTPUT_FORMAT/OUTPUT_ARCH.
 1.4 01-Sep-2012  matt branches: 1.4.2; 1.4.16;
Add missing ;
 1.3 29-Aug-2012  matt Add __stub_start and __stub_end symbols.
 1.2 11-Dec-2005  christos branches: 1.2.98; 1.2.114; 1.2.122;
merge ktrace-lwp.
 1.1 13-Sep-2004  chs branches: 1.1.2; 1.1.4;
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.4.4 22-Sep-2004  skrll Fix.
 1.1.4.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.1 13-Sep-2004  skrll file kern.ldscript.head was added on branch ktrace-lwp on 2004-09-18 14:32:23 +0000
 1.1.2.2 13-Sep-2004  tron Pull up revision 1.1 (requested by chs in ticket #843):
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.2.1 13-Sep-2004  tron file kern.ldscript.head was added on branch netbsd-2-0 on 2004-09-13 17:32:39 +0000
 1.2.122.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.2.114.1 30-Oct-2012  yamt sync with head
 1.2.98.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.4.16.1 22-Sep-2015  skrll Sync with HEAD
 1.4.2.1 03-Dec-2017  jdolecek update from HEAD
 1.4 30-Jan-2014  matt Put EHABI exception tables at the end of text.
provide __exidx_start and __exidx_end symbols.
 1.3 24-Dec-2013  matt Make sure _edata is aligned to a 8-byte boundary.
 1.2 11-Dec-2005  christos branches: 1.2.98; 1.2.114; 1.2.124; 1.2.130;
merge ktrace-lwp.
 1.1 13-Sep-2004  chs branches: 1.1.2; 1.1.4;
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.4.4 22-Sep-2004  skrll Fix.
 1.1.4.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.1 13-Sep-2004  skrll file kern.ldscript.tail was added on branch ktrace-lwp on 2004-09-18 14:32:23 +0000
 1.1.2.2 13-Sep-2004  tron Pull up revision 1.1 (requested by chs in ticket #843):
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.2.1 13-Sep-2004  tron file kern.ldscript.tail was added on branch netbsd-2-0 on 2004-09-13 17:32:39 +0000
 1.2.130.1 18-May-2014  rmind sync with head
 1.2.124.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.114.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.98.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.42 29-Jun-2021  nia Remove uscanner(4) driver

This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
 1.41 04-Apr-2020  jdolecek branches: 1.41.8;
mark nsmb major obsolete
 1.40 29-Jan-2020  maya remove urio(4), a driver for the Rio500 MP3 player.

At this point it is highly unlikely this 1999 device still has users,
but it still comes up in the context of maxv's USB-fuzzing (and any device
could pretend to be a urio(4)), so it's best to get rid of it.

Renamed all major entries to obsolete, as was done in previous removals.

This still requires an update to sanitizers, but they're located in
"external", perhaps it should be first committed upstream?

Proposed on tech-kern a month ago.
 1.39 28-Jan-2019  dholland branches: 1.39.6;
Systematize handling of removed drivers.

- Every driver that was removed and whose number hasn't already been
reused is now listed with a commented-out "obsolete" line.
- The format of these has been systematized. Future format changes can
probably be safely done with a script.
- This does not include a few cases of assignments that only lasted a
couple days, or stuff from before major reorgs. Some of these may
be included nonetheless, because there was a lot of ground to cover
and therefore not a lot of time to dig into history in detail.

Note that the obsolete listings do not mean the major numbers can
never be reused; that's up to portmasters and/or core. It does mean
that they won't be reused by accident, however, which in some cases
(depending on the driver, how widely used it was, its family of device
nodes, their default permissions, etc.) can be quite dangerous.

Note that some of the things now explicitly listed as obsolete are
really ancient history. My scan went back as far as when the majors
files were added. (But not before that.)
 1.38 23-Sep-2018  maxv Remove ISDN from the kernel. It has remained unmaintained for a long time,
is of poor quality, and is now an obstacle to MP-ification. It was removed
ten years ago from FreeBSD for the same reason.

This retires a big user of the mbuf API, and will ease maintenance of the
kernel.
 1.37 23-Apr-2015  pgoyette branches: 1.37.16; 1.37.18;
Update device dependency information - the sysmon major device now depends on the sysmon module itself, not on the individual components.
 1.36 23-Jan-2015  hkenken Initial Zynq (Xilinx) support
Add support for ZedBoard evaluation board and Parallella board.
* cemac(4) Cadence EMAC/GEM(Gigabit) Ethernet Controller driver
based on at91emac
 1.35 16-Apr-2014  matt branches: 1.35.2; 1.35.4;
Add ctcom
 1.34 28-Jan-2013  jmcneill branches: 1.34.2; 1.34.10;
reserve char 111 for vchiq
 1.33 30-Jun-2011  wiz branches: 1.33.2; 1.33.12;
dependant -> dependent
 1.32 30-Nov-2010  bsh define major device number for UARTs on i.MX SoCs
 1.31 06-Mar-2010  plunky branches: 1.31.2;
use a MI major number for uhso(4) driver
(requested by mrg)
 1.30 06-Mar-2010  plunky add major device for usho(4) driver
 1.29 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.28 31-Dec-2007  ad branches: 1.28.6; 1.28.10; 1.28.16; 1.28.18; 1.28.24;
Remove systrace. Ok core@.
 1.27 24-Nov-2006  wiz branches: 1.27.24; 1.27.28; 1.27.30; 1.27.36; 1.27.38; 1.27.44;
s/independant/independent/, from Zafer.
 1.26 28-Feb-2006  scw branches: 1.26.14; 1.26.16;
Include "device-major sysmon" when sysmon_power is defined.
 1.25 11-Dec-2005  christos branches: 1.25.2; 1.25.4; 1.25.6;
merge ktrace-lwp.
 1.24 17-Sep-2005  yamt make VMSWAP optional again.
 1.23 31-Jul-2005  yamt revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
 1.22 30-Jul-2005  yamt defflag VMSWAP.
 1.21 10-May-2005  jdolecek branches: 1.21.2;
assign major for nsmb(4)
 1.20 14-Feb-2005  briggs twe doesn't get a block device.
 1.19 12-Feb-2005  briggs Add twe.
 1.18 08-Jan-2005  joff branches: 1.18.2; 1.18.4;
Add tslcd device
 1.17 22-Dec-2004  joff char major 107 to ep93xx processor UART driver epcom
 1.16 25-Jan-2004  bjh21 Remove mentions of "beep" driver.
 1.15 10-Dec-2003  jmc Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
 1.14 24-Oct-2003  jdolecek add necessary majors for miscellaneous devices, such as missing
wscons/scsi/isdn devices
 1.13 10-Oct-2003  jdolecek reassing majors for crypto and pf to use the newly defined MI major
range
 1.12 10-Oct-2003  jdolecek update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
 1.11 05-Oct-2003  jdolecek Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

Range 0-191 is reserved for machine-specific assignments, range
192+ are MI assignments.

Follows recent discussion on tech-kern@
 1.10 30-Sep-2003  thorpej New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc. Primarily written by Steve Woodford,
with some modification by me.
 1.9 22-Aug-2003  itojun create /dev/crypto
 1.8 27-Jul-2003  itojun reserve cdev major # for PF. ok'ed by technical-exec
 1.7 25-Apr-2003  ragge branches: 1.7.2;
Add ksyms device major.
 1.6 31-Dec-2002  thorpej Fix sysmon entry.
 1.5 20-Nov-2002  bsh add a device.

sscom is a driver for built-in UART of Samsung S3C2800/24[01]0 CPU.
driver code is arch/arm/s3c2xx0/sscom.c
 1.4 04-Oct-2002  elric branches: 1.4.2;
assign majors for raw and cooked cgd's.
 1.3 16-Sep-2002  manu branches: 1.3.2;
Initial APM support (enough to get battery level)
 1.2 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.1 16-May-2002  gehenna branches: 1.1.2;
file majors.arm32 was initially added on branch gehenna-devsw.
 1.1.2.6 29-Aug-2002  gehenna catch up with -current. (change char major ixpcom, add sysmon, dmoverio).
 1.1.2.5 21-Jul-2002  gehenna catch up with -current.
 1.1.2.4 16-Jul-2002  gehenna catch up with -current.
 1.1.2.3 14-Jul-2002  gehenna catch up with -current.
 1.1.2.2 30-May-2002  gehenna Add $NetBSD$
 1.1.2.1 16-May-2002  gehenna Add the list of block/character majors.
 1.3.2.5 03-Jan-2003  thorpej Sync with HEAD.
 1.3.2.4 11-Dec-2002  thorpej Sync with HEAD.
 1.3.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.3.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.3.2.1 16-Sep-2002  nathanw file majors.arm32 was added on branch nathanw_sa on 2002-09-17 21:13:25 +0000
 1.4.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.1 04-Oct-2002  jdolecek file majors.arm32 was added on branch kqueue on 2002-10-10 18:31:46 +0000
 1.7.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.7.2.5 15-Feb-2005  skrll Sync with HEAD.
 1.7.2.4 17-Jan-2005  skrll Sync with HEAD.
 1.7.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1 03-Aug-2004  skrll Sync with HEAD
 1.18.4.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.18.4.1 12-Feb-2005  yamt sync with head.
 1.18.2.1 29-Apr-2005  kent sync with -current
 1.21.2.3 21-Jan-2008  yamt sync with head
 1.21.2.2 30-Dec-2006  yamt sync with head.
 1.21.2.1 21-Jun-2006  yamt sync with head.
 1.25.6.1 22-Apr-2006  simonb Sync with head.
 1.25.4.1 09-Sep-2006  rpaulo sync with head
 1.25.2.1 01-Mar-2006  yamt sync with head.
 1.26.16.1 10-Dec-2006  yamt sync with head.
 1.26.14.1 12-Jan-2007  ad Sync with head.
 1.27.44.1 02-Jan-2008  bouyer Sync with HEAD
 1.27.38.1 10-Nov-2007  matt Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc
 1.27.36.1 18-Feb-2008  mjf Sync with HEAD.
 1.27.30.1 09-Jan-2008  matt sync with HEAD
 1.27.28.1 01-Jan-2008  chris Sync with HEAD.
 1.27.24.1 28-Feb-2008  rjs Sync with HEAD.
 1.28.24.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.28.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.28.16.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.28.10.1 04-May-2009  yamt sync with head.
 1.28.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.31.2.1 05-Mar-2011  rmind sync with head
 1.33.12.3 03-Dec-2017  jdolecek update from HEAD
 1.33.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.33.12.1 25-Feb-2013  tls resync with head
 1.33.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.34.10.1 10-Aug-2014  tls Rebase.
 1.34.2.1 18-May-2014  rmind sync with head
 1.35.4.2 06-Jun-2015  skrll Sync with HEAD
 1.35.4.1 06-Apr-2015  skrll Sync with HEAD
 1.35.2.1 11-May-2015  msaitoh Pull up following revision(s) (requested by nonaka in ticket #751):
sys/arch/arm/zynq/zynq_axi.c: revision 1.1
sys/arch/evbarm/conf/files.zynq: revision 1.1
sys/arch/arm/zynq/zynq_uart.c: revision 1.1
sys/arch/evbarm/zynq/genassym.cf: revision 1.1
sys/arch/evbarm/zynq/zynq_start.S: revision 1.1
sys/arch/arm/zynq/zynq_slcrreg.h: revision 1.1
sys/arch/arm/zynq/zynq_usbreg.h: revision 1.1
sys/arch/arm/zynq/zynq7000_uart.c: revision 1.1
sys/arch/arm/zynq/zynq7000_sdhc.c: revision 1.1
sys/arch/arm/zynq/zynq_slcrvar.h: revision 1.1
sys/arch/arm/zynq/zynq_usbvar.h: revision 1.1
sys/arch/evbarm/conf/PARALLELLA_INSTALL: revision 1.1
sys/arch/arm/zynq/zynq_uartreg.h: revision 1.1
sys/arch/evbarm/zynq/platform.h: revision 1.1
sys/arch/evbarm/conf/mk.zynq: revision 1.1
sys/arch/evbarm/conf/files.zedboard: revision 1.1
sys/arch/arm/zynq/zynq7000_usb.c: revision 1.1
sys/dev/cadence/if_cemacvar.h: revision 1.1
sys/arch/arm/zynq/files.zynq: revision 1.1
sys/arch/arm/zynq/zynq_slcr.c: revision 1.1
sys/arch/arm/zynq/zynq7000_intr.h: revision 1.1
sys/arch/arm/conf/majors.arm32: revision 1.36
sys/arch/arm/zynq/zynq_uartvar.h: revision 1.1
sys/arch/evbarm/conf/files.parallella: revision 1.1
sys/arch/arm/zynq/zynq_space.c: revision 1.1
sys/dev/cadence/if_cemac.c: revision 1.1
sys/arch/evbarm/conf/PARALLELLA: revision 1.1
sys/arch/arm/zynq/zynq7000_board.c: revision 1.1
sys/arch/evbarm/Makefile: revision 1.10
sys/arch/evbarm/zynq/zynq_machdep.c: revision 1.1
sys/arch/arm/zynq/zynq7000_reg.h: revision 1.1
sys/arch/evbarm/conf/ZEDBOARD: revision 1.1
sys/dev/cadence/cemacreg.h: revision 1.1
sys/arch/evbarm/conf/std.zynq: revision 1.1
sys/arch/arm/zynq/zynq_dma.c: revision 1.1
sys/arch/arm/zynq/zynq_cemac.c: revision 1.1
sys/arch/arm/zynq/zynq7000_var.h: revision 1.1
sys/arch/evbarm/conf/ZEDBOARD_INSTALL: revision 1.1
sys/arch/arm/zynq/zynq_usb.c: revision 1.1
Initial Zynq (Xilinx) support
Add support for ZedBoard evaluation board and Parallella board.
* cemac(4) Cadence EMAC/GEM(Gigabit) Ethernet Controller driver
based on at91emac
 1.37.18.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.37.18.1 10-Jun-2019  christos Sync with HEAD
 1.37.16.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.39.6.1 29-Feb-2020  ad Sync with head.
 1.41.8.1 01-Aug-2021  thorpej Sync with HEAD.
 1.3 04-Mar-2007  tsutsui Move mkldscript.sh, which is used to create ldscript dynamically to
merge link_set_* sections into the text section for a.out kernels,
from sys/arch/arm/conf/ to sys/conf/ since there is no ARM specific
stuff in it and other ports would share it.
 1.2 11-Dec-2005  christos branches: 1.2.26;
merge ktrace-lwp.
 1.1 13-Sep-2004  chs branches: 1.1.2; 1.1.4; 1.1.16;
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.16.1 03-Sep-2007  yamt sync with head.
 1.1.4.4 22-Sep-2004  skrll Fix.
 1.1.4.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.1 13-Sep-2004  skrll file mkldscript.sh was added on branch ktrace-lwp on 2004-09-18 14:32:23 +0000
 1.1.2.2 13-Sep-2004  tron Pull up revision 1.1 (requested by chs in ticket #843):
work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
 1.1.2.1 13-Sep-2004  tron file mkldscript.sh was added on branch netbsd-2-0 on 2004-09-13 17:32:39 +0000
 1.2.26.2 17-May-2007  yamt fix a merge botch.
 1.2.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.5 18-Dec-2017  skrll Generalise FDT and OFW
 1.4 15-Dec-2017  christos we always need the fdt option now, defined or not.
 1.3 16-Feb-2015  skrll Re-enable CPI_IN_CKSUM now the bugs are fixed.
 1.2 30-Jan-2015  joerg Disable ARM's CPU_IN_CKSUM until the bugs are fixed.
 1.1 27-Jan-2008  chris branches: 1.1.2; 1.1.4; 1.1.6; 1.1.14; 1.1.16; 1.1.82; 1.1.84;
Add an arm/conf/std.arm file which contains common arm options, initially
just options CPU_IN_CKSUM.

Include std.arm in all arm platform std files.

This should reenable the asm in_cksum code for all arm platforms.

Also remove the now unused in_cksum_arm.S.
 1.1.84.1 06-Apr-2015  skrll Sync with HEAD
 1.1.82.2 16-Feb-2015  martin Pull up following revision(s) (requested by skrll in ticket #522):
sys/arch/arm/conf/std.arm: revision 1.3
sys/arch/arm/arm/cpu_in_cksum.S: revision 1.9
sys/arch/arm/arm/cpu_in_cksum.S: revision 1.10
sys/arch/arm/arm/cpu_in_cksum.S: revision 1.11
Fix conditional; makes 0 len mbuf, 0 offset, 0 len test work.
-
Correct arm_cksumdata for <4 bytes of data
Really fix arm_cksumdata for <4 bytes of data
-
Re-enable CPU_IN_CKSUM now the bugs are fixed.
 1.1.82.1 04-Feb-2015  snj Pull up following revision(s) (requested by joerg in ticket #475):
sys/arch/arm/conf/std.arm: revision 1.2
Disable ARM's CPU_IN_CKSUM until the bugs are fixed.
 1.1.16.2 23-Mar-2008  matt sync with HEAD
 1.1.16.1 27-Jan-2008  matt file std.arm was added on branch matt-armv6 on 2008-03-23 02:03:55 +0000
 1.1.14.2 28-Feb-2008  rjs Sync with HEAD.
 1.1.14.1 27-Jan-2008  rjs file std.arm was added on branch hpcarm-cleanup on 2008-02-28 21:58:52 +0000
 1.1.6.2 18-Feb-2008  mjf Sync with HEAD.
 1.1.6.1 27-Jan-2008  mjf file std.arm was added on branch mjf-devfs on 2008-02-18 21:04:22 +0000
 1.1.4.2 04-Feb-2008  yamt sync with head.
 1.1.4.1 27-Jan-2008  yamt file std.arm was added on branch yamt-lazymbuf on 2008-02-04 09:21:45 +0000
 1.1.2.2 27-Jan-2008  chris Sync to HEAD.
 1.1.2.1 27-Jan-2008  chris file std.arm was added on branch chris-arm-intr-rework on 2008-01-27 13:08:37 +0000

RSS XML Feed