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    [W:2.600 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site