First CPU review: OpenRisc, OpenSparc and S1 Core

The study items are listed on the Open Source CPUs post, especially the category description.

OpenRisc

The goal of the project fits my view of open source hardware, nice 😉
They claim a stable status and both fpga and asic proven design, well after reading the OpenRisc 1000 is a family specification, so this really applies to the OR1200 which is the only actual implementation existing today. It’s a 32bit RISC CPU with Harvard architecture, caches and MMU.
So it fits in the portable CPU category.

OpenSparc

It really look like sun needed some publicity to me, anyway here it is, a strong high end CPU (8 cores 64bit Risc…) it’s released under GPL v2. I don’t know if oracle buying sun interfered here, but some link on the site were broken, and the data did not seam to be that recent… But if it’s stable they don’t need more releases. Finally it’s really too high end for any geeky project, but there is a more suitable fork: look at S1 Core.

Simply RISC S1 Core

This is a reduced version of OpenSparc T1 with a single core, so it’s still a powerful 64bit Risc, but I think it’s more accessible so it fits the portable CPU category.

Note: From the S1 Core project page on OpenCores the same maintainers started a new and similar project OpenSPARC-based SoC

A summary table including those CPU is available, currently only in OpenOffice Format: Open Cpu Study Summary.

Open Source CPUs

I recently blogged about Open Source Hardware, lets take a look a bit more at the FPGA/ASIC kind of projects.

Any project big enough will require a CPU to control the rest of the hardware and maybe just run some user software. So we need an open source CPU ! That is to say, the code of a processor in a common HDL language (VHDL, verilog) with an open source licence.

A quick search on the internet and we have plenty of soft-processor, some open source, some not:

So how do we compare all that ?

There is an interesting article on the subject on 1-code technologies: Soft CPU Cores for FPGA. It compares the cpu in terms of features and size (in FPGA cells).
(As too often on the internet it’s lacking a publication date so it’s hard to know how recent the information is.)

So I’m planning to review several CPU and publish my results.

Continue reading

Installing debian on EeePC 1201HA: the synaptics touchpad

As usual debian’s wiki is a great resource, look it’s page about Synaptics Touchpad and most of the configuration is done.

So here I got the finger tap to work, but is spite of my efforts, the two finger scroll would not work. Well actually it did work using synclient but it was lost by next restart… And the hint was on the wiki but on Elantech Touchpad‘s page, near the end, in “GUI assistance” section: “Beware that they can override the global X settings in xorg.conf.”

So if you’re using gnome, look at the Mouse setting in gnome menu. You can also try gsynaptics, but while gnome mouse settings are reloaded each time you switch VT or suspend the computer, gsynaptics has to be reloaded manually.

Gnome didn’t let me check the two finger scroll option, so I opened gconf-editor searched for the touchpad key and found it as /desktop/gnome/peripherals/touchpad and changed scroll_method to 2. It’s still grey in the menu, but it’s checked an it works!

There is one remaining issue with gnome, if you want a different button for 2 finger tap than button 3, you can’t! I first fell on the fedora bug report about it which lead me to gnome’s one. So as of today, there is a patch, but not integrated in gnome, and I did not test it.

So I was tempted to switch to my old wm fluxbox, but didn’t take the time to configure it yet. Also reading Who-T’s blog, and especially this post xmodmap keyboard deconfiguration made me think that configuring one’s desktop trough Gnome and the like is going to be “the right way” in near future. As fluxbox session is just a plain bash script, we’ll need more working CLI tools for the hotplug configuration…

Well to come back, the touchpad is not going to be hotplug so a plain old config file like xorg.conf should in my opinion remain a valid choice (especially now that it does no goes through some other xml stuff as with hal). But then, the desktop configuration (ie Gnome) shouldn’t mess with it as it’s doing now!

Open Source Hardware

I’m fan of free software, I’m also a Micro-electronic engineer, sometimes I wish I could apply the free software philosophy to some hardware projects.

Well I could just applying some nice licence to some design and publish it. For hacking this works, just look at Arduino‘s success !

And there are plenty of other examples :

I think one great part of the success is related to the fact that you can do it yourself.

Now if you consider bigger projects like FPGA/ASIC design, it seams harder, well yes you loose the ‘do-it-yourself’ fun, and you compete with big companies, but still there are some examples:

Ok this is possible, now let’s go further, how do I choose my licence ?
Continue reading

Installing debian on EeePC 1201HA: the grub 2 trick

As already stated in the previous post update I’m now using the method described on debian eeepc wiki for booting in native resolution, so I’m no longer using the IEGD driver (nor my xserver by the way).

I find it a lot more stable !

I no longer have the issues with the mouse cursor jumping randomly to the lower right corner.

I even configured the touchpad to use the tap to click mode and the two finger scroll mode. (This will be the subject of a following post)

One more thing about using 915resolution in grub2, if like me you find that windows no longer want to boot, then only load 915resolution.mod before loading the linux kernel and not at grub startup.
You can do that by adding the following lines in /etc/grub.d/10_linux.

	echo insmod 915resolution
	echo 915resolution 58 1366 768 32

Instead of creating the /etc/grub.d/01_915resolution file.

I did place it at the end of the if block testing the GRUB_GFXPAYLOAD_LINUX variable.

Hope this will help some of you !

OpenPGP key migration

I’ve generated a new OpenPGP key, and I’m now using this new key.

See my migration message for details.

Anyway if you are using my repository and get the following error:

W: GPG error: http://silicone.homelinux.org unstable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 8B306538D00E52B6

All you have to do is to get the new key and import it to apt again.
The key is stored as before in siliconerepositorykey.asc and you can import it with:

sudo apt-key add siliconerepositorykey.asc

Trial and errors with git branches

I’ve recently learned to use git (for my xorg adapted packages) and used it later for netsed.

In order to develop UDP in netsed, I had to try several stuff, my network programming experience in C is back to some school time, so this was really trial and errors. And here git really helps, all I had to do is create branches for each trial, so I don’t loose any tracks I’ve taken, then when I found the right way to do it, I could just merge or cherry pick from the branches (or even just copy past from gitk to my favorite editor gvim) and that was it !

Of course I can now delete the trial branches, but those were really helpful during development time.

This meant abusing of git commit --amend, git merge ( --squash ) and git cherry-pick commands, but well you cannot build a clean code without effort.

I should probably give another look at git stash which seams to fill similar needs.

Taking over Netsed

Netsed, the network packet stream editor, is a program originally written by Michal Zalewski .

While the program idea is good, it’s implementation had some lack, and nobody seamed to care enough to fix it.

I did already hack it some years ago, and it appeared that my changes was fixing a debian RC bug (#586037) so I took netsed maintenance as one of my new projects!

For now only my changes and patches proposed by Mats Erik Andersson are integrated.

But I will start working on a test suite (still have to find the right tools for that, would ruby be nice ?), and of course implement UDP support.

Also I’d like to really thank Mats Erik Andersson and Tim Retout for their answers and support.

Resources:

Building xserver 1.6 for Xorg 7.5

Update: As explained in other posts, I’m no longer using this xserver version myself. So this stays here, but I’m not planning to update it in any manner.

The goal of the xserver downgrading is to run intel IEGD drivers on recent GNU/Linux distribution (debian squeese in my case). This seams to be the only maintained driver for the US15W GMA500 (poulsbo) chipset.

Continue reading