History log of /src/sys/arch/mac68k/obio/grf_obio.c |
Revision | | Date | Author | Comments |
1.59 |
| 26-Jul-2019 |
rin | Add genfb(4) driver for mac68k grfbus. 1, 2, 4, 8, 15, and 32 color-depths are supported.
ANSI colors on console are functional for depth >= 4.
Graphic applications based on wsfb API should work, provided they can correctly handle fbi_fboffset and your color depth.
wsfb driver of Xorg 1.20 and mlterm-fb (framebuffer version of x11/mlterm) work fine for depth == 1 || depth >= 8.
For depth == 8 (256 colors), graphic applications require colormap callback, which is currently supported for some internal graphic adapters, and only Civic (found on Quadra AV series) was tested. Register definition and its usage are taken from Linux. You can easily support other adapters if Linux supports that.
Have fun, and any problem reports are welcomed!
|
1.58 |
| 27-Oct-2012 |
chs | branches: 1.58.38; split device_t/softc for all remaining drivers. replace "struct device *" with "device_t". use device_xname(), device_unit(), etc.
|
1.57 |
| 17-Oct-2007 |
garbled | branches: 1.57.54; 1.57.64; Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA cpu based PPC ports that focused on sharing as much code as possible between the various ports to eliminate near-identical copies of files in every tree. Additionally there is a new PIC system that unifies the interface to interrupt code for all different OEA ppc arches. The work for this branch was done by a variety of people, too long to list here.
TODO: bebox still needs work to complete the transition to -renovation. ofppc still needs a bunch of work, which I will be looking at. ev64260 still needs to be renovated amigappc was not attempted.
NOTES: pmppc was removed as an arch, and moved to a evbppc target.
|
1.56 |
| 29-Aug-2007 |
jmmv | Pack all global video-related variables into a structure for clarity.
A comment said that they weren't in a struct for speed reasons but... this should not affect performance because these variables are mostly used to set other variables (hence they are read few times).
|
1.55 |
| 29-Aug-2007 |
jmmv | Move the definition of multiple video-related variables into a new header file (machine/video.h) so that we can kill all the "manual" externs spread around the code (which were inconsistent among them).
|
1.54 |
| 29-Aug-2007 |
jmmv | Split the global videosize variable into videowidth and videoheight: makes the code clearer and avoids multiple parts of it having to know how videosize was encoded.
|
1.53 |
| 04-Mar-2007 |
christos | branches: 1.53.2; 1.53.10; 1.53.14; 1.53.18; 1.53.20; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.52 |
| 11-Dec-2005 |
christos | branches: 1.52.26; merge ktrace-lwp.
|
1.51 |
| 15-Jan-2005 |
chs | branches: 1.51.10; de-__P, remove register, ansify, b* -> mem*.
|
1.50 |
| 15-Jul-2003 |
lukem | __KERNEL_RCSID()
|
1.49 |
| 02-Oct-2002 |
thorpej | branches: 1.49.6; Use CFATTACH_DECL().
|
1.48 |
| 27-Sep-2002 |
thorpej | Declare all cfattach structures const.
|
1.47 |
| 04-Dec-2000 |
scottr | branches: 1.47.4; 1.47.8; Unmap the valkyrie register space when we're finished with it in the match function. It's not like we can save that state for later, and we don't use it anyway.
|
1.46 |
| 04-Dec-2000 |
scottr | Fix PR 11000: The esp driver needs two longwords in DAFB register space to implement pseudo-DMA transfers with the SCSI controller. This caused our match to fail when we couldn't map the entire DAFB register/control space for our own use. Instead, we map only (about) what we will need in two separate regions.
As a consequence we no longer do Turbo SCSI configuration here; indeed, it may have caused us trouble later on if we actually changed the values stored in those registers in the esp driver.
|
1.45 |
| 30-Jul-2000 |
briggs | Fixup for bogus assumptions about bus_space_handle_t.
|
1.44 |
| 14-Feb-2000 |
scottr | branches: 1.44.4; Merge wscons work onto the main development branch.
|
1.43 |
| 19-Jul-1999 |
scottr | branches: 1.43.2; The Quadra 605 and LC 47x apparently share the same logic board, and hence need the same video hack. From Ken'ichi Ishizaka.
|
1.42 |
| 28-Apr-1999 |
scottr | From Ken'ichi Ishizaka: correct the calculation of the frame buffer offset by masking off garbage bits in the DAFB v7. This has been tested at all resolutions and common color depths on the LC47x.
|
1.41 |
| 06-Jan-1999 |
scottr | branches: 1.41.2; 1.41.4; Add RBV monitor sense code (formerly commented out in rbv_vidstatus()) to the match function, and print out more detailed information when attaching RBV video.
|
1.40 |
| 21-Aug-1998 |
scottr | Remove an extraneous printf when attaching a Valkyrie.
|
1.39 |
| 20-Aug-1998 |
scottr | Match grf_obio devices correctly for the 58x/63x.
|
1.38 |
| 13-Aug-1998 |
scottr | Add a comment regarding the broken behavior of the DAFB v7.
|
1.37 |
| 12-Aug-1998 |
scottr | The Performa/LC 58x have a Valkyrie, not the DAFB.
|
1.36 |
| 12-Aug-1998 |
scottr | 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.
|
1.35 |
| 01-Jul-1998 |
scottr | Add a GRF_COMPAT option so that old-style grf ioctl() code can be removed from the kernel.
|
1.34 |
| 02-Jun-1998 |
scottr | Kill unused variable that resulted from the last change.
|
1.33 |
| 02-Jun-1998 |
scottr | 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.
|
1.32 |
| 02-May-1998 |
scottr | 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.
|
1.31 |
| 22-Mar-1998 |
scottr | The monitor sense code we have is not reliable on DAFB-based machines with certain 17" monitors. Change from Michael R. Zucca, PR 4988.
XXX - This can cause problems on system with the DAFB chip which currently use only a NuBus-based video adapter. In particular, grf devices may not be attached properly in this case. This unfortunate situation is less annoying than not having a reasonable console, however. A reasonable, reliable monitor sense algorithm for the DAFB would resolve the problem.
|
1.30 |
| 22-Mar-1998 |
scottr | Disable Valkyrie interrupts on the Quadra 630. Part of a change from Michael R. Zucca, PR 4988.
|
1.29 |
| 13-Jan-1998 |
scottr | Update for bus.h changes.
|
1.28 |
| 12-Jan-1998 |
thorpej | Update for changes to config.
|
1.27 |
| 08-Nov-1997 |
scottr | KNF: Fix some whitespace inconsistencies.
|
1.26 |
| 08-Nov-1997 |
briggs | Force the probe to find the internal video for the 63x/575 models.
|
1.25 |
| 08-Oct-1997 |
briggs | branches: 1.25.2; Disable video interrupts on the AV machines. Thanks to Michael R. Zucca (mrz5149@cs.rit.edu) for the addresses and hints as to how the interrupts might be disabled, and thanks to Henry Hotz (h.b.hotz@jpl.nasa.gov) for testing on the 840AV. Unmap the DAFB regs on the other Quadras after attachment. They're not used.
|
1.24 |
| 03-Aug-1997 |
scottr | Fix grf{i,m}v_phys() prototypes.
|
1.23 |
| 03-Aug-1997 |
scottr | 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.
|
1.22 |
| 26-Jul-1997 |
scottr | branches: 1.22.2; KNF
|
1.21 |
| 10-Jun-1997 |
veego | s/mac68k_trunc_page/m68k_trunc_page/
|
1.20 |
| 21-Apr-1997 |
briggs | Take care when accessing DAFB--some quadra-class machines use other video controllers.
|
1.19 |
| 01-Apr-1997 |
briggs | Remove tag.
|
1.18 |
| 01-Apr-1997 |
briggs | - Support DAFB machines mo' better. Actually detect if a monitor is present and initialize a few things. No color support, yet. - Properly disable interrupts for DAFB. - Rearrange for better nubus display card interrupt support. Only register an interrupt if we know how to clear it. - Complain if we don't know about a given display card and can not install an interrupt handler. - Change MYSTERY stuff to cb264--still need to get the DrSW so we can actually call the routine to clear an interrupt from this card.
|
1.17 |
| 20-Feb-1997 |
scottr | We need bus.h now, due to recent nubus_attach_args change.
|
1.16 |
| 16-Dec-1996 |
scottr | branches: 1.16.6; 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.
|
1.15 |
| 13-Oct-1996 |
christos | backout previous kprintf change
|
1.14 |
| 11-Oct-1996 |
christos | printf -> kprintf, sprintf -> ksprintf
|
1.13 |
| 04-Aug-1996 |
scottr | 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.
|
1.12 |
| 19-May-1996 |
scottr | branches: 1.12.4; 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.
|
1.11 |
| 05-May-1996 |
briggs | 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.
|
1.10 |
| 11-Aug-1995 |
briggs | Don't fake these values.
|
1.9 |
| 04-Aug-1995 |
briggs | Nuke int_video_start in favor of consistent use of mac68k_vidlog. Don't find the internal video more than once. Probe for internal video before nubus instead of after.
|
1.8 |
| 04-Aug-1995 |
briggs | Be consistent and use mac68k_vidlog instead of int_video_start.
|
1.7 |
| 30-Jul-1995 |
briggs | Fix the internal video probe again.
|
1.6 |
| 28-Jul-1995 |
briggs | Don't show up in "slot" 0xe.\n
|
1.5 |
| 06-Jul-1995 |
briggs | Add another routine for the grf display-specific drivers to return a physical address.
|
1.4 |
| 04-Jul-1995 |
briggs | First cut at a kludge for IIvx internal video.
|
1.3 |
| 02-Jul-1995 |
briggs | Set and use new fboff element from grfmode structure.
|
1.2 |
| 21-Jun-1995 |
briggs | Be a bit more careful on the probe... Make sure that the current slot's addresses contain the int_video_start--or assume that internal video is is "slot" 0xE.
|
1.1 |
| 29-Apr-1995 |
briggs | Add new nubus handling that's much more robust. Update via, if_ae, and grf accordingly. Revamp grf.
|
1.12.4.1 |
| 05-Aug-1996 |
jtc | Pulled up from rev 1.13 by request from Scott Reynolds
|
1.16.6.1 |
| 12-Mar-1997 |
is | Merge in changes from The Trunk, partially just reimplementing newarp.
|
1.22.2.2 |
| 14-Oct-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.22.2.1 |
| 23-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.25.2.1 |
| 09-Nov-1997 |
mellon | Pull rev 1.26 up from trunk (briggs)
|
1.41.4.2 |
| 02-Jul-2000 |
he | Pull up revision 1.43 (requested by scottr): Add support for Quadra 605 on-board video.
|
1.41.4.1 |
| 28-Apr-1999 |
perry | branches: 1.41.4.1.2; pullup 1.41->1.42 (scottr)
|
1.41.4.1.2.2 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.41.4.1.2.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.41.2.5 |
| 12-Dec-1999 |
scottr | Replace references to PGOFSET with m68k_trunc_page() and m68k_page_offset(), as appropriate.
|
1.41.2.4 |
| 28-Nov-1999 |
scottr | If we're not the console device, make sure the base PA is page-aligned and adjust the offset if appropriate.
|
1.41.2.3 |
| 01-Nov-1999 |
scottr | Sync with main branch.
|
1.41.2.2 |
| 16-May-1999 |
scottr | Sync with main branch.
|
1.41.2.1 |
| 11-Mar-1999 |
scottr | First cut at grf emulation. Neither GRFIOCMAP nor mmap'ing a wsdisplay device work, though several other grf ioctls are properly emulated.
|
1.43.2.2 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.43.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.44.4.3 |
| 15-Dec-2000 |
he | Pull up revision 1.47 (requested by scottr): Be careful to unmap anything we map in the drivers' match function in order to avoid potential future problems.
|
1.44.4.2 |
| 15-Dec-2000 |
he | Pull up revision 1.46 (requested by scottr): Map only the register space of the DAFB required to set up the video hardware. Fixes PR#11000.
|
1.44.4.1 |
| 06-Aug-2000 |
briggs | Pullups approved by thorpej -- Add byte-swap and stride options to bus_space. Allocate as normal, then call mac68k_bus_space_handle_swapped() or mac68k_bus_space_handle_set_stride(). Stride is untested. Swapped code works for SMC ethernet.
Add bus_space_*_stream_N functions to bus_space.
Add a DIAGNOSTIC panic if (count-using) bus_space macros are called with a count of zero. Some drivers do this accidentally and some bus_space implementations will fail if count is passed as zero (they are set up in a do-{}-while structure).
There were some bogus assumptions about bus_space_handle_t and some function calls that didn't match prototypes--fix those here, too.
|
1.47.8.1 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.47.4.1 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.49.6.4 |
| 17-Jan-2005 |
skrll | Sync with HEAD.
|
1.49.6.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.49.6.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.49.6.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.51.10.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.52.26.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.53.20.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.53.18.1 |
| 03-Sep-2007 |
jmcneill | Sync with HEAD.
|
1.53.14.1 |
| 03-Sep-2007 |
skrll | Sync with HEAD.
|
1.53.10.1 |
| 03-Oct-2007 |
garbled | Sync with HEAD
|
1.53.2.1 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.57.64.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.57.54.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.58.38.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|