History log of /freebsd-current/sys/conf/options.arm
Revision Date Author Comments
# 93d4bad6 26-Oct-2023 Kyle Evans <kevans@FreeBSD.org>

arm: prune imx5 support from the tree

The IMX5 configs were removed in advance of FreeBSD 14.0 in
cdb0c2a73df ("arm: Remove IMX5 specific kernel configs"). This code
isn't built with GENERIC and doesn't actually build today as-is, so
let's remove it to avoid needless maintenance work to it that won't be
tested. As usual, revival is welcome with a committed user and work to
maintain it with upstream DTS and, ideally, in GENERIC.

I note that vt_early_fb is now effectively orphaned as nothing else will
use it, but I haven't yet removed it since I have not done anything to
ascertain if it could be integrated easily enough for other SoC. It is
among the files that doesn't actually build with today's clang, though.

Reviewed by: imp, manu
Differential Revision: https://reviews.freebsd.org/D41836


# 031beb4e 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# f9d61574 20-Oct-2022 Warner Losh <imp@FreeBSD.org>

arm: Remove useless armv6/armv7 options

Cleanup another remnant of the armv4/armv5 support. Now that we always
define armv6 or armv7, these lines can be deleted (execpt hwpmc_armv7.c
which now needs just one line). Since we don't do anything different
between armv6 and armv7 from a config file selection point of view,
delete them from options.arm. We are extremely unlikely to grow anything
new here during the remaining lifetime of 32-bit arm in FreeBSD.

Sponsored by: Netflix
Reviewed by: kevans, andrew
Differential Revision: https://reviews.freebsd.org/D37069


# c29c0e68 16-Oct-2021 Adrian Chadd <adrian@FreeBSD.org>

arm: allow the debug stuff in CP14 to be disabled at compile time

The upcoming QCA ipq401x support detects the CP14 debug features,
but any attempt to use it causes an undefined instruction error.
It apparently needs a specific TZ image loaded by the early bootloader
(SBL) in order to enable these kinds of features.

So add a new kernel option that explicitly disables this in the
arm code - the debugger works fine without it.


# 7c6c12eb 29-Nov-2020 Michal Meloun <mmel@FreeBSD.org>

Remove unused options.

Marvell files and their related SOC_MV_<foo> options should be cleaned up
in another pass.


# a28c28e6 18-Nov-2020 Mark Johnston <markj@FreeBSD.org>

Remove NO_EVENTTIMERS support

The arm configs that required it have been removed from the tree.
Removing this option makes the callout code easier to read and
discourages developers from adding new configs without eventtimer
drivers.

Reviewed by: ian, imp, mav
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27270


# c312e0f4 02-Feb-2020 Warner Losh <imp@FreeBSD.org>

Kill old armv4 busdma

Move to having one busdma option for arm: the armv6/v7 one.
Kill now-unused option ARM_USE_V6_BUSDMA too.
Fixup files.arm to match rename.


# 850dd7e9 17-Dec-2019 Kyle Evans <kevans@FreeBSD.org>

arm: add SOC_BRCM_BCM2837 option, include it in GENERIC

We use armv7/GENERIC for the RPI2 images. The original RPI2 is actually a
32-bit BCM2836, but v1.2 was upgraded to the 64-bit BCM2837. The project
continues to provide the RPI2 image as armv7, as it's the lowest common
denominator of the two. Historically, we've just kind of implicitly
acknowledged this by including some bcm2837 bits on a SOC_BCM2836 kernel
config -- this worked until r354875 added code that actually cared.

Acknowledge formally that BCM2837 is valid in arm32.

This name is inconsistent with the other BCM* SOC on !arm64 for two reasons:

1. It's a pre-existing option on arm64, and
2. the naming convention on arm/ should've arguably changed to include BRCM

#1 seems to be a convincing enough argument to maintain the existing name
for it.


# e57edd35 28-Jul-2018 Andrew Turner <andrew@FreeBSD.org>

Remove now the cow unused CPU_ARM9 and CPU_FA526 options. These are for
ARMv4 CPUs that are no longer supported.


# 15bff097 28-Jul-2018 Andrew Turner <andrew@FreeBSD.org>

Only support INTRNG in the SMP code on arm. We already require INTRNG on
anything that could be multicore on arm.


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

Remove xscale support.

As discussed in arm@. This is a scaled back version of the prior
commit because xscale is overlaoded in places to mean armv5 or
similar. The OLD XSCALE stuff hasn't been useful in a while. The
original committer (cognet@) was the only one that had boards for
it. He's blessed this removal. Newer XSCALE (GUMSTIX) is for hardware
that's quite old. After discussion on arm@, it was clear there was no
support for keeping it.

Noticed by: andrew@


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

Revert r336773: it removed too much.

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

Noticed by: andrew@


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

Remove xscale support

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

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


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

