Ubercool! This is exactly what I myself intended to do, and you<br>have already done it! My next goal is to initialize the display<br>already in LinuxBios. I want it to go into a nice picture/or solid color<br>within less a second after press the ON button. Then, later as the 
<br>X-server takes over the control, it will know that the display is initialized<br>and can take over without blinking the display.... :-)<br><br>Do you think it is possible?<br><br>//Fredrik<br><br><br><div><span class="gmail_quote">
2007/3/16, Luc Verhaegen <<a href="mailto:libv@skynet.be">libv@skynet.be</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Yes, you read that correctly.
<br><br>You can run X on your CLE266 based EPIA without having to depend on any<br>non-free software whatsoever.<br><br>No non-free drivers. No non-free BIOS. And now no VGA BIOS :)<br><br>If you have an EPIA-M, then things are very easy. Well, relatively easy.
<br>Well easier than trying to include a VGA ROM in linuxbios anyway :)<br><br>X bit:<br>------<br><br>My X driver has been able to run as a non-Primary VGA device for years.<br>All it needed was to become (bios-initialised) scratch register
<br>independant, which is something i did late last year, early this year.<br>There was a single, highly trivial bug in the way, and it was something<br>i broke late last year, but now it's just fine.<br><br>So just get my driver from git:
<br>git-clone git://people.freedesktop.org/~libv/xf86-video-unichrome<br><br>* Build it; there's a README in there for manual builds (it's backwards<br>compatible all the way to debian sarge's xfree86-4.3.0), or if you're
<br>on debian or ubuntu (with a modular X) then you can just<br>dpkg-buildpackage it.<br>* Install it.<br>* Test it.<br><br>Caveats:<br>* You do want to test X and verify that it's the latest version. The<br>log echoes the git SHA-ID. grep for "SHA-ID" and match it with your
<br>git tree.<br>* You do want X to start automatically, or you will have to have some<br>other means of logging in (serial, network).<br>* Don't depend on X as your only way in. The driver was written only<br>with "bail out cleanly if something fails" in mind. If it fails, it
<br>will restore the console cleanly. But the snag there is that we didn't<br>have a console to begin with (but hang on, i'll get you one ASAP). :)<br>* The driver will complain when trying to parse the scratch registers.
<br>But all the necessary ones are handled properly now, and the rest are<br>configurable. So the driver is just whining, nothing more.<br><br>BIOS bit (for original 256kB rom):<br>----------------------------------<br><br>
Linuxbios already had all the bits necessary to get this working.<br>There's no more voodoo involved anywhere.<br><br>* Just use whatever payload you require (normal use will probably be<br>filo), but make sure that this is solid.
<br>* Just buildtarget via/epia-m with the standard config, which should<br>only be adjusted for your payload.<br>* flash your rom with the created linuxbios.rom, but do store the old<br>image first, as that takes only a few seconds.
<br><br>Do not bother with any of the VGA things, as, for X only, they are not<br>necessary, and most of the documentation out there is outdated anyway :)<br><br>Caveats:<br>* you do want serial (test this before rebooting), as you don't get a
<br>VGA console. If you, for instance, want to touch what filo is booting<br>for you, then you do need serial.<br>* you probably do want to be able to ssh in, this means that you<br>pretty much need to get to the end of the booting process already.
<br><br>I have deliberately kept the above guide short. Read through the<br>documentation of what you're doing, this will help ensure that you don't<br>get an unbootable machine. But this is not rocket science, there is no
<br>voodoo involved.<br><br>If you're careful, and spend a bit of time and thought on setting up<br>the payload and linuxbios, then the chance of bricking your EPIA-M is<br>small. But if you do brick it, you will have to find a way to flash your
<br>rom from another board (hotswapping) or with a prommer. Nothing lethal,<br>but a rather major inconvenience if you're not prepared for it.<br><br>For absolute peace of mind, you might just want to get a PLCC extractor
<br>(~5-10EUR) and a 5V PLCC rom (~5EUR) and keep the original rom as is. If<br>you then bugger up, you can just insert the old rom again, edit your<br>BIOS config (CMOS got incompatible changes now), and it'll boot up just
<br>fine.<br><br>----<br><br>Now, if both bits have been done, do some ritual of your own choosing<br>and reboot.<br><br>You do want to powercycle to get rid of the original VGA BIOS that's<br>still loaded at 0x000C0000, which doesn't get run at all but just sits
<br>there. Also, if you don't powercycle, console will also just keep on<br>existing as if nothing happened, as no registers from the unichrome will<br>get touched in a significant way.<br><br>After a short while, X should come up as if nothing's changed :)
<br><br>And that's it. You've rid yourself of all non-free software. Now you get<br>to trump pretty much everybody who claims to be all free software :)<br><br>There is of course no warranty that all of this will not brick your
<br>motherboard. If it does, then i'm sorry, but then you've probably done<br>something wrong, as it's all pretty happy here. But it's nothing lethal<br>anyway, just inconvenient :)<br><br>The only time i did brick it here is when i did try to run a VGA BIOS
<br>(at a wrong, hardcoded offset), so don't worry too much, just be very<br>careful :)<br><br>Oh well, true free software geekdom is only for the brave.<br><br>Luc Verhaegen.<br><a href="http://unichrome.sf.net/">http://unichrome.sf.net/
</a><br>_______________________________________________<br>xorg mailing list<br><a href="mailto:xorg@lists.freedesktop.org">xorg@lists.freedesktop.org</a><br><a href="http://lists.freedesktop.org/mailman/listinfo/xorg">http://lists.freedesktop.org/mailman/listinfo/xorg
</a><br></blockquote></div><br>