Commit Graph

668 Commits

Author SHA1 Message Date
manu
6e3c639957 IPv4 PIM support, based on a submission from Pavlin Radoslavov posted on
tech-net@
2004-09-04 23:29:44 +00:00
drochner
46289e1fef Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
2004-08-30 15:05:15 +00:00
tsutsui
efa3e6b66b Remove bogus TABs. (from OpenBSD) 2004-08-18 14:47:25 +00:00
rumble
d15d05328d Add some infrastructure to support HPC-based ethernet adapters
(E++):
 o The static configuration table now identifies by HPC offset.
 o Added sq(4) entries for IP12, IP20, and IP24.
 o Accomodated HPC revision forcing based on kernel config flags.
2004-08-17 00:57:42 +00:00
rumble
38bbaabc37 Add defines for the four possible HPC GIO bus addresses. 2004-08-17 00:48:08 +00:00
rumble
d023bcf042 Implement several changes that get my E++ (HPC1.5 GIO ethernet
adapter) to work on IP24:
 o Force HPC and GIO slot endianness.
 o Allow slots one and two to be masters and configure for
   realtime mode.

Also, while we're here move IP22 invariants into the IP22 case.

I suspect that IP20 will work as well since it exhibited the same
broken DMA that IP24 did before I flipped the master bit.
2004-08-17 00:44:39 +00:00
sekiya
1a682ebd64 Add 64-bit ABI bootloader (for IP30). Needs a slightly modified toolchain
and a 64-bit-clean libkern.a; once those bits are committed, this should be
100% good to go.
2004-08-11 11:45:26 +00:00
sekiya
8a3d53f346 Start routine for 64-bit ABI. 2004-08-11 11:41:19 +00:00
tsutsui
9df92e5adc - It turns out alignment restriction for TX descs is 8kbytes, not 64kbytes.
- Use MEC_TX_ALIAS register to set/clear TX interrupt enable bit.
2004-08-01 06:36:36 +00:00
drochner
a5a5473c25 remove now unnecessary "pci_enumerate_bus" definitions 2004-07-29 16:55:25 +00:00
sekiya
c830efd52f Properly detect the EISA bus for IP22-class machines. 2004-07-25 10:28:28 +00:00
rumble
44f3c135e7 KNF and consistency 2004-07-20 05:19:23 +00:00
rumble
5189fbb0b4 Allow for console attachment by statically allocating a softc
extension. Tweak cs_softreq when appending the transmit queue.
Finally, add a bit of debugging.
2004-07-20 04:55:21 +00:00
rumble
ae62a41f43 Properly initialise the tx and rx queue head and tail positions. 2004-07-20 04:43:44 +00:00
atatat
f68a9f1ff2 Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
2004-07-15 03:53:44 +00:00
tsutsui
3edbd6052a Add device-major for lpt. 2004-07-14 14:13:24 +00:00
tsutsui
7565fb7456 Now multicast on mec0 is confirmed working, so remove XXX comment
in mec_setfilter() function.

Thanks to Gerald Heinig for providing multicast test programs.
2004-07-14 09:45:47 +00:00
tsutsui
c2de425692 Reenable lpt at mace since shared interrupt code was fixed in mace.c rev 1.2. 2004-07-12 13:45:40 +00:00
tsutsui
204f5095a2 Enable mec Ethernet at mace. 2004-07-12 13:16:14 +00:00
tsutsui
fff3ff1b2c Add a working driver for O2 (IP32) on-board MACE MAC-110 Ethernet.
Note:
- I don't have any hardware docments for this device, so this driver might
  have some odd descriptions guessed by results of try-and-errors.
  (the only info I have is the Linux driver, but I think it doesn't describe
   the hardware specifications very well anyway)
- All RX packets and most TX packets are copied from/to buffers in the driver
  due to hardware restriction, so performance is not so good for now.
  Maybe RX packets can be directly DMA'ed to mbufs by the same method used
  of fxp(4), but the hardware seems to require 4kbyte aligned RX buffers.
- Multicast filter setup function is not tested yet (no info).
- Currently only tested on R5000 O2 with disabled L2 cache, so needs
  more tests on other CPU (i.e. RM5200/R10000/R12000) models.
- Currently BUS_DMA_COHERENT is not used for the device control data DMA
  to avoid performance issue on memcpy() against RX buffers, but it might be
  problematic when L2 cache is enabled or on R10000 models.
