Home | History | Annotate | only in /src/sys/arch/evbarm/gumstix
History log of /src/sys/arch/evbarm/gumstix
RevisionDateAuthorComments
 1.75 12-Oct-2023  skrll Fix non-DIAGNOSTIC builds
 1.74 03-Aug-2023  mrg ignore "-Warray-bounds" for various low level platform code that knows
how something is setup but technically is undefined behaviour. the
most common here is "extern int end;" and then using offsets of "&end"
that are outside the bounds of this 4-byte integer.

these uses are almost certainly all OK in reality.

found by GCC 12.
 1.73 20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.72 29-Oct-2022  jmcneill branches: 1.72.2;
Remove support for OMAP based Gumstix platforms.

These changes are to prepare for the removal of arch/arm/omap. Support
for Xscale based Gumstix platforms remains.

(If someone wants to resurrect DuoVero and Pepper platforms, it's best
to do that in the GENERIC kernel using FDT.)
 1.71 03-Dec-2020  skrll Provide and use a sev() macro for the sev instruction.

While here use the correct barrier to ensure completion of memory accesses
before a couple of the sev() calls.
 1.70 28-Nov-2020  skrll Build fixes and make BP startup detection consistent
 1.69 30-Oct-2020  skrll branches: 1.69.2;
Retire arm_[di]sb in favour of the isb() and dsb(sy) macro invocations.
 1.68 01-Oct-2020  skrll Fix evbarmv5 build
 1.67 29-Sep-2020  jmcneill Collapse all CPU_CORTEXA<n> options into CPU_CORTEX and do runtime
detection instead of ifdefs where required.
 1.66 18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.65 15-Feb-2020  skrll branches: 1.65.4;
Various updates and improvements to cpu start up on arm/aarch64

- start sharing more code around the AP startup messaging.
- call arm_cpu_topology_set early so that ci_core_id is available for
drivers, e.g. bcm2835_intr.c
- both arm and aarch64 now have
- a static cpu_info_store array
- the same arm_cpu_{hatched,mbox}
 1.64 20-Jan-2020  skrll Fix indentation
 1.63 16-Jul-2019  skrll branches: 1.63.4;
Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.62 18-May-2019  skrll Convert remaining armv7 kernels to generic start and remove a bunch of
code including a9_mpsubr.S.

Thanks to Lwazi Dube for testing PANDABOARD and BEAGLEBONE.
 1.61 21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.60 31-Jul-2018  skrll Sprinkle #include "opt_arm_debug.h" where VERBOSE_INIT_ARM is used
 1.59 05-Jun-2018  hkenken branches: 1.59.2;
Rename ARM A9 Global Timer driver name to support fdt.

- Rename a9tmr to arma9tmr.
- Add a9tmr_fdt.c based gtmr_fdt.c.
 1.58 01-Mar-2017  skrll branches: 1.58.12;
Set xscale_cache_clean_addr appropriately and re-arrange default KVA
layout to allow direct map for all boards.

OVERO/DUOVERO/PEPPER aren't tested.

PR/52010: Regression: Gumstix Verdex is hanging in enabling cache + KASSERT ram_size
 1.57 20-Oct-2016  skrll branches: 1.57.2;
Fix regisers typo
 1.56 19-Oct-2016  kiyohara Remove white spaces.
 1.55 18-Oct-2016  kiyohara Support tifb.
 1.54 16-Oct-2016  kiyohara omap2_gpio_*() into #if - #endif.
 1.53 16-Oct-2016  kiyohara Remove not commited header-file and variable.
 1.52 15-Oct-2016  kiyohara Support Duovero and Pepper.
 1.51 31-Mar-2016  kiyohara branches: 1.51.2;
Ensure enable clocks for omapmputmr.
 1.50 07-Jun-2014  kiyohara branches: 1.50.2; 1.50.4; 1.50.8;
Fix reset parameters for omap3_ehci.
 1.49 23-May-2014  kiyohara Call arm32_*_init() and initarm_common().
OVERO work fine. GUMSTIX build only now.
 1.48 26-Sep-2013  kiyohara branches: 1.48.2;
Get and calculate some clocks from register.
And change some dpll5 settings for DM37xx. But I don't have it.
Tested EarthSTORM(Sliverlode) only. EHCI works. However clock is bad?
 1.47 18-Aug-2013  matt <arm/locore.h> fallout (fixes some include ordering errors)
 1.46 24-Dec-2012  kiyohara branches: 1.46.2;
Set some properties for ehci.
 1.45 12-Dec-2012  matt Conditionalize omap includes on OVERO
 1.44 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.43 22-Sep-2012  matt Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed. Default cortex to pmap_needs_fixup = 1. But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.
 1.42 29-Aug-2012  matt branches: 1.42.2;
Since the PMC cycle counter is started in cpufunc no reason to do so here.
Use curcpu()->ci_data.cpu_cc_freq and new armreg* inlines.
 1.41 16-Aug-2012  matt Move the standard definitions of the {UND,IRQ,FIQ,ABT}_STACK_SIZE to
<arm32/machdep.h>
Move the extern for cpu_reset_address to the same file.
Add cpu_reset_address_paddr.
Kill cpu_reset_v4_MMU_disable.
if cpu_reset_address is NULL, then the MMU will be disabled.
 1.40 30-Jul-2012  matt Add back pv_addr_t minidataclean.
 1.39 29-Jul-2012  matt Fix more -fno-common fallout.
Move more variables to common locations.
 1.38 07-Jul-2011  mrg branches: 1.38.2;
fix an off by one array bounds issue, and also fix a potentially non
nul-terminated string.
 1.37 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.36 30-Jun-2011  wiz dependant -> dependent
 1.35 28-Nov-2010  hannken As md(4) no longer has "needs-count" there is no "md.h" anymore.
Remove the inclusion of this file.

Acorn32 now always builds load_memory_disc_from_floppy(). This should
not be a problem as all configs have md(4).