Remove Atmel AT91RM9200 and AT91SAM9 support.

The last known robust version of this code base was FreeBSD 8.2. There
are no users of this on current, and all users of it have abandoned
this platform or are in legacy mode with a prior version of FreeBSD.

All known users on arm@ approved this removal, and there were no
objections.

Differential Revision: https://reviews.freebsd.org/D16312


# ff945277 17-Jul-2018 Warner Losh <imp@FreeBSD.org>

Remove kernel support for armeb

Remove all the big-endian arm architectures (ixp425 and ixp435)
support in the kernel and associated drivers.

Differential Revision: https://reviews.freebsd.org/D16257


# 51358174 26-Dec-2017 Ian Lepore <ian@FreeBSD.org>

Add a new ARM kernel option, LOCORE_MAP_MB, to control the size of the
kernel VA mapping in the temporary page tables set up by locore-v6.S.

The number used to be hard-coded to 64MB, which is still the default if
the kernel option is not specified. However, 64MB is insufficient for
using a large mdroot filesystem. The hard-coded number can't be safely
increased because too large a number may run into memory-mapped IO space
on some SoCs that must not be mapped as ordinary memory.


# 094fc1ed 05-Oct-2017 Warner Losh <imp@FreeBSD.org>

Tag all armv7 kernels as such in their machine config line.

Transition all boards that support arm cortex CPUs to armv7. This
leaves two armv6 kernels in the tree. RPI-B, which uses the BCM2835
which has a ARM1176 core, and VERSATILEPB, which is a qemu board setup
around the time RPI-B went in. Copy std.armv6 to std.armv7, even
though that duplicates a lot of stuff. More work needs to be done to
sort out the duplication.

Differential Revision: https://reviews.freebsd.org/D12027


# 9ce763a0 07-Jul-2017 Andrew Turner <andrew@FreeBSD.org>

Remove the MULTIDELAY option from arm. It's now enabled when PLATFORM is
enabled.


# 3d814b4c 04-Jul-2017 Andrew Turner <andrew@FreeBSD.org>

Remove PLATFORM_SMP. It's unneeded as all configs with both PLATFORM and
SMP use it so we can switch to the combination of these as the check.


# 7f613942 24-Jun-2017 Emmanuel Vadot <manu@FreeBSD.org>

Allwinner: Add support for H2 Plus SoC

H2+ SoC is a stripped down version of H3 without gigabit ethernet and 4K HDMI.
Also add sun8i-h2-plus-orangepi-zero.dts to the build as we run on this board.


# 5274cd55 18-Jun-2017 Warner Losh <imp@FreeBSD.org>

Create a new option ARM_USE_V6_BUSDMA to force an armv4/5 kernel to
use the armv6 busdma interface. This interface uses more memory than
the armv4 one, but bounces more data more often so may be more correct
than the armv4 one. It is intended for debugging purposes only at the
moment.


# 1eff4c0c 16-Mar-2017 Andrew Turner <andrew@FreeBSD.org>

Remove code for Marvell SoCs that lack a kernel config.

It seems to be old code from the armv6 project branch that never had a
kernel config.

Reviewed by: mmel
Sponsored by: ABT Systems Lrd
Differential Revision: https://reviews.freebsd.org/D7166


# 6414b02d 28-Feb-2017 Ruslan Bukin <br@FreeBSD.org>

Add SOC_ALTERA_* kernel options per each SoC and use it to
conditionally compile the code.

Reviewed by: andrew
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D9836


# 93a065e7 01-Feb-2017 Michal Meloun <mmel@FreeBSD.org>

Remake support for SMP kernel on UP cpu:
- Use new option SMP_ON_UP instead of (mis)using specific CPU type.
By this, any SMP kernel can be compiled with SMP_ON_UP support.
- Enable runtime detection of CPU multiprocessor extensions only
if SMP_ON_UP option is used. In other cases (pure SMP or UP),
statically compile only required variant.
- Don't leak multiprocessor instructions to UP kernel.
- Correctly handle data cache write back to point of unification.
DCCMVAU is supported on all armv7 cpus.
- For SMP_ON_UP kernels, detect proper TTB flags on runtime.

Differential Revision: https://reviews.freebsd.org/D9133


# cf72965f 03-Jan-2017 Emmanuel Vadot <manu@FreeBSD.org>

Allwinner: Add A33 support

Add basic support for A33/R16 that is enough to boot a kernel.
This adds the platform code, padconf data and the new clocks strings.

MFC after: 2 weeks


# a8993801 13-Dec-2016 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Switch Rockchip RK3188 SoC to use the platform code.

Reviewed by: andrew, manu
Differential Revision: https://reviews.freebsd.org/D8769


# a2c46b94 24-Nov-2016 Luiz Otavio O Souza <loos@FreeBSD.org>

