History log of /src/sys/arch/arm/cortex/armperiph.c |
Revision | | Date | Author | Comments |
1.20 |
| 19-Jun-2025 |
andvar | Add missing RCSIDs. Fix typo s/btyes/bytes/ in comment.
|
1.19 |
| 07-Aug-2021 |
thorpej | Merge thorpej-cfargs2.
|
1.18 |
| 24-Apr-2021 |
thorpej | branches: 1.18.8; Merge thorpej-cfargs branch:
Simplify and make extensible the config_search() / config_found() / config_attach() interfaces: rather than having different variants for which arguments you want pass along, just have a single call that takes a variadic list of tag-value arguments.
Adjust all call sites: - Simplify wherever possible; don't pass along arguments that aren't actually needed. - Don't be explicit about what interface attribute is attaching if the device only has one. (More simplification.) - Add a config_probe() function to be used in indirect configuiration situations, making is visibly easier to see when indirect config is in play, and allowing for future change in semantics. (As of now, this is just a wrapper around config_match(), but that is an implementation detail.)
Remove unnecessary or redundant interface attributes where they're not needed.
There are currently 5 "cfargs" defined: - CFARG_SUBMATCH (submatch function for direct config) - CFARG_SEARCH (search function for indirect config) - CFARG_IATTR (interface attribte) - CFARG_LOCATORS (locators array) - CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark ports to associate those device handles with device_t instance. This will trickle trough to more places over time (need back-end for pre-OFW Sun OBP; any others?).
|
1.17 |
| 28-Nov-2020 |
skrll | branches: 1.17.2; Fix build
|
1.16 |
| 29-Sep-2020 |
jmcneill | branches: 1.16.2; Collapse all CPU_CORTEXA<n> options into CPU_CORTEX and do runtime detection instead of ifdefs where required.
|
1.15 |
| 25-Sep-2018 |
skrll | Cortex A5 also uses PPI 27 for timer.
ODROID-C1 boots again.
|
1.14 |
| 15-Aug-2018 |
skrll | Sprinkle #include "opt_cputypes.h"
|
1.13 |
| 05-Jun-2018 |
hkenken | branches: 1.13.2; Rename ARM A9 Global Timer driver name to support fdt.
- Rename a9tmr to arma9tmr. - Add a9tmr_fdt.c based gtmr_fdt.c.
|
1.12 |
| 29-Dec-2017 |
skrll | branches: 1.12.2; Set attached to true when attach completes.
Reported by Ramakrishna Rao Desetti on port-arm
|
1.11 |
| 26-May-2017 |
jmcneill | branches: 1.11.6; Recognize Cortex-A57 FPU, GIC, and Generic Timer.
|
1.10 |
| 02-Apr-2015 |
matt | need to include <sys/lwp.h>
|
1.9 |
| 28-Feb-2015 |
skrll | Make this compile where gtmr isn't used.
|
1.8 |
| 28-Feb-2015 |
skrll | Initial RPI2 support - it doesn't work yet. The generic timer gets messed up somehow.
This commit changes the KVA layout of the RPI.
|
1.7 |
| 27-Feb-2015 |
jmcneill | allow arml2cc to be used on Cortex-A5 if the "offset" property is specified
|
1.6 |
| 27-Feb-2015 |
jmcneill | match on Cortex-A5
|
1.5 |
| 05-Dec-2014 |
jmcneill | Let the "cbar" device property override the cbar value, to work around broken bootloaders
|
1.4 |
| 20-Jun-2013 |
matt | branches: 1.4.6; 1.4.10; 1.4.12; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
1.3 |
| 16-Jun-2013 |
matt | Add generic timer support (untested)
|
1.2 |
| 02-Sep-2012 |
matt | branches: 1.2.2; 1.2.4; 1.2.6; Add driver to attach ARM PL210 L2 Cache Controller arml2cc0 at armperiph0: ARM PL310 L2 r3p2 Cache Controller arml2cc0: 256KB/32B 16-way L2 Unified cache
|
1.1 |
| 01-Sep-2012 |
matt | Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
1.2.6.2 |
| 28-Nov-2012 |
matt | Merge improved arm support (especially Cortex) from HEAD including OMAP and BCM53xx support.
|
1.2.6.1 |
| 02-Sep-2012 |
matt | file armperiph.c was added on branch matt-nb6-plus on 2012-11-28 22:40:26 +0000
|
1.2.4.3 |
| 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.4.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.2.4.1 |
| 02-Sep-2012 |
yamt | file armperiph.c was added on branch yamt-pagecache on 2012-10-30 17:19:00 +0000
|
1.2.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.2.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.4.12.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.4.12.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.4.10.2 |
| 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.4.10.1 |
| 11-Mar-2015 |
snj | Pull up following revision(s) (requested by skrll in ticket #582): distrib/utils/embedded/conf/rpi.conf: revision 1.27 etc/etc.evbarm/Makefile.inc: revision 1.70 sys/arch/arm/broadcom/bcm2835_intr.c: revision 1.5-1.7 sys/arch/arm/broadcom/bcm2835_obio.c: revision 1.23, 1.24 sys/arch/arm/broadcom/bcm2835_space.c: revision 1.8 sys/arch/arm/broadcom/bcm2835reg.h: revision 1.14 sys/arch/arm/broadcom/bcm2835var.h: revision 1.2 sys/arch/arm/broadcom/files.bcm2835: revision 1.24 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.30 sys/arch/arm/cortex/armperiph.c: revision 1.8, 1.9 sys/arch/arm/cortex/gtmr.c: revision 1.9 sys/arch/arm/cortex/gtmr_var.h: revision 1.5 sys/arch/arm/cortex/mpcore_var.h: revision 1.3 sys/arch/arm/include/cpu.h: revision 1.84 sys/arch/evbarm/conf/RPI2: revision 1.1, 1.2 sys/arch/evbarm/conf/RPI2_INSTALL: revision 1.1 sys/arch/evbarm/conf/RPI: revision 1.59, 1.60 sys/arch/evbarm/conf/mk.rpi: revision 1.4 sys/arch/evbarm/conf/std.rpi: revisions 1.16-1.19 via patch sys/arch/evbarm/rpi/genassym.cf: revision 1.2 sys/arch/evbarm/rpi/rpi.h: revision 1.4 sys/arch/evbarm/rpi/rpi2_start.S: revision 1.1 sys/arch/evbarm/rpi/rpi_machdep.c: revision 1.57, 1.58 via patch sys/arch/evbarm/rpi/rpi_start.S: revision 1.13 Move some options into std.rpi -- Add __HAVE_MM_MD_CACHE_ALIASING Pull up following revision(s) (requested by skrll in ticket #582): Fix TPIDRPRW_IS_CURLWP builds. -- A MULTIPROCESSOR kernel requires TPIDRPRW_IS_CURCPU. -- Use TPIDRPRW_IS_CURLWP as it's a slight code reduction and performance improvement. Initial RPI2 support - it doesn't work yet. The generic timer gets messed up somehow. This commit changes the KVA layout of the RPI. -- Make this compile where gtmr isn't used. -- Spin up the non-boot CPUs, but don't allow cpu_boot_secondary_processors to see them for now. RPI2 nows works well with only the boot cpu. -- Appease a KASSERT - will be remove when MULTIPROCESSOR RPI2 is fixed. -- Add RPI2 to kernels build for both earmv[67]. Use the earmv6 built kernels to create an image that can be used on both RPI and RPI2 -- Add an RPI2_INSTALL
|
1.4.6.2 |
| 15-Feb-2014 |
matt | Merge armv7 support from HEAD, specifically support for the BCM5301X and BCM56340 evbarm kernels.
|
1.4.6.1 |
| 20-Jun-2013 |
matt | file armperiph.c was added on branch matt-nb5-mips64 on 2014-02-15 16:18:36 +0000
|
1.11.6.1 |
| 13-Dec-2017 |
matt | Add Cortex-A35 devices
|
1.12.2.3 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.12.2.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.12.2.1 |
| 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.13.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.16.2.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|
1.17.2.1 |
| 21-Mar-2021 |
thorpej | Give config_found() the same variadic arguments treatment as config_search(). This commit only adds the CFARG_EOL sentinel to the existing config_found() calls. Conversion of config_found_sm_loc() and config_found_ia() call sites will be in subsequent commits.
|
1.18.8.1 |
| 04-Aug-2021 |
thorpej | Adapt to CFARGS().
|