Home | History | Annotate | Download | only in sbus
History log of /src/sys/dev/sbus/esp_sbus.c
RevisionDateAuthorComments
 1.57  28-Mar-2022  riastradh sys: Split struct device into a private device_impl.h.

Include this only inside autoconf itself, and a few files that abuse
autoconf in ways I can't confidently make easy fixes for.

XXX kernel ABI change requires bump -- no more use of struct device
internals allowed, previously done by some drivers
 1.56  23-Feb-2021  mrg introduce DDB_END_CMD and replace more than 20 copies of the same
list of NULLs and 0. idea from rillig@.

all touched ports built, several booted.
 1.55  10-Nov-2019  chs branches: 1.55.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.54  06-Feb-2018  mrg branches: 1.54.4;
db_esp() has a missing {} issue in debug code.
 1.53  18-Oct-2014  snj src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.52  12-Sep-2013  martin Remove unused variable
 1.51  17-Sep-2009  tsutsui branches: 1.51.12; 1.51.22; 1.51.26;
Remove struct sbusdev and related functions sbus_establish() and sbusreset().
They are derived from 4.4BSD/sparc and have been there since initial import
of NetBSD/sparc in 1993, but the struct sbusdev is almost unused for years,
nothing calls sbusreset(), and all (*sd->sd_reset)() functions look bogus.

Suggested by mrg@ and martin@, and tested on SS1+ and SS20.
 1.50  08-Sep-2009  tsutsui sbus_establish() should take device_t self for the device itself,
not device_t parent even if sbus is grandparent of the device,
otherwise (*sd_reset)() callbacks will be called with an wrong device_t.
Even in such case, sbus_establish() looks for an sbus though device tree.
XXX: (*sd_reset)() isn't called anyway, and these stuff seems really bogus.
 1.49  08-Sep-2009  tsutsui Fix botch on device_t/softc split caused by awful casts around
registration of (*sd_reset)(device_t) in struct sbusdev via sbus_establish().

XXX: (*sd_reset)() in struct sbusdev seems called from only sbusreset(),
XXX: but there is no function which calls sbusreset()???
 1.48  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.47  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.46  28-Apr-2008  martin branches: 1.46.14;
Remove clause 3 and 4 from TNF licenses
 1.45  23-Apr-2008  tsutsui branches: 1.45.2;
Since device_t is split out from softc, we have to allocate struct device
separately after allocating struct lsi64854_softc to fake it. (untested)

"lsc->sc_dev is not initialized" is pointed out by martin@.
 1.44  13-Apr-2008  tsutsui branches: 1.44.2;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.43  05-Apr-2008  cegger use aprint_*_dev and device_xname
 1.42  08-Mar-2008  mjacob Don't panic if you can't find the corresponding DMA device- just don't
configure the device.

It turns out that if you have a SUNW,fas card installed, the assumption
that dma devices pair with esp devices is then broken, but that's a problem
to fix another day.
 1.41  13-Feb-2008  simonb branches: 1.41.2; 1.41.6;
KNF previous change.
 1.40  13-Feb-2008  dogcow make it compile.
 1.39  12-Feb-2008  joerg Introduce device_find_by_xname and device_find_by_driver_unit to replace
alldevs iterations all over src.

Patch discussed with and improved on suggestioned from cube@.
 1.38  19-Oct-2007  ad branches: 1.38.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.37  22-Sep-2007  martin branches: 1.37.4;
Add a ddb command table at first attach to register "mach esp".
 1.36  04-Mar-2007  christos branches: 1.36.2; 1.36.14; 1.36.16;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.35  28-Mar-2006  thorpej branches: 1.35.14;
Use device_unit().
 1.34  25-Mar-2006  thorpej Use device_parent().
 1.33  11-Dec-2005  christos branches: 1.33.4; 1.33.6; 1.33.8; 1.33.10; 1.33.12;
merge ktrace-lwp.
 1.32  01-Jun-2005  jdc branches: 1.32.2;
Add const (catching up with additions to MI ddb code).
 1.31  27-Feb-2005  perry nuke trailing whitespace
 1.30  04-Feb-2005  perry de-__P
 1.29  17-Mar-2004  pk branches: 1.29.8; 1.29.10;
Rename PROM_getprop*() => prom_getprop*().
 1.28  22-Feb-2003  tsutsui branches: 1.28.2;
hz -> Hz
 1.27  10-Dec-2002  pk Remove the `flags' argument from bus_intr_establish().
 1.26  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.25  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.24  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.23  27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.22  25-Sep-2002  mycroft Additional fixes to make 16 targets work on FAS366.
 1.21  23-Aug-2002  thorpej Use the structures defined in bsd_openprom.h for "reg", "range",
and "intr" properties, rather than having identical-except-for-names
sbus_* and iommu_* versions.
 1.20  21-Mar-2002  eeh branches: 1.20.2; 1.20.4; 1.20.6;
Fixup attachment code to use sbus_promaddr_to_handle() and not specify
BUS_SPACE_MAP_LINEAR.
 1.19  11-Mar-2002  pk Get rid of `bus_type_t' and use BUS_ADDR() (in sbus_bus_map()) to construct
