Forgot your password?
typodupeerror
GNU is Not Unix Graphics Software Hardware IT

Basic Linux Boot On Open Graphics Card 177

Posted by timothy
from the bumblebee-flies-anyway dept.
David Vuorio writes "The Open Graphics Project aims to develop a fully open-source graphics card; all specs, designs, and source code are released under Free licenses. Right now, FPGAs (large-scale reprogrammable chips) are used to build a development platform called OGD1. They've just completed an alpha version of legacy VGA emulation, apparently not an easy feat. This YouTube clip shows Gentoo booting up in text mode, with OGD1 acting as the primary display. The Linux Fund is receiving donations, so that ten OGD1 boards can be bought (at cost) for developers. Also, the FSF shows their interest by asking volunteers to help with the OGP wiki."
This discussion has been archived. No new comments can be posted.

Basic Linux Boot On Open Graphics Card

Comments Filter:
  • by Anonymous Coward on Saturday May 02, 2009 @04:49PM (#27800771)

    Yes.

    Reason 1: Do you really like the idea that you have no idea how your computer works. It would be trivial for your hardware manufacturer to slip in some sort of user-spying component...

    Reason 2: Lot's of people can learn from it.

    Reason 3: Contrary to popular belief, people do hack around with hardware and provide ways for people to improve theirs... These sort of boards make this even easier.

    Reason 4: FOSS can better support it.

  • Re:A milestone? (Score:5, Informative)

    by DavidR1991 (1047748) on Saturday May 02, 2009 @04:53PM (#27800797) Homepage

    The /. post gives the wrong impression about the VGA implementation - it was difficult because they wanted to implement it in a extremely simple fashion, not because VGA itself is complex

  • Re:A milestone? (Score:5, Informative)

    by Jeff DeMaagd (2015) on Saturday May 02, 2009 @05:06PM (#27800891) Homepage Journal

    A lot of times, FPGAs are used for development. Once the design is proven, then you can go to etching into silicon. Almost nobody builds a fab for one chip, the good news is that chip fabs can make numerous different kinds of chips. There are many fabs that are willing to take any design that comes their way, as long as the money is there.

  • Drivers (Score:5, Informative)

    by tepples (727027) <{tepples} {at} {gmail.com}> on Saturday May 02, 2009 @05:07PM (#27800899) Homepage Journal

    If I don't like my NVidia card, I can move to a competitor's chipset.

    Only if the competitor is friendly to the free software community. There are plenty of hardware makers that have declined the free software community's requests for low-level specifications useful for writing free drivers.

  • by sxpert (139117) on Saturday May 02, 2009 @05:08PM (#27800903)

    If you had RTFA you would have noticed that that's exactly what they have done !!

  • by Anonymous Coward on Saturday May 02, 2009 @05:11PM (#27800925)
    from http://www.osnews.com/permalink?360100 [osnews.com] As the original architect of the way VGA is done on this board, perhaps I can offer an explanation. There is perhaps a more straightforward way of implementing VGA than the way we did it. The direct route would require two components. One piece is the host interface that interprets I/O and memory accesses from PCI and manipulates graphics memory appropriate. The other piece is a specialized video controller that is able to translate text (which is encoded in two bytes as an ASCII value and color indices) in real-time into pixels as they're scanned out to the monitor. This is actually how others still do it. To us, VGA is legacy. It should be low-priority and have minimal impact on our design. We didn't want to hack up our video controller in nasty ways (or include alternate logic) for such a purpose, and we didn't want to dedicate a lot of logic to it. Doing it the usual way was going to be too invasive and wasteful. Also, we want eventually to do PCI bus-mastering, which requires some high-level control logic, typically implemented in a simple microcontroller. So we thought, if we're going to have a microcontroller anyhow, why not give it dual purpose. When in VGA mode, the uC we designed (which we call HQ) intercepts and services all PCI traffic to OGD1. Microcode we wrote interprets the accesses and stores text appropriately in graphics memory. Then, to avoid hacking up the video controller, we actually have HQ perform a translation from the text buffer to a pixel buffer over and over in the background. Its input is VGA text. Its output is pixels suitable for our video controller. Aside from the logic reduction, this has other advantages. The screen resolution as seen by the host is decoupled from the physical display resolution. So while VGA thinks it's 640x400, the monitor could be at 2560x1600, without the need for a scaler. It's easily programmable, and we have complete control over how the text is processed into pixels; for instance, we could have HQ do some scaling or use a higher-res font different from what the host thinks we're using. We call it emulation because, in a way, our VGA is implemented entirely in software, albeit microcode that's loaded into or own microcontroller.
  • Re:Hey (Score:5, Informative)

    by thsths (31372) on Saturday May 02, 2009 @05:24PM (#27801001)

    Cool, yes. Useful - hardly.

    If you start with a clean slate, why would you bother with VGA emulation? Could you not just go for a sane solution, such as a flat frame buffer? Any other architecture does that, why does the PC architecture have to drag along legacy modes such as CGA with a number of 4 colors palettes?

    A flat 8bit RGB buffer would make a lot more sense, and I am sure Linux would boot faster on it, too.

  • by BikeHelmet (1437881) on Saturday May 02, 2009 @05:49PM (#27801135) Journal

    and your line seems to suggest confusion on that part.

    Doesn't seem that way to me. He's just pointing out that when compared to other electronics, we have shockingly little info available.

    Even for CPUs, there are fully documented "open-source" microcontrollers available, but for GPUs there's basically nothing. It is a big mystery, how it's all done. And now we've gone so far that GPUs are doing incredible things like juggling 10,000 threads that manage all the shading when, you fire up a game.

    nVidia and ATI stated GPUs are many times more complex than CPUs, and I fully believe them.

  • Re:Hey (Score:3, Informative)

    by DaleGlass (1068434) on Saturday May 02, 2009 @06:41PM (#27801419) Homepage

    Linux don't need the BIOS to boot, so they should simply get ride of it and build new open hardware on top of a new open firmware.

    Sure it does, the BIOS boot screen, settings, etc are kind of important to be able to see sometimes. The boot loader also counts on the VGA mode too.

    Now of course you could use Linux BIOS instead, but then that adds the requirement to have a supported motherboard, and wanting to risk flashing it.

  • by Theovon (109752) on Saturday May 02, 2009 @10:53PM (#27802923)

    Yes.

    The XP10 contains these parts:
    - PCI
    - Microcontroller that does VGA
    - PROM interfaces

    The S3 is mostly empty and contains these parts:
    - Memory controller
    - Video controller
    - Room for a graphics engine

  • Re:A milestone? (Score:3, Informative)

    by Rockoon (1252108) on Sunday May 03, 2009 @01:38AM (#27803831)
    Dont listen to these people. VGA is very well documented, and the posters which hint at the "non-standard" video modes (the popular oines being 320x240, 320x400, and 360x480 .. as well as 80x50 text mode) are incorrect. While the VGA BIOS may not have an INT call which sets those "non-standard" modes, they are fully predictable and part of the standard, which is why they were very well exploited back in the DOS days.

    They are only "non-standard" in popular belief, but very well THE STANDARD.

    It is true that not all VGA boards behave correctly, but that has NOTHING to do with THE STANDARD.

    The key point is that they are PREDICTABLE based on the technical specs. Set certain timings, enable/disable graphics mode, enable or disable pixel planes, and bobs your uncle. A simple counter-example to the naysayers is a book I have in front of me right now: The Programmer Guide to the EGA/VGA, 2nd edition.. published in 1990, which explains quite clearly the low level programming details (i/o ports, range of values, memory map... no BIOS services required.. just port reads and writes, and a memory buffer)
  • Re:Hey (Score:3, Informative)

    by SlashWombat (1227578) on Sunday May 03, 2009 @04:17AM (#27804425)
    Linux needs some sort of bios to boot. With no code at all, the computer is useless! Having said that, Linux does not require the MEGA-BIOS that most PC's come equiped with in this day and age. Even the original PC BIOS is overkill. You only need some code to initialise basic things like timers, uarts, ethernet controllers, etc, some IPL code for the Disk/Flash, and if you want to be really nice, a simple text mode to show the initial boot progress.

    Writing a bios specifically to boot straight into Linux is relatively straight forward, and one benefit is that the machine boot up time is minmised. Watching an X86 machine boot into linux when running a minimal BIOS is a gratifyingly fast experince!
  • Re:A milestone? (Score:3, Informative)

    by DrSkwid (118965) on Sunday May 03, 2009 @04:40AM (#27804495) Homepage Journal

    All you pups that don't remember VGA modelines and frazzling your monitor with the wrong XFree settings.

    VGA only goes up to 640x480x16 with 256k RAM, after that anything goes. IBM lost their grip on the market when they wrong footed themselves trying to force end users on to their MCA bus and XGA. MB / IOcard cloners started to design their own cards. Vesa Local Bus was born and MCA was largely ignored.

    Intel became the trend setter and (after EISA) PCI became the BUS and 3Dfx stole the gamer market from under ATI's nose.

    You probably know the rest.

  • by Gordonjcp (186804) on Sunday May 03, 2009 @06:13AM (#27804819) Homepage

    Copy a Linux kernel to /dev/fd0 and it will so boot without a boot loader

    Will it? How does the CPU know how to read the image off the floppy?

  • Re:Hey (Score:2, Informative)

    by YayaY (837729) on Sunday May 03, 2009 @11:13AM (#27806333) Homepage

    We are proposing the same thing. It's just that you use the term BIOS instead of firmware. BIOS is a x86-centric word.

    Booting linux without a BIOS have already been done, check that out : http://en.wikipedia.org/wiki/Splashtop [wikipedia.org]

    Some Asus MB have this feature. My M3A78-EM have this feature, it can boot a small Linux distro in about 5 seconds.

MATH AND ALCOHOL DON'T MIX! Please, don't drink and derive. Mathematicians Against Drunk Deriving

Working...