Home | History | Annotate | only in /src/sys/arch/arm/mainbus
History log of /src/sys/arch/arm/mainbus
RevisionDateAuthorComments
 1.20 20-Apr-2001  matt branches: 1.20.8;
Split cpu from mainbus so that cpu can attached to other buses (like ofbus).
 1.19 18-Apr-2001  rearnsha Put back that old (not) unused include file. But only include it
when ARMFPE is defined. Since that is the only time we use it.
 1.18 04-Apr-2001  reinoud Removing an old unused include
 1.17 13-Mar-2001  bjh21 Change the value of tf_pc in undefined-instruction handlers on arm32. It now
always points to the undefined instruction in question. It's up to the
handler to advance it to the next instruction if it wants execution to
continue there. This is how things have always worked on arm26.
 1.16 13-Mar-2001  bjh21 Update FPU detection to use remove_coproc_handler().
 1.15 11-Mar-2001  bjh21 branches: 1.15.2;
Pass a softc pointer around everywhere, and use it when we need the name of
the device.

Don't pretend that fpe0 and fpu0 exist as devices (they don't).

G/C a few items related to /dev/cpu* support.
 1.14 10-Mar-2001  bjh21 Add code to point out to the user if their CPU isn't supported, and to
suggest what kernel options to use to get it to work.
 1.13 10-Mar-2001  bjh21 Change the meaning of cpu_class. It now has one value for each core we
support, which corresponds to one for each CPU_* option, or one for each
cpufunc structure.

Also remove some more residual code for the support of multiple and non-ARM
CPUs.
 1.12 04-Mar-2001  bjh21 branches: 1.12.2;
