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