Debug board for Efika MX Smartbook

I finally found a time to connect debug board to Efika MX Smartbook. I got that dongle about week ago but had more important things to do.

Package arrived in small box with BBRV signature on it:

Inside was “Lange 3 DB Board” made by Pegatron company. This provides ARM JTAG and serial connectors.

To connect it with Efika MX Smartbook first thing to do is take out keyboard. To do this small screwdriver is needed to push in four places at the top edge:

Inside you see empty space for mini-pciexpress card (but only USB signalling) which is used for 3G modems. On the right is half size mini-pciexpress card (also USB only ofcourse) wifi card based on Ralink 3273 chipset. Debug board cable needs to be connected to CONN1501 connector under 3G modem space (contacts bottom).

Keyboard can be put back into place so it is possible to use serial/JTAG and keyboard at same time:

What for I would use debug board? Time will show. So far I found out that kernel based on 10.08 Freescale code drop has worse battery driver then previous one (10.07 based). After one hack I got at least system which boots normally.

Ubuntu One — good or bad?

Today I activated my UbuntuOne account again and enabled mobile service + extra 20GB storage (such set is given free for Canonical people). Now I wonder did it had sense…

On my desktop I am running KDE 4.5.3 under 11.04 ‘natty’ development release. Why is it important? Because there is no client for such combination. It looks like you need to run GNOMEbuntu or Microsoft Windows to have some kind of U1 integration. Otherwise I need to run shell command (or use GTK app) to login.

But ok, I installed all required packages and it connected. Synced Tomboy notes from desktop and Conboy ones from my Nokia N900 so now I have them in sync (without a way to select which one I want where but that’s limit of apps). Then I decided to make use from synchronization of contacts. And here the fun begins… My phone is not supported by Funambol (syncml backend used by Ubuntu One) so sorry — all I can use is one bug on LaunchPad.

So what’s left? Files — good to have 20GB of storage for something. Maybe will start using it one day. Now I spend time mostly at home so wifi/ethernet connection works and I have access to all media on my machines. Other is bookmarks — but only Firefox is supported (by extension) and I switched to Chromium few months ago.

But who knows… maybe it will have some use one day.

PandaBoard: my story

It was 24th March 2010 when one friend asked me do I want to be added to beta testers list for new omap hardware. One of questions was “what would you like to have on board” so I replied:

  • hdmi out (does not care much about vga/svideo/composite out)
  • 2xSD slots (SD or microsd type)
  • ethernet (but rather not on usb)
  • serial on db9/icd10 + serial/jtag by miniusb (think sheevaplug)
  • OTG is not needed but can be present
  • BT would be nice but not required as I have 5 micro dongles here
  • few usb ports — if possible (not omap3530) on more then one hub
  • few leds (multicolor?) would be nice (bug 2.0 has 2xblue + 2xmulticolor)
  • few buttons including power/reset ones
  • and 5V 2.1/2.5mm power jack. I do not need power-on-otg because it require 500mA ports
  • onboard lcd+ts is not needed for me
  • ah… and mounting holes like in beagleboard so board can be mounted anywhere
  • connector with i2c/spi/gpio/etc/etc
  • I missed audio in/out
  • battery for rtc

And suggested to place most of connectors on 2 edges as it helps to organize desk. Atmel’s at91sam9m10 was given as example cause it has all connectors on top and left edge.

And time passed… At UDS-M TI people said that there will be cheap OMAP4 based board named PandaBoard. During dinner (later same day) I got added second time to early adopters list. I wonder how Rob Clark reacted when he saw me on a list already 😀

And again time passed… Ubuntu/ARM people were playing with prototypes of PandaBoard (ES1.0, ES2.0 6-layer etc) and I had occasion to play with boards during Ubuntu/Linaro platform sprint in Prague. It looked nice (if you did not looked at ES1.0 one) and was more or less working fine.

And finally at 15th September I was told that at the end of month there will be production run from which several boards will be shipped to early adopters and few selected projects. Board travelled half of the world, then got back to US and at the end of UDS-N I got it.

Arrived home, powered BeagleBoard C3 off and started to assemble new board. Panda got several accessories connected:

  • +5V 3.5A power supply
  • powered USB hub
  • small USB keyboard
  • wireless USB mouse
  • 20″ LCD monitor with 1680x1050px resolution (this is also connected to my desktop)
  • 320GB Serial-ATA hard drive in SATA->USB enclosure

Also connected Ethernet, serial (by usb-serial dongle + 2 usb extenders) and used one of floating SD cards to have place for bootloaders and kernel. Config is much nicer then it was when I used BeagleBoard.

As operating system I am using Ubuntu 11.04 ‘natty’ as this is current development version and I have some things to check under it. Anyway I plan to move backwards and install 10.10 ‘maverick’ as primary system cause this will allow me to test omap4 hardware acceleration of graphics and audio/video decoding.

What I am using it for? Package building and testing. So far rebuilt whole KDE4 but it was segfaulting all the time on EfikaMX Smartbook so I am waiting for official ones (as there are some things to fix there first).

How to detect PandaBoard version

Some time ago I got PandaBoard for my personal use. It is EA1 version but then there was a question which I heard countless times:

Which version of OMAP4430 did you got?

There are two possible answers: ES2.0 or ES2.1. During my return trip from UDS-N Nicolas Dechesne from TI asked me and instead of answering I just gave him board with “this one” answer. He looked and told “ES2.1” and I did not asked more.

At home when I got it working I found PandaBoard Revisions wiki page which tells which GPIO lines should be checked. So I wrote simple test:

for gpio in 171 101 182;
do 
    cat /sys/class/gpio/gpio$gpio/value;
done

And got “0 1 1” as an answer which according to table from wiki means “750-2152-010 (ES2.1, 8-layer board)-Production board/PandaBoard Rev. A1”. But sticker on mine says “750-2152-001 (D)” which (again according to table) means that I have “(ES2.0, 8-layer board)-Early Adopter Board/PandaBoard Rev. EA1” one.

So who to believe? After some discussions on #pandaboard irc channel I prefer to trust Måns Rullgård and his skills in OMAP related area. He pointed me to OMAP4430 TRM section 1.5 which describes where version of silicon is written. What left was just one run of devmem2 tool:

root@localhost:~# devmem2 0x4A002204
/dev/mem opened.
Memory mapped at address 0x2aba9000.
Value at address 0x4A002204 (0x2aba9204): 0x1B85202F

And I got confirmation that I have real ES2.0 board. For those curious: ES2.1 has 0x3B95C02F value.

Efika MX SmartBook hacking day 3

Today I spent some time on hacking Efika MX Smartbook to be more useful.

First thing which got fixed was display panel placement — one kernel compilation later I had it working. Kernel is provided in my Efika MX download zone. No warranty etc of course. Sources available on request (or you can fetch them from gitorious repository).

Then I got rid of initrd — kernel has everything built-in to boot from internal drive so why bother with reading few megabytes on each boot? Here I looked at /boot/ and after few reboots I got into system which does not need initrd to start.

But editing “/boot/boot.scr” by hand was not what I would call handy. So I checked flash-kernel modifications done by Genesi, cleaned it up and proposed for merge. Resulting package is also provided in download zone.

What next? Time will show. Maybe will look at USB suspend/resume problem or again at making KDE fly (this needs some rebuilds done first).