public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Timothy Miller <miller@techsource.com>
To: Helge Hafting <helgehaf@aitel.hist.no>
Cc: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>,
	John Bradford <john@grabjohn.com>,
	chakkerz@optusnet.com.au,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [OT] Crazy idea:  Design open-source graphics chip
Date: Fri, 30 Jan 2004 16:23:32 -0500	[thread overview]
Message-ID: <401ACB54.1060304@techsource.com> (raw)
In-Reply-To: <20040130210915.GA4147@hh.idb.hist.no>

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
> 
> 


  reply	other threads:[~2004-01-30 21:19 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-28 17:34 [OT] Crazy idea: Design open-source graphics chip Timothy Miller
2004-01-29  1:11 ` Christian Unger
2004-01-29 15:59   ` Stephen Smoogen
2004-01-29 16:07     ` Maciej Soltysiak
2004-01-29 16:21     ` John Bradford
2004-01-29 16:13   ` Timothy Miller
2004-01-29 16:29     ` John Bradford
2004-01-29 16:52       ` Timothy Miller
2004-01-29 17:18         ` John Bradford
2004-01-29 17:47           ` Timothy Miller
2004-01-29 18:55             ` John Bradford
2004-01-29 19:11               ` Timothy Miller
2004-01-29 21:36                 ` John Bradford
2004-01-29 21:36                   ` Timothy Miller
2004-01-30 10:36                 ` Helge Hafting
2004-01-30 17:02                   ` Timothy Miller
2004-01-30 17:20                     ` Maciej W. Rozycki
2004-01-30 17:40                       ` Timothy Miller
2004-01-30 18:11                         ` Maciej W. Rozycki
2004-01-30 18:21                           ` Timothy Miller
2004-01-30 19:09                             ` Maciej W. Rozycki
2004-01-30 21:09                         ` Helge Hafting
2004-01-30 21:23                           ` Timothy Miller [this message]
2004-01-31 17:32                             ` John Bradford
2004-01-31 18:39                             ` Roland Dreier
2004-01-30 17:23                     ` Måns Rullgård
2004-01-30 17:44                       ` Timothy Miller
2004-01-30 19:01                     ` John Bradford
2004-01-30 21:19                     ` Helge Hafting
2004-02-01 10:36                 ` Geert Uytterhoeven
2004-02-01 11:06                   ` John Bradford
2004-02-01 11:46                     ` Måns Rullgård
2004-02-01 22:41                   ` Christian Unger
2004-02-02 17:13                   ` Timothy Miller
2004-02-02 17:11                     ` Geert Uytterhoeven
2004-01-30 16:54               ` Jesse Pollard
2004-02-01 10:35         ` Geert Uytterhoeven
2004-02-02 17:03           ` Timothy Miller
2004-01-29 16:30     ` Richard B. Johnson
2004-01-29 16:58       ` Timothy Miller
2004-01-29 18:08         ` Frank Gevaerts
2004-01-30 22:35           ` Esben Stien
2004-01-29 18:06     ` Torrey Hoffman
2004-01-29 18:58       ` Timothy Miller
2004-01-31 18:41     ` Pavel Machek
2004-01-31 18:15 ` Tomas Zvala
  -- strict thread matches above, loose matches on Subject: below --
2004-02-01 14:58 DaMouse Networks
2004-02-02 17:16 ` Timothy Miller
2004-02-02 17:37   ` DaMouse Networks
2004-02-02 18:45     ` Timothy Miller
2004-02-02 19:43       ` DaMouse Networks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=401ACB54.1060304@techsource.com \
    --to=miller@techsource.com \
    --cc=chakkerz@optusnet.com.au \
    --cc=helgehaf@aitel.hist.no \
    --cc=john@grabjohn.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@ds2.pg.gda.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox