Commit Graph

34 Commits

Author SHA1 Message Date
marcel
df20e17353 Add support for the BUS_CONFIG_INTR() method to the platform and to
openpic(4). Make use of it in ocpbus(4). On the MPC85xxCDS, IRQ0:4
are active-low.
2008-03-07 22:08:43 +00:00
marcel
ab259d0a33 Add PIC support for IPIs. When registering an interrupt handler,
the PIC also informs the platform at which IRQ level it can start
assigning IPIs, since this can depend on the number of IRQs
supported for external interrupts.
2008-02-12 18:14:46 +00:00
marcel
ad8ce572c1 Apply missing s/rv/res/g in previous commit. 2007-12-21 00:23:23 +00:00
jhb
de6536e34d MFamd64/ia64/i386: Only set the rman bus tags and handles in
bus_activate_resource() methods instead of splitting it up between
bus_alloc_resource() and bus_activate_resource().

Glanced at by:	marcel
2007-12-20 21:42:43 +00:00
marcel
c932130a31 Redefine bus_space_tag_t on PowerPC from a 32-bit integral to
a pointer to struct bus_space. The structure contains function
pointers that do the actual bus space access.

The reason for this change is that previously all bus space
accesses were little endian (i.e. had an explicit byte-swap
for multi-byte accesses), because all busses on Macs are little
endian.
The upcoming support for Book E, and in particular the E500
core, requires support for big-endian busses because all
embedded peripherals are in the native byte-order.

With this change, there's no distinction between I/O port
space and memory mapped I/O. PowerPC doesn't have I/O port
space. Busses assign tags based on the byte-order only.
For that purpose, two global structures exist (bs_be_tag and
bs_le_tag), of which the address can be taken to get a valid
tag.

Obtained from: Juniper, Semihalf
2007-12-19 18:00:50 +00:00
marcel
b031fef0fe Revamp the interrupt handling in support of INTR_FILTER. This includes:
o  Revamp the PIC I/F to only abstract the PIC hardware. The
   resource handling has been moved to nexus, where it belongs.
o  Include EOI and MASK+EOI methods to the PIC I/F in support of
   INTR_FILTER.
o  With the allocation of interrupt resources and setup of
   interrupt handlers in the common platform code we can delay
   talking to the PIC hardware after enumeration of all devices.
   Introduce a call to powerpc_intr_enable() in configure_final()
   to achieve that and have powerpc_setup_intr() only program the
   PIC when !cold.
o  As a consequence of the above, remove all early_attach() glue
   from the OpenPIC and Heathrow PIC drivers and have them
   register themselves when they're found during enumeration.
o  Decouple the interrupt vector from the interrupt request line.
   Allocate vectors increasingly so that they can be used for
   the intrcnt index as well. Extend the Heathrow PIC driver to
   translate between IRQ and vector. The OpenPIC driver already
   has the support for vectors in hardware.

Approved by: re (blanket)
2007-08-11 19:25:32 +00:00
marcel
c5c9826f14 Turn this into an uart(4) bus attachment. 2006-07-26 19:39:55 +00:00
marcel
6fc546f8cd Repocopy from: src/sys/powerpc/psim/sio_iobus.c
to:	src/sys/powerpc/psim/uart_iobus.c

Meister: simon@
2006-07-26 19:29:11 +00:00
imp
897af5156b Set the rid for any resource obtained from rman_resource_reserve. 2006-04-20 04:19:10 +00:00
grehan
1e312e1197 ata_generic_hw takes a dev as a parameter, not a channel. 2005-11-11 09:36:38 +00:00
nyan
0fce92f5c4 Remove bus_{mem,p}io.h and related code for a micro-optimization on i386
and amd64.  The optimization is a trivial on recent machines.

Reviewed by:	-arch (imp, marcel, dfr)
2005-05-29 04:42:30 +00:00
ssouhlal
28f1c84813 Unbreak the powerpc build by fixing some ATA constants that were renamed.
Approved by:	grehan (mentor)
2005-04-12 15:59:54 +00:00
grehan
a6baad1fc1 Introduce channel-level setmode newbus method.
Thanks to sos for the code re-org that allowed this.
2005-04-01 03:28:55 +00:00
grehan
c68e3ffea6 Catch up with ATA-mkIII 2005-03-31 01:57:51 +00:00
grehan
5b55ad0716 Long overdue sync-up with ATA code 2005-03-15 11:41:05 +00:00
imp
f0bf889d0d /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
marius
12f47e5a96 - Use the rman_get_* functions instead of reaching into struct resource.
- Remove __RMAN_RESORUCE_VISIBLE again. It's no longer required either
  because of the above change or because struct rman is no longer hidden.

Reviewed by:	grehan
Tested by:	cross-compile on i386
2004-08-11 21:09:40 +00:00
grehan
9583041d2c Catch up with __RMAN_RESOURCE_VISIBLE change 2004-07-01 07:59:08 +00:00
grehan
c157e8aff4 Move soft structs back to C files to avoid exposing rman fields
to clients now that it's protected with __RMAN_RESOURCE_VISIBLE
2004-07-01 07:56:56 +00:00
grehan
976ffba921 Catchup to now-required <sys/module.h> for PowerPC 2004-06-25 13:42:48 +00:00
njl
05a1f56fc9 Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by:	Mark Santcroos <marks@ripe.net>
Reviewed by:	imp, dfr, bde
2004-03-17 17:50:55 +00:00
grehan
769af6f7d4 - fixed trailing whitespace and indentation
- removed unused variable to fix compile warning
2004-02-11 07:58:43 +00:00
grehan
447c6cb567 - add a description of what .gdbinit should contain.
- add an option for the output device in the hope that this can
  be made non-blocking at some stage.
- define an alias for the disk device, required by dev/ofw/ofw_disk.c
- shift iobus to 0x9000000 so as not to clash with the OpenFirmware
  entry point of 0x8000400 when address decoding.
- down-tone comments about the disk dev config :-)
2004-02-04 13:23:05 +00:00
grehan
8e1d4bce98 Catch up with ATA UMA changes 2004-01-15 23:52:32 +00:00
grehan
f31f435513 Make the OpenPic driver bus-independent, with attachments for
the MacIO chip and PSIM's IOBus. Bus-specific drivers should
use the identify method to attach themselves to nexus so
interrupt can be allocated before the h/w is probed. The
'early attach' routine in openpic is used for this stage
of boot. When h/w is probed, the openpic can be attached
properly. It will enable interrupts allocated prior to
this.
2004-01-13 11:24:36 +00:00
grehan
4208dc0071 Catch up with ATA changes by including <sys/sema.h> 2004-01-13 10:54:35 +00:00
grehan
a7a354cc2b ATAng requires <sys/taskqueue.h> 2003-09-22 11:55:02 +00:00
grehan
f1e6671946 Remove reference to ata resource in print_child. 2003-04-18 02:47:12 +00:00
grehan
2a6899a008 Remove sparse address hack. 2003-04-18 02:46:12 +00:00
grehan
47fb20d3f1 Catch up with ATAng changes 2003-02-24 03:12:30 +00:00
imp
cf874b345d Back out M_* changes, per decision of the TRB.
Approved by: trb
2003-02-19 05:47:46 +00:00
alfred
bf8e8a6e8f Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
2003-01-21 08:56:16 +00:00
grehan
0d5519ef7a Removed unnecessary includes and brought up to date with ata
common code by adding lock functions.
2003-01-18 11:46:50 +00:00
grehan
22d2979d2d Support files and a h/w tree description for the PSIM ppc simulator
Approved by: benno
2002-09-19 04:57:10 +00:00