Add the etherswitch(4) support for TI CPSW.

Adds VLAN and port management abilities for etherswitchcfg(8).

The code is conditionally enabled for now, because it is not necessary on
single ethernet use cases.

Obtained from: pfSense
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC (Netgate)


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

Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP,
for later Cortex-A CPUs that support the Multiprocessor Extensions. This
will be needed to support both in a single GENERIC kernel while still
being able to only build for a single SoC.

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


# 356c50ad 08-Jul-2016 Emmanuel Vadot <manu@FreeBSD.org>

Add support for Allwinner A13.

Reviewed by: jmcneill
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D6809


# 0aa4b813 13-May-2016 Emmanuel Vadot <manu@FreeBSD.org>

Add support for Allwinner H3 SoC.
For now clocks, GPIO, Pinmux, UART, MMC, EHCI is supported.
Tested on OrangePi-One

Reviewed by: jmcneill
Approved by: cognet (mentor)
Differential Revision: https://reviews.freebsd.org/D6311


# 8a0fd1a7 05-May-2016 Jared McNeill <jmcneill@FreeBSD.org>

Add support for the Allwinner A83T (sun8iw6p1) SoC.

Clocks, GPIO, UART, SD card / eMMC, USB, watchdog, and ethernet are
supported. Note that the A83T contains two clusters of four Cortex-A7
CPUs, and only CPUs in first cluster are started for now.

Tested on a Sinovoip Banana Pi BPI-M3.


# cca48a59 30-Apr-2016 Andrew Turner <andrew@FreeBSD.org>

Add a MULTIDELAY option to allow the ARM kernel to have multiple DELAY
implementations. Early in the boot the kernel will use an approximate,
however after the timer has been probed it will switch to a more accurate
implementation.

Reviewed by: manu
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D5762


# 59c3cb81 15-Apr-2016 Andrew Turner <andrew@FreeBSD.org>

Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machine
independent code that needs to know about INTRNG such as PCI drivers.

Obtained from: ABT Systems Ltd
Sponsored by: The FreeBSD Foundation


# a19c0b37 28-Feb-2016 Andrew Turner <andrew@FreeBSD.org>

Add SMP support to the ARM PLATFORM code. This will allow us to have
different methods to start the secondary cores in a kernel built for
multiple SoCs, e.g. with the Allwinner A20 and A31.

Sponsored by: ABT systems Ltd
Differential Revision: https://reviews.freebsd.org/D5466


# ccf8caad 24-Feb-2016 Andrew Turner <andrew@FreeBSD.org>

Add the Allwinner A31 and A31s padconf support. It's currently unused, but
will be needed when we bring in further support for these SoCs.

Submitted by: Emmanuel Vadot <manu@bidouilliste.com>
Differential Revision: https://reviews.freebsd.org/D5340


# 4b68de9c 17-Feb-2016 Andrew Turner <andrew@FreeBSD.org>

Move the Allwinner kernels to use fdt_pinctrl. This will read the pin
configuration from the FDT data, then set the pins into the requested
state. As part of this the gpio controller now reports the correct number
of pins instead of returning the number of bank * 32.

To allow for a future consolidated kernel we add the SOC_ALLWINNER_A10 and
SOC_ALLWINNER_A20 kernel options. These need to be set as appropriate for
the SoC the kernel will boot on.

Submitted by: Emmanuel Vadot <manu@bidouilliste.com>
Differential Revision: https://reviews.freebsd.org/D5177


# afdcfee4 03-Feb-2016 Michal Meloun <mmel@FreeBSD.org>

ARM: Remove support for xscale i80219 and i80321 CPUs. We haven't single
supported config/board with these CPUs.


# 41a7c569 29-Jan-2016 Michal Meloun <mmel@FreeBSD.org>

ARM: remove old pmap-v6 code. The new pmap-v6 is mature enough, and
dual implementation is showstopper for major cleanup.

This patch only removes old code from tree. Cleanups will follow asap.


# f8742b0d 20-Jan-2016 Zbigniew Bodek <zbb@FreeBSD.org>

Introduce initial support for Marvell Armada38x

This commit introduces initial support for Marvell Armada38x platform.
Changes:
- Add common DTS files for Armada38x SoCs and DTS file for A388-GP
- Add ARMADA38X kernel configuration
- Add option SOC_MV_ARMADA38X and set MV_PCI_PORTS
- Add list of files to compile
- Implement get_tclk(), get_sar_value(), cpu_reset() functions
- Add CPU ID and SoC numbers
- Correct ifdefs in arm/mv/timer.c

Reviewed by: ian, imp
Obtained from: Semihalf
Sponsored by: Stormshield
Submitted by: Michal Stanek <mst@semihalf.com>
Differential revision: https://reviews.freebsd.org/D4210


# 7c570e8b 22-Dec-2015 Andrew Turner <andrew@FreeBSD.org>