Observed by: Masao Uebayashi <uebayasi@netbsd.org>
 1.34 23-Sep-2010  kiyohara Remove #ifdef NPRCM. Always include omap2_prcm.h.
 1.33 23-Sep-2010  kiyohara If GUMSTIX_NETBSD_ARGS_CONSOLE is defined, argument 'console=ttyS0,<speed>'
that u-boot passes Linux will be interpreted.
 1.32 30-Aug-2010  kiyohara Support prcm@obio1.
 1.31 28-Aug-2010  kiyohara Fix build fail.
+ Include opt_omap.h, if defined OVERO.
+ Fix the pair of parentheses.
 1.30 28-Aug-2010  kiyohara + Add parsing keyword 'expansion=' in args from U-boot. And keep backword
compatibility 'busheader=', in case Gumstix.
+ Add GPMC device map to gumstix_devmap[].
 1.29 08-Aug-2010  kiyohara Use EVBARM_BOARDTYPE to print 'NetBSD/evbarm(*)'. That defined to
std.gumstix and std.overo.
 1.28 10-Jul-2010  kiyohara Add gumstix_device_register(). Set properties for pxa2x0_ohci here.
However this properties not used in NetBSD source tree.
 1.27 10-Jul-2010  kiyohara Support Overo (Gumstix inc).
+ This commit supports basically.
+ Expansion boards not support yet. And MicroSD, Wifi, Bluetooth too.
 1.26 07-Mar-2010  kiyohara branches: 1.26.2;
Reorder included headers.
 1.25 07-Mar-2010  kiyohara Add options GUMSTIX_NETBSD_ARGS_CONSOLE and GUMSTIX_NETBSD_ARGS_BUSHEADER.
Can specify arg 'console='(*new*) and 'busheader=' from u-boot. These args
use dynamically configuration.
Also change function name. s/_line/_liner/.
 1.24 24-Jan-2010  kiyohara branches: 1.24.2;
Please calculate KERNEL_PT_KERNEL_NUM from KERNEL_VM_BASE.
Moreover, can define KERNEL_VM_BASE somewhere. (ex. in conf/YOUR_GUMSTIX)
For instance, allow miniroot.fs over 16Mbytes.
 1.23 26-Dec-2009  uebayasi Use cpu_* prefix to call cpu_* functions (setttb() -> cpu_setttb()); no
functional changes.
 1.22 26-Dec-2009  uebayasi Garbage collect an unused global, vm_offset_t pagetables_start.
 1.21 02-Dec-2009  kiyohara Call pxa2x0_clkman_config() instead of ioreg_write().
 1.20 27-Nov-2009  rmind - Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr.
- Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb().
- Amend assembly in ports where it accesses PCB via struct user.
- Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
 1.19 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.18 22-Nov-2009  kiyohara Move definition 'void gxlcd_cnattach(void)' to gumstixvar.h.
 1.17 21-Nov-2009  kiyohara The variable ckenreg is used only when defined macro {FF,ST,BT,HW}UARTCONSOLE.
 1.16 11-Aug-2009  matt Remove all declarations of physmem from sys/arch. Add an include of
<sys/systm.h> to the one file that did not already contain it.
This now means that physmem can be changed by updating systm.h and uvm_page.c
(excluding fixing printfs)
 1.15 09-Aug-2009  kiyohara Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.14 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.13 13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.12 18-Nov-2008  cliff branches: 1.12.4;
fix botched LKM edits
 1.11 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.10 11-Nov-2008  dyoung It is not appropriate to call pmf_system_shutdown(9) from
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:

1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.

2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.

I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
 1.9 27-Apr-2008  matt branches: 1.9.6; 1.9.8;
Merge kernel changes in matt-armv6 to HEAD.
 1.8 19-Jan-2008  chris branches: 1.8.6; 1.8.8; 1.8.10;
Remove arm support for IPKDB.

It hasn't worked since arm was broken out from arm32 in Jan 2001, and
no-one has noticed or cared to fix it.
 1.7 17-Oct-2007  garbled branches: 1.7.2; 1.7.8;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.6 16-Sep-2007  kiyohara + Remove 'include "lcd.h"'.
+ It is easy to understand that memsize is added to physcal_freeend.
+ Add VERBOSE_INIT_ARM at befor/after with printf().
+ Call ddb_init() before db_machine_init().
+ Fix declered kgdb_devrate.
 1.5 21-Aug-2007  kiyohara branches: 1.5.2;
* Configure the GPIO to GXIO_DEFAULT_EXPANSION, if not specified 'busheader='
in boot args.
* Support NONAKA's <nonaka@netbsd.org> sdmmc.
* Add expansion target 'basix'. This is to configure GPIO to PXA MCI.
However, CardDetect is not connected as for mci of gumxtix. Therefore, it
is not possible to Insert/Remove.
* Remove white-spaces.
* Change format in comments.
 1.4 20-Apr-2007  kiyohara branches: 1.4.2; 1.4.6; 1.4.8; 1.4.10;
Change to use pxapcic from sa11xx_pcic.
Support multiple socket. But not tested.
 1.3 18-Jan-2007  kiyohara branches: 1.3.2; 1.3.6; 1.3.8;
Initialize GPIO of *UARTs and supports.
 1.2 24-Nov-2006  wiz branches: 1.2.4;
s/independant/independent/, from Zafer.
 1.1 16-Oct-2006  kiyohara branches: 1.1.2; 1.1.4;