a `bus_addr_t' to pass on to bus_space_map().

Drop `va' argument from sbus_bus_map(); it should not be used by MI Sbus
drivers.
 1.18  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.17  13-Nov-2001  lukem add RCSIDs
 1.16  26-Sep-2001  eeh getprop* -> PROM_getprop*
 1.15  11-Sep-2001  pk The `ESC' DMA chip must be reset before we can access the esp registers.
 1.14  25-Apr-2001  bouyer branches: 1.14.2; 1.14.4;
Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.13  29-Mar-2001  petrov fas support added
 1.12  03-Dec-2000  eeh branches: 1.12.2;
Turn on TAG QUEUE support and add some debug stuff.
 1.11  09-Jul-2000  pk Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
 1.10  05-Jun-2000  nisimura branches: 1.10.2;
Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
 1.9  04-Jun-2000  cgd Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.8  11-Jan-2000  pk branches: 1.8.2;
Remove old-style boot device recognition.
 1.7  21-Nov-1999  pk Check presence of Sbus interrupt properties before using them.
Only one case is known to trigger this omission: a Sparc Classic
configured as X terminal.
 1.6  26-Mar-1999  mjacob branches: 1.6.8; 1.6.14;
Add support for the PTI SBS430. It's a FAS200 type chip- it's a bit funky
in that the registers aren't spread by a longword like all the other SBus/ESP
cards. Otherwise it's much the same. It'll make Brad Salai happy.
 1.5  19-Nov-1998  thorpej Adapt to the new scsipi_adapter interface.
 1.4  10-Oct-1998  thorpej Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter. This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
 1.3  15-Sep-1998  pk bootpath check needs to keep checking for two formats.
 1.2  29-Aug-1998  pk Adjust for some small changes in lsi64854 back-end driver.
 1.1  29-Aug-1998  pk Use bus_space_*() to access device registers.
Add `esp' and `le' DMA engine.
 1.6.14.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6.8.5  21-Apr-2001  bouyer Sync with HEAD
 1.6.8.4  08-Dec-2000  bouyer Sync with HEAD.
 1.6.8.3  27-Nov-2000  bouyer Make it work again.
 1.6.8.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.6.8.1  19-Oct-1999  thorpej Adapt for scsipi API changes.
 1.8.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.10.2.1  19-Jul-2000  mrg pull up sparc/sparc64 bus_intr_establish() changes, necessary for sparc64
(originally done by pk, approved by thorpej):

>Add a `device class' interrupt level argument (from machine/intr.h)
>to bus_interrupt_establish().
>
>It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
>level to devices in PCI slots.
 1.12.2.10  11-Dec-2002  thorpej Sync with HEAD.
 1.12.2.9  18-Oct-2002  nathanw Catch up to -current.
 1.12.2.8  27-Aug-2002  nathanw Catch up to -current.
 1.12.2.7  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.12.2.6  08-Jan-2002  nathanw Catch up to -current.
 1.12.2.5  14-Nov-2001  nathanw Catch up to -current.
 1.12.2.4  08-Oct-2001  nathanw Catch up to -current.
 1.12.2.3  21-Sep-2001  nathanw Catch up to -current.
 1.12.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.12.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.14.4.1  01-Oct-2001  fvdl Catch up with -current.
 1.14.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.14.2.5  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.14.2.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.14.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.14.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.14.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.20.6.2  22-Nov-2002  tron Pull up revision 1.22 (requested by martin in ticket #948):
Additional fixes to make 16 targets work on FAS366.
 1.20.6.1  22-Nov-2002  tron Pull up revision 1.21 (requested by martin in ticket #948):
Use the structures defined in bsd_openprom.h for "reg", "range",
and "intr" properties, rather than having identical-except-for-names
sbus_* and iommu_* versions.
 1.20.4.1  29-Aug-2002  gehenna catch up with -current.
 1.20.2.1  26-Mar-2002  eeh Match and attach through devprops.
 1.28.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.28.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.28.2.4  04-Feb-2005  skrll Sync with HEAD.
 1.28.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.28.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.28.2.1  03-Aug-2004  skrll Sync with HEAD
 1.29.10.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.29.10.1  12-Feb-2005  yamt sync with head.
 1.29.8.1  29-Apr-2005  kent sync with -current
 1.32.2.5  17-Mar-2008  yamt sync with head.
 1.32.2.4  27-Feb-2008  yamt sync with head.
 1.32.2.3  27-Oct-2007  yamt sync with head.
 1.32.2.2  03-Sep-2007  yamt sync with head.
 1.32.2.1  21-Jun-2006  yamt sync with head.
 1.33.12.2  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.33.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.33.10.1  19-Apr-2006  elad sync with head.
 1.33.8.1  01-Apr-2006  yamt sync with head.
 1.33.6.1  22-Apr-2006  simonb Sync with head.
 1.33.4.1  09-Sep-2006  rpaulo sync with head
 1.35.14.1  12-Mar-2007  rmind Sync with HEAD.
 1.36.16.2  23-Mar-2008  matt sync with HEAD
 1.36.16.1  06-Nov-2007  matt sync with HEAD
 1.36.14.2  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.36.14.1  02-Oct-2007  joerg Sync with HEAD.
 1.36.2.2  23-Oct-2007  ad Sync with head.
 1.36.2.1  09-Oct-2007  ad Sync with head.
 1.37.4.1  25-Oct-2007  bouyer Sync with HEAD.
 1.38.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.41.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.41.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.41.2.1  24-Mar-2008  keiichi sync with head.
 1.44.2.1  18-May-2008  yamt sync with head.
 1.45.2.4  11-Mar-2010  yamt sync with head
 1.45.2.3  16-Sep-2009  yamt sync with head
 1.45.2.2  16-May-2009  yamt sync with head
 1.45.2.1  16-May-2008  yamt sync with head.
 1.46.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.51.26.1  18-May-2014  rmind sync with head
 1.51.22.2  03-Dec-2017  jdolecek update from HEAD
 1.51.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.51.12.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.54.4.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.55.8.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed