SONE Takeshi wrote:
To clarify, what I've done is merely enabling VGA by executing the mfr's proprietary VGABIOS. Perhaps Steve is talking about enabling the device without such binary-only code, but by directly programming the (poorly documented) registers with outb()'s, etc. Of cource I too would like to have such an open sourced code.
Yes, I am talking about direct register programming. The BIOS approach is very useful, but I want to do it directly. Just a personal thing, like Linus' comment in setup.S, "we don't need no steenking BIOS anyway".
I did see one VGA legacy register in the vt8601 datasheet, copied below, that looks a little funny. I thought it defaulted to a useable default state, but maybe not. But this "read 3C6 four times to enable" is the kind of thing where if you do not have the datasheet you are up a creek.
-Steve
Port 3C6 – VGA RAMDAC Command........................... RW This register is a non-standard VGA register (“extension register”) located at the same port address as the VGA RAMDAC Pixel Mask register. In order to maintain compatibility with standard VGA operations, access to this register is restricted: access is enabled by performing four successive accesses to the Pixel Mask register at 3C6 (i.e., read 3C6 four times).
7-4 Color Mode Select 0000 Pseudo-Color Mode ................................default 0001 Hi-Color Mode (15-bit direct interface) 0010 Muxed Pseudo-Color Mode (16-bit pixel bus) 0011 XGA Color Mode (16-bit direct interface) 01xx -reserved- 10xx -reserved- 1100 -reserved- 1101 True Color Mode (24-bit direct interface) 111x -reserved- 3 Reserved ......................................... always reads 0 2 DAC Disable 0 DAC On (if SR20[0] = 1) .......................default 1 DAC Off 1 Reserved ......................................... always reads 0 0 RAMDAC Enable 0 Disable (Bypass) RAMDAC ..................default 1 Enable RAMDAC