2004-07-11 03:13:04 +00:00
tsutsui
43f42bdb21 Count mace interrupts by evcnt(9). 2004-07-10 08:47:33 +00:00
tsutsui
9864035c97 Remove a debug printf. 2004-07-10 08:44:42 +00:00
tsutsui
0d31ac4463 Make sure shared interrupts properly handled. 2004-07-10 07:39:13 +00:00
sekiya
ce13caf073 Add wsmouse* at zsms* 2004-07-08 22:43:30 +00:00
sekiya
c1036b3eff Uncomment keyboard/mouse at zs* 2004-07-08 22:32:34 +00:00
sekiya
5110af7a8b Add support for keyboard and mouse attachments at zs*, used on IP12 and IP20.
Code written by Steve Rumble; committed with his blessing.

Using a glass TTY as a console on IP20 (IP12 untested) should now be possible.
2004-07-08 22:30:53 +00:00
sekiya
9a82e9035c Uncomment grtwo* attachment and its corresponding wsdisplay* 2004-07-08 10:12:27 +00:00
sekiya
ae7e3d69b0 Fake a FIFO interrupt iff the FIFO interrupt is unmasked. Should eliminate
the "spurious interrupt" messages on machines without grtwo displays.
2004-07-08 10:10:49 +00:00
sekiya
9c289db87a Remove unnecessary variables from grtwo_cnattach(). 2004-07-08 10:02:10 +00:00
sekiya
ead6809450 Call gio_video_init() for IP12 and IP20. Neither model uses the same keyboard
glue as the IP22, so add conditionals in the keyboard connection logic.
2004-07-08 10:00:30 +00:00
rumble
84931191d5 Fix a typo in zsms0's parent. 2004-07-07 00:58:43 +00:00
sekiya
c279001857 Oops. Remove reference to phantom variable. 2004-07-07 00:11:11 +00:00
sekiya
79fdbacde6 Add ih_next to the data structure. Part of Steve Rumble's interrupt-sharing
scheme.
2004-07-07 00:08:43 +00:00
sekiya
eadba4d41f Add commented-out entries for grtwo wscons support (and fix the entries for
serial keyboard/mouse).
2004-07-06 23:59:48 +00:00
sekiya
432805bb11 Add the following to the int driver:
* if the driver hasn't been properly initialized, spin for a bit in wait_fifo()
  rather than try to access the local0 status register.
* allow interrupt sharing (from Steve Rumble; necessary for IP20 glass TTY
  support).
2004-07-06 23:56:13 +00:00
sekiya
9c873da232 Many fixes to the grtwo wscons driver:
* fills seem to be broken.  Avoid filling large vertical regions; instead,
  attempt to break it up into managable chunks.  This doesn't work perfectly
  either, so clear the screen row-by-row (which does work).
* Characters are now right-side-up
* the driver now uses screen coordinates properly.

With the exception of column erases (which fall prey to the fill issue), the
driver is now usable.
2004-07-06 23:51:40 +00:00
bouyer
21e9a36edc Add options P1003_1B_SEMAPHORE
to all GENERIC-like kernel config files where SYSV* options were already
present (commented out if the SYSV* options are commented out).
Fix lib/25897 and lib/25898.
2004-06-28 21:07:47 +00:00
abs
bd8eb3b5ed Add (commented out) ALTQ options to all GENERIC-like files 2004-06-26 07:32:05 +00:00
christos
c22e4ed8cd ptm is now mandatory, depends on pty, and can be disabled with -DNO_DEV_PTM 2004-06-18 15:02:29 +00:00
christos
0399e839cf Add pseudo-device ptm on all the generic flavored kernels. 2004-06-16 15:07:39 +00:00
rumble
875866073a sekiya-san's platform abstraction allows us to keep these
functions static.
2004-06-13 18:30:11 +00:00
rumble
0f58ff497d General cleanup to improve style consistency and KNF adherence.
Updated comments and removed superfluous code. No functional
change intended.

ok'd by pooka and sekiya
2004-06-13 18:28:35 +00:00
rumble
533084bbc7 Refactor consinit() for readability by pulling out mach_type
specific code into their own functions. No functional change is
intended.

