Discussion:
simple patch to fix Quadra 605 video
Andrew Daugherity
2005-09-22 05:13:29 UTC
Permalink
It appears that the video driver was updated recently to avoid having
to use the "LC475 hack" option in Booter; however, the code only
applies this fix for Gestalt IDs of the LC 475, not the Quadra 605.
The Q605/LC475 are exactly the same mainboard, the only difference
being whether the jumper is present (Q605, Gestalt 94) or absent
(LC475, Gestalt 89), so the same code should apply in each case.

The result of this is that the Booter "video hack" option now has no
effect. With the jumper absent (or the Booter spoofing ID 89), video
works properly. With the jumper present (and no Booter ID spoofing),
the video becomes corrupted during bootup, with the first 16 lines
becoming immutable, and the 48-line virtual screen shifted down to
start at line 17, with the bottom 16 lines being invisible.
Incidentally, the last line printed before this happens is "intvid0 at
obio0: DAFB: monitor sense 1".

My patch simply adds the Q605 ID to the LC475 check in
arch/mac68k/dev/grf_iv.c, and having tested it, video now works
properly with both Gestalt IDs (at least at 640x480; 832x624 is still
broken with both IDs). Please note that this patch is against
-current (as of today), NOT against 3.7.

When browsing CVSWeb I saw that certain revisions have been tagged for
3.8 release; if this is too late to make it, that's too bad, but at
least it will now be out there to help those with Q605 machines.

-Andrew

====== patch made with 'cvs diff -u grf_iv.c'=======
Index: grf_iv.c
===================================================================
RCS file: /cvs/src/sys/arch/mac68k/dev/grf_iv.c,v
retrieving revision 1.28
diff -u -r1.28 grf_iv.c
--- grf_iv.c 2005/09/15 18:52:44 1.28
+++ grf_iv.c 2005/09/22 04:46:15
@@ -250,6 +250,8 @@
case MACH_MACLC475:
case MACH_MACLC475_33:
case MACH_MACLC575:
+ case MACH_MACQ605:
+ case MACH_MACQ605_33:
sc->sc_fbofs = 0x1000;
break;
}
====== end patch ======

dmesg from kernel built with this patch:
====
OpenBSD 3.8-current (GENERIC) #0: Wed Sep 21 21:56:07 CDT 2005
***@narsil.middle-earth.lan:/usr/src/sys/arch/mac68k/compile/GENERIC
Apple Macintosh Quadra 605, 68040 CPU+MMU+FPU, 4k on-chip physical I/D caches
real mem = 37748736 (36864K)
avail mem = 29040640 (28360K)
using 460 buffers containing 1884160 bytes (1840K) of memory
mrg: 'Quadra/Centris 605 ROMs' ROM glue, tracing off, debug off, silent traps
mrg: I/O map kludge for ROMs that use hardware addresses directly.
adb: bus subsystem
mrg: skipping egret setup
adb: calling ADBReInit
adb: using Cuda series hardware support
adb: cleanup: nothing returned
adb: ADBReInit complete
adb: mapped device (8) at 2
adb: 100 dpi mouse at 3
mainbus0 (root)
obio0 at mainbus0
adb0 at obio0 (ADB event device)
asc0 at obio0: Apple Sound Chip
intvid0 at obio0: DAFB: monitor sense 1
intvid0: 640 x 480, monochrome
grf0 at intvid0
ite0 at grf0 (minimal console)
esp0 at obio0 (pseudo-DMA): NCR53C96, 16MHz, SCSI ID 7
scsibus0 at esp0: 8 targets
sd0 at scsibus0 targ 0 lun 0: <SEAGATE, ST51080N, 0913> SCSI2 0/direct fixed
sd0: 1030MB, 4826 cyl, 4 head, 109 sec, 512 bytes/sec, 2109840 sec total
sd1 at scsibus0 targ 5 lun 0: <IOMEGA, ZIP 100 PLUS, J.66> SCSI2
0/direct removable
sd1: drive offline
zsc0 at obio0
zstty0 at zsc0 channel 0
zstty1 at zsc0 channel 1
nubus0 at mainbus0
ae0 at nubus0 slot e: address 00:00:94:6a:71:5c, type MacCon LC - A ,
32KB memory
root on sd0a swap on sd0b
PRAM time does not appear to have been read correctly.
PRAM: 0x83da4f80, macos_boottime: 0x4331ee73.

Loading...