Add initial support for the PXA255-based gumstix board.
 1.1.4.4 01-Feb-2007  ad Sync with head.
 1.1.4.3 12-Jan-2007  ad Sync with head.
 1.1.4.2 18-Nov-2006  ad Sync with head.
 1.1.4.1 16-Oct-2006  ad file gumstix_machdep.c was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.1.2.3 10-Dec-2006  yamt sync with head.
 1.1.2.2 22-Oct-2006  yamt sync with head
 1.1.2.1 16-Oct-2006  yamt file gumstix_machdep.c was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.2.4.6 21-Jan-2008  yamt sync with head
 1.2.4.5 27-Oct-2007  yamt sync with head.
 1.2.4.4 03-Sep-2007  yamt sync with head.
 1.2.4.3 26-Feb-2007  yamt sync with head.
 1.2.4.2 30-Dec-2006  yamt sync with head.
 1.2.4.1 24-Nov-2006  yamt file gumstix_machdep.c was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.3.8.1 11-Jul-2007  mjf Sync with head.
 1.3.6.2 09-Oct-2007  ad Sync with head.
 1.3.6.1 27-May-2007  ad Sync with head.
 1.3.2.1 07-May-2007  yamt sync with head.
 1.4.10.2 02-Oct-2007  joerg Sync with HEAD.
 1.4.10.1 03-Sep-2007  jmcneill Sync with HEAD.
 1.4.8.2 28-Feb-2008  rjs Sync with HEAD.
 1.4.8.1 01-Nov-2007  rjs Sync with HEAD.
 1.4.6.1 03-Sep-2007  skrll Sync with HEAD.
 1.4.2.1 03-Oct-2007  garbled Sync with HEAD
 1.5.2.3 23-Mar-2008  matt sync with HEAD
 1.5.2.2 09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.5.2.1 06-Nov-2007  matt sync with HEAD
 1.7.8.1 20-Jan-2008  bouyer Sync with HEAD
 1.7.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.8.10.6 09-Oct-2010  yamt sync with head
 1.8.10.5 11-Aug-2010  yamt sync with head.
 1.8.10.4 11-Mar-2010  yamt sync with head
 1.8.10.3 19-Aug-2009  yamt sync with head.
 1.8.10.2 04-May-2009  yamt sync with head.
 1.8.10.1 16-May-2008  yamt sync with head.
 1.8.8.1 18-May-2008  yamt sync with head.
 1.8.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.8.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.8.3 28-Apr-2009  skrll Sync with HEAD.
 1.9.8.2 03-Mar-2009  skrll Sync with HEAD.
 1.9.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.9.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.12.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.24.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.24.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.24.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.26.2.1 05-Mar-2011  rmind sync with head
 1.38.2.4 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.38.2.3 23-Jan-2013  yamt sync with head
 1.38.2.2 16-Jan-2013  yamt sync with (a bit old) head
 1.38.2.1 30-Oct-2012  yamt sync with head
 1.42.2.4 03-Dec-2017  jdolecek update from HEAD
 1.42.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.42.2.2 25-Feb-2013  tls resync with head
 1.42.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.46.2.2 18-May-2014  rmind sync with head
 1.46.2.1 28-Aug-2013  rmind sync with head
 1.48.2.1 10-Aug-2014  tls Rebase.
 1.50.8.1 13-Mar-2017  skrll Sync with netbsd-7-1-RELEASE
 1.50.4.3 28-Aug-2017  skrll Sync with HEAD
 1.50.4.2 05-Dec-2016  skrll Sync with HEAD
 1.50.4.1 22-Apr-2016  skrll Sync with HEAD
 1.50.2.1 11-Mar-2017  snj Pull up following revision(s) (requested by skrll in ticket #1366):
sys/arch/arm/include/arm32/pmap.h: 1.145
sys/arch/arm/arm32/pmap.c: 1.343, 1.344
sys/arch/evbarm/gumstix/gumstix_machdep.c: 1.58 via patch
Fixup the compile time decisions around PMAP_{INCLUDE,NEEDS}_PTE_SYNC and
fix the options for xscale boards which require the code in
pmap_l2ptp_ctor marked as #ifndef PMAP_INCLUDE_PTE_SYNC.
Fix the typo (pte -> opte) in this code block and consistently use opte
elsewhere.
PR/51990: Regression data_abort_handler: data_aborts fsr=0x406 far=0xbfffeff5 on copyout in init
--
fix unused.
--
Set xscale_cache_clean_addr appropriately and re-arrange default KVA
layout to allow direct map for all boards.
OVERO/DUOVERO/PEPPER aren't tested.
PR/52010: Regression: Gumstix Verdex is hanging in enabling cache + KASSERT ram_size
 1.51.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.51.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.57.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.58.12.3 30-Sep-2018  pgoyette Ssync with HEAD
 1.58.12.2 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.58.12.1 25-Jun-2018  pgoyette Sync with HEAD
 1.59.2.4 21-Apr-2020  martin Sync with HEAD
 1.59.2.3 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.59.2.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.59.2.1 10-Jun-2019  christos Sync with HEAD
 1.63.4.2 29-Feb-2020  ad Sync with head.
 1.63.4.1 25-Jan-2020  ad Sync with head.
 1.65.4.1 20-Apr-2020  bouyer Sync with HEAD
 1.69.2.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.72.2.1 14-Oct-2023  martin Pull up following revision(s) (requested by skrll in ticket #411):

sys/arch/evbarm/nslu2/nslu2_machdep.c: revision 1.41
sys/arch/evbarm/gumstix/gumstix_machdep.c: revision 1.75
sys/arch/evbarm/iq80321/iq80321_machdep.c: revision 1.66
sys/arch/iyonix/iyonix/iyonix_machdep.c: revision 1.34
sys/arch/zaurus/zaurus/machdep.c: revision 1.52
sys/arch/evbarm/g42xxeb/g42xxeb_machdep.c: revision 1.41
sys/arch/hpcarm/hpcarm/pxa2x0_hpc_machdep.c: revision 1.33
sys/arch/evbarm/iq80310/iq80310_machdep.c: revision 1.96
sys/arch/evbarm/adi_brh/brh_machdep.c: revision 1.53
sys/arch/arm/include/arm32/pmap.h: revision 1.177
sys/arch/evbarm/viper/viper_machdep.c: revision 1.34
sys/arch/evbarm/iyonix/iyonix_machdep.c: revision 1.5
sys/arch/evbarm/npwr_fc/npwr_fc_machdep.c: revision 1.30
sys/arch/evbarm/hdl_g/hdlg_machdep.c: revision 1.35
sys/arch/arm/arm32/pmap.c: revision 1.440
sys/arch/evbarm/lubbock/lubbock_machdep.c: revision 1.45
sys/arch/evbarm/ixdp425/ixdp425_machdep.c: revision 1.47

Fix non-DIAGNOSTIC builds
 1.16 18-May-2019  skrll Convert remaining armv7 kernels to generic start and remove a bunch of
code including a9_mpsubr.S.

Thanks to Lwazi Dube for testing PANDABOARD and BEAGLEBONE.
 1.15 02-Jan-2017  skrll branches: 1.15.16;
Fix boot on Gumstix Verdex boards.

Reported by smesgr on port-arm
 1.14 15-Oct-2016  kiyohara Support Duovero and Pepper.
 1.13 23-May-2014  kiyohara branches: 1.13.4; 1.13.8;
Call arm32_*_init() and initarm_common().
OVERO work fine. GUMSTIX build only now.
 1.12 18-Aug-2013  matt branches: 1.12.2;
<arm/locore.h> fallout (fixes some include ordering errors)
 1.11 29-Dec-2012  kiyohara branches: 1.11.2;
Change order for TLB operation.
We can boot Overo EarthSTORM.
 1.10 01-Sep-2012  matt branches: 1.10.2;
Don't shift VA in table since that generates errors
 1.9 31-Jan-2011  matt branches: 1.9.4;
Add RCSID when needed.
Don't include pmap.h or pte.h, include "assym.h" instead.
Use assym.h provided values.
 1.8 28-Aug-2010  kiyohara branches: 1.8.2; 1.8.4;
Disable L2 Cache when boot time.
 1.7 10-Jul-2010  kiyohara Support Overo (Gumstix inc).
+ This commit supports basically.
+ Expansion boards not support yet. And MicroSD, Wifi, Bluetooth too.
 1.6 09-Aug-2009  kiyohara branches: 1.6.2; 1.6.4;
Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.5 17-Oct-2007  garbled branches: 1.5.20;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.4 16-Sep-2007  kiyohara Remove white spaces.
 1.3 20-Apr-2007  kiyohara branches: 1.3.2; 1.3.8; 1.3.10; 1.3.12;
Add whitespace and tab.
 1.2 20-Feb-2007  kiyohara branches: 1.2.4; 1.2.6;
Indentation.
Move macro MMU_INIT.
 1.1 16-Oct-2006  kiyohara branches: 1.1.2; 1.1.4; 1.1.8; 1.1.10;
Add initial support for the PXA255-based gumstix board.
 1.1.10.2 07-May-2007  yamt sync with head.
 1.1.10.1 27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.1.8.5 27-Oct-2007  yamt sync with head.
 1.1.8.4 03-Sep-2007  yamt sync with head.
 1.1.8.3 26-Feb-2007  yamt sync with head.
 1.1.8.2 30-Dec-2006  yamt sync with head.
 1.1.8.1 16-Oct-2006  yamt file gumstix_start.S was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.1.4.2 18-Nov-2006  ad Sync with head.
 1.1.4.1 16-Oct-2006  ad file gumstix_start.S was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.1.2.2 22-Oct-2006  yamt sync with head
 1.1.2.1 16-Oct-2006  yamt file gumstix_start.S was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.2.6.1 11-Jul-2007  mjf Sync with head.
 1.2.4.2 09-Oct-2007  ad Sync with head.
 1.2.4.1 27-May-2007  ad Sync with head.
 1.3.12.1 06-Nov-2007  matt sync with HEAD
 1.3.10.1 02-Oct-2007  joerg Sync with HEAD.
 1.3.8.1 01-Nov-2007  rjs Sync with HEAD.
 1.3.2.1 03-Oct-2007  garbled Sync with HEAD
 1.5.20.3 09-Oct-2010  yamt sync with head
 1.5.20.2 11-Aug-2010  yamt sync with head.
 1.5.20.1 19-Aug-2009  yamt sync with head.
 1.6.4.1 05-Mar-2011  rmind sync with head
 1.6.2.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.6.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.8.4.1 08-Feb-2011  bouyer Sync with HEAD
 1.8.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.9.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.9.4.2 23-Jan-2013  yamt sync with head
 1.9.4.1 30-Oct-2012  yamt sync with head
 1.10.2.3 03-Dec-2017  jdolecek update from HEAD
 1.10.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.2.1 25-Feb-2013  tls resync with head
 1.11.2.1 28-Aug-2013  rmind sync with head
 1.12.2.1 10-Aug-2014  tls Rebase.
 1.13.8.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.13.8.1 04-Nov-2016  pgoyette Sync with HEAD
 1.13.4.2 05-Feb-2017  skrll Sync with HEAD
 1.13.4.1 05-Dec-2016  skrll Sync with HEAD
 1.15.16.1 10-Jun-2019  christos Sync with HEAD
 1.10 18-May-2019  skrll Convert remaining armv7 kernels to generic start and remove a bunch of
code including a9_mpsubr.S.

Thanks to Lwazi Dube for testing PANDABOARD and BEAGLEBONE.
 1.9 15-Oct-2016  kiyohara branches: 1.9.16;
Add map for DuoVero and Pepper.
 1.8 31-Mar-2016  kiyohara branches: 1.8.2;
Ensure enable clocks for omapmputmr.
 1.7 24-Dec-2012  kiyohara branches: 1.7.14;
Statically map of devices moves to 0xc0000000 from 0x90000000.
 1.6 28-Aug-2010  kiyohara branches: 1.6.8; 1.6.18;
+ Add parsing keyword 'expansion=' in args from U-boot. And keep backword
compatibility 'busheader=', in case Gumstix.
+ Add GPMC device map to gumstix_devmap[].
 1.5 10-Jul-2010  kiyohara Support Overo (Gumstix inc).
+ This commit supports basically.
+ Expansion boards not support yet. And MicroSD, Wifi, Bluetooth too.
 1.4 09-Aug-2009  kiyohara branches: 1.4.2; 1.4.4;
Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.3 18-Jan-2007  kiyohara branches: 1.3.48;
Initialize GPIO of *UARTs and supports.
 1.2 17-Oct-2006  kiyohara branches: 1.2.2; 1.2.4; 1.2.8;
Add $NetBSD$.
 1.1 16-Oct-2006  kiyohara Add initial support for the PXA255-based gumstix board.
 1.2.8.3 26-Feb-2007  yamt sync with head.
 1.2.8.2 30-Dec-2006  yamt sync with head.
 1.2.8.1 17-Oct-2006  yamt file gumstixreg.h was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.2.4.3 01-Feb-2007  ad Sync with head.
 1.2.4.2 18-Nov-2006  ad Sync with head.
 1.2.4.1 17-Oct-2006  ad file gumstixreg.h was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.2.2.2 22-Oct-2006  yamt sync with head
 1.2.2.1 17-Oct-2006  yamt file gumstixreg.h was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.3.48.3 09-Oct-2010  yamt sync with head
 1.3.48.2 11-Aug-2010  yamt sync with head.
 1.3.48.1 19-Aug-2009  yamt sync with head.
 1.4.4.1 05-Mar-2011  rmind sync with head
 1.4.2.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.4.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.6.18.2 03-Dec-2017  jdolecek update from HEAD
 1.6.18.1 25-Feb-2013  tls resync with head
 1.6.8.1 23-Jan-2013  yamt sync with head
 1.7.14.2 05-Dec-2016  skrll Sync with HEAD
 1.7.14.1 22-Apr-2016  skrll Sync with HEAD
 1.8.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.9.16.1 10-Jun-2019  christos Sync with HEAD
 1.6 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.5 22-Nov-2009  kiyohara Move definition 'void gxlcd_cnattach(void)' to gumstixvar.h.
 1.4 09-Aug-2009  kiyohara Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.3 11-May-2008  kiyohara Split device_t/softc.
 1.2 17-Oct-2006  kiyohara branches: 1.2.2; 1.2.4; 1.2.8; 1.2.58; 1.2.60; 1.2.62; 1.2.64;
Add $NetBSD$.
 1.1 16-Oct-2006  kiyohara Add initial support for the PXA255-based gumstix board.
 1.2.64.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.2.62.3 11-Mar-2010  yamt sync with head
 1.2.62.2 19-Aug-2009  yamt sync with head.
 1.2.62.1 16-May-2008  yamt sync with head.
 1.2.60.1 18-May-2008  yamt sync with head.
 1.2.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.2 30-Dec-2006  yamt sync with head.
 1.2.8.1 17-Oct-2006  yamt file gumstixvar.h was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.2.4.2 18-Nov-2006  ad Sync with head.
 1.2.4.1 17-Oct-2006  ad file gumstixvar.h was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.2.2.2 22-Oct-2006  yamt sync with head
 1.2.2.1 17-Oct-2006  yamt file gumstixvar.h was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.13 15-Sep-2025  thorpej Encapsulate what's needed to attach an I2C bus into a iicbus_attach()
inline.
 1.12 18-Jun-2022  andvar fix typos in word "functions" in comments, mainly s/fuctions/functions/.
 1.11 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.10 24-Apr-2021  thorpej branches: 1.10.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.9 22-Dec-2019  thorpej branches: 1.9.10;
Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.8 14-Feb-2016  chs branches: 1.8.18;
zero the i2c_attach_args structure before filling it in.
fixes occasional crashes in iic_attach().
 1.7 21-Jun-2011  kiyohara branches: 1.7.12; 1.7.30;
Use CFATTACH_DECL_NEW().
 1.6 19-Jun-2011  nonaka - Split device_t/softc.
- Added some functions for i2c framework.
 1.5 09-Aug-2009  kiyohara branches: 1.5.10;
Fix matching by improper driver.
see http://mail-index.netbsd.org/port-arm/2009/07/08/msg000807.html

And remove some white-spaces.
 1.4 20-Apr-2009  pgoyette Missed this file in previous commit. This finished updates required
to enable support of i2c quick_{read,write} operations.
 1.3 11-May-2008  kiyohara branches: 1.3.6; 1.3.12;
Split device_t/softc.
 1.2 06-Dec-2007  ad branches: 1.2.12; 1.2.14; 1.2.16; 1.2.18;
lockmgr -> mutex
 1.1 21-Aug-2007  kiyohara branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.12; 1.1.16; 1.1.18;
Add gxiic and iic. However not test yet because I don't have I2C-LSI and
can't connect it.
 1.1.18.1 08-Dec-2007  ad Sync with head.
 1.1.16.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.12.2 09-Oct-2007  ad Sync with head.
 1.1.12.1 21-Aug-2007  ad file gxiic.c was added on branch vmlocking on 2007-10-09 13:37:37 +0000
 1.1.8.3 09-Dec-2007  jmcneill Sync with HEAD.
 1.1.8.2 03-Sep-2007  jmcneill Sync with HEAD.
 1.1.8.1 21-Aug-2007  jmcneill file gxiic.c was added on branch jmcneill-pm on 2007-09-03 16:47:17 +0000
 1.1.6.3 07-Dec-2007  yamt sync with head
 1.1.6.2 03-Sep-2007  yamt sync with head.
 1.1.6.1 21-Aug-2007  yamt file gxiic.c was added on branch yamt-lazymbuf on 2007-09-03 14:24:03 +0000
 1.1.4.2 03-Sep-2007  skrll Sync with HEAD.
 1.1.4.1 21-Aug-2007  skrll file gxiic.c was added on branch nick-csl-alignment on 2007-09-03 10:18:27 +0000
 1.1.2.1 09-Jan-2008  matt sync with HEAD
 1.2.18.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.2.16.3 19-Aug-2009  yamt sync with head.
 1.2.16.2 04-May-2009  yamt sync with head.
 1.2.16.1 16-May-2008  yamt sync with head.
 1.2.14.1 18-May-2008  yamt sync with head.
 1.2.12.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.12.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.3.6.1 28-Apr-2009  skrll Sync with HEAD.
 1.5.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7.30.1 19-Mar-2016  skrll Sync with HEAD
 1.7.12.1 03-Dec-2017  jdolecek update from HEAD
 1.8.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.10.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.10.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.29 29-Oct-2022  jmcneill Remove support for OMAP based Gumstix platforms.

These changes are to prepare for the removal of arch/arm/omap. Support
for Xscale based Gumstix platforms remains.

(If someone wants to resurrect DuoVero and Pepper platforms, it's best
to do that in the GENERIC kernel using FDT.)
 1.28 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.27 24-Apr-2021  thorpej branches: 1.27.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.26 13-Mar-2018  ryo branches: 1.26.16;
fix compile error (unused variables)
 1.25 22-Jan-2017  christos branches: 1.25.12;
PR/51905: GXIO Expension boards arn't configured if GXIO_DEFAULT_EXPANSION
isn't defined. Fix a bunch of issues with the original code.
 1.24 28-Oct-2016  christos branches: 1.24.2;
sprinkle ifdef spices.
 1.23 18-Oct-2016  kiyohara Support tifb.
 1.22 16-Oct-2016  kiyohara Remove not commited header-file and variable.
 1.21 15-Oct-2016  kiyohara Support Duovero and Pepper.
 1.20 24-Dec-2012  kiyohara branches: 1.20.14; 1.20.18;
Add more comment.
 1.19 12-Dec-2012  matt Conditionalize omap includes on OVERO
 1.18 23-Sep-2010  kiyohara branches: 1.18.8; 1.18.18;
Remove #if !defined(OVERO) - #endif. Overo can call delay().
 1.17 28-Aug-2010  kiyohara Fix build failed. omap2_intr.h includes, if defined OMAP3530.
 1.16 28-Aug-2010  kiyohara + Add configuration function for NIC of Chestnut43/Tobi/Tobi-Duo.
tested Chestnut43 only.
+ Remove parenthesis for return.
 1.15 10-Jul-2010  kiyohara Support Overo (Gumstix inc).
+ This commit supports basically.
+ Expansion boards not support yet. And MicroSD, Wifi, Bluetooth too.
 1.14 15-Mar-2010  kiyohara branches: 1.14.2;
XXXX: More power is necessary for NIC and USB? (no document. from Linux)
tested on verdex + console-vx + netCF-vx
and verdex-pro + netpro-vx + consoleLCD-vx.
 1.13 02-Dec-2009  kiyohara branches: 1.13.2;
Enable latest bluetooth module (Infineon PBA31308).
 1.12 22-Nov-2009  kiyohara Add GPIO configuration 'LCD backlight on'.
Remove 'XXXX' in comment. That GPIO config is power on the Marvell 88W8385.
 1.11 15-Aug-2009  kiyohara Use __UNCONST().
 1.10 09-Aug-2009  kiyohara Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.9 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.8 11-May-2008  kiyohara branches: 1.8.6; 1.8.12;
Split device_t/softc.
 1.7 17-Oct-2007  garbled branches: 1.7.16; 1.7.18; 1.7.20; 1.7.22;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.6 21-Aug-2007  kiyohara branches: 1.6.2;
* Configure the GPIO to GXIO_DEFAULT_EXPANSION, if not specified 'busheader='
in boot args.
* Support NONAKA's <nonaka@netbsd.org> sdmmc.
* Add expansion target 'basix'. This is to configure GPIO to PXA MCI.
However, CardDetect is not connected as for mci of gumxtix. Therefore, it
is not possible to Insert/Remove.
* Remove white-spaces.
* Change format in comments.
 1.5 21-Aug-2007  kiyohara The initarm() should initialize GPIO. We must not initialize GPIO in
foo_attach() of the each drivers. And, it is necessary to confirm whether
to be initialized in foo_match(). To avoid a dangerous configuring on the
evaluation boards.
 1.4 20-Apr-2007  kiyohara branches: 1.4.2; 1.4.6; 1.4.8; 1.4.10;
Change to use pxapcic from sa11xx_pcic.
Support multiple socket. But not tested.
 1.3 18-Jan-2007  kiyohara branches: 1.3.2; 1.3.6; 1.3.8;
Initialize GPIO of *UARTs and supports.
 1.2 17-Oct-2006  kiyohara branches: 1.2.2; 1.2.4; 1.2.8;
Add $NetBSD$.
 1.1 16-Oct-2006  kiyohara Add initial support for the PXA255-based gumstix board.
 1.2.8.4 03-Sep-2007  yamt sync with head.
 1.2.8.3 26-Feb-2007  yamt sync with head.
 1.2.8.2 30-Dec-2006  yamt sync with head.
 1.2.8.1 17-Oct-2006  yamt file gxio.c was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.2.4.3 01-Feb-2007  ad Sync with head.
 1.2.4.2 18-Nov-2006  ad Sync with head.
 1.2.4.1 17-Oct-2006  ad file gxio.c was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.2.2.2 22-Oct-2006  yamt sync with head
 1.2.2.1 17-Oct-2006  yamt file gxio.c was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.3.8.1 11-Jul-2007  mjf Sync with head.
 1.3.6.2 09-Oct-2007  ad Sync with head.
 1.3.6.1 27-May-2007  ad Sync with head.
 1.3.2.1 07-May-2007  yamt sync with head.
 1.4.10.1 03-Sep-2007  jmcneill Sync with HEAD.
 1.4.8.1 01-Nov-2007  rjs Sync with HEAD.
 1.4.6.1 03-Sep-2007  skrll Sync with HEAD.
 1.4.2.1 03-Oct-2007  garbled Sync with HEAD
 1.6.2.1 06-Nov-2007  matt sync with HEAD
 1.7.22.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.7.20.6 09-Oct-2010  yamt sync with head
 1.7.20.5 11-Aug-2010  yamt sync with head.
 1.7.20.4 11-Mar-2010  yamt sync with head
 1.7.20.3 19-Aug-2009  yamt sync with head.
 1.7.20.2 04-May-2009  yamt sync with head.
 1.7.20.1 16-May-2008  yamt sync with head.
 1.7.18.1 18-May-2008  yamt sync with head.
 1.7.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.12.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.6.1 28-Apr-2009  skrll Sync with HEAD.
 1.13.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.13.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.13.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.14.2.1 05-Mar-2011  rmind sync with head
 1.18.18.2 03-Dec-2017  jdolecek update from HEAD
 1.18.18.1 25-Feb-2013  tls resync with head
 1.18.8.2 23-Jan-2013  yamt sync with head
 1.18.8.1 16-Jan-2013  yamt sync with (a bit old) head
 1.20.18.2 20-Mar-2017  pgoyette Sync with HEAD
 1.20.18.1 04-Nov-2016  pgoyette Sync with HEAD
 1.20.14.2 05-Feb-2017  skrll Sync with HEAD
 1.20.14.1 05-Dec-2016  skrll Sync with HEAD
 1.24.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.25.12.1 15-Mar-2018  pgoyette Synch with HEAD
 1.26.16.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.26.16.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.26.16.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.26.16.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.26.16.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.27.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.6 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.5 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.4 24-Apr-2021  thorpej branches: 1.4.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.3 01-Jul-2011  dyoung branches: 1.3.68;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.2 21-Nov-2009  kiyohara Fix a bug.
sc = device_private(self);
sc->dev = self;
 1.1 09-Aug-2009  kiyohara branches: 1.1.2;
Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.1.2.3 11-Mar-2010  yamt sync with head
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 09-Aug-2009  yamt file gxlcd.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:06 +0000
 1.3.68.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.4.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.4 21-Jan-2012  nonaka fix my license notice.
 1.3 01-Jul-2011  dyoung branches: 1.3.2; 1.3.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.2 09-Aug-2009  kiyohara Fix matching by improper driver.
see http://mail-index.netbsd.org/port-arm/2009/07/08/msg000807.html

And remove some white-spaces.
 1.1 21-Apr-2009  nonaka branches: 1.1.2; 1.1.4; 1.1.6;
Added SD/MMC support from OpenBSD.
tested on i386, amd64 at current-users ML by pgoyette@.
tested on zaurus by myself.
 1.1.6.2 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.1.6.1 21-Apr-2009  jym file gxmci.c was added on branch jym-xensuspend on 2009-05-13 17:16:38 +0000
 1.1.4.3 19-Aug-2009  yamt sync with head.
 1.1.4.2 04-May-2009  yamt sync with head.
 1.1.4.1 21-Apr-2009  yamt file gxmci.c was added on branch yamt-nfs-mp on 2009-05-04 08:10:58 +0000
 1.1.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.1.2.1 21-Apr-2009  skrll file gxmci.c was added on branch nick-hppapmap on 2009-04-28 07:33:58 +0000
 1.3.6.1 18-Feb-2012  mrg merge to -current.
 1.3.2.1 17-Apr-2012  yamt sync with head
 1.15 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.14 05-Nov-2021  skrll Apply patch from PR port-evbarm/52209

Gumstix: KDASSERT in pxa2x0_gpio if no PCMCIA bushead given but present
 1.13 02-Feb-2013  christos static inline so that the kernel links.
 1.12 01-Jul-2011  dyoung branches: 1.12.2; 1.12.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.11 09-Aug-2009  kiyohara Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.10 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.9 29-Jan-2009  nonaka branches: 1.9.2;
- device_t/softc split.
- use aprint_* function.
 1.8 11-May-2008  kiyohara branches: 1.8.6;
Split device_t/softc.
 1.7 15-Dec-2007  perry branches: 1.7.6; 1.7.8; 1.7.10; 1.7.12;
__FUNCTION__ -> __func__
 1.6 17-Oct-2007  garbled branches: 1.6.4; 1.6.8;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.5 21-Aug-2007  kiyohara branches: 1.5.2;
The initarm() should initialize GPIO. We must not initialize GPIO in
foo_attach() of the each drivers. And, it is necessary to confirm whether
to be initialized in foo_match(). To avoid a dangerous configuring on the
evaluation boards.
 1.4 20-Apr-2007  kiyohara branches: 1.4.2; 1.4.6; 1.4.8; 1.4.10;
Change to use pxapcic from sa11xx_pcic.
Support multiple socket. But not tested.
 1.3 18-Jan-2007  kiyohara branches: 1.3.2; 1.3.6; 1.3.8;
Use device_private() and aprint_*.
 1.2 17-Oct-2006  kiyohara branches: 1.2.2; 1.2.4; 1.2.8;
Add $NetBSD$.
 1.1 16-Oct-2006  kiyohara Add initial support for the PXA255-based gumstix board.
 1.2.8.5 21-Jan-2008  yamt sync with head
 1.2.8.4 03-Sep-2007  yamt sync with head.
 1.2.8.3 26-Feb-2007  yamt sync with head.
 1.2.8.2 30-Dec-2006  yamt sync with head.
 1.2.8.1 17-Oct-2006  yamt file gxpcic.c was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.2.4.3 01-Feb-2007  ad Sync with head.
 1.2.4.2 18-Nov-2006  ad Sync with head.
 1.2.4.1 17-Oct-2006  ad file gxpcic.c was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.2.2.2 22-Oct-2006  yamt sync with head
 1.2.2.1 17-Oct-2006  yamt file gxpcic.c was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.3.8.1 11-Jul-2007  mjf Sync with head.
 1.3.6.2 09-Oct-2007  ad Sync with head.
 1.3.6.1 27-May-2007  ad Sync with head.
 1.3.2.1 07-May-2007  yamt sync with head.
 1.4.10.1 03-Sep-2007  jmcneill Sync with HEAD.
 1.4.8.2 26-Dec-2007  rjs Sync with HEAD.
 1.4.8.1 01-Nov-2007  rjs Sync with HEAD.
 1.4.6.1 03-Sep-2007  skrll Sync with HEAD.
 1.4.2.1 03-Oct-2007  garbled Sync with HEAD
 1.5.2.2 09-Jan-2008  matt sync with HEAD
 1.5.2.1 06-Nov-2007  matt sync with HEAD
 1.6.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.6.4.1 26-Dec-2007  ad Sync with head.
 1.7.12.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.7.10.3 19-Aug-2009  yamt sync with head.
 1.7.10.2 04-May-2009  yamt sync with head.
 1.7.10.1 16-May-2008  yamt sync with head.
 1.7.8.1 18-May-2008  yamt sync with head.
 1.7.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.6.2 28-Apr-2009  skrll Sync with HEAD.
 1.8.6.1 03-Mar-2009  skrll Sync with HEAD.
 1.9.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.12.12.1 25-Feb-2013  tls resync with head
 1.12.2.1 22-May-2014  yamt sync with head.

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

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.10 01-Jul-2011  dyoung branches: 1.10.2; 1.10.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.9 28-Aug-2010  kiyohara Remove a white space.
 1.8 15-Mar-2010  kiyohara branches: 1.8.2;
Use bus_space_write_2() instead of _1, because sm(4) is 16bit/word.
 1.7 09-Aug-2009  kiyohara branches: 1.7.2;
Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.6 11-May-2008  kiyohara Split device_t/softc.
 1.5 28-Apr-2008  martin branches: 1.5.2;
Remove clause 3 and 4 from TNF licenses
 1.4 17-Oct-2007  garbled branches: 1.4.16; 1.4.18; 1.4.20;
Merge the ppcoea-renovation branch to HEAD.

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

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

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.3 14-Aug-2007  kiyohara branches: 1.3.2;
Add ARGSUSED.
 1.2 18-Jan-2007  kiyohara branches: 1.2.6; 1.2.14; 1.2.18; 1.2.20; 1.2.22;
Use device_private() and aprint_*.
 1.1 16-Oct-2006  kiyohara branches: 1.1.2; 1.1.4; 1.1.8;
Add initial support for the PXA255-based gumstix board.
 1.1.8.4 03-Sep-2007  yamt sync with head.
 1.1.8.3 26-Feb-2007  yamt sync with head.
 1.1.8.2 30-Dec-2006  yamt sync with head.
 1.1.8.1 16-Oct-2006  yamt file if_sm_gxio.c was added on branch yamt-lazymbuf on 2006-12-30 20:45:49 +0000
 1.1.4.3 01-Feb-2007  ad Sync with head.
 1.1.4.2 18-Nov-2006  ad Sync with head.
 1.1.4.1 16-Oct-2006  ad file if_sm_gxio.c was added on branch newlock2 on 2006-11-18 21:29:10 +0000
 1.1.2.2 22-Oct-2006  yamt sync with head
 1.1.2.1 16-Oct-2006  yamt file if_sm_gxio.c was added on branch yamt-splraiseipl on 2006-10-22 06:04:38 +0000
 1.2.22.1 16-Aug-2007  jmcneill Sync with HEAD.
 1.2.20.1 01-Nov-2007  rjs Sync with HEAD.
 1.2.18.1 15-Aug-2007  skrll Sync with HEAD.
 1.2.14.1 03-Oct-2007  garbled Sync with HEAD
 1.2.6.1 20-Aug-2007  ad Sync with HEAD.
 1.3.2.1 06-Nov-2007  matt sync with HEAD
 1.4.20.4 09-Oct-2010  yamt sync with head
 1.4.20.3 11-Aug-2010  yamt sync with head.
 1.4.20.2 19-Aug-2009  yamt sync with head.
 1.4.20.1 16-May-2008  yamt sync with head.
 1.4.18.1 18-May-2008  yamt sync with head.
 1.4.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.7.2.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.7.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.8.2.1 05-Mar-2011  rmind sync with head
 1.10.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.10.2.1 30-Oct-2012  yamt sync with head
 1.4 29-Oct-2022  jmcneill Remove support for OMAP based Gumstix platforms.

These changes are to prepare for the removal of arch/arm/omap. Support
for Xscale based Gumstix platforms remains.

(If someone wants to resurrect DuoVero and Pepper platforms, it's best
to do that in the GENERIC kernel using FDT.)
 1.3 04-Sep-2012  matt Add support for getting the mac-address from the device properties.
 1.2 04-Sep-2012  matt No reason to include gumstixvar.h so don't.
 1.1 28-Aug-2010  kiyohara branches: 1.1.2; 1.1.4; 1.1.10; 1.1.14;
Support smsh@gpmc.
tested Chestnut43 only.
 1.1.14.1 30-Oct-2012  yamt sync with head
 1.1.10.2 05-Mar-2011  rmind sync with head
 1.1.10.1 28-Aug-2010  rmind file if_smsh_gpmc.c was added on branch rmind-uvmplock on 2011-03-05 20:50:05 +0000
 1.1.4.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.1.4.1 28-Aug-2010  uebayasi file if_smsh_gpmc.c was added on branch uebayasi-xip on 2010-10-22 07:21:16 +0000
 1.1.2.2 09-Oct-2010  yamt sync with head
 1.1.2.1 28-Aug-2010  yamt file if_smsh_gpmc.c was added on branch yamt-nfs-mp on 2010-10-09 03:31:44 +0000
 1.3 28-Aug-2010  kiyohara + Struct smsh_gxio is obsolated, and struct lan9118_softc is used.
We do not have private data at all.
+ Fix typo. sms_gxio_attach -> smsh_gxio_attach
 1.2 29-Nov-2009  kiyohara branches: 1.2.2; 1.2.4;
Fix print message.
 1.1 09-Aug-2009  kiyohara branches: 1.1.2;
Support verdex and verdex-pro.
And
+ Support LCD controller.
+ Support SMSC LAN 9117 Ethernet controller.
+ Comment outed 'options GXIO_DEFAULT_EXPANSION'. As for verdex-pro being
sold now, this option becomes obstructive.
+ Remove some usb devices in GUMSTIX.
+ Update GUMSTIX.

Also
Fix ARM ABI in gumstix_start.S. Thanks Brett Slager <bds at ifgd.net>.
Calculate RAM size in gumstix_start.S.
 1.1.2.4 09-Oct-2010  yamt sync with head
 1.1.2.3 11-Mar-2010  yamt sync with head
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 09-Aug-2009  yamt file if_smsh_gxio.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:06 +0000
 1.2.4.1 05-Mar-2011  rmind sync with head
 1.2.2.1 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).

RSS XML Feed