Adding better S3C2410 support to u-boot

Starting today, I'm working on adding NAND controller (and Steppingstone), as well as frame buffer and USB host + device controller support to the u-boot boot loader.

For some strange reason I'm having quite a bit of trouble wit all of these tasks, maybe I'm misreading the documentation, I'm missing some errata or it's plain old stupidity. Especially stuff like the NAND controller driver are supposed to be extremely easy and fast tasks to implement, and I'm already spending way too many hours on a seemingly way too trivial task :(

Let's hope there is some progress soon...

Shanghai Food

While on my business trip to Shanghai, my business partners have been extremely well taken care of me. This includes assisting me obtaining some rather unusual souvenirs that I wanted to bring back, taking care of the sight seeing programme, but found it's most explicit expression in food.

While I'm extremely fond of Indian and Thai food, I never really enjoyed Chinese food too much, at least not what is sold in the western world as Chinese food. To me it's ok, but nothing spectacular. Before getting to China, food was my biggest worry. Remembering all these documentaries about seafood (which is basically the only kind of food I refuse to eat), and all the snakes, frogs and various insects that the Chinese cuisine tends to have.

Anyway, so my hosts knew about this and took me out to eat twice every day (yes, I'm probably now back to my weight of the Brazil trip in March). The food was always very interesting (as in, interesting ingredients, interesting taste, interesting structure, mode of preparation, ...) and also enjoyable. I kept asking them about spicy food, keeping in mind my preference for Indian and Thai. They promised me to have some spicy food at some point, they themselves not being into it at all.

Two days ago it finally became true. We've been to one of these "hot spot" places, where you have a boiling pot in the middle of the table. The boiling pot contains all kinds of spices, and you put raw ingredients such as tofu, meat, mushrooms into it. Pretty much like a Chinese version of the "Fondue".

However, that pot was split (2 thirds/one third), and one side would be exclusively for me. My side was ordered to be "medium spiced", and it had something like at least 12 red chili peppers in it :) I took a photograph of it in its initial state. The chilies basically disintegrated into tiny little pieces while they were boiling with the remaining food.

God, was that good. The best food I had since my last trip to India. It really was "medium spiced" in a way that there was no pain whatsoever, and it was just extremely strong-tasting, but not just spicy for the purpose of being spicy (if you know what I mean).

Since my business plans will include some more travel to Shanghai during the next couple of months, I _have_ to go back to that place, multiple times :)

Motorola ROKR E2