ok'd by pooka and sekiya
2004-06-09 23:01:01 +00:00
rumble
df731a5f0f Use global static prom vectors within the module instead of
creating them on the fly. Simplify arcemu_ip12_putc() since the
printf vector behaves as expected.
2004-06-08 22:51:21 +00:00
kleink
7b3b647647 Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
pooka
88d0b8e68e Return "video()" instead of "graphics(0)" for a graphics console,
since that's what even our code expects.

suggested by Steve Rumble
2004-04-14 10:29:26 +00:00
sekiya
7af65e354b Back out portions of previous commit -- the mips/bus_dma.c code is less
correct than the sgimips-specific code.
2004-04-13 08:12:03 +00:00
sekiya
8af58b1851 Merge fixes from arch/mips/mips/bus_dma.c -- a curproc->lwp fix, and streamline
the cache magic for BUS_DMASYNC_PREREAD in _bus_dmamap_sync_mips3().

(Note to self: investigate feasibility of replacing MD bus.c with MI bus_dma.c)
2004-04-12 14:30:47 +00:00
pooka
0d197bf832 KNF some and make printf output a bit nicer. 2004-04-11 12:17:10 +00:00
pooka
34bd15648e Add IP12 stuff. Most bits included are from Steve Rumble.
After this change it is possible to run IP12.
2004-04-11 12:13:20 +00:00
pooka
0e36d54eba Fix base address for i8254 calibration code. This has the effect of
us writing to the correct addresses and the thing actually working.
2004-04-11 12:05:37 +00:00
pooka
95d984a2eb Don't report page 0 as free memory, it makes bad things happen. 2004-04-11 11:34:13 +00:00
pooka
817b0a57d8 Make das blinkenlights, well, blink on IP12 also. 2004-04-11 10:29:20 +00:00
pooka
451031bddf RCS Id police 2004-04-11 00:44:47 +00:00
pooka
4b60b79ce8 build arcemu 2004-04-10 22:48:44 +00:00
pooka
bc32b3ffbe Clock interrupt routine for mips1 (ip12) from Steve Rumble. 2004-04-10 22:48:12 +00:00
pooka
03e520f443 * The HPC endianness register isn't mapped on my IP12, so don't try to
unconditionally read it
* IP12 glue from Steve Rumble
2004-04-10 21:59:42 +00:00
pooka
0df6470670 don't attempt to init pckbd console on IP20 2004-04-10 21:47:33 +00:00
pooka
3f96344b80 Don't unconditionally initialize seeprom chip type after we've
conditionally initialized it to the correct type.

spotted by Steve Rumble
2004-04-10 20:23:05 +00:00
pooka
9b2f4efe28 Rework conditional statement a bit to print bit about using ARCS for
console I/O if nothing really attached, not if we just called consinit()
with an invalid IPxy mach_type.

inpired by Steve Rumble
2004-04-10 20:15:12 +00:00
pooka
737a72e779 attach zs console on IP12
from Steve Rumble
2004-04-10 20:03:11 +00:00
pooka
cafa4ad8f9 ARCBIOS emulation code to be used on machines without ARCBIOS
Currently supports only IP12, but can be made to support others.

includes effort from Steve Rumble and myself
2004-04-10 19:53:48 +00:00
pooka
a7250523da At least my IP12 works better without the port-flipping glue,
so un-glueify IP12 for the time being.
2004-04-10 19:20:19 +00:00
pooka
a674ac1bc3 and finally, the big moment you've all been waiting for:
make it actually compile
2004-04-10 19:07:58 +00:00
pooka
89a2f53d77 fix off-by-one in revision print 2004-04-10 19:07:06 +00:00
pooka
88764f7031 add watchdog enable and disable
from Steve Rumble
2004-04-10 19:06:33 +00:00
pooka
f59c5e58e8 Add physical offsets for memory configuration registers to be used
outside bus_space.
2004-04-10 19:02:39 +00:00
pooka
ade6841fe5 If argv[1] doesn't exist, don't try to use it. 2004-04-09 16:41:23 +00:00
pooka
b11a60fb35 apply wide-angle KNFication beam 2004-04-08 14:45:13 +00:00
tsutsui
646b733fd4 Tidy up total/avail memory message as well as other ports.
As per discussion on port-sgimips.
2004-04-05 16:01:43 +00:00
sekiya
49ecfdf2e4 Hook the IMC bus error handler into the ISR, otherwise bus error conditions
won't be properly dealt with.
2004-04-03 11:33:29 +00:00
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