Add CPU ID for ARM7500FE (determined empirically from two I've got here).
 1.11 03-Mar-2001  bjh21 Kill cpu_host and cpu_flags: they weren't having any practical effect.
 1.10 03-Mar-2001  bjh21 Remove support for /dev/cpu*. This code has never done anything useful anyway.
 1.9 03-Mar-2001  bjh21 Remove spurious declaration of initialise_fpe().
 1.8 03-Mar-2001  bjh21 NCPU will always be 1 if this file is being compiled at all, so don't bother
checking it.
 1.7 03-Mar-2001  bjh21 Re-design identify_arm_cpu() to use a table of CPU types. This also makes
it easy for it to identify lots of CPU types, so have it do that too.
 1.6 01-Mar-2001  bjh21 ARM7100 -> ARM710A, following information from reinoud.
 1.5 26-Feb-2001  bjh21 Fix up indentation, and remove a spurious set of braces. Should be no
semantic change from the last revision.
 1.4 26-Feb-2001  bjh21 fpe-sp, and the associated "options FPE", was deleted in 1997. G/C references
to it.
 1.3 25-Feb-2001  bjh21 Move arm32 ports over to using <arm/armreg.h>, so <cpu.h> mostly contains
NetBSD-specific definitions.

This also entails some changes to the way CPU identification is done. I hope
I've got it right.
 1.2 25-Feb-2001  bjh21 The cpu_type element of struct _cpu was only used in identify_arm_cpu().
Make it a local variable.
 1.1 24-Feb-2001  reinoud Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
 1.12.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.15.2.5 23-Apr-2001  bouyer Sync with HEAD.
 1.15.2.4 21-Apr-2001  bouyer Sync with HEAD
 1.15.2.3 27-Mar-2001  bouyer Sync with HEAD.
 1.15.2.2 12-Mar-2001  bouyer Sync with HEAD.
 1.15.2.1 11-Mar-2001  bouyer file cpu.c was added on branch thorpej_scsipi on 2001-03-12 13:27:25 +0000
 1.20.8.2 20-Apr-2001  matt Split cpu from mainbus so that cpu can attached to other buses (like ofbus).
 1.20.8.1 20-Apr-2001  matt file cpu.c was added on branch nathanw_sa on 2001-04-20 18:08:50 +0000
 1.19 09-May-2024  pho kern/58195: arm: Support drvctl -d and -r for cpufeaturebus

This is required for detaching and re-attaching the vmt(4) driver on aarch64.
 1.18 15-Feb-2020  skrll Various updates and improvements to cpu start up on arm/aarch64

- start sharing more code around the AP startup messaging.
- call arm_cpu_topology_set early so that ci_core_id is available for
drivers, e.g. bcm2835_intr.c
- both arm and aarch64 now have
- a static cpu_info_store array
- the same arm_cpu_{hatched,mbox}
 1.17 28-Jan-2020  skrll Traiing whitespace
 1.16 29-Oct-2014  skrll branches: 1.16.20; 1.16.26;
Sprinkle #include "opt_multiprocessor.h"
 1.15 05-Jun-2014  matt branches: 1.15.2;
Cleanup a few MULTIPROCESSOR issues.
 1.14 28-Mar-2014  matt branches: 1.14.2;
arm_cpu_max = num of cpus
 1.13 29-Aug-2012  matt branches: 1.13.2; 1.13.4;
Add core locator to mainbus. Add support for attaching multiple CPUs
 1.12 29-Aug-2012  matt Use new armv7 CP15 register to print out cache types.
If the cpu_cc_freq is set, report it.
Add macros to make inlines for reading/writing co-processor registers.
 1.11 05-Jun-2011  matt branches: 1.11.2; 1.11.10;
struct device * -> device_t, struct cfdata * -> cfdata_t
CFATTACH_DECL(*, sizeof(struct device), -> CFATTACH_DECL_NEW(&, 0
 1.10 14-Mar-2009  dsl branches: 1.10.4; 1.10.6; 1.10.10;
Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.9 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.8 11-Dec-2005  christos branches: 1.8.80; 1.8.88; 1.8.94; 1.8.98;
merge ktrace-lwp.
 1.7 15-Jul-2003  lukem __KERNEL_RCSID()
 1.6 02-Oct-2002  thorpej branches: 1.6.8;
Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

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

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3 05-Jan-2002  chris branches: 1.3.8;
Make some of the arm32 files build with LOOSE_PROTOTYPES not set in the makefile. Turned up a few mismatched functions. Note that this isn't all of the arm32 files. Aim will be to get arm32 kernels built with LOOSE_PROTOTYPES not set.
 1.2 23-Nov-2001  thorpej Use <arm/undefined.h> instead of <machine/undefined.h>.
 1.1 20-Apr-2001  matt branches: 1.1.2; 1.1.4; 1.1.6; 1.1.12;
Split cpu from mainbus so that cpu can attached to other buses (like ofbus).
 1.1.12.6 18-Oct-2002  nathanw Catch up to -current.
 1.1.12.5 17-Sep-2002  nathanw Catch up to -current.
 1.1.12.4 28-Feb-2002  nathanw Catch up to -current.
 1.1.12.3 11-Jan-2002  nathanw More catchup.
 1.1.12.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.12.1 20-Apr-2001  nathanw file cpu_mainbus.c was added on branch nathanw_sa on 2002-01-08 00:23:18 +0000
 1.1.6.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.2 23-Apr-2001  bouyer Sync with HEAD.
 1.1.2.1 20-Apr-2001  bouyer file cpu_mainbus.c was added on branch thorpej_scsipi on 2001-04-23 09:41:35 +0000
 1.3.8.1 19-May-2002  gehenna Remove unnecessary #include
 1.6.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.8.1 03-Aug-2004  skrll Sync with HEAD
 1.8.98.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.8.94.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.88.1 28-Apr-2009  skrll Sync with HEAD.
 1.8.80.1 04-May-2009  yamt sync with head.
 1.10.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.10.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.10.4.1 12-Jun-2011  rmind sync with head
 1.11.10.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.11.2.2 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.11.2.1 30-Oct-2012  yamt sync with head
 1.13.4.1 18-May-2014  rmind sync with head
 1.13.2.2 03-Dec-2017  jdolecek update from HEAD
 1.13.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.14.2.1 10-Aug-2014  tls Rebase.
 1.15.2.1 09-Nov-2014  martin Pull up following revision(s) (requested by skrll in ticket #188):
sys/arch/arm/include/arm32/pmap.h: revision 1.136
sys/arch/arm/include/armreg.h: revision 1.100
sys/arch/arm/cortex/gic.c: revision 1.11
sys/arch/arm/arm32/db_interface.c: revision 1.54
sys/arch/arm/include/armreg.h: revision 1.101
sys/arch/arm/cortex/gic.c: revision 1.12
sys/arch/arm/arm32/arm32_machdep.c: revision 1.107
sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.19
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.20
sys/arch/evbarm/conf/BPI: revision 1.5
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.21
sys/arch/arm/arm32/pmap.c: revision 1.306
sys/arch/arm/arm32/db_machdep.c: revision 1.22
sys/arch/arm/arm32/arm32_tlb.c: revision 1.3
sys/arch/arm/arm/undefined.c: revision 1.55
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.22
sys/arch/arm/arm32/pmap.c: revision 1.307
sys/arch/arm/arm32/arm32_tlb.c: revision 1.4
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.23
sys/arch/arm/arm32/arm32_tlb.c: revision 1.5
sys/arch/evbarm/conf/BPI: revision 1.8
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.24
sys/arch/arm/arm32/arm32_tlb.c: revision 1.6
sys/arch/arm/arm32/arm32_tlb.c: revision 1.7
sys/arch/evbarm/conf/CUBIETRUCK: revision 1.5
sys/arch/arm/pic/pic.c: revision 1.23
sys/arch/arm/pic/pic.c: revision 1.24
sys/arch/arm/pic/picvar.h: revision 1.11
sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.20
sys/arch/arm/mainbus/cpu_mainbus.c: revision 1.16
sys/arch/arm/arm32/pmap.c: revision 1.298
sys/arch/arm/arm/cpufunc_asm_arm11.S: revision 1.17
sys/arch/arm/arm/cpufunc_asm_pj4b.S: revision 1.5
sys/arch/arm/arm32/pmap.c: revision 1.310
sys/arch/arm/arm32/pmap.c: revision 1.311
sys/arch/arm/arm32/arm32_kvminit.c: revision 1.32
sys/arch/arm/cortex/a9_mpsubr.S: revision 1.19
sys/arch/arm/arm32/arm32_boot.c: revision 1.10
sys/arch/arm/arm/ast.c: revision 1.25
sys/arch/arm/include/armreg.h: revision 1.98
sys/uvm/pmap/pmap_tlb.c: revision 1.10
sys/arch/arm/arm32/arm32_boot.c: revision 1.8
sys/arch/arm/arm32/arm32_boot.c: revision 1.9
sys/arch/arm/arm/arm_machdep.c: revision 1.43
Various ARM MP fixes.
 1.16.26.1 29-Feb-2020  ad Sync with head.
 1.16.20.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.24 27-Sep-2022  skrll Remove unnecessary sys/malloc.h include
 1.23 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22 24-Apr-2021  thorpej branches: 1.22.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.21 05-Jun-2014  matt branches: 1.21.42;
Cleanup a few MULTIPROCESSOR issues.
 1.20 29-Aug-2012  matt branches: 1.20.2; 1.20.12;
Add core locator to mainbus. Add support for attaching multiple CPUs
 1.19 14-Jul-2012  matt Add intrbase locator to mainbus.
 1.18 01-Jul-2011  dyoung branches: 1.18.2; 1.18.10;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.17 05-Jun-2011  matt struct device * -> device_t, struct cfdata * -> cfdata_t
CFATTACH_DECL(*, sizeof(struct device), -> CFATTACH_DECL_NEW(&, 0
 1.16 14-Mar-2009  dsl branches: 1.16.4; 1.16.6; 1.16.10;
Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.15 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.14 27-Apr-2008  matt branches: 1.14.8; 1.14.14; 1.14.18;
Merge kernel changes in matt-armv6 to HEAD.
 1.13 11-Dec-2005  christos branches: 1.13.46; 1.13.52; 1.13.60; 1.13.76; 1.13.78; 1.13.80;
merge ktrace-lwp.
 1.12 26-Aug-2005  drochner s/locdesc_t/int/g
 1.11 30-Jun-2005  drochner branches: 1.11.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.10 03-Jan-2004  chris On a riscstation leave the iobase as requested, don't add IO_CONF_BASE to
it.
 1.9 15-Jul-2003  lukem __KERNEL_RCSID()
 1.8 29-Apr-2003  thorpej branches: 1.8.2;
Use aprint*().
 1.7 01-Jan-2003  thorpej Use aprint_normal() for cfprint routines.
 1.6 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.3 13-Jun-2001  nathanw branches: 1.3.2; 1.3.8;
That's supposed to be <machine/io.h> in the XXX'd #ifdef, not a repeat
of <machine/bus.h>.
 1.2 11-Jun-2001  matt Add common Makefile for arm ports. Only include (for now) machine/io.h
if arm32 is defined. io.h is RISCPC specific and isn't needed for other
ports.
 1.1 24-Feb-2001  reinoud branches: 1.1.2; 1.1.4;
Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
 1.1.4.2 12-Mar-2001  bouyer Sync with HEAD.
 1.1.4.1 24-Feb-2001  bouyer file mainbus.c was added on branch thorpej_scsipi on 2001-03-12 13:27:26 +0000
 1.1.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.3.8.3 03-Jan-2003  thorpej Sync with HEAD.
 1.3.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.3.8.1 13-Jun-2001  nathanw file mainbus.c was added on branch nathanw_sa on 2002-10-18 02:35:38 +0000
 1.3.2.1 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.8.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.2.1 03-Aug-2004  skrll Sync with HEAD
 1.11.2.1 21-Jun-2006  yamt sync with head.
 1.13.80.2 04-May-2009  yamt sync with head.
 1.13.80.1 16-May-2008  yamt sync with head.
 1.13.78.1 18-May-2008  yamt sync with head.
 1.13.76.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.60.1 10-Nov-2007  matt Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc
 1.13.52.1 05-Nov-2007  matt Init mb_iosize
 1.13.46.1 07-Oct-2007  rjs Only include io.h for acorn32.
 1.14.18.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.14.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.14.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.16.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.16.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.16.4.1 12-Jun-2011  rmind sync with head
 1.18.10.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.18.2.1 30-Oct-2012  yamt sync with head
 1.20.12.1 10-Aug-2014  tls Rebase.
 1.20.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.21.42.6 05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.21.42.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.21.42.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.21.42.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.21.42.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.21.42.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.22.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.5 04-Sep-2012  matt Add multiple inclusion protection.
 1.4 29-Aug-2012  matt Add core locator to mainbus. Add support for attaching multiple CPUs
 1.3 14-Jul-2012  matt Add intrbase locator to mainbus.
 1.2 01-Jul-2011  dyoung branches: 1.2.2; 1.2.10;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.1 24-Feb-2001  reinoud branches: 1.1.4; 1.1.154;
Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
 1.1.154.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.1.4.2 12-Mar-2001  bouyer Sync with HEAD.
 1.1.4.1 24-Feb-2001  bouyer file mainbus.h was added on branch thorpej_scsipi on 2001-03-12 13:27:26 +0000
 1.2.10.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.2.2.1 30-Oct-2012  yamt sync with head
 1.24 16-Mar-2018  ryo use designated initializer to make adaptability and flexibility for changing struct bus_space.
no functional change.
 1.23 22-Feb-2014  matt branches: 1.23.28;
Don't manipulate the pte to get uncached memory, use PMAP_NOCACHE instead.
Convert footbring to kenter_pa/kremove
 1.22 15-Jul-2012  matt branches: 1.22.2; 1.22.4;
Add stream methods
 1.21 01-Jul-2011  dyoung branches: 1.21.2; 1.21.10;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.20 07-Nov-2009  cegger Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.
 1.19 15-Mar-2009  cegger ansify function definitions
 1.18 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.17 24-Nov-2005  yamt branches: 1.17.80; 1.17.88; 1.17.94; 1.17.98;
bus_dmamem_map: honour BUS_DMA_NOWAIT. noted by Manuel Bouyer.
bus_space_map: always do NOWAIT allocation as it used to be before yamt-km.

we have too many copies!
 1.16 01-Apr-2005  yamt branches: 1.16.2; 1.16.8;
merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
 1.15 01-Jan-2004  chris branches: 1.15.8; 1.15.10;
Correct the usage of the 4th arg to mainbus_bs_map. It's a flags arg, so
test for the CACHEABLE bit, rather than assuming a non-zero means cacheable
 1.14 06-Dec-2003  bjh21 Fix the ARM mainbus version of bus_space_subregion() to correctly shift the
base offset before using it. This makes it work the same as every other
implementation, and makes wdc at pioc on acorn32 work again. Fix the only
caller I found which depended on the old behaviour.
 1.13 15-Jul-2003  lukem __KERNEL_RCSID()
 1.12 27-Sep-2002  provos branches: 1.12.8;
remove trailing \n in panic(). approved perry.
 1.11 22-Aug-2002  thorpej * Add PTE_SYNC() and PTE_SYNC_RANGE() macros. These don't actually do
anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
where vtopte() is used.
 1.10 09-Apr-2002  thorpej branches: 1.10.2;
* Split pte_cache_mode into pte_l1_s_cache_mode, pte_l2_l_cache_mode,
and pte_l2_s_cache_mode. The cache-meaningful bits are different
for these descriptor types on some processor models.
* Add pte_*_cache_mask, corresponding to each above, which has a mask
of the cache-meangful bits, and define those for generic and XScale
MMU classes. Note, the L2_S_CACHE_MASK_xscale definition requires
use of the Extended Small Page L2 descriptor (the "X" bit overlaps
with AP bits otherwise).
 1.9 05-Apr-2002  thorpej Use pte_cache_mode instead of PT_CACHEABLE.
 1.8 24-Mar-2002  thorpej * arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()
 1.7 23-Mar-2002  thorpej KERNEL_SPACE_START -> KERNEL_BASE
 1.6 23-Nov-2001  thorpej No need to pull in <machine/pte.h> directly.
 1.5 10-Sep-2001  chris branches: 1.5.4;
Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
 1.4 10-Sep-2001  reinoud Initial commitment of the bus_space_mmap() functions as proposed by Jason R
Thorpe as an extension to the bus_space(9) API.

Only the mainbus has a working mmap... iomd, podulebus and isa dont have
one yet. Its trivial to add the iomd and isa's memory part but am a bit
hessistant to add it without knowing its implications by heart.

Podulebus might be implemented in 32 bits EASI but otherwise its not really
transparent since there is AFAIK no function to explicitly read one byte or
so .. or is this implemented in a higher level ?

ARM26 and arch/arm32/dnard (Shark) kernels compile and RiscPC and Shark
kernels are tested and function OK.

Implications of other ARM systems like hpcarm and ebarm are propably
minimal or solved trivially.
 1.3 28-Jul-2001  chris branches: 1.3.2;
A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.
 1.2 24-Apr-2001  thorpej branches: 1.2.2;
Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative. It may be possible to
optimize these a little more.
 1.1 24-Feb-2001  reinoud branches: 1.1.2; 1.1.4;
Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
 1.1.4.2 12-Mar-2001  bouyer Sync with HEAD.
 1.1.4.1 24-Feb-2001  bouyer file mainbus_io.c was added on branch thorpej_scsipi on 2001-03-12 13:27:26 +0000
 1.1.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.2.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.2.1 03-Aug-2001  lukem update to -current
 1.3.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.5.4.6 18-Oct-2002  nathanw Catch up to -current.
 1.5.4.5 27-Aug-2002  thorpej Sync with -current.
 1.5.4.4 17-Apr-2002  nathanw Catch up to -current.
 1.5.4.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.5.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.5.4.1 10-Sep-2001  nathanw file mainbus_io.c was added on branch nathanw_sa on 2002-01-08 00:23:18 +0000
 1.10.2.1 30-Aug-2002  gehenna catch up with -current.
 1.12.8.5 11-Dec-2005  christos Sync with head.
 1.12.8.4 01-Apr-2005  skrll Sync with HEAD.
 1.12.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.12.8.1 03-Aug-2004  skrll Sync with HEAD
 1.15.10.1 28-Jan-2005  yamt convert arch/arm to new apis.
 1.15.8.1 29-Apr-2005  kent sync with -current
 1.16.8.1 29-Nov-2005  yamt sync with head.
 1.16.2.1 21-Jun-2006  yamt sync with head.
 1.17.98.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.17.94.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.17.88.1 28-Apr-2009  skrll Sync with HEAD.
 1.17.80.2 11-Mar-2010  yamt sync with head
 1.17.80.1 04-May-2009  yamt sync with head.
 1.21.10.1 28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.21.2.2 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.21.2.1 30-Oct-2012  yamt sync with head
 1.22.4.1 18-May-2014  rmind sync with head
 1.22.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.23.28.1 22-Mar-2018  pgoyette Synch with HEAD, resolve conflicts
 1.2 18-Aug-2013  matt Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>
 1.1 24-Feb-2001  reinoud branches: 1.1.4; 1.1.154; 1.1.170; 1.1.180; 1.1.186;
Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
 1.1.186.1 28-Aug-2013  rmind sync with head
 1.1.180.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.170.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.154.1 15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.1.4.2 12-Mar-2001  bouyer Sync with HEAD.
 1.1.4.1 24-Feb-2001  bouyer file mainbus_io_asm.S was added on branch thorpej_scsipi on 2001-03-12 13:27:26 +0000

RSS XML Feed