Commit Graph

547 Commits

Author SHA1 Message Date
pooka
3b19c32c1a KNF 2004-03-25 15:16:11 +00:00
pooka
75033bc71e replace terms ip1x and ip2x in comment 2004-03-25 15:08:57 +00:00
pooka
39a22bd417 Sprinkle some #ifdef MIPS3 to be able to compile the port without
including MIPS3 code.

for upcoming IP12
2004-03-25 15:06:37 +00:00
sekiya
e594b2f3d9 The lpt driver doesn't play nicely with the serial ports -- they share the
same interrupt, and something isn't quite right with the mace interrupt
dispatcher.  Disable for now.

Pointed out by Tillman Hodgson and confirmed by ozone on port-sgimips.
2004-03-25 00:53:58 +00:00
drochner
cf8b697c65 remove license clauses 3 and 4 from my cpoyright notices 2004-03-24 17:06:57 +00:00
sekiya
27be14d39c Checkpoint the GR2 wscons driver. Heavily derived from lonewolf@'s newport
driver.  Still some issues:

* framebuffer setup seems incomplete.  Some drawing primitives work 100%
  of the time, while others fail one in ten tries.  Perhaps my board is
  slightly broken, as the exact model as probed by ARCS seems to shift
  between Elan and XS24 from time to time.
* characters are drawn bottom-up rather than top-down (as the wsfont
  definitions expect).
2004-03-18 08:52:04 +00:00
sekiya
0ee588cc1c Add GR2. 2004-03-18 08:40:46 +00:00
sekiya
bf7ef66f3b Add console attach glue for GR2. 2004-03-18 08:40:24 +00:00
sekiya
a924cfbf24 Add register definitions and console prototype header for the SGI GR2 family
of framebuffers.
2004-03-18 08:39:17 +00:00
bjh21
dff5222d3a Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it.  This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111.  The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers.  To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned.  Thy just use rather more function pointers than before.  Tested
on i386 and (with a new host driver) acorn32.  Compiled on several other
affected architectures.
2004-03-13 17:31:33 +00:00
sekiya
4a4eccf833 Add int2_wait_fifo(), which will idle while awaiting a flag in the interrupt
controller to deassert.  Needed for the more interesting features of various
SGI framebuffers.
2004-03-09 14:05:09 +00:00
sekiya
64732fc9ae Print an informative message when unimpl_intr() is invoked, rather than panic(). 2004-03-06 07:50:56 +00:00
sekiya
d289507533 Blinkenlitzen for IP20 (Indigo). 2004-02-28 00:53:56 +00:00
wiz
f05e6f1a3a occured -> occurred. From Peter Postma. 2004-02-24 15:12:51 +00:00
sekiya
bb60b4d04f Correct descriptive comment (these routines are not used for r5ksc). 2004-02-22 03:23:54 +00:00
bjh21
fb330ce71b Remove pckbc_machdep_cnattach() -- it's no longer needed. 2004-02-19 01:03:45 +00:00
bjh21
5aca86918f Add a new MI attribute, pckbc_machdep_cnattach, and change pckbc_cnattach()
to only call pckbc_machdep_cnattach() if this is present.  This allows
pckbc_machdep_cnattach() to be omitted entirely on most ports, where it only
returns ENXIO anyway.

The devices with this attribute at the moment are pc(4) on i386 and bebox, and
pckbc on sparc, where pckbc_machdep_cnattach() mysteriously returns 0 rather
than ENXIO.
2004-02-14 14:33:28 +00:00
sekiya
ad76afdc86 de-__P. 2004-02-08 13:15:42 +00:00
sekiya
e03691c03d More newport driver tweaks:
* detect and store vc2 revision.  This is (likely) the important factor in
  determining the proper cursor offset, so add a bit of logic that does the
  right thing on my revision 0 vc2.  This will have to be determined
  empirically, revision by revision.
* take a stab at detecting framebuffer depth.  SGI does it quite differently,
  but their algorithm doesn't work, so we'll do it along the same lines as
  linux.
