|
From: Geert U. <ge...@li...> - 2003-03-13 06:52:18
|
On 13 Mar 2003, Antonino Daplas wrote:
> On Thu, 2003-03-13 at 02:16, Jon Smirl wrote:
> > --- Antonino Daplas <ad...@po...> wrote:
> > > Unless I missed some imported BIOS calls or other
> > > methods to do this or
> > > something similar in real-mode...
> >
> > You missed something. The address of the VBIOS ROM can
> > be controlled by writing to the PCI config space. You
> > can make the ROM appear anywhere you want it to.
> >
> > This happens even for the boot video device.
> > Somewhere very early in the boot the system BIOS
> > enabled the VBIOS ROM and copied it to C000. This is
> > the "shadow BIOS" option.
> >
>
> So the steps needed would be:
>
> 1. scan for pci devices looking for the vga controller type
>
> 2. if 1 is found other than the primary, disable the current controller
>
> 3. write to PCI config space of secondary controller the address you
> want it to appear (ie C000:0000). Can I use other addresses?
>
> 4. enable the controller
>
> 5. far call c000:0003
>
> 6. disable the controller
>
> 7. repeat
>
> Besides the finer points, did I miss anything obvious?
Write a portable x86 emulator for non-ia32 platforms. Besides, you may even
want to use it on ia32 to make it less dependent on BIOS quirks (or for
machines without a PC BIOS).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
|