Commit Graph

55 Commits

Author SHA1 Message Date
scottr 63526c1ff1 New and improved console framebuffer initialization and autoconfig. This
resolves a great many issues, including Performa 58x interrupt handling
and offset displays on some models.

Programs that depend on the old (pre-NetBSD 1.1) grf interface may break.
That's actually a separate issue uncovered by this code, not caused by it.
1998-08-12 02:36:36 +00:00
scottr f170a53f0b Add a GRF_COMPAT option so that old-style grf ioctl() code can be
removed from the kernel.
1998-07-01 14:49:07 +00:00
scottr da2f2cb79f Store the PA of the framebuffer in the softc. This eliminates the need
for the sc_phys callback; we can just store the PA in the grfbus attach
args, rather than a function pointer, which simplifies the code nicely.
1998-06-02 02:14:20 +00:00
scottr 9dfbdab6ec Move on-board I/O and NuBus drivers to their own directories
via repository copy, and make the necessary adjustments to reflect
the moved files.
1998-05-02 16:45:27 +00:00
scottr 8bcac06284 Checkpoint of UVM work to date. This includes a fully-functioning
MACHINE_NEW_NONCONTIG interface implementation, which is now enabled
on all systems.  Thanks to Jason Thorpe for his work on the hp300 port,
from which most of the code used here was derived.

XXX In spite of the fact that it works on the hp300, UVM does not (yet)
work well under load on mac68k.
1998-04-24 05:27:24 +00:00
scottr 8df1b7a0f8 Now, correct the problem the correct way: s/cfattach/cfdriver/ 1998-01-17 17:32:07 +00:00
scottr 696871f9e3 Back out previous change. 1998-01-17 17:28:35 +00:00
scottr 3b7ef50f8e Missed a change for the updated config(8). 1998-01-12 23:56:26 +00:00
thorpej 36760d9d94 Update for changes to config. 1998-01-12 18:59:04 +00:00
scottr fe3d2d5633 Make grfdebug a patchable variable, and default to no debugging messages.
Noticed by Hauke Fath.
1997-12-01 05:40:39 +00:00
scottr c988c6f85f Make #include directives consistent. All MD headers are of the form:
#include <mac68k/{dev,mac68k}/foo.h>
1997-08-11 22:53:26 +00:00
scottr dfa83e4861 Overhaul grf drivers to correct recent problems with X and dt
(address error faults), as well as other reported problems:

 - Simplify grfmv_phys() to work like grfiv_phys(), and eliminate the
   second argument to both, as we don't use it anyway.
 - Handle fbbase and fboff consistently throughout.  Closes PR 3862.
 - Eliminate grfaddr() by pulling it into grfmmap(), which is the
   only place it was used, previously.
 - grfmap() now gets the physical address of the framebuffer from
   the appropriate driver, rather than try to compute it by itself.
   Be careful with aligning the base to a page address and increase
   the length of the mapped region appropriately.  Closes PR 2867.
1997-08-03 06:25:56 +00:00
veego 0cd13fe0b5 s/mac68k_round_page/m68k_round_page/ s/mac68k_trunc_page/m68k_trunc_page/
s/mac68k_btop/m68k_btop/
1997-06-10 19:01:00 +00:00
scottr ee80f1200e Implement new NuBus slot space mapping/probing code, utilizing bus.h (and
our MD bus_space_probe() extension).  This has several side effects:

 - NuBus drivers must map and unmap slot space, rather than relying
   on this happening before they are attached.
 - Functions exported to NuBus drivers from nubus.c now need to be
   supplied with a bus space tag/handle pair.
 - Old bus map/peek functions can be garbage collected, as can pmap
   support for the same.