I've found the ROKR E2, which is yet another Motorola Linux GSM/GPRS phone exclusively sold in china so far. Apparently since June 22nd, so it's a quite new thing. It's very different from the A7xx/E680x series in that it doesn't have a touch screen, but many more buttons. Also, it features a full-size SD card slot, which makes it theoretically SDIO compatible (I'm pretty sure they use some SDIO compatible SD host controller in there).

Let's see whether I can work with the Chinese language firmware. I already found out how to get it into boot-loader flash mode (by pressing the camera button on the upper right side while powering the device up). It looks completely different than the blob on the A780/E680, but that doesn't really mean anything.

As of now, I don't have any technical proof that the device runs Linux. I'll probably not find time to play with this toy before I get back to Germany. But if anyone has hints or further information on how to dig deeper into the ROKR E2, don't hesitate to send me an email about your findings.

Experiencing China's Internet censorship

I've always wondered how China actually implements their Internet censorship, and how effective it is. I could have probably found out by doing some online research, but as with many things it just never happened.

Since I'm now using it every day here in Shanghai, I think I have a pretty clear picture on what is going on. Apparently all they do is some URL based HTTP filtering, and black-holing those requests. I'm not sure whether they actually filter all traffic to the black-holed IP address (which could shadow thousands of other virtual hosts on the same address), or actually only filter individual requests.

So apparently they're just blocking the technically unsophisticated regular user. Anyone with some basic network knowledge could easily work around those restriction - though it probably would be highly illegal.

So basically all the websites I want to access - including those that definitely contain content that the Chinese government would dislike. The only thing that is lacking from the web for me is wikipedia. But well, if you google for the term that you're searching in wikipedia, then Google will happily give you the Google cache of that page ;)

But there's definitely no filtering on ports such as SSH or IMAPS. I can transparently access my IMAPS-secured mail server, I can ssh to my machines in Germany, everything working quite fine. Obviously any kind of tunnelling would give me access to the free world.

So all in all, (luckily!) not very effective, from my point of view.

Now I hope that the Chinese authorities don't see that posting before I leave the country, interpreting it as a 'censorship protection circumvention technology', or actually put my blog into their filters ;) This page is uploaded via HTTPS, so at least they won't see this message _leave_ the country.

Motorola A728 and A732

Just next to my hotel, there is a book store that also sells mobile phones. Among the Motorola models are the A728 and A732, both Linux based. They're about 160EUR each. I don't yet know whether that is a good price, but now after checking with some online shops I think it is.

So I guess I'll get one of each in order to investigate whether we can hack them from an OpenEZX point of view. Also, this finally allows me to obtain proof whether they're still shipping GPL incompliant or not.

I'll continue to look for an A768 and E895. Let's see whether I'll find some time to do some more serious 'shop browsing'.

Visiting armzone.com in Shanghai

Today I had the pleasure of visiting armzone.com in Shanghai. Now if that was like visiting any other hardware or electronics store, I wouldn't be blogging about it. It might actually be that visiting any shop like this in China is a similar experience. But I'll write it anyway, you don't have to read it.

So we were there to buy some S3C2410 based development boards (full-featured, basically PDA development boards, including 65MB SDRAM, 64MB NAND Flash, Ethernet, USB host and device, a CPLD, IDE, 2xSerial, JTAG, SD-Card, ..). The first thing to notice was the price. Including a touch screen LCD panel they were something like USD 180 each. Actually less than any PDA based on them would cost in the western world. Aren't devel boards usually at least one order of magnitude more expensive than the actual systems you're going to design with them?

Then we were looking for some JTAG adaptor compatible with that devel board. The boards ship with a wiggler, which is supported by OpenOCD and also some s3c2410 version of JFlash, but which is slow as hell. Sort of the least interesting option. They had a number of USB and parallel port models available, some of them clones of well-known modules such as MultiICE, some others being developed by themselves.

The main problem was that they all seem to require some RDI server to run on a windows box. Hey, If I'm doing Linux target development on a Linux host system, they ask me to run a windows box just for that daemon? They must be kidding me. So my Chinese contacts engaged in some almost two hour debate on whether he couldn't release the source code to their own RDI server so I can port/re-implement that code on Linux, and why it might be a benefit to them to get that Linux version back to ship with further products. The debate also seems to have included all kinds of other options. Going as far as to the shop wanting to sell us a Raven compatible device, to which we almost agreed, only to learn that he needs a week to produce some more apart from the engineering sample.

One other thing we'd need for the parallel port versions is a PCMCIA parport card. Yes, such things actually exist, and you can buy them even on some Chinese eBay like site whose name I forgot. Rather than buying that, armzone offered us to wait two weeks, until then they will have built (!) their own parport adaptor for only a part of the price. Yes, they would have gone all the way down to molding a case for the parport connector sticking out of PCMCIA, etc. And that for us buying a max of 5 of those cards. Hey, we're talking about electronics / PCB / case design here, not about whether I want ketchup with my french fries!

This seriously made me wonder whether when you buy a car in China they also ask you if they should be personally just for you build a different car radio from scratch. These guys are crazy...

The wonders of Vienna airport

For my trip to Shanghai, the both cheapest and most convenient flight schedule was offered by Austrian. I mainly use KLM / NW / Air France / Lufthansa for my flights, so Austrian was definitely a new experience.

So here I am, connecting to my int'l flight at Vienna airport. Free 802.11b wireless Internet access, unfiltered, with a DHCP server that provides you an official IP. Guess I'll never connect voluntarily at Frankfurt, Paris or Amsterdam again. Finally somebody understood how you can make an airport much more attractive to the [IT] business traveller, without any big investments.

Krrish

Yes, apparently it's Bollywood season in Berlin, thanks to rapideyemovies.de who has brought Krrish at least for one week into one of Berlin's smaller cinemas.

I definitely enjoyed the movie quite a lot. I believe it would be a good example for a "masala movie". Love, Romance, Action, Eastern, Sci-Fi, Thriller: all-in-one. And that with the most excellent dancer and "India's Schwarzenegger" Hrithik Roshan and former Miss India Priyanka Chopra as the two lead actors. And despite all the action scenes, the film actually is still cheesy enough to fulfill the Bollywood cliche :)

