Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/sparc64/dev/psychovar.h
RevisionDateAuthorComments
 1.21  07-Dec-2013  nakayama Timecounter's tc_get_timecount requires only 32-bit (u_int), so
omit unnecessary upper 32-bit read from STICK counter.
 1.20  22-Aug-2013  nakayama Handle US-IIe's STICK counter as 64-bit explicitly to fix a hang at
boot after about 6.5 minutes on 32-bit kernel.
 1.19  20-Aug-2013  macallan support UltraSPARC-IIe STICK counter as time base
 1.18  02-Jun-2011  christos branches: 1.18.2; 1.18.12; 1.18.16;
split auxio, ebus, psycho, sab.
 1.17  09-Dec-2008  nakayama branches: 1.17.6; 1.17.8; 1.17.12;
Fix CardBus, PCI-PCI bridge support borked in previous commit.
 1.16  07-Dec-2008  mrg a few clean up/rearrange changes, somewhat inspired from openbsd's
schizo.c:

- rename pp_busnode{} -> spc_busnode{}, and move it to
sparc_pci_chipset{}

- move public pci functions pci_conf_read(), pci_conf_write() and
pci_intr_establish() into psycho.c, renaming them in the process,
and add pointers through sparc_pci_chipset{} to access them.
as part of this, add PDB_INTMAP and PDB_CONF debug options to
psycho.c

- move and rename sparc64 private pci_find_ino() into
sparc_pci_chipset{}, like the above

- update psycho_alloc_chipset() to set the new 4 function members


no functional change intended. XXX: not tested on cardbus.
 1.15  29-May-2008  mrg branches: 1.15.4; 1.15.6;
remove clause #3 from my license where there are no other
copyright holders involved.
 1.14  13-Feb-2006  cdi branches: 1.14.68; 1.14.70; 1.14.72; 1.14.74;
ANSIfy: u_intN_t -> uintN_t, remove __P(), fix function definitions.
 1.13  11-Dec-2005  christos branches: 1.13.2; 1.13.4; 1.13.6;
merge ktrace-lwp.
 1.12  21-Jan-2004  petrov branches: 1.12.16;
For pci devices without ofw mapping find ino by pci bus/slot/device
information, from OpenBSD.
 1.11  03-May-2003  wiz branches: 1.11.2;
DMA, not dma nor Dma.
 1.10  21-Apr-2003  martin Connect the front panel power button on psycho based machines to sysmon's
/dev/power.

XXX - due to the way interrupt handling is structured we have no easy
way to defer clearing the button interrupt until the sysmon callback
has happened and the event is dispatched. We clear it imediately on
return from the interrupt handler. This means we get an interrupt storm
until the button is released, and then start to handle it.
This needs to be fixed! (But with the default application for the power
button does not make a user visible difference.)
 1.9  22-Mar-2003  nakayama PCI-CardBus bridge support for sparc64:
- handle devices which has no OBP node.
- move PCI latency-timer initialization from pci_intr_map to
pci_enumerate_bus.
- make PCI bus free space extents for cardbus devices.
- fix PCI config space map size.
- some code integrations.
 1.8  20-Jun-2002  eeh 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.7  20-Mar-2002  eeh branches: 1.7.4; 1.7.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.6  20-Jul-2001  eeh branches: 1.6.6;
PCI overhaul.
 1.5  06-Mar-2001  mrg branches: 1.5.2;
rework pci_attach_hook() to just deal with the INO, not the full
interrupt number. properly find interrupts for the E250. modify
pci_intr_map() accordingly. retire psycho_intr_map(). deal with
INO values upto 0x3f, not upto 0x32. restructure sabre_init() and
psycho_init() to be more similar, and display each psycho's IGN.
psycho_intr_establish() deals with INO upto 0x3f, values from 0x32
and higher get 0 for IPL.

tested on E250 & U5.
 1.4  18-Jul-2000  pk branches: 1.4.2;
Set up register bank sharing bwteen psycho A & B based on matching
physical addresses. Allocate IOMMU state separately and refer to it
from both psycho_softc's.
 1.3  24-May-2000  eeh branches: 1.3.4;
Use the PCI function code to distinguish simba bus A from bus B instead
of the current hack.
 1.2  10-Apr-2000  mrg - UltraSPARC IIi does not have streaming buffers; don't try to find it's
diag regsiter to work out why the (non-existant) strbufs don't work.
- check for malloc failure in _all_ places.
- setup the PCI control register as recommended in the IIi users manual.
 1.1  04-Jun-1999  mrg branches: 1.1.2; 1.1.4;
PCI driver for the UltraSPARC. this only works on the Ultra5/10 machines
(`SUNW,sabre') for now, and it doesn't really quite work there yet anyway.
the bus space/dma code is cloned from the sbus driver. the IOMMU code also
is cloned from the sbus code, but separated out into iommu.c so that we can
share it with the sbus driver. hopefully, much of the bus space/dma code
can also be re-shared with the sbus driver and the ebus driver but for now
these copies will do.

support for the real UltraSPARC PCI (`SUNW,psycho') is unwritten, though
most of this code is shared with it.

we can probe PCI config space and try to configue devices, but interrupts
don't work yet...
 1.1.4.2  12-Mar-2001  bouyer Sync with HEAD.
 1.1.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.1.2.1  21-Jun-1999  thorpej Sync w/ -current.
 1.3.4.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.4.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.5.2.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.5.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.1  03-Aug-2001  lukem update to -current
 1.6.6.3  01-Aug-2002  nathanw Catch up to -current.
 1.6.6.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.6.6.1  20-Jul-2001  nathanw file psychovar.h was added on branch nathanw_sa on 2002-04-01 07:43:05 +0000
 1.7.6.1  21-Jun-2002  lukem Pull up revision 1.8 (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.7.4.1  17-Jul-2002  gehenna catch up with -current.
 1.11.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.11.2.1  03-Aug-2004  skrll Sync with HEAD
 1.12.16.1  21-Jun-2006  yamt sync with head.
 1.13.6.1  22-Apr-2006  simonb Sync with head.
 1.13.4.1  09-Sep-2006  rpaulo sync with head
 1.13.2.1  18-Feb-2006  yamt sync with head.
 1.14.74.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.14.72.1  04-May-2009  yamt sync with head.
 1.14.70.1  04-Jun-2008  yamt sync with head
 1.14.68.2  17-Jan-2009  mjf Sync with HEAD.
 1.14.68.1  02-Jun-2008  mjf Sync with HEAD.
 1.15.6.1  19-Jan-2009  skrll Sync with HEAD.
 1.15.4.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.17.12.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.17.8.1  06-Jun-2011  jruoho Sync with HEAD.
 1.17.6.1  12-Jun-2011  rmind sync with head
 1.18.16.2  18-May-2014  rmind sync with head
 1.18.16.1  28-Aug-2013  rmind sync with head
 1.18.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.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")

RSS XML Feed