Home | History | Annotate | only in /src/sys/arch/evbmips/gdium
History log of /src/sys/arch/evbmips/gdium
RevisionDateAuthorComments
 1.6 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.5 29-Jul-2012  mlelstv branches: 1.5.2;
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.

No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().

Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().

Make cpu_rootconf(9) describe the calling order.
 1.4 22-Jul-2011  macallan branches: 1.4.2; 1.4.8;
voyagerfb wants properties too
 1.3 05-Nov-2009  dyoung Use deviter(9) instead of accessing alldevs directly. Test-compiled,
only.
 1.2 07-Aug-2009  macallan branches: 1.2.2;
set device properties for genfb, now wsdisplay attaches successfully
TODO: replace hardcoded values with reality
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.2.2.3 11-Mar-2010  yamt sync with head
 1.2.2.2 19-Aug-2009  yamt sync with head.
 1.2.2.1 07-Aug-2009  yamt file autoconf.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.4.8.1 08-Aug-2012  martin Pull up following revision(s) (requested by mlelstv in ticket #466):
sys/arch/amiga/amiga/autoconf.c: revision 1.113
sys/arch/rs6000/rs6000/autoconf.c: revision 1.4
sys/arch/emips/emips/autoconf.c: revision 1.6
sys/arch/sandpoint/sandpoint/autoconf.c: revision 1.27
sys/arch/evbmips/alchemy/autoconf.c: revision 1.18
sys/arch/sgimips/sgimips/autoconf.c: revision 1.43
sys/arch/atari/atari/autoconf.c: revision 1.63
sys/arch/powerpc/oea/ofw_autoconf.c: revision 1.17
sys/arch/mmeye/mmeye/autoconf.c: revision 1.9
distrib/sets/lists/comp/mi: revision 1.1771
sys/arch/mipsco/mipsco/autoconf.c: revision 1.25
sys/arch/iyonix/iyonix/autoconf.c: revision 1.14
sys/arch/hp300/hp300/autoconf.c: revision 1.100
sys/kern/init_main.c: revision 1.445
sys/arch/pmax/pmax/autoconf.c: revision 1.79
sys/arch/netwinder/netwinder/autoconf.c: revision 1.11
sys/arch/dreamcast/dreamcast/autoconf.c: revision 1.10
sys/arch/ibmnws/ibmnws/autoconf.c: revision 1.12
sys/arch/evbppc/ev64260/autoconf.c: revision 1.17
sys/arch/evbmips/gdium/autoconf.c: revision 1.5
sys/arch/algor/algor/autoconf.c: revision 1.21
share/man/man9/Makefile: revision 1.367
sys/arch/ews4800mips/ews4800mips/autoconf.c: revision 1.9
sys/arch/amigappc/amigappc/autoconf.c: revision 1.5
sys/arch/x86/x86/x86_autoconf.c: revision 1.65
sys/arch/acorn26/acorn26/autoconf.c: revision 1.9
sys/arch/mvmeppc/mvmeppc/autoconf.c: revision 1.13
sys/arch/vax/vax/autoconf.c: revision 1.94
sys/arch/usermode/dev/cpu.c: revision 1.72
sys/arch/evbppc/virtex/autoconf.c: revision 1.5
sys/arch/next68k/next68k/autoconf.c: revision 1.26
sys/arch/mac68k/mac68k/autoconf.c: revision 1.73
sys/arch/ia64/ia64/autoconf.c: revision 1.6
sys/arch/evbppc/obs405/obs405_autoconf.c: revision 1.6
share/man/man9/cpu_rootconf.9: revision 1.7
sys/arch/landisk/landisk/autoconf.c: revision 1.6
sys/arch/evbmips/malta/autoconf.c: revision 1.16
sys/arch/sun3/sun3/autoconf.c: revision 1.76
sys/arch/evbppc/explora/autoconf.c: revision 1.13
sys/arch/sun3/sun3/autoconf.c: revision 1.77
sys/arch/evbmips/loongson/autoconf.c: revision 1.3
sys/arch/evbmips/atheros/autoconf.c: revision 1.11
sys/arch/sparc64/sparc64/autoconf.c: revision 1.188
sys/arch/acorn32/acorn32/autoconf.c: revision 1.18
sys/arch/evbarm/evbarm/autoconf.c: revision 1.13
sys/arch/cobalt/cobalt/autoconf.c: revision 1.30
sys/arch/mvme68k/mvme68k/autoconf.c: revision 1.46
sys/arch/hp700/hp700/autoconf.c: revision 1.48
sys/arch/evbmips/adm5120/autoconf.c: revision 1.5
sys/arch/hpcmips/hpcmips/autoconf.c: revision 1.25
sys/arch/alpha/alpha/autoconf.c: revision 1.52
sys/arch/sparc/sparc/autoconf.c: revision 1.244
sys/arch/evbppc/pmppc/autoconf.c: revision 1.7
sys/arch/bebox/bebox/autoconf.c: revision 1.25
sys/arch/luna68k/luna68k/autoconf.c: revision 1.13
sys/arch/hpcarm/hpcarm/autoconf.c: revision 1.20
sys/arch/evbppc/walnut/autoconf.c: revision 1.21
sys/arch/cesfic/cesfic/autoconf.c: revision 1.26
sys/arch/cats/cats/autoconf.c: revision 1.17
sys/arch/x68k/x68k/autoconf.c: revision 1.67
sys/arch/news68k/news68k/autoconf.c: revision 1.21
sys/arch/arc/arc/autoconf.c: revision 1.34
sys/arch/evbsh3/evbsh3/autoconf.c: revision 1.11
sys/sys/conf.h: revision 1.143
sys/arch/evbmips/rasoc/autoconf.c: revision 1.3
sys/arch/hpcsh/hpcsh/autoconf.c: revision 1.26
sys/arch/sun68k/sun68k/autoconf.c: revision 1.29
sys/arch/evbmips/rmixl/autoconf.c: revision 1.6
sys/arch/zaurus/zaurus/autoconf.c: revision 1.12
sys/arch/xen/x86/autoconf.c: revision 1.15
sys/arch/evbppc/mpc85xx/autoconf.c: revision 1.6
sys/arch/shark/shark/autoconf.c: revision 1.18
sys/arch/prep/prep/autoconf.c: revision 1.25
sys/arch/newsmips/newsmips/autoconf.c: revision 1.36
sys/arch/sbmips/sbmips/autoconf.c: revision 1.8
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.
No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().
Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().
Make cpu_rootconf(9) describe the calling order.
add rootconf(9) as a link to cpu_rootconf(9)
make this compile again
 1.4.2.1 30-Oct-2012  yamt sync with head
 1.5.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.6 03-Mar-2022  riastradh mips: Use device_set_private in a few drivers.
 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 17-May-2011  dyoung PCI_FLAGS_IO_ENABLED and PCI_FLAGS_MEM_ENABLED changed their functional
role in NetBSD (drivers are no longer supposed to write these to
pa_flags) without changing name. Correct that.

Rename PCI_FLAGS_IO_ENABLED to PCI_FLAGS_IO_OKAY and
PCI_FLAGS_MEM_ENABLED to PCI_FLAGS_MEM_OKAY, thus making their names
consistent with the other PCI flags and poisoning 3rd-party driver
sources that use the flags in the old bad way.

This patch produces no binary changes in this set of PCI kernels when
they are compiled w/o 'options DIAGNOSTIC' and w/ -V MKREPRO=yes:

algor P4032 P5064 P6032
alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE
evbarm-el GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321
evbarm-el IXDP425 IXM1200 KUROBOX_PRO
evbarm-el LUBBOCK MARVELL_NAS NAPPI NSLU2 SHEEVAPLUG SMDK2800 TEAMASA_NPWR
evbarm-el TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
evbppc OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
iyonix GENERIC
landisk GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sbmips-el GENERIC
sgimips GENERIC32_IP2x GENERIC32_IP3x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC
 1.1 06-Aug-2009  matt branches: 1.1.2; 1.1.6; 1.1.8;
GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.1.8.1 06-Jun-2011  jruoho Sync with HEAD.
 1.1.6.1 31-May-2011  rmind sync with head
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 06-Aug-2009  yamt file bonito_mainbus.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.3.68.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.4.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.2 10-Jul-2011  matt CLeanup machine includes
 1.1 06-Aug-2009  matt branches: 1.1.2;
GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 06-Aug-2009  yamt file gdium_bus_io.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.3 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.2 10-Jul-2011  matt CLeanup machine includes
 1.1 06-Aug-2009  matt branches: 1.1.2;
GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 06-Aug-2009  yamt file gdium_bus_mem.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.5 10-Jul-2011  matt CLeanup machine includes
 1.4 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.3 08-Jun-2011  bouyer Make GDIUM build again after matt-nb5-mips64 merge. untested as I don't have
this hardware, but I'll use this as a base for Lemote Fulong support.
 1.2 06-Aug-2009  matt branches: 1.2.2; 1.2.6; 1.2.12;
Cleanup a bit and remove some debugging cruft that's no longer needed now
that the early console is working.
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.2.12.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.6.1 12-Jun-2011  rmind sync with head
 1.2.2.2 19-Aug-2009  yamt sync with head.
 1.2.2.1 06-Aug-2009  yamt file gdium_dma.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.7 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.6 10-Jul-2011  matt CLeanup machine includes
 1.5 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.4 11-May-2010  macallan use RI_NO_AUTO for the gdium's early rasops console so we don't try to
allocate memory before kmem is ready
 1.3 08-Aug-2009  matt branches: 1.3.2; 1.3.4; 1.3.6;
Don't hardcode the FB address. Read it from the PCI device.
Don't tell wasops to the clear the screen since we do it ourselves.
 1.2 06-Aug-2009  matt Cleanup a bit and remove some debugging cruft that's no longer needed now
that the early console is working.
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.3.6.1 30-May-2010  rmind sync with head
 1.3.4.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.3.2.3 11-Aug-2010  yamt sync with head.
 1.3.2.2 19-Aug-2009  yamt sync with head.
 1.3.2.1 08-Aug-2009  yamt file gdium_genfb.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.10 21-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.9 10-Nov-2019  chs branches: 1.9.8;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.8 26-Aug-2016  skrll branches: 1.8.16;
Adjust evbmips_iointr to pass a clockframe pointer and use it for
pwmclock @ voyager.

Suggested by matt@

Hi macallan!
 1.7 29-Mar-2014  christos branches: 1.7.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.6 11-Mar-2014  mrg avoid set but unused variables.
move variables under their usage #ifdef.
 1.5 10-Jul-2011  matt branches: 1.5.2; 1.5.12; 1.5.16;
CLeanup machine includes
 1.4 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.3 08-Jun-2011  bouyer Make GDIUM build again after matt-nb5-mips64 merge. untested as I don't have
this hardware, but I'll use this as a base for Lemote Fulong support.
 1.2 07-Aug-2009  matt branches: 1.2.2; 1.2.6; 1.2.12;
Interrupts now work. Fix old bug with softints.
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.2.12.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.6.1 12-Jun-2011  rmind sync with head
 1.2.2.2 19-Aug-2009  yamt sync with head.
 1.2.2.1 07-Aug-2009  yamt file gdium_intr.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:12 +0000
 1.5.16.1 18-May-2014  rmind sync with head
 1.5.12.2 03-Dec-2017  jdolecek update from HEAD
 1.5.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.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.7.6.1 05-Oct-2016  skrll Sync with HEAD
 1.8.16.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.9.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2 22-Jul-2011  macallan RAM shows up in PCI space at 0x80000000, not 0x00000000
Now my Gdium finds USB devices and manages to get an IP via DHCP
 1.1 06-Aug-2009  matt branches: 1.1.2;
GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 06-Aug-2009  yamt file gdiumreg.h was added on branch yamt-nfs-mp on 2009-08-19 18:46:13 +0000
 1.2 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.1 06-Aug-2009  matt branches: 1.1.2;
GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 06-Aug-2009  yamt file gdiumvar.h was added on branch yamt-nfs-mp on 2009-08-19 18:46:13 +0000
 1.22 05-Mar-2024  thorpej Move the at-shutdown call to resettodr() from cpu_reboot() to kern_reboot().

It's a small step, but it's a step.
 1.21 17-Aug-2020  simonb Add some compile time asserts for endianness on boards/systems that
only support a single endianness.
 1.20 22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.19 11-Jul-2016  matt branches: 1.19.2;
Use pmap_kenter flags to create cached/uncached entries.
#include <mips/locore.h> when appropriate
 1.18 01-Feb-2016  christos PR/50735: David Binderman: Check bounds before dereferencing.
 1.17 24-Mar-2014  christos branches: 1.17.6;
use cpu_{g,s}etmodel
 1.16 24-Aug-2011  macallan branches: 1.16.2; 1.16.12; 1.16.16;
fix up the environment pointers to be usable in LP64
 1.15 10-Jul-2011  matt CLeanup machine includes
 1.14 08-Jun-2011  bouyer Make GDIUM build again after matt-nb5-mips64 merge. untested as I don't have
this hardware, but I'll use this as a base for Lemote Fulong support.
 1.13 20-Feb-2011  matt branches: 1.13.2;
Merge forward from matt-nb5-mips64.
 1.12 08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.11 08-Feb-2010  joerg branches: 1.11.2; 1.11.4; 1.11.6;
Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.10 27-Nov-2009  rmind branches: 1.10.2;
- 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.9 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.8 17-Aug-2009  matt branches: 1.8.2;
Use mips3_sd instead of two 32bit stores.
 1.7 11-Aug-2009  matt Remove declaration of physmem since uvm_page.c declares it.
 1.6 11-Aug-2009  cliff #ifdef around boot args parsing for now, so won't kill autobooting the gdium
 1.5 11-Aug-2009  matt Disable 2nd PCI Windows @ 8MB
 1.4 08-Aug-2009  matt Add pci_attach_hook to configure the ralink device since PMON didn't. This
avoids the over kill of PCI_NETBSD_CONFIGURE. And given the bounded nature
of the Gdium, it's not as if someone is going to add more devices.
 1.3 07-Aug-2009  matt Get the CPU frequency from the PMON environment (which it provided to us).
 1.2 06-Aug-2009  matt Cleanup a bit and remove some debugging cruft that's no longer needed now
that the early console is working.
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.8.2.3 11-Mar-2010  yamt sync with head
 1.8.2.2 19-Aug-2009  yamt sync with head.
 1.8.2.1 17-Aug-2009  yamt file machdep.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:13 +0000
 1.10.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.11.6.2 05-Mar-2011  bouyer Sync with HEAD
 1.11.6.1 17-Feb-2011  bouyer Sync with HEAD
 1.11.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.11.2.2 12-Jun-2011  rmind sync with head
 1.11.2.1 05-Mar-2011  rmind sync with head
 1.13.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.16.16.1 18-May-2014  rmind sync with head
 1.16.12.2 03-Dec-2017  jdolecek update from HEAD
 1.16.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.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.17.6.3 05-Feb-2017  skrll Sync with HEAD
 1.17.6.2 05-Oct-2016  skrll Sync with HEAD
 1.17.6.1 19-Mar-2016  skrll Sync with HEAD
 1.19.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.10 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.9 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.8 24-Apr-2021  thorpej branches: 1.8.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.7 07-Jul-2020  thorpej branches: 1.7.4;
Overhaul the interface to pci_configure_bus():
- Don't expose how PCI bus configuration resource management is implemented.
Provide a new resource provider API:

==> pciconf_resource_init() -- Initialize a PCI configuration resources
container.
==> pciconf_resource_add() -- Add a PCI configuration resource to the
container (I/O, MEM, or prefetchable MEM). Multiple resources of
each type may be added.
==> pciconf_resource_fini() -- Tear down the PCI configurtation resources
container once the bus has been configured.

This is much easier to use than the previous method of providing an
extent map for each kind of resource, and works better for e.g. ACPI
platforms that provide potentially multiple PCI resources in tables
provided by firmware.

- Re-implement PCI configuration resource management using vmem arenas,
rather than extent maps.
 1.6 14-Jun-2020  chs replace EX_NOWAIT with EX_WAITOK in device attach methods.
remove checks for failures that can no longer occur.
 1.5 26-Aug-2016  skrll Fix compile for PCI_NETBSD_CONFIGURE
 1.4 27-Jan-2012  para branches: 1.4.6; 1.4.24;
converting extent(9) from malloc(9) to kmem(9)
preceding kmem-vmem-pool-uvm patch

releng@ acknowledged
 1.3 11-Aug-2009  matt branches: 1.3.2; 1.3.14; 1.3.18;
Fix mainbus_print and don't pass a NULL name.
 1.2 06-Aug-2009  matt Cleanup a bit and remove some debugging cruft that's no longer needed now
that the early console is working.
 1.1 06-Aug-2009  matt GDIUM support. It compiles but doesn't yet work. It dies quickly in
mips_vector_init.
 1.3.18.1 18-Feb-2012  mrg merge to -current.
 1.3.14.1 17-Apr-2012  yamt sync with head
 1.3.2.2 19-Aug-2009  yamt sync with head.
 1.3.2.1 11-Aug-2009  yamt file mainbus.c was added on branch yamt-nfs-mp on 2009-08-19 18:46:13 +0000
 1.4.24.1 05-Oct-2016  skrll Sync with HEAD
 1.4.6.1 03-Dec-2017  jdolecek update from HEAD
 1.7.4.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.8.8.1 04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed