Thanks to a tip by Richard Purdie on the kernel-discuss mailing list, I found the problem. It turns out that the Linux MMC layer assumes that the card has a 512-byte block size.

I managed to work around it by forcing the block size on my card to be 512 bytes (even though it returns 1024 bytes). This isn’t the correct fix, but it seems to do the job for now. I’ll look into a proper fix once I have a chance to come back to it.

Read full post

So more hacking on the SD/MMC and I’m still the only one without it working. Two or three other testers have everything going, even so far as mounting rootfs off the SD card!

I tried a number of different things to get it working, including fixing a couple of things that look like bugs in the pxa-mci driver. Still not sure what is going on, but I’ll keep hacking at it.

Other guys on irc have started hacking on other interesting bits, including some doing Bluetooth work. We’re also going to try a custom build of Alex Osborne’s GPE image to see if we can’t get it booted using a slightly modified version of his LifeDrive build.

The remaining stuff we need to do right away:

  1. Fix this SD card bug once and for all.
  2. Get the AC’97 audio/touchscreen stuff working.
  3. Get bluetooth up and running (network/serial connections).
  4. Figure out the right GPIOs to enable the GSM/CDMA phones.

There’s other stuff we could work on after that, but those are the number one priorities if we want the phone and basic GPE applications to be usable in Linux.

Once that’s done, we’ll start work on porting POSE (the Palm OS emulator) so that we never need to switch back!

Read full post

Last night’s hacking progress was targeted at getting the SD/MMC driver up and running. Since the PXA27x platform has built-in SD/MMC support, it’s just a matter of setting up the SD/MMC communication GPIOs (clock, data, command channel) and locating the GPIOs for detecting SD card insertion events and read-only status.

I haven’t managed to get the SD card driver working on my phone, but I think it has something to do with my SD card. One of the testers on the IRC channel got it to mount his 512MB high-speed SD card correctly.

The problem is that the data received from the SD card seems to fail its CRC check. The errata for the PXA platform indicates that there might be trouble with some SD cards at certain speeds. Since the card works fine in PalmOS and the bootloader, I’m guessing that I might just need to add a retry or delay at some point until the SD card is ready to go.

Read full post

I started reading through Alex Osbourne’s patches for his port of Linux to the Palm LifeDrive and it turns out that a lot of the work for supporting the Palm Hardware has already been done!

This an example of where Open Source shines – each new platform developer writes a couple of new drivers, making it even easier for the next port that comes along!

I just wanted to thank Alex for blazing the path that I’m going to be following here. There’s a lot of work in decoding GPIOs and handling the minor platform differences, but we can certainly share a lot of code.

Read full post

Using the PXA matrix keypad driver from the LifeDrive Linux port, I managed to get full keyboard support for the Treo 650. It took a lot of manual keyboard matrix decoding, but you can now type into the Busybox shell!

I need to figure out why Busybux isn’t accepting the KP_ENTER key as a proper return. I’ll bet it’s some sort of userspace keyboard mapping, but I’ve never played with that sort of thing.

Read full post