Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Nov 1995 21:18:15 -0800
From:      Darryl Okahata <darrylo@hpnmhjw.sr.hp.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        gwk@cray.com, sos@FreeBSD.org, freebsd-bugs@FreeBSD.org
Subject:   Re: "Bug" in syscons? 
Message-ID:  <199511160518.AA276929095@hpnmhjw.sr.hp.com>

next in thread | raw e-mail | index | archive | help
> TS reg 4 bit 0x01 is "Reserved" for the ET4000.  Better not use it.
> GDC reg 6 bit 0x01 is "Graphics mode enable"; bits 0x04 and 0x08

     Bingo -- the magic bit is the GDC misc register (reg. 6) bit 0x01.
Leaving this bit set causes my video card to have corrupt fonts when
switching from graphics (X-windows) to text (syscons console).  To the
end of this message, I've appended a minimal syscons patch (it's
relative to the original 2.0.5 syscons.c).  I've tested it with an
Hercules Stingray VL (VLB video card) and a 2MB ISA-based Hercules
Dynamite Pro.

     While attempting to fix this bug, I also tried resetting the
sequencer and adding splhigh()/splx() to set_font_mode(), but these
didn't do anything.

     If other cards need bit 0x01 to be set, perhaps we can add some
kind of broken-video-card #if directives to optionally use code that
doesn't set bit #6?

     For the record, my hardware config is (my earlier messages
contained slightly incorrect info regarding my Stingray VL card):

* Hercules Stingray VL.  This is a 1MB, VLB video card based upon the
  Avance Logic ALG2228 chip.  The date code appears to be 9447.  The DAC
  appears to be marked as an Avance Logic ALG1201-OAL110, although
  SuperProbe reports the presence of an "AcuMos ADAC1 15/16/24-bit DAC".

* NICE Super EISA rev. 1 motherboard with an Intel DX4/100.

I have also tested the included patch on the following video card:

* 2MB Hercules Dynamite Pro, ISA-bus version.  This is an ET4000/W32i
  rev. B-based card.  The patch did not cause any problems with this
  card, but it did not fix the problem that I had with it regarding the
  XFree86 3.1.1 XF86_W32 server (yes, 3.1.1, and not 3.1.2).  [ The
  problem was that xdm would hang the console, after exiting an X
  session.  The system appeared to be fully functional, except that the
  console was hung (pressing any key would just result in beeping).
  Fortunately, Ctrl-Alt-Del still worked.  ;-( ]

     -- Darryl Okahata
	Internet: darrylo@sr.hp.com

DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion or policy of Hewlett-Packard or of the
little green men that have been following him all day.

===============================================================================
*** syscons.c.orig	Mon Nov 13 23:13:43 1995
--- syscons.c	Wed Nov 15 20:12:06 1995
***************
*** 2807,2819 ****
      outb(TSIDX, 0x04); outb(TSREG, 0x06);
      outb(GDCIDX, 0x04); outb(GDCREG, 0x02);
      outb(GDCIDX, 0x05); outb(GDCREG, 0x00);
!     outb(GDCIDX, 0x06); outb(GDCREG, 0x05);
  #else
      outw(TSIDX, 0x0402);
      outw(TSIDX, 0x0604);
      outw(GDCIDX, 0x0204);
      outw(GDCIDX, 0x0005);
!     outw(GDCIDX, 0x0506);               /* addr = a0000, 64kb */
  #endif
  }
  
--- 2807,2819 ----
      outb(TSIDX, 0x04); outb(TSREG, 0x06);
      outb(GDCIDX, 0x04); outb(GDCREG, 0x02);
      outb(GDCIDX, 0x05); outb(GDCREG, 0x00);
!     outb(GDCIDX, 0x06); outb(GDCREG, 0x04);
  #else
      outw(TSIDX, 0x0402);
      outw(TSIDX, 0x0604);
      outw(GDCIDX, 0x0204);
      outw(GDCIDX, 0x0005);
!     outw(GDCIDX, 0x0406);               /* addr = a0000, 64kb */
  #endif
  }
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511160518.AA276929095>