Remove the arm KERNPHYSADDR option as it is no longer used. The make
option is still in existance as it is used to build the trampoline code.


# eeaf6acb 09-Nov-2015 Bjoern A. Zeeb <bz@FreeBSD.org>

Now that the PMU implementation is independent of HWPMC
as of r288992 use it to manage the CCNT.

Use the CNNT for get_cyclecount() instead of binuptime() when device pmu
is compiled in; if it fails to attach, fall back to the former method.

Enable by default for the BeagleBoneBlack configuration.

Optained from: Cambridge/L41
Sponsored by: DARPA/AFRL
Reviewed by: andrew
Differential Revision: https://reviews.freebsd.org/D3837


# 56ea9c7b 07-Nov-2015 Warner Losh <imp@FreeBSD.org>

Add support for RMII in macb, cribbed slightly from the ate
driver. This is taken from the MAC at boot, but can be overridden with
'options AT91_MACB_USE_RMII'.

Switch to macb for HL201 and SAM9G20EK boards. It now works both
places. Also start to sneak up on FDT for the SAM9G20EK board, but
leave disabled due to issues with MMC that haven't been resolved.
Add early debug support for the SAM9G20EK since that is required
for FDT to work presently on these SoC.


# 686450c8 18-Oct-2015 Ian Lepore <ian@FreeBSD.org>

Import ARM_INTRNG, the "next generation" interrupt architecture for arm
and armv6 architecures. The primary enhancement over the old design is
support for hierarchical interrupt controllers (such as a gpio driver
which can receive interrupts from a root PIC and act as a PIC itself for
clients interested in handling a change of gpio pin state as an
interrupt). The new code also provides an infrastructure for mapping
interrupts described in metadata in the form of a "controller reference
plus interrupt number" tuple into the simple "0-n" flat numeric space
understood by rman and the bus resource mechanisms.

Use of the new code is enabled by setting the ARM_INTRNG option, and by
making a few simple changes to the platform's support code. In addition
each existing PIC driver needs changes to be ready for INTRNG; this commit
contains the changes for the arm/gic driver, which most armv6 SoCs use, but
it does not enable the new code yet on any platform.

This project has been many years in the making, starting as a GSoC project
by Jakub Klama (jceel@) in 2012. That didn't get committed right away and
the source base evolved out from under it to some degree. In 2014 I rebased
the diffs to then -current and did some enhancements in the area of mapping
interrupt numbers and storing associated fdt data, then the project went
cold again for a while. Eventually Svata Kraus took that work in progress
and did another big round of work on it, removing most of the remaining
rough edges. Finally I took that and made one more pass through it, mostly
disabling the "INTR_SOLO" feature for now, pending further design
discussions on how to most efficiently dispatch a pending interrupt through
more than one layer of PIC. The current code with the INTR_SOLO feature
disabled uses approximate 100 extra cpu cycles for each cascaded PIC the
interrupt has to be passed to, so what's left to do is about efficiency, not
correct operation.

Differential Revision: https://reviews.freebsd.org/D2047


# 82c447f5 24-May-2015 Andrew Turner <andrew@FreeBSD.org>

Add support for getting the memory map from EFI if it has been pased in
by loader.efi.


# a6ffc42f 18-May-2015 Andrew Turner <andrew@FreeBSD.org>

Clean up the Amlogic interrupt controller driver to handle the case where
we have both the Amlogic pic and a GIC. This may be the case in some
configurations.

Differential Revision: https://reviews.freebsd.org/D2432
Submitted by: John Wehle <john@feith.com>


# 092b8f61 23-Apr-2015 Andrew Turner <andrew@FreeBSD.org>

Add the SOC_IMX51, SOC_IMX53, and SOC_IMX6 options. These are used to
select which SoCs the kernel config will support.

Use these options to merge files.imx51 and files.imx53.


# 562246df 31-Mar-2015 Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

Add necessary changes to support various Amlogic SoC devices
specially aml8726-m6 and aml8726-m8b SoC based devices.
aml8726-m6 SoC exist in devices such as Visson ATV-102.
Hardkernel ODROID-C1 board has aml8726-m8b SoC.

The following support is included:
Basic machdep code
SMP
Interrupt controller
Clock control driver (aka gate)
Pinctrl
Timer
Real time clock
UART
GPIO
I2C
SD controller
SDXC controller
USB
Watchdog
Random number generator
PLL / Clock frequency measurement
Frame buffer

Submitted by: John Wehle
Approved by: stas (mentor)


# 303c8079 30-Mar-2015 Andrew Turner <andrew@FreeBSD.org>

Remove support for CPU_FA626TE. It's unused by any of our kernel configs.


# 930798f3 29-Mar-2015 Andrew Turner <andrew@FreeBSD.org>

Remove arm1136 support. We don't have any configs that use it, and I don't
expect us to add support for any more arm11 SoCs.


