Re: [linux-fbdev] Re: atyfb with 2.3.30 ond x86

Gabriel Paubert (paubert@iram.es)
Thu, 9 Dec 1999 14:17:55 +0100 (MET)


On Wed, 8 Dec 1999, Egbert Eich wrote:

> Jeff Garzik writes:
> > Geert Uytterhoeven wrote:
> > > Hmm, this means the card wasn't initialized at all. Looks like we'll have to
> > > write our own memory probing code for platforms where only one video card is
> > > initialized. On PPC, all ATI cards get initialized by Open Firmware.
> >
> > Another solution is to do a callback to a userspace program like x86emu,
> > which can re-init the second card via BIOS. That's what XFree86 does.
> >
> > Personally I would rather avoid BIOS altogether...
> >
> For initializing it is still the safest!

I concur: I have a couple of PMC (PCI mezzanine cadrs) modules with S3
chips which I plug on my MVME boards (PPC). I could not find any code that
would intialize them properly (bad to awful image quality) until I wrote
a small 486 SX emulator which executes the Video BIOS init routine.

While many BIOS may have bugs, you can be fairly sure that the
initialization routine is basically correct (otherwise you could not even
see the Video BIOS copyright line properly).

Oh, and the emulator weighs in at 24 kB (code+data), it's small enough to
actually embed it in the bootloader for these machines. It's actually
quite slow (byte per byte decoding) but I don't care in this case where
correctness is the only important point (and besides it spends most of the
time in a waiting loop while displaying the copyright). Try to write a
generic initialization routine for all (even S3 only) boards in existence
in this space, plus the fact that the emulator worked right away on the
second board I bought which had a different chip revision and a slightly
different BIOS too. The main drawback is that it's PPC specific...

[In reference to an earlier thread about multiple heads and mmap problems]
The amusing thing is that it may actually be easier to support mutiple
heads on a non x86 machine: my emulator can actually put the real mode
memory and video at any address in the virtual address space of a user
mode process since all segment bases are computed as segment*16+a virtual
base constant which can be changed between invocation of the emulator to
keep several VM86 machines running (or simply keep different machine state
structures with different virtual base addresses).

> I can only repeat myself: Graphic chipsets have so many
> parameters for memory size, memory layout, memory timings
> on notebooks: voltages, display properties bus types and
> whatever you can think of.

Right...

Gabriel.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/