Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Apr 1996 18:17:13 +0530
From:      A JOSEPH KOSHY <koshy@india.hp.com>
To:        Greg Lehey <lehey.pad@sni.de>
Cc:        jkh@time.cdrom.com, hackers@freebsd.org
Subject:   Re: request for a new "feature" as regards DDB 
Message-ID:  <199604231247.AA203073634@fakir.india.hp.com>
In-Reply-To: Your message of "Tue, 23 Apr 1996 13:33:29 MDT." <199604231133.NAA26239@nixpbe.pdb.sni.de> 

next in thread | previous in thread | raw e-mail | index | archive | help

Hi

>>>>> "gl" == "Greg Lehey" >>>>>

gl> even ask.  Even if we can only change back to character mode 98% of
gl> the time, the other 2% (at least) should give you a dump.  Of course,

I would advise against trying to "force" a text mode when entering a kernel
debugger from graphical mode.  On most modern video cards (SVGA and better), 
you have absolutely no idea what this could do---blowing your monitor is
possible as is frying your ramdac.

Setting a mode on today's video cards typically have the following steps:

a.	Reprogramming the clock chip or the PLL's on the DAC for the correct
	clock speed (these could be > 220Mhz, contrast VGA's 25Mhz).  On modern
	dacs 2-3 PLLS have to be programmed (video clock, system clock, pixel
	shift clock etc).  This is clockchip/DAC specific.

b.	Reprogramming the CRT registers for the correct frame timings.  On
	many chipsets, these registers are different from the regular
	VGA registers: eg- Mach8/32/64, P9000, etc.  Even `VGA-like' 
	implementations extend their registers differently to get the 
	required number of bits to express functionality
	eg. Cirrus Logic GDXXXX vs S3 vs WD90XX vs ...
	This is chipset family and chipset revision specific.

c.	Programming the DAC from VGA standard (8 bit wide pixel buses) to 
	whatever the board requires (32/64/128 bit connection from DAC to
	VRAM).	This is DAC and board specific.

d.	On some boards we can have more than one way of programming the
	chipset/ramdac/clockchip depending on the resolution/depth of frame
	buffer etc.  This depends on the combination of graphics chipset,
	RAMDAC, clockchip etc.

e.	Many other board and model specific details.

You would have to undo all this in the correct order when you want to
switch from a graphical mode to text mode.  

One possible solution to the problem could be invoke BIOS thru VM86 or
some similar facility to force a text mode; I'm not sure whether this
would work every time / for every card though.  I wonder if BIOS has a
"reinitialize hardware" call.

Koshy



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