I also think it marks a new milestone in the area of special effects for Bollywood cinema. As a sequel to "Koi Mil Gaya", it definitely goes way beyond its prequel.

Rang De Basanti

It doesn't happen very often that one of the many Berlin cinemas shows Bollywood movies. Last Thursday, even two of them started simultaneously. So yesterday I had no chance but to watch Rang De Basanti. I had to go, even though I had seen that movie in Bangalore before. Obviously at that point without any subtitles, so there certainly was a lot of the plot that I didn't realize yet.

The movie was as good as the first time. There are very few movies that don't get overly pathetic when it comes to telling/interpreting a story about [past] heroes. But in this one, everything feels real. The strong emotions, the incredible pain, hate...

Definitely one of the top Indian movies that I have seen, even though it isn't not a very typical cliche Bollywood movie at all ;)

On Monday, I'll be watching Krrish. Let's see how Hrtik Roshan plays Krishna ;)

Bought a Sharp Zaurus SL-C3200

In order to learn more about OpenEmbedded, end especially GPE and OPIE, I've now bought myself a Sharp Zaurus SL-C3200. According to Michael Lauer this is the device that currently has the best support in both user-land and kernel.

Lets hope that by playing with OpenEmbedded/OpenZaurus on the SL-C3200 I can get a somewhat more clear idea on where I think OpenEZX should be heading.

Going to Shanghai next week, kicking-off an incredibly cool Linux project

Today I found myself being at the Chinese embassy, applying for a business Visa. I'll be travelling to Shanghai Wednesday next week, starting to work on an incredibly cool Linux project. I cannot tell you what it is, probably not for the next four months or so. But it's definitely one of the most exciting things I can imagine right now...

Interview on gpl-violations.org with groklaw.net

There seems to be "interview season", since just after the lwn.net interview, groklaw.net has now published this interview with me on gpl-violations.org.

The interview was taken by Sean Daly, who has also been taking care of the audio and video recordings at the 3rd international GPLv3 Conference in Barcelona last week.

Let's hope that those interviews will raise some more awareness and prevent more violations from ever ending up in our request tracker.

Ridiculous fees for USB Vendor ID

Sometimes you happen to find yourself starting a DIY electronics project, much like a Free Software project. And if that hardware is actually to be plugged into one of the standard interfaces such as the various PCI variants, or USB, then you'll need to give it a USB Vendor and Device ID. Vendor ID's are 16bit, and allocated by the USB Implementers Forum (IF).

Unfortunately, applying for a Vendor ID costs you USD 2,000. Yes, two-thousand bucks US for creating an entry in a table. This might be peanuts for large hardware companies, but it's an awfully large amount of money for any of the many USB hardware projects that people tend to experiment with. Especially since micro-controllers with embedded USB device controller are quite commonplace these days.

In the software / Internet world, there also are unique ID's that need to be applied for. I'm talking about protocol numbers, port numbers and the like. I've already applied for a number of them at bodies such as IANA. Obviously they are for free. This way you can ensure not to use values that get later assigned to other organizations/projects, and everything is clean.

Ridiculous fees such as the USB IF fee for a Vendor ID are just leading to the situation when independent developers will chose random ID's, which will sooner or later clash with other vendors and his devices.

If the USB IF was really interested in stability and unique assignments, they would

  • reserve a couple of vendor ID's for experimental/ organization internal use
  • create a hand full of vendor ID's which are not assigned to any vendor, but where hobbyists and Free Hardware developers can have individual device ID's assigned to themselves, e.g. like the IANA protocol/port number process works

Barcelona Montjuic cemetery

This morning I've been visiting the Montjuic cemetery in Barcelona. I went there with mixed expectations, since the information I could find online indicated that Spanish cemeteries tend to have these massive walls full of small "urn storage graves", which are not of any real interest to me.

God, was I amazed how different it really turned out to be. Now, after having seen it, I think it has definitely made it into my personal top ten of world-wide cemeteries. Thousands of angels, and other extremely beautiful statues.

Family graves of the wealthy Barcelona families from the late 19th and early 20th century, as rich in architecture, sculptures and details that make many church look extremely plain next to them. And there you have hundreds in one spot!

The whole cemetery is very well maintained, and due to its situation on the side of the Montjuic hill, next to the sea and in direct sun there is very limited vegetation (and therefor no spread of plants onto graves, etc.).

So by now, knowing my affection for cemeteries, you must have thought that I was in heaven while visiting Montjuic. Almost, if there wasn't that stupid "no photography" sign at the entrance. It made me hesitate a bit, but then I thought "well, southern Europeans are generally a bit more open to bending the laws, so let's try it anyway". I took some five pictures, and no later than 10 minutes after entering the cemetery, I was stopped by no less than six cemetery guards, who were constantly patrolling the whole cemetery with their small scooters.

They took my personal details (I wonder whether they will send me a fine to Germany *g*), and asked me to delete those pictures on the camera. I did without hesitation. The technical reader of this blog will know how easy it is to undelete files from a FAT filesystem ;)

Anyway, I didn't engage in any further photography, and I was saddened to see all this beauty, and being deprived of capturing at least tiny bits of it in order to take it home with me, put some more prints to the walls of my apartment, etc.

This really has been the first cemetery I've been to which disallowed photography. And I've been to many hundred cemeteries, mainly in Europe but also in other parts of the world. And they don't even state _why_ they don't allow it. I would pay for a photo pass, I would sign off on no any "no commercial use" declaration or whatever. *sigh*.

I mean I can perfectly understand if people protest against inappropriate photo shootings at cemeteries (you know what I mean... barely naked women tied to graves, etc.), and there is _nothing_ in common between such inappropriate behavior and somebody like me, who basically wants to honour the original artist/sculpturer by taking some pictures for personal use only.

Last librfid ISO 14443-4 chaining bug eliminated

Ok, I finally found the [hopefully] last bug of librfid's ISO 14443-4 PCD side tx side chaining bug. It only occurred in combination with WTX reception.

I also tested CID (card-id) support for multi-activation. If anyone has ever seen a 14443-4 PICC that actually offers NAD (node address) support, please do let me know (samples even more welcome).

To my surprise I discovered, that higher baudrates are actually already negotiated between PCD (reader) and PICC (transponder). Thought there was some practical problem, but it actually worked all the time.

Some small A780 progress

I've continued my work on porting the ts07.10 from Motorola's mux_cli to 2.6.x. It now compiles, although I have no idea whether it actually works as expected.

Since Linux 2.5/2.6 has undergone quite some sophisticated changes in both scheduling/context area (no more struct task_queue) as well as the tty layer (dynamically allocated and managed flip buffers, etc), the task has been a bit more challenging than the usual copy+paste+minor_fixup task.

I'll also be releasing the -ezx6 kernel soon (2.6.17 based) in the next couple of days, where I plan to merge mickey's various driver bits (LED, backlight, keypad fixes) and the above-mentioned mux_cli.

GPLv3 and Steve Ballmer's blood pressure

I'm currently having the pleasure of being part of the GPLv3 Conference Europe. It's been a pleasure to meet folks like Georg Greve (FSF Europe), David Turner (FSF GPL compliance lab), Eben Moglen (FSF, SFLC) again.

There seems to be significant progress in the GPLv3 process since my latest status updates at the 2nd international conference in Porto Alegre (Brasil) some months ago.

To one part, the second draft of the license is supposed to be published in roughly one month from now. As Richard Stallman pointed out, the most significant changes that we're likely to see are:

  • Renaming of the "liberty or death" clause to "no surrendering others freedom"
  • More precise wordings on the frequently-misinterpreted DRM clause, removing the section on provision for "unencrypted output". The latter clause is basically superfluous, since if you have access to the full source, and a means to install a modified version of the source, you can easily remove any encryption routines for the output.
  • Probably an option that if you only distribute binaries, then it's sufficient to provide the source code on a network server, rather than having to provide it per mail order. This still requires some feedback. I personally disagree with this, sine there really are many [both real and potential] users of Free Software who live in low-bandwidth areas. Yes, there might be services which download software from the net and write CD-R's for you, but do we know that such services exist (and will continue to exist) in all those areas?
  • There was some necessity to rewrite the explicit patent license. There is no change in function.
  • Introduce some new wording such as the concept of "conveying a copy" rather than using the term propagation (or even the old US-centric "distribution"). This wording tries to depart from any US legal terms and rather defines some own terms. As a side-effect, it cleanly solves cases such like peer-to-peer sharing networks (where every downloading user also distributes [partial] copies to other users.

Also, as I figured from conversations with Eben and David, to my personal pleasure and acknowledgement, the wording of the "60 days clause" has been changed in a way to make its intent quite a bit more clear.

Another interesting point was the fact that I learned about a detail in GPLv2. Apparently the Section 3b (accompany object code with a written offer to provide the source code later on a physical storage medium) was never intended for online distribution. This paragraph was only meant for physical distribution. All online object code distribution should actually also have online source code distribution. Unfortunately this intent didn't actually become visible in the license, and now we have cases like Buffalo, where the vendor tries to actually make it as hard as possible to obtain source code (only one product source code per cd, have user send a CD-R with return envelope, plus some fee for copying, for each version of the firmware).

Oh, and how does Steve Ballmer's blood pressure fit into the picture? Eben Moglen gave one of his most eloquent and visionary presentations, in which he interpreted recent and current events in and around Microsoft as the signs of the eve of the downfall, and that Free Software will be keeping Mr. Ballmers blood pressure at high levels ;)

librfid tx chaining fixed

After a couple of hours restructuring the ISO 14443-4 (T=CL) transceive code of librfid, we now have working TX chaining support. Quite embarrassing that this fundamental mode of operation was broken for so long. Seems like people have been mostly running read-intensive applications, where no larger chunks of data are sent to the PICC.

netfilter.org releases (almost), update on my netfilter involvement

It's been terrible to be away from netfilter development for about two months now. This really has to change, I have to cut down on other stuff if I don't want to loose track completely.

Anyway, I finally did what I wanted to do at least for many weeks: To push new releases of libnfnetlink, libnetfilter_log, libnetfilter_queue, libnetfilter_conntrack and conntrack. The files are available from their usual location. Haven't been in the mood to write changelogs yet, so if you're really interested in them, you'll have to wait for a bit more.

The main architectural change is that the internal api between libnfnetlink and libnetfilter_* has changed, e.g. caller-allocated structures are now callee-allocated. Apart from that, a very important bugfix was made in libnfnetlink, one that actually affects future-compatibility of the kernel/userspace interface.

For anything else, it's mainly a maintenance release.

libnetfilter_queue doesn't yet contain the bits required for the 'upcoming' libnetfilter_cthelper (userspace helpers), because I felt pushing that code without having the rest of the infrastructure plus some test cases running isn't really worth it.

So please include in your prayers that there are not too many gpl violations during the next couple of weeks, that I finally get hold of that stupid PPTP problem that is bugging me for many weeks. If that happens, I think I'll be back to netfilter stuff early next week after returning from the Barcelona GPLv3 event.

Not sure whether I mentioned it already: I'm actually skipping OLS (and kernel summit) this year in order to gain some time. Meeting folks and attending talks is a lot of fun, but it also (including the travel overhead, jetlag, drinking, etc.) eats a lot of time. So I'll actually take my long-announced pkttables holidays when the rest of the Linux kernel developers are in Ottawa. For those not familiar with the term: The idea is to 'go on holidays' (i.e. abandon anything else like reading emails, etc) and stay focused working on netfilter stuff for at least one week in order to finally see the ideas so far known as pkttables to finally materialize in one way or the other.

Meanwhile, I have to extend my deepest thanks to Patrick McHardy, and all the work he's been putting into netfilter maintenance over the last year or so.

Geek Pr0n

See for yourself at http://photos.jibble.org/GeekPr0n30. I really like them, not only because it is geeky, but also because the photographic ideas behind at least some of those pictures. How the aesthetics of the body mix with the geometry of certain object, and sometimes even play with some cultural connotation that we might have...

My personal favourite of that set is this one.

KRISH in German cinemas

Thanks to rapideyemovies.de, the follow-up to the Bollywood sci-fi "koi mil gaya" called "krish" will be shown soon in cinemas all over Germany (well, at least in all major cities).

I'll certainly make use of it, especially since I'll be missing the Bollywood night at Filmmuseum Potsdam because of my trip to the GPLv3 conference in Barcelona.