Home | History | Annotate | Download | only in tlsb
History log of /src/sys/arch/alpha/tlsb/tlsb.c
RevisionDateAuthorComments
 1.42  06-Mar-2024  thorpej Tidy up TLSB autoconfiguration just a bit.
 1.41  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.40  04-Jul-2021  thorpej branches: 1.40.2;
Remove unnecessary #include <sys/malloc.h>
 1.39  24-Apr-2021  thorpej branches: 1.39.2;
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.38  26-Mar-2014  christos branches: 1.38.44;
kill sprintf
 1.37  06-Feb-2012  matt branches: 1.37.6; 1.37.10;
Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.36  14-Jun-2011  matt branches: 1.36.2; 1.36.6;
Major cleanup of alpha device drivers.
Switch to CFATTACH_DECL_NEW.
struct device * -> device_t
struct cfdata * -> cfdata_t
Use of device_xname. No direct access to struct device members.
Use aprint* (not complete).
 1.35  06-Jun-2011  matt CFATTACH_DECL(..., sizeof(struct device), -> CFATTACH_DECL_NEW(..., 0
struct device * -> device_t
struct cfdata * -> cfdata_t
 1.34  14-Mar-2009  dsl branches: 1.34.4; 1.34.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.33  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.32  04-Mar-2007  christos branches: 1.32.44; 1.32.52; 1.32.58;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.31  11-Dec-2005  christos branches: 1.31.26;
merge ktrace-lwp.
 1.30  26-Aug-2005  drochner kill some more simple submatch() functions, use config_stdsubmatch()
 1.29  25-Aug-2005  drochner replace the "locdesc_t" structure carrying the number of locators
explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
 1.28  02-Jun-2005  drochner branches: 1.28.2;
add more "const"
 1.27  13-Sep-2004  drochner pass locators to tlsbsubmatch()
XXX the "offset" locator is unused appearently, assume that "0"
is a sensible value
 1.26  01-Jan-2003  thorpej branches: 1.26.2;
Use aprint_normal() for cfprint routines.
 1.25  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.24  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.23  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.22  12-Jul-2001  thorpej branches: 1.22.2;
bzero -> memset
 1.21  21-Apr-2001  thorpej branches: 1.21.2;
Adjust the way the cpu_info[] array works (array of pointers
rather than array of structures). Keep a list of active
CPUs and define a CPU_INFO_FOREACH to traverse them.

This fixes cpustates statistics tracking.
 1.20  20-Apr-2001  thorpej Adjust for a multiprocessor data structure change (whee, I guess
I haven't built a GENERIC.MP for a while...)
 1.19  10-Aug-1999  thorpej branches: 1.19.2; 1.19.14;
Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.
 1.18  10-Apr-1999  cgd be more consistent about use of 'cputype'. e.g. it's in a header, don't
bother 'externing' it everywhere!
 1.17  23-Feb-1999  thorpej branches: 1.17.4;
Now that we have the kthread mechanism, massively clean up the way
additional processors are spun up on multiprocessor Alpha systems.
Now, each processor gets its own idle thread (the primary processor
uses proc0). This idle thread is used in switch_exit(), rather than
explicitly referencing proc0.

Also, make `curproc', `fpcurproc', and `curpcb' per-cpu values. This
required some data structure rearrangement; cpu info is now statically
allocated in the BSS, rather than via malloc(), and cpu_softc is gone.
(Modeled somewhat after NetBSD/sparc's multiprocessor info structures.)
 1.16  12-Feb-1999  thorpej Fix printf format problems on Alpha. (IRONIC?!)
 1.15  19-Nov-1998  ross More include shuffling.
 1.14  01-Oct-1998  ross If not MULTIPROCESSOR then identify the interrupt target cpu by hwrpb id (%d)
rather than attachment name, and hence avoid referencing `cpus'.
 1.13  29-Sep-1998  thorpej - Do not set TLCPUMASK on non-I/O nodes. That register exists only on
I/O nodes. Previous code erroneously set it on CPU nodes only.
- In both the single- and multi-processor case, route all interrupts from
I/O nodes to the primary CPU, for now.
 1.12  08-Jul-1998  mjacob Clarify comment about what nodes are being 'found' and noted for later
use by an error handler:

* There can be only one TurboLaser, and we'll overload it
* with a bitmap of found turbo laser nodes. Note that
* these are just the actual hard TL node IDS that we
* discover here, not the virtual IDs that get assigned
* to CPUs. During TLSB specific error handling we
* only need to know which actual TLSB slots have boards
* in them (irrespective of how many CPUs they have).
 1.11  08-Jul-1998  mjacob There can only be one TurboLaser node, and now we'll overload
into the integer tlsb_found a bit map of found nodes and export
it to the rest of the kernel. This is so that at machine check
time when we're doing some TLSB/KFTXX error handling we don't
have to attempt a badaddr to look at all TLSB nodes (which will
just be too sad to try...).
 1.10  14-May-1998  thorpej Garbage-collect the old confargs stuff that was used in the Early Days.
It isn't really appropriate anymore. Replace it with a real mainbus
attach args structure.
 1.9  13-May-1998  thorpej Cleanup TurboLaser autoconfiguration somewhat.
 1.8  15-Apr-1998  mjacob some cleanup
 1.7  12-Jan-1998  thorpej Adjust for config changes.
 1.6  02-Sep-1997  thorpej Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
 1.5  17-Jul-1997  jtk branches: 1.5.2; 1.5.4;
use locator defines in "locators.h" to index cf_loc[]
 1.4  07-Apr-1997  cgd branches: 1.4.2;
by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries.
This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS
options, which is present but commented out in the ALPHA config file.
In ELF-format kernels, these strings are present in the kernel binary but
are not loaded into memory. (In ECOFF-format kernels, there's no easy way
to keep them from being loaded, so they _are_ loaded into memory.)
 1.3  06-Apr-1997  cgd clean up NetBSD RCS ID strings, include machine/options.h
 1.2  12-Mar-1997  cgd Copyright notice consistency, per Matthew Jacob.
 1.1  12-Mar-1997  cgd AlphaServer 8200 & 8400 support, including CPU specific details, TurboLaser
system bus support, and KFTxx support. From Matthew Jacob, NASA Ames
Research Center.
 1.4.2.2  22-Jul-1997  cgd sync nwscons branch with changes in -current as of July 21, 1997
 1.4.2.1  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.5.4.2  17-Jul-1997  jtk use locator defines in "locators.h" to index cf_loc[]
 1.5.4.1  17-Jul-1997  jtk file tlsb.c was added on branch alpha-nwscons on 1997-07-17 01:27:23 +0000
 1.5.2.1  04-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.17.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.19.14.1  21-Jun-2001  nathanw Catch up to -current.
 1.19.2.1  23-Apr-2001  bouyer Sync with HEAD.
 1.21.2.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.21.2.1  03-Aug-2001  lukem update to -current
 1.22.2.3  03-Jan-2003  thorpej Sync with HEAD.
 1.22.2.2  18-Oct-2002  nathanw Catch up to -current.
 1.22.2.1  12-Jul-2001  nathanw file tlsb.c was added on branch nathanw_sa on 2002-10-18 02:34:34 +0000
 1.26.2.3  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.26.2.2  21-Sep-2004  skrll Fix the sync with head I botched.
 1.26.2.1  18-Sep-2004  skrll Sync with HEAD.
 1.28.2.2  03-Sep-2007  yamt sync with head.
 1.28.2.1  21-Jun-2006  yamt sync with head.
 1.31.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.32.58.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.32.52.1  28-Apr-2009  skrll Sync with HEAD.
 1.32.44.1  04-May-2009  yamt sync with head.
 1.34.10.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.34.4.1  12-Jun-2011  rmind sync with head
 1.36.6.1  18-Feb-2012  mrg merge to -current.
 1.36.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.36.2.1  17-Apr-2012  yamt sync with head
 1.37.10.1  18-May-2014  rmind sync with head
 1.37.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.38.44.2  22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.38.44.1  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.39.2.1  01-Aug-2021  thorpej Sync with HEAD.
 1.40.2.1  03-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed