Commit Graph

60 Commits

Author SHA1 Message Date
martin
d65cbab3ff 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.)
2003-04-21 12:14:19 +00:00
thorpej
747aa1e024 Use PAGE_SIZE rather than NBPG. 2003-04-01 16:34:58 +00:00
nakayama
aad45dd3ad 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.
2003-03-22 06:33:09 +00:00
pk
725a6aebf7 Remove the `flags' argument from bus_intr_establish(). 2002-12-10 13:44:47 +00:00
pk
68817a2024 bus_intr_establish() signature change.
The additional `fast trap' argument is ignored in these drivers.
BUS_INTR_ESTABLISH_FASTTRAP and BUS_INTR_ESTABLISH_SOFTINTR are no longer used.
2002-12-10 12:24:05 +00:00
thorpej
4bf871a755 Add trailing ; to CFATTACH_DECL. 2002-10-02 16:02:08 +00:00
thorpej
34c3944c08 Use CFATTACH_DECL(). 2002-10-01 18:40:06 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
eeh
fb5318516e The FFB interrupt mapping registers need to compare IGN as well as INO since
they are totally programmable.
2002-06-21 02:48:42 +00:00
eeh
5c6bf5ad03 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.
2002-06-20 18:26:23 +00:00
eeh
c08cac5019 Use the correct bus handle to generate the handle for the streaming buffers. 2002-06-12 00:43:22 +00:00
eeh
a48bd3e3b4 Make the PCI code actually work. 2002-05-16 20:28:33 +00:00
thorpej
204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
eeh
91c28a3626 Add code to attach ofpci. 2002-05-06 22:29:22 +00:00
eeh
47ef6a5146 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.
2002-03-20 18:54:46 +00:00
eeh
2db5a5e82f Get PCI working with the new bus_space*. 2002-03-15 07:06:23 +00:00
chs
759dc33636 make this compile without DDB. 2002-03-08 06:03:50 +00:00
martin
1b4393c5db Cast/format fix to make this build on 32bit kernels. 2002-02-12 20:50:47 +00:00
eeh
424177d21b Provide more info in psycho_ue. 2002-02-08 20:04:14 +00:00
eeh
79cc3b0d73 Set the interrupt retry timer to 0xff. 2002-01-14 16:30:31 +00:00
eeh
bb99dc52c7 Manage both streaming caches on psycho/psycho+. 2001-10-07 20:30:40 +00:00
eeh
98ecb5b215 getprop* -> PROM_getprop* 2001-09-26 20:53:05 +00:00
eeh
766a9b8c9c Change bus_space_mmap() signature to the official one. 2001-09-24 23:49:31 +00:00
eeh
a7283de29c Be a bit more elaborate with UE DMA errors. 2001-09-15 07:10:04 +00:00
eeh
9d636228e1 Sun Blade 100 support (and some psycho fixes from Jason Wright). 2001-09-10 16:17:06 +00:00
eeh
1fead733d9 PCI overhaul. 2001-07-20 00:07:12 +00:00
mrg
f42ff7ccae minor cleanups. 2001-05-18 22:01:19 +00:00
mrg
af58b235e0 adapt to systems with out interrupt-map & interrupt-map-mask properties. 2001-03-21 01:33:47 +00:00
mrg
f1d2503dc5 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.
2001-03-06 08:09:16 +00:00
mrg
c452d0b725 adjust some comments to reality. 2001-02-28 15:21:08 +00:00
eeh
3daccde8d4 Print out more useful data if there are interrupt issues. 2001-02-11 00:02:58 +00:00
fvdl
95ed1f82c4 Make gcc like a cast. 2000-12-04 20:29:34 +00:00
fvdl
2fb588e51d Warning police. Mostly useless format warnings. Switch Makefile for
kernel compiles to the warning flags that other ports also use.
2000-12-04 16:01:18 +00:00
mrg
0485f611f1 remove dead debugging code. 2000-11-18 03:49:38 +00:00
mrg
d66f9f3321 add a cast to fix a warning. 2000-10-19 05:38:35 +00:00
pk
073e24cd1b 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.
2000-07-18 11:35:03 +00:00
pk
9de310aebe Use per-PBM control/status register addresses provided by the PROM.
Print version/implementation info.
2000-07-14 15:13:35 +00:00
pk
7e8f67ad97 No need to fetch the psycho's own registers as thet are already passed
down from the parent bus.  Also account for the difference in `reg'
properties in psycho vs sabre chips.
2000-07-12 21:49:44 +00:00
pk
406e0f779f 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.
2000-07-09 20:57:41 +00:00
mrg
4b21f66d57 work around a bug passing arguments to iommu_dvma_load_raw() 2000-07-07 12:53:29 +00:00
pk
f6d8b8e963 We want to index the PCI `interrupt clear' registers with the Interrupt
Number Offset.  (this stuff needs a serious cleanup).
2000-07-05 12:11:59 +00:00
eeh
58c36586cd Use the same IPLs as everyone else. 2000-07-03 17:42:37 +00:00
mrg
4d14e81c0b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:37:53 +00:00
mrg
2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
simonb
889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
eeh
4ffba8be2a Fix uninitialized pointer bug. 2000-06-19 22:29:15 +00:00
eeh
a273b333a3 Support large (>1 page) DVMA maps so UltraSPARC IIi will work. 2000-06-08 16:17:29 +00:00
eeh
ca743bac9a Use the PCI function code to distinguish simba bus A from bus B instead
of the current hack.
2000-05-24 20:27:52 +00:00
mrg
0cd44feb0e fix if/ifdef mistake 2000-05-17 10:28:14 +00:00