* implement newport_mmap() for use by X.  The necessary xsrc commits have been
  made (with the notable exception of the config/cf changes, which probably
  shouldn't go in until 4.4.0 has been imported).
2004-02-07 04:34:34 +00:00
lonewolf
8ecc24789a Remove unused dc_screens from the softc, the driver does not support multiple
screens.
2004-01-26 11:00:47 +00:00
sekiya
6595b5b178 Slight modifications to newport driver:
* Add resolution and depth variables to softc (for use in X driver, although
  depth detection is currently problematic),
* Store more information about various chip revisions,
* Implement ioctls to help the X driver detect device presence and geometry.
2004-01-26 07:12:33 +00:00
lonewolf
20f66016c1 Correctly read the board revision. 2004-01-22 14:15:51 +00:00
jdolecek
6c14651ea0 cleanup old lpt(4) attachment, and glue ppbus in so that they can coexist:
* lpt device is defined in MI place (dev/ppbus/files.ppbus), dev/ic/lpt.c
  is included there too; dev/ic/lpt.c is not included if ppbus is
  configured or if there is alternative platform lpt (like for pc532)
* g/c MD lpt definitions and custom puc/upc attachments,
  glue moved to conf/files and dev/pci/files.pci respectively; remove
  device lpt definition from dev/isa/files.isa
* add ppbus parport attribute, atppc device attachments, adjust plip and lpt
  glue
2004-01-20 19:58:00 +00:00
sekiya
bdf3df3127 Checking for IP32 in each driver is redundant -- they're attached as children
of mace, so it is sufficient to perform the check in mace_match().  Pointed
out by soren@.
2004-01-19 10:28:28 +00:00
sekiya
d0207690f0 opt_machtype.h no longer exists. 2004-01-19 08:06:54 +00:00
sekiya
5ca2e0b59c Completely remove IP2X and IP32, which renders opt_machtype.h obsolete. 2004-01-19 03:26:14 +00:00
sekiya
cfc3bade55 Attach the com and mcclock devices only if the machine is an IP32. 2004-01-19 00:30:17 +00:00
sekiya
3791a9994b g/c obsolete function. 2004-01-19 00:19:36 +00:00
sekiya
90448f3f3f Attach int0 at mainbus (precedent being the ip32 CRIME device, which handled
interrupts and timer calibration yet is also attached at mainbus).

Introduce the INDY_R4600_CACHE config option, which more accurately describes
the code enabled by this option.

This renders #ifdef IPxx completely obsolete, thus we theoretically can unify
the GENERIC files if a workable load address relocation scheme can be found.
2004-01-19 00:12:31 +00:00
sekiya
6ce242b753 Keep chip revision and EISA information on same line as attach information. 2004-01-18 13:11:18 +00:00
sekiya
6f76c4237a ANSIfy, de-__P(), add a little glue for IP12. 2004-01-18 13:00:05 +00:00
sekiya
6feffff053 Properly disable watchdog timer. 2004-01-18 12:18:57 +00:00
sekiya
bc71fd3468 Remove another #ifdef IP32 2004-01-18 04:43:42 +00:00
sekiya
5aea276a37 Add files.dev and files.mace 2004-01-18 04:07:17 +00:00
sekiya
63b59c4db4 Following the example of the hpc/, gio/, and ioc/ directories, move the
mace devices to their own mace/ directory.  Alter conf/files.sgimips to
reflect this change in a sane manner (i.e., pull in dev/files.dev and
mace/files.mace when appropriate).

At the same time, allow crime_intr_establish() to fall through to
mace_intr_establish().  mace devices now call cpu_intr_establish().
2004-01-18 04:06:42 +00:00
sekiya
590daf63b8 Nuke two more instances of #ifdef IP32. 2004-01-18 01:00:48 +00:00
sekiya
06419e6abe ip2x.c and ip32.c are no more. 2004-01-18 00:55:26 +00:00
sekiya
23020fc3cf Finish moving code between ip2x.c and ip3x.c to imc.c and crime.c. 2004-01-18 00:54:55 +00:00
sekiya
90ed8dc85b Add more platform hooks in platform struct. 2004-01-18 00:53:49 +00:00
sekiya
f754464233 Do not directly reference crime_*() routines, go through the platform
struct pointers instead.
2004-01-18 00:50:08 +00:00
sekiya
7f7429081d Large rototill of the lowlevel code:
* move all device-specific bitbanging to the device drivers in question --
  i.e., the ip32 init code doesn't access the CRIME registers directly but
  instead trusts the CRIME driver to DTRT.  machdep.c is cleaner thereby.
* introduce int.c, which handles the interrupt-controller goo formerly
  in ip2x.c.
* unify the CPU interrupt handler, with CRIME, INT2, and the various timer
  handlers hooked in via pointers in the platform struct.
* eliminate ip2x.c and ip32.c.  After the interrupt handler cleanup, the
  actual platform-dependent code was so minimal (rev identification, mask level
  initialization) that it made sense to move it into machdep.c
* "#ifdef DEBUG printf("foo"); #endif" becomes aprint_debug.

Tested on my ip22 and ip32.  Discussed with pooka@, rafal@.
2004-01-18 00:47:21 +00:00
pooka
6e2ad2392e Remove historic remnant that treated the O2 load address as the
sgimips standard.  Define it in the respective config file.
2004-01-15 08:53:42 +00:00
pooka
60b4d7ab8d Replace prehistoric comment "Indy" with something a bit more current 2004-01-15 08:46:31 +00:00
pooka
f78de077a8 The O2 has a PCI slot, add opencrypto.
Brush up some comments a bit while in here.
2004-01-15 08:45:12 +00:00
sekiya
58a060c797 Assign memory controller-dependent watchdog reset functions to
platform.watchdog_reset.
2004-01-13 14:31:37 +00:00
sekiya
986c9703a5 Switch DMA sync function initializer to _bus_dmamap_sync_mips3 to keep things
aligned with previous MIPS1/MIPS3 differentiation.
2004-01-13 14:30:43 +00:00
sekiya
4598391267 The watchdog timer is a function of the memory controller on all SGI platforms.
Add to the machine struct.
2004-01-13 14:18:56 +00:00
sekiya
ffc95bbe6e As the platform-specific bus reset routine varies based on the memory
controller used, set it in the memory controller driver rather than the
platform init code.
2004-01-13 13:05:17 +00:00
sekiya
e5d4293223 Call sgimips_bus_dma_init() in mach_init to set up the proper MIPS1/MIPS3
bus_dma_sync() routine.
2004-01-13 12:57:24 +00:00
sekiya
9c531ea057 Add IP12 subtypes. From Steve Rumble. 2004-01-13 12:30:23 +00:00