Because of some current limitations of the bus space specification, we
are violating the abstraction in grf_mv (NuBus grf driver).  All such
violations are clearly marked /* XXX */, and must be addressed when
the specification is updated.
1997-05-11 19:11:27 +00:00
scottr 965cffaf20 NUBUS_SLOT_TO_PADDR -> NUBUS_SLOT2PA 1997-02-24 06:20:04 +00:00
scottr b1e5912330 We need bus.h now, due to recent nubus_attach_args change. 1997-02-20 00:23:25 +00:00
scottr 9b4055eb72 Convert all foo_match() functions to use a `struct cfdata *' for their
second argument.  The NuBus autoconfig code had to be reorganized as a
result of this, and looks much more like a directly-attached bus now.
These changes eliminate __BROKEN_INDIRECT_CONFIG.
1996-12-16 16:17:02 +00:00
christos 40ecbf8e72 backout previous kprintf change 1996-10-13 03:21:13 +00:00
christos 06555645c2 printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:24:36 +00:00
scottr 81543dc7c9 Implement poll(2). 1996-09-14 05:54:53 +00:00
scottr 91d8e018e2 Attach ite semantics to the appropriate grf device, instead of obio. 1996-08-05 01:26:31 +00:00
scottr 89f4fddbfe Add a way to tell grf_establish() that internal video doesn't actually
occupy a slot.  This is necessary so that GRFIOCMAP can find the correct
physical address of the framebuffer.  Fixes P550, some LC models, and
perhaps the PB520.
1996-08-04 06:03:47 +00:00
scottr d048582c60 New grf attachment code, mostly by Jason Thorpe with some cleanup by me.
This will allow dt and X to work with a generic kernel, rather than
compiling different kernels that attach grf0 to a NuBus adapter or
internal video.
1996-05-19 22:27:04 +00:00
briggs db495102be Do not depend on the nubus being mapped in one huge segment. 1996-05-06 01:08:24 +00:00
briggs 37163421a3 Prototype for -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized
Also change the device probing scheme to use something a bit more rational.
A current side-effect is that nubus cards are double-mapped.  I expect
to fix that shortly.
Also change splclock() to block everything but serial hardware interrupts.
1996-05-05 06:15:56 +00:00
thorpej 82d914d090 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 01:26:49 +00:00
briggs 4a9cf8407c Fix a warning. 1995-09-21 11:13:27 +00:00
briggs 3758e23b79 Add another routine for the grf display-specific drivers to return a physical
address.
1995-07-06 17:13:45 +00:00
briggs d1d1fbc094 Put in a cast to make compiler happy. 1995-07-06 04:17:15 +00:00
briggs f3274364d4 Fix a bug I introduced earlier. 1995-07-06 00:28:32 +00:00
briggs 1040af3492 Add missing interface for getting a grfmode structure from kernel. 1995-07-02 05:26:27 +00:00
briggs ed434b457d Fix grfmap() as well as grfmmap(). 1995-07-02 00:49:52 +00:00
briggs 932a8fc9af Set and use new fboff element from grfmode structure. 1995-07-02 00:30:25 +00:00
briggs 3401cca400 Fix buglet that was missed when converting nubus to non pa==va mapping. 1995-07-01 23:40:38 +00:00
briggs 59b4da2b39 Add new nubus handling that's much more robust.
Update via, if_ae, and grf accordingly.
Revamp grf.
1995-04-29 20:23:36 +00:00
briggs 6bc53a2398 Handle grf_softc in the config.new manner.
Should have been done long ago.
1995-04-21 03:44:13 +00:00
briggs 13efb6c197 First pass of KNFication. Needs more. 1995-04-21 02:47:35 +00:00
briggs f93fa3c440 Update interrupts to use (void *client_data) instead of (int unit) as
parameter to interrupt function.
1995-04-13 04:04:58 +00:00
mycroft 8f8bccf41f Switch grfmap and grfmmap. 1995-04-10 07:56:46 +00:00
briggs 9d7efb1fb0 Do iteon() and iteoff(). Right now, they just clear/draw the cursor and
clear the screen.  "We" should look at updating these further.
1995-03-26 15:52:21 +00:00
briggs bc14b5cbcc Don't count video interrupts. 1995-03-25 22:28:30 +00:00
briggs 24787aea0e Add macvideo_intr to handle video interrupts. Currently has behavior
that was previously in slot_noint().
1995-03-23 13:45:07 +00:00
briggs 4e06addf8a Nuke DEBUG. 1994-12-03 23:26:25 +00:00
briggs 815a0b9aca Fix a buglet in computation of fbsize. Pointed out by monroe@cs.pdx.edu. 1994-10-30 13:34:31 +00:00
cgd 4fdae7a0ae new RCS ID format. 1994-10-26 08:45:48 +00:00
lkestel 1c22264669 Make internal video look like a grf device so that desktop and X can use
it.  GRFIOCMAP modifies addr to include the offset into the screen where
the first pixel is.  Not a very clean way to do it -- we should add a
field to grfinfo for offset.
1994-07-31 08:32:47 +00:00
lkestel 774ef66058 Moved adbsys.h grfioctl.h and keyboard.h to include to make desktop
and X compile more cleanly.
1994-07-30 04:21:42 +00:00
briggs 2ff5938343 Minor hacks to get this to compile for now. ite.c now uses the proper
consdev structure to keep itself from crashing...
1994-07-09 06:49:34 +00:00
briggs 4ade6821f7 Minor mods. Get rid of constants, or update to use a better default
value.
1994-06-26 13:02:41 +00:00
briggs 83e8ab7114 Don't even pay lip service to HPUXCOMPAT, now COMPAT_HPUX. 1994-05-04 05:25:41 +00:00