Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/sparc64/dev/iommuvar.h
RevisionDateAuthorComments
 1.26  01-Dec-2023  thorpej Use vmem(9) rather than extent(9) to manage DVMA mappings.
 1.25  24-Jul-2021  andvar Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
 1.24  26-Apr-2021  mrg iommu_enter() and iommu_remove() are static to iommu.c.
 1.23  09-Feb-2019  mrg branches: 1.23.16;
on tomatillo unload the map before flushing the iommu, instead of
the reverse. from opensolaris.
 1.22  03-Sep-2015  palle branches: 1.22.18;
sun4v: iommu setup seems to work now - device detection is now possible - parts from OpenBSD - ok mrg@, martin@
 1.21  25-Mar-2012  mrg branches: 1.21.2; 1.21.16;
replace splhigh() usage with an IPL_HIGH mutex.
 1.20  20-Mar-2011  mrg branches: 1.20.4; 1.20.8;
add a new is_flags member to strut iommu_state. add two flags:
IOMMU_FLUSH_CACHE - extra flushes needed for some pyro
IOMMU_TSBSIZE_IN_PTSB - different ptsb assignment for pyro

partly from openbsd.
 1.19  16-Mar-2011  mrg revert the iommu changes for now. my U60 doesn't like them.
 1.18  16-Mar-2011  mrg various changes to adapt for Fire controller support, based upon the
openbsd code to do the same:

- add the tsb size into the ptsb bits
- avoid setting tsbsize in the CR
- disable IDB_INFO for now; it crashes
- add new macros for reading/writing IOMMU registers (need to use
these more regularly across the whole file)
- add a missing membar #lookaside
- add support for flushing the pyro(4) caches
- extend struct iommureg to include everything pyro
 1.17  18-Oct-2008  nakayama branches: 1.17.16; 1.17.22;
It is wasteful that reconstructing arguments for inserting the pointer
to streaming buffers in each bus_dma functions on sbus/psycho layer.

Use iommu functions directly with storing the pointer into (unused)
_dm_cookie at bus_dmamap_create time.
 1.16  29-May-2008  mrg branches: 1.16.4;
remove clause #3 from my license where there are no other
copyright holders involved.
 1.15  04-Mar-2007  christos branches: 1.15.40; 1.15.42; 1.15.44; 1.15.46;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.14  13-Feb-2006  cdi branches: 1.14.20;
ANSIfy: u_intN_t -> uintN_t, remove __P(), fix function definitions.
 1.13  11-Feb-2006  cdi ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.
 1.12  20-Jun-2002  eeh branches: 1.12.22; 1.12.34; 1.12.36; 1.12.38;
Overhaul streaming buffer handling:

sysio streaming buffer flushes write a single 8-byte aligned 8-byte
value.

psycho streaming buffer flushes write a 64-byte aligned 64-byte block.

So separate out the streaming buffers into their own structure and pass those
in to all iommu operations. This also means we only flush the correct
streaming buffer for psycho rather than needing to flush both just in case.
 1.11  20-Mar-2002  eeh branches: 1.11.4; 1.11.6;
Overhaul bus space.

bus_space_handle_t now holds an address and two ASIs, one for normal accesses
and one for streaming accesses. This allows to map individual handles
different ways, so some can use MMU bypass accesses and others use virtual
addresses. bus_space_map() will now create handles that use bypass accesses
unles BUS_SPACE_MAP_LINEAR is passed in. So only pass in BUS_SPACE_MAP_LINEAR
if you absolutely *need* to use bus_space_vaddr(). This removes at least one
extra level of indirection and should reduce TLB misses.

32-bit kernels have problems accessing 64-bit addresses, so they always use
virtual addresses.
 1.10  07-Feb-2002  eeh Overhaul iommu_dvmamap_load_raw().
 1.9  07-Oct-2001  eeh branches: 1.9.4;
Manage both streaming caches on psycho/psycho+.
 1.8  15-Sep-2001  eeh Added iommu_extract() for debug purposes.
Anyone caught using it for anything other than debug will be shot.
 1.7  20-Jul-2001  eeh branches: 1.7.2;
PCI overhaul.
 1.6  07-Jul-2000  mrg branches: 1.6.4;
