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
>
>
next prev parent 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