Weblog
Limit entries displayed: [ 2 ] [ 4 ] [ 6 ] [ 8 ]
PhoneME Advanced Foundation (with JIT) at Jalimo
Robert Schuster
|Friday 01 August 2008
|about: arm , avr32 , buglabs , cacao , classpath , jamvm , phoneme
This was a big pile of work but now it is a nice achievement for Jalimo: The most complicated issues have been sorted out and we can now build Sun's PhoneME Advanced (Foundation profile) with the JIT compiler enabled for all our little ARM devices (And not only we can do this but everyone because the recipes are in the repository).
The first device for which I could build the runtime was the BeagleBoard. You can see the full log of the first bits of CVM-goodness on that device here. What is important to note is that the JIT compiler is enabled:
CVM_JIT=true
When compiling the source with the JIT the build gets a bit more complicated: Some Java programs will be compiled and run on certain sources. What is nice that these helper programs actually run on a GNU Classpath-powered VM. See, this code is still does usefull things for us. :-)
Buglabs recently did a comparison of Cacao, JamVM and PhoneME Advanced (interpreted only) on ARM systems. Surprisingly (or not :-) ) JamVM does a very good job!
While we are at it: JamVM seems to be the only (free!) Java virtual machine that can run on the AVR32 architecture. The port is not yet included in the upstream repository but is nevertheless quite interesting: The guys doing the port are making use of the Java hardware acceleration (whose specification can be obtained freely).
Finally the other day I wrote down everything about the Java support in OpenEmbedded to the shiny new OE wiki. I hope that with this information people will quickly be able to customize their OE-based distribution. Furthermore the pages describe the quite complex bootstrap process and each of the packages that belongs to it.
Next stop: OpenJDK ;-)
LinuxTag 2008 - 2nd post
Robert Schuster
|Wednesday 04 June 2008
|about: arm , beagleboard , buglabs , cacao , classpath , jalimo , jamvm , linuxtag , openembedded , phoneme , ti
Today I am continuing my impressions of LinuxTag 2008 in Berlin.
Besides Harald and Rob I met Marcus Brinkmann at the social event (= kind of aftershow party). When reading the name on his speaker badge it reminded me of something but I had no clue. We were already in a longer discussion about rulerless societies when I realized that Markus is one of the main contributors to the HURD. It was very fun talking not about software to someone who participates to the core of the GNU project. :-)
The inherent desire of the GNU project to escape control, dominance and dependency from others always made me wonder whether anarchistic way of thinking is prevalent in this community.
When it comes to shared attitudes in a group I guess that people dealing with embedded systems dislike the x86 CPU architecture. At least Florian and Holger expressed their dislike at the LinuxTag and I know it from myself, too (guess why I use a PowerPC laptop ;-) ). Unfortunately in the embedded space ARM CPUs are what powers most of those nice little gagdets (mobiles, PDAs, MIDs/Internet tablets) and sometimes I wish there would be more AVR32 over the place. :-)
However as implied in my last LinuxTag post there is something happening in the embedded Linux world. More and more manufacturers are making specifications available for free and without the need to sign NDAs. Furthermore new hardware is developed with the goal to have free drivers and support from the free software community.
One of the younger efforts is BeagleBoard which is officially supported by Texas Instruments. The hardware contains an ARM Cortex A8 CPU clocked at 600 MHz. Calling this beast "embedded" is kind of an understatement. Still it has all the niceties of such a system: low energy consumption and no fans. If you are interested in what other nice things can be found on the BeagleBoard check out this site. Granted the hardware is already impressive but what IMO really rocks about the board is the new level of openness demonstrated by Texas Instrument (and to a great deal by ARM):
I became interested in the BeagleBoard shortly before LinuxTag and visited their booth at the end of the 2nd day. My questions to the friendly guy at the booth (sorry I do not remember the name, but it was TI staff) started right with the issues that are mostly pressing to me: specifications, NDAs, later lifting of access restrictions. What impressed me was the immediate offer to take one of the CDs from the desk. These CDs contain documents with thousands of pages of documentation of all stuff you find on the board. That reminded me of the cool marketing event of AMD (ATI) where they handed out CDs with specification to every member of a press conference.
So what you get is the reference manual for the board itself, the OMAP35xx embedded CPU and much more.
There are some special areas that are encumbered and need fixing: the board has an 3D accelerator from Imagination Technologies and a DSP with video decoding capabilities. The accelerator lacks public specification and to make use of the DSP a special compiler is needed which is only available as part of a larger licensing deal. There was a project of the Chemnitz University of Technology that implemented a GCC backend for the DSP. This port is not complete and has not been integrated upstream but still it is a start.
While I consider these encumbrances are an annoying drawback work is underway to fix the issue in one way or another. Furthermore those components are not essential - you can still access the framebuffer.
I would really like to get my hands on such a system and make run Jalimo's VMs (Cacao, JamVM) and class libraries (Classpath, MIDPath) run nicely on them. What interests me most is the CPU's floating-point support. Cacao has still trouble with ARM hardfloat and the BeagleBoard would allow me to debug that extensively.
Let me also add that I am currently fighting with PhoneME (Advanced, the CDC one) to get it compiled inside OpenEmbedded. I thank Ken Gillmer from Bug Labs helping me with this (Bug Labs are cool too. Have a look at their licensing page and you know why. :-) )
Back to TI and the Beagleboard: The guy from the Beagleboard booth told me that their interest with the hardware is that the FOSS community gathers around it produces all kinds of fixes and additions to existing projects (to make better use of the hardware or whatever). In return this will make the OMAP35xx series a better product to sell to other customers (and want to deploy some Linux on it). This may sound like exploitation but I think it is a fair deal because:
- nobody is forced to work on/for the device
- those who do will most likely gain a lot of experience that future employers will appreciate
- everyone and not only TI will profit from the contributions made by the volunteers
Before I close this post I would like to highlight my latest finding: ARM is currently making a lot documentation available for free. You can access the documents over here. There are still some placeholders for documents which are restricted and I am not sure whether those will be added later or are out of scope of this effort. Nevertheless ARM provides an RSS link where you will be informed about the latest documentation releases and updates. I have done that and am impressed about the number of documents that are finally seeing the light. I really hope that one day "Jazelle v1 Architecture Reference Manual" will appear in my RSS reader ...

