lkml.org 
[lkml]   [2004]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [OT] Crazy idea: Design open-source graphics chip
Alright then, how about this:  Assuming opencores has a PCI interface 
and a DDR memory controller, I could write a CRT controller. We can put
that into an FPGA and see what happens.


Helge Hafting wrote:
> On Fri, Jan 30, 2004 at 12:40:38PM -0500, Timothy Miller wrote:
>
>>
>>Maciej W. Rozycki wrote:
>>
>>>On Fri, 30 Jan 2004, Timothy Miller wrote:
>>>
>>>
>>>
>>>>>Another reason to drop VGA then - money.
>>>>
>>>>As soon as PC BIOS's don't require it, we can drop it.
>>>
> PC bioses don't need VGA and never did!
> They use the int 0x10 handler provided by the graphichs card bios.
> When you make the card - you get to write that bios. No problem!
>
> I once used a dec rainbow - a pc with an ibm-incompatible screen.
> The display memory was organized as a linked list of lines instead
> of an array of characters. It came with its own special version
> of msdos 2.11. Few ordinary dos programs would run on it,
> beause most tried to access the "standard" 80x25 array instead
> of using msdos for io. Those who did the right thing worked, though.
>
> (An odd machine in other ways too - it had a z80 controlling the
> floppies and a 8088 controlling the screen and harddisk.
> Early 80's asymmetric multiprocessor :-)
>
>
>
>>>No PC BIOS recognizes a VGA. The PC/AT firmware uses int 0x10 to
>>>communicate with the console and as long as there is a handler there,
>>>console output works. Most systems will actually run without a handler,
>>>too, but they'll usually complain to the speaker. The handler is provided
>>>by the ROM firmware of the primary graphics adapter.
>>>
>>>Old PC/AT firmware actually did recognize a few display adapters, namely
>>>the CGA and the MDA which had no own firmware. These days support for
>>>these option is often absent, even though the setup program may provide an
>>>option to select between CGA40/CGA80/MDA/none (the latter being equivalent
>>>to an option such as an EGA or a VGA, providing its own firmware).
>>>
>>
>>You're not entirely correct here. I attempted to write a VGA BIOS for a
>>card which did not have hardware support for 80x25 text.
>>
>>I first tried intercepting int 0x10. I quickly discovered that most DOS
>>programs bypass int 0x10 and write directly to the display memory. As a
>>result, very little of what should have displayed actually did.
>>
>
> Sure, but we're not interested in "most dos programs", are we?
> The pc bios bootup will work, it uses int 0x10.
> lilo output will work.
> linux kernel console output will work
> X will work, either with the generic framebuffer driver, or with
> a proper driver written for the open hardware.
>
>
>>Next, I tried hanging off this timer interrupt. I had two copies of the
>>text display, "now" and "what it was before". I would compare the
>>characters and render any differences. This worked quite well for DOS,
>>but the instant ANY OS switched to protected mode, they took over the
>>interrupt and all console messages stopped. Actually, the same was true
>>for int 0x10.
>>
>
> If you want DOS application compatibility or windows compatibility
> then you might need VGA. But you started out talking about
> open hardware for linux - and then you really don't need vga at all.
> Not even an initial 80x25 character array. A kernel without vga
> support (but some other console like fbcon) works fine.
>
>
>>Even just the DOS shell command-line tends to bypass int 0x10 and write
>>directly to display memory.
>>
>
> Depends on what version of dos, but you can always get freedos for which
> source code is available - if dos matters to you. It is something
> I only ever use for flashing bios upgrades.
>
>
>>Furthermore, 640x480x16 simply won't happen at all without direct
>>hardware support. Some things rely on that (or mode X or whatever) for
>>initial splash screens.
>>
>
> Not in linux. Of course you can reserve the legacy vga memory region
> and just live with the loss of splash screens in dos.
>
>
>>In the PC world, too many assumptions are made about the hardware for
>>any kind of software emulation to work.
>>
>
> Not in the pc world. The pc is only hardware.
> The problem is the microsoft os world, but supporting that _isn't
> necessary_ when you don't plan on high volumes. I guess you
> could get windows going - it uses proper display drivers these days
> even if the installer doesn't. Install with vga card, swap driver,
> shutdown, swap cards, power-on or some such.
>
>
>>The suggestion that a general-purpose CPU on the graphics card could be
>>used to emulate it is correct, but the logic area of the general-purpose
>>CPU is greater than that of the dedicated VGA hardware. Furthermore,
>>you can't just "stick a Z80 onto the board", because multi-chip
>>solutions up the board cost too much.
>
>
> Thanks for the information, seems I don't know enough about board
> manufacturing.
>
>
> Helge Hafting
>
>

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

\
 
 \ /
  Last update: 2005-03-22 14:00    [from the cache]
©2003-2011 Jasper Spaans