This is a bit of a Newbie question, so apologies if I should have posted it elsewhere.

I've just bought a second-hand SL-5500 with a 64MB SD card and a 32MB CF card.

I would like to expand the system memory/storage considerably but I'm not sure what limits there are on the size of SD/CF memory I can use. I don't want to spend lots of money on cards if (a) the Z can't use them at all or ( the Z can only address a small part of them.

I contacted Sharp Service and was told that the limits are 128 and 192 for SD RAM and CF RAM respectively. I presume that these figures are in MB and only apply to memory (RAM/ROM) rather than storage (disk) devices.However, this doesn't seem to stack-up with various comments I've read on the ZUG mailing lists and other places, which seem to indicate that people are using up to 1GB SD card and 512MB/1GB CF cards and also using up to 4GB CF microdrives.

Is there a FAQ somewhere which details what the limits are (if any) and what devices do/don't work with the Z?

Many thanks in advance,

John (slightly confused but fascinated with the idea of Linux of a handheld!)

You cannot physically expand the RAM in the 5500. It has 64MB of RAM and with the Sharp ROM image installed, half of that is used as normal operating RAM and the other half is used as internal storage (so the battery must be kept charge to keep this).

As for limits on standard SD/CF cards, you are only limited by the filesystem. Most cards come formatted as FAT16, which can only handle up to 2GB. But I would assume cards bigger than this come formatted as FAT32 which can handle a lot more. ext2 can also handle a lot more than 2GB. When people have reported problems with SD cards, it is usually due to poor card quality and this is not limited to the Zaurus by any means.

I don't quite understand Sharp Service's comment about the limits for SD and CF cards (perhaps the limits are what they are able to supply).

Sorry about the confusion about use of 'RAM' instead of 'memory' - I used the same terminology as Sharp's reply. Both SD and CF cards are strictly speaking Flash ROMs (at least as I understand it).

Anyway, as the limits seem to be imposed by the filing system used, rather than any hardware issues (e.g. partial address decoding within the Z), I'll go ahead and upgrade the SD and CF cards as much as I can within reason/budget.

I believe the confusing numbers that Sharp reported to you are based on the original DRIVER limitations, rather than a hardware limitation. It is true that the original SL5500 shipped by Sharp only supported 128MB SD card. They later bumped support up to 256MB with an updated ROM. I have not heard of any such issues with the CF cards.

SD cards are serial memory, which means that all data is transferred a bit at a time. The only possible limitation to memory of this type would be in how many bits the card uses to identify it's memory position. If the SD card is using 32 bits, or if the linux driver is using 32 bits, then memory positioning will be limited to 4GB. Note however this limit may be purely software controlled. I do not know specifically how it works, but potentially the driver could be updated to use more bits, which in turn would allow for larger card support.

CF has a parallel socket, which means all the bits used to indicate memory position are hardwired. Per the FAQ for CF capacities, "The CF Specification can support capacities up to 137GB." So again, any limitations as reported by Sharp are going to be purely at the driver level, as the hardware itself can obviously support capacities far higher than any media available today.

My advise would be that if you plan on using higher capacity cards, move away from the Sharp ROM and the support will be available.

Since, as you say, the SD card is serially addressed, then it seems reasonable to suppose that the limitations are down to the driver (since the device would generally expect an address length capable of addressing its full size). However, this implies that the driver knows how long the address field must be for the particular device in question (i.e. must know the size of the memory). I haven't played with SD devices, so I don't know if there's a standard way of finding this out (it may be in the SD spec somewhere), but if the driver needs to do this in different ways for each manufacturer/device or needs to infer the size from some sort of device ID, then the drivers would have to be updated from time to time, to add new devices/sizes to its list of supported devices. So, it is quite possible that the initial drivers only supported devices and address spaces up to the maximum device size known at the time they were written (e.g. 128MB or 256MB).Having said that, since 128MB and 256MB would require 27 and 28 bits of address respectively anyway, the address parameters would almost certainly be passed as 32-bit unsigned (or possibly signed) integers, giving address spaces of up to 4GB (or 2GB if signed integers are used and -ve values are ignored (sometimes -1 is used as a special value)). So, the interface probably wouldn't need to be changed to support devices up to 4GB (or 2GB). However, after this limit is reached, the interface would no doubt need to changed (e.g. to use a 64-bit address or some sort of paging system).

The CF cards may be slightly different, in that the CF slot supports microdrives (which currently appear to go up to 5.5 or even 8GB) and may be treated more like disk drives than memory, with different addressing mechanisms (especially if, as you say, the CF spec. says sizes up to 127GB are supported), although I haven't seen any indication that anyone has got anything above 4GB working with the Z (although some people appear to be trying)).

Thanks for the advice about moving away from the Sharp ROM. I've already switched to OpenZaurus 3.5.1 with Opie 1.1.6, as I wanted more Open Source Linux compatibility (although some of the Sharp supplied applications might be nice to try to retrofit once I've got everything working as I want it).

Now, to try to figure-out what software I need on the PC to sync the upgraded Z with LookOut!... Cheers,

Actually the spec for the CF slot really did say 137GB, although 127 would seem to be a more reasonable cutoff point. I don't claim to be an expert with CF or SD hardware, I'm just making suggestions based on what I do know.

3.5.1/Opie certainly has a lot of new features, not to mention the newer kernel. I am actually working with 3.5.1/gpe at the moment to see what I can do with it. As stated in the wiki, it's not really usable on a daily basis right now, but it's got a LOT of potential!

I was wondering reading this thread, if the support for microdrives (1 or 2 gb) is compatible with the tkc ROM. Also, I would like to know what is the effect of a microdrive in battery life, compared to a regular CF card (for example the Sandisk 1GB)

I haven't used a microdrive myself (I've now got 1GB SD + 1GB CF in there, which is fine, for now...) and I'm still a newbie to the Z myself, but whilst doing some digging around, I did see quite a few people experimenting with CF microdrives up to about 4GB. Support for them may be dependent on the OS/drivers you are using though.

From what I remember of the postings I read, microdrives will flatten the Z battery in a relatively short period of time, so I'd stick with SD and CF memory if you need battery life and only seriously consider a microdrive for use when you've got mains (or car-supplied) power but no access to a desktop/laptop (if you've got access to a desktop/laptop computer, a network accessible hard disk would probably make more sense).

Well, I got two SD cards: 1 1GB and 1 2GB cards. The 1GB was a breeze to get up and running - just plug it in, reformat it for ext3 and go. The 2GB card was recoginzed by fdisk, and I was able to write out a partion - I think. When I tried to format it, fdisk reported the size as being zero (going through the same steps as the 1GB). I also tried to partion into 2 1GB partions - no go. I'll continue with my experiments later on. Both cards are from AData and are 50x. The cool thing they even mention them being Linux compatible...