work around a bug passing arguments to iommu_dvma_load_raw()
 1.5  18-Jun-2000  mrg branches: 1.5.2;
iommu_flush becomes iommu_strbuf_flush cuz that's what it does.
 1.4  17-May-2000  eeh branches: 1.4.2;
Add support for bus_dma_load_raw() so the le driver will work again.
 1.3  22-Apr-2000  mrg whole bunch of changes:
- merge IOMMU DVMA code from sbus/psycho into iommu.c. this code was
identical and a few minor inconsistencies had crept in. this way
keeps them all in sync.
- with this code gone from psycho, merge the psycho.c and psycho_bus.c
files. same with ebus/ebus_bus.c. delete the _bus.c files.
- add a _ds_boundary member to the dma segment structure, so that later
dma mappings can find this value.
- set _ds_boundary in machdep.c:_bus_dmamem_alloc().
- kill much dead code.
 1.2  20-Jun-1999  eeh branches: 1.2.2; 1.2.4;
Move the DVMA mapin/mapout functions from the SBus driver to the iommu driver.
 1.1  04-Jun-1999  mrg pull iommu code out of sbus code so we can share it with the PCI.
define some useful PCI macros.
 1.2.4.1  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.2.2.2  21-Jun-1999  thorpej Sync w/ -current.
 1.2.2.1  20-Jun-1999  thorpej file iommuvar.h was added on branch chs-ubc2 on 1999-06-21 01:02:31 +0000
 1.4.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.5.2.1  18-Jul-2000  mrg pullup the contents of -current arch/sparc64. this gives us significant
ultrasparc PCI support (ultra5, ultra10, AXi, and E250 tested so far),
plus many other small fixes. netbooting is now supported.
 1.6.4.5  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.4.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.4.3  16-Mar-2002  jdolecek Catch up with -current.
 1.6.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.4.1  03-Aug-2001  lukem update to -current
 1.7.2.2  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.7.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.9.4.4  01-Aug-2002  nathanw Catch up to -current.
 1.9.4.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.9.4.2  28-Feb-2002  nathanw Catch up to -current.
 1.9.4.1  07-Oct-2001  nathanw file iommuvar.h was added on branch nathanw_sa on 2002-02-28 04:12:11 +0000
 1.11.6.1  21-Jun-2002  lukem Pull up revision 1.12 (requested by eeh in ticket #337):
Overhaul streaming buffer handling:
sysio streaming buffer flushes write a single 8-byte aligned 8-byte
value.
psycho streaming buffer flushes write a 64-byte aligned 64-byte block.
So separate out the streaming buffers into their own structure and pass those
in to all iommu operations. This also means we only flush the correct
streaming buffer for psycho rather than needing to flush both just in case.
[Gets E220R working]
 1.11.4.1  17-Jul-2002  gehenna catch up with -current.
 1.12.38.1  22-Apr-2006  simonb Sync with head.
 1.12.36.1  09-Sep-2006  rpaulo sync with head
 1.12.34.1  18-Feb-2006  yamt sync with head.
 1.12.22.2  03-Sep-2007  yamt sync with head.
 1.12.22.1  21-Jun-2006  yamt sync with head.
 1.14.20.1  12-Mar-2007  rmind Sync with HEAD.
 1.15.46.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.15.44.1  04-May-2009  yamt sync with head.
 1.15.42.1  04-Jun-2008  yamt sync with head
 1.15.40.2  17-Jan-2009  mjf Sync with HEAD.
 1.15.40.1  02-Jun-2008  mjf Sync with HEAD.
 1.16.4.1  19-Oct-2008  haad Sync with HEAD.
 1.17.22.1  06-Jun-2011  jruoho Sync with HEAD.
 1.17.16.1  21-Apr-2011  rmind sync with head
 1.20.8.1  05-Apr-2012  mrg sync to latest -current.
 1.20.4.1  17-Apr-2012  yamt sync with head
 1.21.16.1  22-Sep-2015  skrll Sync with HEAD
 1.21.2.1  03-Dec-2017  jdolecek update from HEAD
 1.22.18.1  10-Jun-2019  christos Sync with HEAD
 1.23.16.2  01-Aug-2021  thorpej Sync with HEAD.
 1.23.16.1  13-May-2021  thorpej Sync with HEAD.

RSS XML Feed