# fd78c994 29-Mar-2015 Andrew Turner <andrew@FreeBSD.org>

Remove ARM9_CACHE_WRITE_THROUGH, none of our configs define it.


# 84233ddb 26-Mar-2015 Ian Lepore <ian@FreeBSD.org>

New pmap code for armv6. Disabled by default, option ARM_NEW_PMAP enables it.

This is pretty much a complete rewrite based on the existing i386 code. The
patches have been circulating for a couple years and have been looked at by
plenty of people, but I'm not putting anybody on the hook as having reviewed
this in any formal sense except myself.

After this has gotten wider testing from the user community, ARM_NEW_PMAP
will become the default and various dregs of the old pmap code will be
removed.

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


# e68fcb03 24-Mar-2015 Andrew Turner <andrew@FreeBSD.org>

Add the SOC_BCM2835 and SOC_BCM2836 options for the arm kernel and add the
former to std.bcm2835. These will be used to enable support for the
Raspberry Pi 2.

MFC after: 1 week


# 37143b98 20-Mar-2015 Zbigniew Bodek <zbb@FreeBSD.org>

Allow to override default kernel virtual address assignment on ARM

Each plaform performs virtual memory split between kernel and user space
and assigns kernel certain amount of memory space. However, is is sometimes
reasonable to change the default values. Such situation may happen on
systems where the demand for kernel buffers is high, many devices occupying
memory etc. This of course comes with the cost of decreasing user space
memory range so shall be used with care. Most embedded systems will not
suffer from this limtation but rather take advantage of this potential
since default behavior is left unchanged.

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


# a285d100 29-Dec-2014 Ian Lepore <ian@FreeBSD.org>

Add arm option ARM_NEW_PMAP, to allow us to begin adding the new pmap
code alongside the existing implementation and quickly toggle between
the two implementations when testing. Once the new code is past its
teething stage we can remove this option.


# 7e96dec7 23-Nov-2014 Ian Lepore <ian@FreeBSD.org>

Add ARMV6 as an arm option. This will cause obscure magic in config(8)
to automatically set the armv6 option when MACHINE_ARCH is armv6. That
allows replacing ever-growing lists of cpu names as options to compile
a given file with the using either "optional armv6" or "optional !armv6".


# 81d54b79 26-Oct-2014 Ian Lepore <ian@FreeBSD.org>

Remove the ARM_DEVICE_MULTIPASS option and make its effect be the default.

Multipass device attachment was tested on many arm platforms by users and
only success was reported on the arm@ mailing list. This is just the
long-delayed followup of making it the default.

Multipass attachment is necessary when using vendor-supplied FDT data,
because our devices may need to be attached in a different order than they
are described in the FDT data.


# 970775a5 05-Aug-2014 Ian Lepore <ian@FreeBSD.org>

Add an arm option, ARM_DEVICE_MULTIPASS, used to opt-in to multi-pass
device attachment on arm platforms. If this is defined, nexus attaches
early in BUS_PASS_BUS, and other busses and devices attach later, in the
pass number they are set up for. Without it defined, nexus attaches in
BUS_PASS_DEFAULT and thus so does everything else, which is status quo.

Arm platforms which use FDT data to enumerate devices have been relying
on devices being attached in the exact order they're listed in the dts
source file. That's one of things currently preventing us from using
vendor-supplied fdt data (because then we don't control the order of the
devices in the data). Multi-pass attachment can go a long way towards
solving that problem by ensuring things like clock and interrupt drivers
are attached before the more mundane devices that need them.

The long-term goal is to have all arm fdt-based platforms using multipass.
This option is a bridge to that, letting us enable it selectively as
platforms are converted and tested (the alternative being to just throw
a big switch and try to fight fires as they're reported).


# 27521ff8 17-May-2014 Andrew Turner <andrew@FreeBSD.org>

Add the start of the ARM platform code. This is based on the PowerPC
platform code, it is expected these will be merged in the future when the
ARM code is more complete.

Until more boards can be tested only use this with the Raspberry Pi and
rrename the functions on the other SoCs.

Reviewed by: ian@


# 2a4eeaa4 02-Apr-2014 Ian Lepore <ian@FreeBSD.org>

Change NO_EVENTTIMERS from an arm-specific to an MI option, so that it can
be used in MI code.

This is intended as a temporary measure to unbreak the build. The real fix
is to write event timer drivers for legacy arm hardware, then get rid of
this option completely. That's going to take a few days.


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

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


# 007aeece 08-Feb-2014 Ian Lepore <ian@FreeBSD.org>

Remove the ARM_USE_SMALL_ALLOC option and code related to it.

This was an optimization used only by a few xscale platforms. Part of
the optimization was to create a direct map for all physical pages, and
that resulted in making multiple mappings of pages in a way that bypassed
the logic in pmap.c to handle VIVT cache aliasing. It also just generally
made the code more complex and hard to maintain for all SoCs.

Reviewed by: cognet


# 979d76c9 28-Jan-2014 Andrew Turner <andrew@FreeBSD.org>

Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with
memory at the end of the kernel.

This helps reduce the SoC and board specific configuration required.

Reviewed by: bsdimp
Tested by: jmg (armeb), br


# 88b842d2 22-Jan-2014 Warner Losh <imp@FreeBSD.org>

Add support for mapping a small range of the SoC devices for debugging
purposes early in boot.


# 871bdaab 30-Dec-2013 Warner Losh <imp@FreeBSD.org>

Allow AT91_MCI_ALLOW_OVERCLOCK to be an option in kernel config files.


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

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

Approved by: stas (mentor)


# 21dc962b 21-Nov-2013 Olivier Houchard <cognet@FreeBSD.org>

Kill ARM_VFP_SUPPORT, it's been removed some time ago.


# c5de7237 17-Aug-2013 Andrew Turner <andrew@FreeBSD.org>

Rename device vfp to option VFP and retire the ARM_VFP_SUPPORT option. This
simplifies enabling as previously both options were required to be enabled,
now we only need a single option.

While here enable VFP on the PandaBoard.


# becc01ef 17-Aug-2013 Andrew Turner <andrew@FreeBSD.org>

Remove the ARMFPE option. It is unsupported, and appears to be broken as
arm_fpe_core_changecontext is not a function.


# 4442f74b 14-May-2013 Grzegorz Bernacki <gber@FreeBSD.org>

Port the new PV entry allocator from amd64/i386/mips to armv6/v7.

PV entries are now roughly half the size.
Instead of using a shared UMA zone for 28 byte pv entries
(two 8-byte tailq nodes, a 4 byte pointer, a 4 byte address and 4 byte
flags), we allocate a page at a time per process.
This provides 252 pv entries per process (actually, per pmap address space)
and eliminates one of the 8-byte tailq entries since we now can track
per-process pv entries implicitly.
The pointer to the pmap can be eliminated by doing address arithmetic to
find the metadata on the page headers to find a single pointer shared by
all 252 entries. There is an 8-int bitmap for the freelist of those 252
entries.
When in serious low memory condition, allocation of another pv_chunk is
possible by freeing some pages in pmap_pv_reclaim().

Added pv_entry/pv_chunk related statistics to pmap.
pv_entry/pv_chunk statistics can be accessed via sysctl vm.pmap.

Ported PTE freelist of KVA allocation and maintenance from i386.
Using an idea from Stephan Uphoff, use the empty pte's that correspond
to the unused kva in the pv memory block to thread a freelist through.
This allows us to free pages that used to be used for pv entry chunks
since we can now track holes in the kva memory block.

As both ARM pmap.c and pmap-v6.c use the same header and pv_entry, pmap and
md_page structures are different, it was needed to separate code designed
for ARMv6/7 from the one for other ARMs.

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


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

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

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


# e1f04cd0 25-Aug-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Piggyback MIPS changes and add ARM syscons support for devices with
framebuffer

While here - sort #if defined() order alphabetically


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

Merging projects/armv6, part 1

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


# 8304b99a 06-Jul-2012 Warner Losh <imp@FreeBSD.org>

Create a generic way to support multiple boards within an
arm platform. Add all the atmel boards to the ATMEL kernel for
testing purposes. Until boot loader arg parsing of baord type
is done, this won't actually be able to do the runtime selection.


# d56a9edd 15-Jun-2012 Warner Losh <imp@FreeBSD.org>

These options are unused, and can safely be retired.


# 38ac33aa 13-Jun-2012 Warner Losh <imp@FreeBSD.org>

Add support for parsing Linux ATAGs such as you'd see from uboot or
redboot. Support is very preiminary and likely needs some work. Also,
do some minor code shuffling of the FreeBSD /boot/loader metadata
parsing code. This code is preliminary and should be used with
caution.


# 0bb13a26 13-Jun-2012 Warner Losh <imp@FreeBSD.org>

Create default_parse_boot_param which, if FreeBSD /boot/loader support
is enabled, sets values based on the metadata passed in. Otherwise
fake_preload_metadata is called. Change the default parse_boot_param
to default_parse_boot_param. Enable this functionality only on the mv
platform, which is where most of the code is from.

Reviewed by: cognet, Ian Lapore


# 537cdfaf 03-Jun-2012 Warner Losh <imp@FreeBSD.org>

Eliminate the now-unused AT91C_MASTER_CLOCK option and change the one
place in the source it was used to the more correct AT91C_MAIN_CLOCK.
Sort AT91C_MAIN_CLOCK into a better location in the options.arm file.


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

- Add new ARM kernel option QEMU_WORKAROUNDS which can be
used in the code which needs to implement some specific
behaviour when being run under QEMU.
- Make PXA UART probe code to work under QEMU gumstix, which
doesn't emulate all the ports properly.


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

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


# 4c53de5c 07-Oct-2010 Olivier Houchard <cognet@FreeBSD.org>

Add options I missed in the additionnal AT91 support commits.

Submitted by: Greg Ansley


# 294e2f04 19-Jul-2010 Rafal Jaworowski <raj@FreeBSD.org>

Now that we are fully FDT-driven on MRVL platforms, remove PHYSMEM_SIZE option.


# db5ef4fc 13-Jun-2010 Rafal Jaworowski <raj@FreeBSD.org>

Convert Marvell ARM platforms to FDT convention.

The following systems are involved:

- DB-88F5182
- DB-88F5281
- DB-88F6281
- DB-78100
- SheevaPlug

This overhaul covers the following major changes:

- All integrated peripherals drivers for Marvell ARM SoC, which are
currently in the FreeBSD source tree are reworked and adjusted so they
derive config data out of the device tree blob (instead of hard coded /
tabelarized values).

- Since the common FDT infrastrucutre (fdtbus, simplebus) is used we say
good by to obio / mbus drivers and numerous hard-coded config data.

Note that world needs to be built WITH_FDT for the affected platforms.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation.


# 64c68f1c 04-May-2010 Kevin Lo <kevlo@FreeBSD.org>

Add support for FA626TE.
Tested on GM8181 development board.


# 381a19cc 03-Jan-2010 Rui Paulo <rpaulo@FreeBSD.org>

Add support for Cavium Econa CNS11XX ARM boards. These boards were
previously know by StarSemi STR9104.

Tested by the submitter on an Emprex NSD-100 board.

Submitted by: Yohanes Nugroho <yohanes at gmail.com>
Reviewed by: freebsd-arm, stas
Obtained from: //depot/projects/str91xx/...


# e9667e8f 15-Sep-2009 Rafal Jaworowski <raj@FreeBSD.org>

MFC r196531-196534,196536

Clean up Marvell platform code.

Introduce SheevaPlug support.

- The device is based on Marvell 88F6281 system on chip.
- More info about the platform at http://www.plugcomputer.org

- To build the FreeBSD kernel:
make buildkernel TARGET_ARCH=arm KERNCONF=SHEEVAPLUG

- Installation notes at: http://wiki.freebsd.org/FreeBSDMarvell

Submitted by: Michal Hajduk
Approved by: re (kib)
Obtained from: Semihalf


# 18159f6a 25-Aug-2009 Rafal Jaworowski <raj@FreeBSD.org>

Introduce MII_ADDR_BASE option on ARM, which allows to override the default
per platform requirements.

Notes:
- Only used by mge(4) at the moment.

- This is very simplified approach and should be replaced by some long-term
solution for managing the board/platform configuration (among others the
MAC-PHY binding info).

Submitted by: Michal Hajduk
Obtained from: Semihalf


# 0ad2baa0 10-Mar-2009 Sam Leffler <sam@FreeBSD.org>

add IXP4XX_FLASH_SIZE config knob that can be used to override the default
flash size; this is necessary at the moment because we map all of flash at
boot, eventually we'll do this on the fly


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

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

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


# b739b605 30-Nov-2008 Stanislav Sedov <stas@FreeBSD.org>

- Obtain main clock frequency dynamically based on CKGR_MCFR register
contents.
- It is possible to override the dynamic configuration by using
AT91C_MAIN_CLOCK option in kernel config.

PR: arm/128961 (based on)
Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de>
Reviewed by: imp
Approved by: kib (mentor, implicit)


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

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


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

Introduce basic support for Marvell families of system-on-chip ARM devices:

* Orion
- 88F5181
- 88F5182
- 88F5281

* Kirkwood
- 88F6281

* Discovery
- MV78100

The above families of SOCs are built around CPU cores compliant with ARMv5TE
instruction set architecture definition. They share a number of integrated
peripherals. This commit brings support for the following basic elements:

* GPIO
* Interrupt controller
* L1, L2 cache
* Timers, watchdog, RTC
* TWSI (I2C)
* UART

Other peripherals drivers will be introduced separately.

Reviewed by: imp, marcel, stass (Thanks guys!)
Obtained from: Marvell, Semihalf


# 9722a615 05-Jun-2008 Benno Rice <benno@FreeBSD.org>

Support for the XScale PXA255 SoC as found on the Gumstix Basix and Connex
boards. This is enough to net-boot to multiuser.

Also supported is the SMSC LAN91C111 parts used on the netCF, netDUO and netMMC
add-on boards.

I'll be putting some instructions on how to boot this on the Gumstix boards
online soon.

This is still fairly rough and will be refined over time but I felt it was
better to get this out there where other people can help out.


# 3d2c85cf 31-Oct-2007 Kevin Lo <kevlo@FreeBSD.org>

Add CPU_ARM9E


# ed0b604f 25-Oct-2007 Olivier Houchard <cognet@FreeBSD.org>

Add an option to be able to override the value of the AT91 master clock
frequency. It'd be better to be able to calculate it at runtime, but we need
the information very early, to setup the uart.


# 128b3d77 11-Jun-2007 Olivier Houchard <cognet@FreeBSD.org>

Add CPU_XSCALE_81342 before I forget again.


# f59ae8e8 18-Feb-2007 Olivier Houchard <cognet@FreeBSD.org>

Add two new options, FLASHADDR, which defines the address the flash is
mapped at, and LOADERRAMADDR, the address at which the loader maps the ram at
at the time the kernel is booted.
They are used to detect if the kernel is booted from the onboard flash.
Define those for the IQ31244


# ecfa9e8d 04-Jan-2007 Bernd Walter <ticso@FreeBSD.org>

MFp4: add BWCT kernel configuration


# 5186f9ff 19-Nov-2006 Sam Leffler <sam@FreeBSD.org>

add CPU_XSCALE_IXP425

Reviewed by: cognet, imp
MFC after: 1 month


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

Finally bring it support for the i80219 XScale processor.

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


# 49953e11 08-Aug-2006 Olivier Houchard <cognet@FreeBSD.org>

Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps
whole the physical memory, cached, using 1MB section mappings. This reduces
the address space available for user processes a bit, but given the amount of
memory a typical arm machine has, it is not (yet) a big issue.
It then provides a uma_small_alloc() that works as it does for architectures
which have a direct mapping.


# cbc25fac 14-Jul-2006 Warner Losh <imp@FreeBSD.org>

For the moment, make board configuration a compile time option. This
saves space in the final kernel, but at the expense of flexibility to
boot the same kernel accross a family of boards.


# d661dc80 06-Jun-2006 Olivier Houchard <cognet@FreeBSD.org>

Convert the last offender, the SA1110 port, to ARM32_NEW_VM_LAYOUT, and
completely nuke the !ARM32_NEW_VM_LAYOUT case.


# f14c3a8a 05-Jun-2006 Olivier Houchard <cognet@FreeBSD.org>

Make VERBOSE_INIT_ARM compile by fixing various printf formats, and add it
as an option.

Submitted by: Max N. Boyarov <m.boyarov at bsd dot by>


# d5d776c1 13-May-2006 Olivier Houchard <cognet@FreeBSD.org>

Resurrect Skyeye support :
Add a new option, SKYEYE_WORKAROUNDS, which as the name suggests adds
workarounds for things skyeye doesn't simulate. Specifically :
- Use USART0 instead of DBGU as the console, make it not use DMA, and manually provoke an interrupt when we're done in the transmit function.
- Skyeye maintains an internal counter for clock, but apparently there's
no way to access it, so hack the timecounter code to return a value which
is increased at every clock interrupts. This is gross, but I didn't find a
better way to implement timecounters without hacking Skyeye to get the
counter value.
- Force the write-back of PTEs once we're done writing them, even if they
are supposed to be write-through. I don't know why I have to do that.


# 1ac23211 06-Apr-2006 Olivier Houchard <cognet@FreeBSD.org>

Add a new option, XSCALE_DISABLE_CCNT, to not use the xscale ccnt as a
timecounter (because gxemul doesn't emule it yet).


# 527962c8 09-Dec-2005 Olivier Houchard <cognet@FreeBSD.org>

The IQ80321 clock is 200MHz, but the IQ80321 is 198MHz, so add a kernel option
to override the frequency


# 7ab3afdd 07-Jun-2005 Olivier Houchard <cognet@FreeBSD.org>

Add ARM_USE_SMALL_ALLOC.


# 4b2c5061 26-Feb-2005 Olivier Houchard <cognet@FreeBSD.org>

Add a new option, ARM_CACHE_LOCK_ENABLE (I forgot it in my last commit).


# c6cc6da4 10-Nov-2004 Olivier Houchard <cognet@FreeBSD.org>

Add a new option, ARM32_NEW_VM_LAYOUT. When set, we try to put up to 4
L2 tables in one page, instead of the old 1 L2 table <=> 1 page behavior.
While I'm there, add ARM9_CACHE_WRITE_THROUGH, which I forgot last time.


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

Add new options :
PHYSADDR : Address of the physical memory
KERNPHYSADDR : Physical address where the kernel starts
KERNVIRTADDR : Virtual address of the kernel
STARTUP_PAGETABLE_ADDR : Where to put the page table at bootstrap
+ Xscale specific options


# 78b36e3c 14-May-2004 Olivier Houchard <cognet@FreeBSD.org>

Add config magic for arm.