10/6/08
New version
please delete older versions and update to avoid problems
10/2/08
T3 progress
9/18/08
RELEASE
- Tungsten T|C
- Tungsten E2
- Tungsten T|5
- LifeDrive
- Palm TX
- Zire 31
- Zire 72
To help you choose an SDHC card for your new driver here are some links to good prices.
NOTE: These are the upfront prices. I never had any luck with rebates, so I always pass those deals by.
SDHC cards are rated on speed by "class". There are 4 classes: 0, 2, 4, 6. Class 0 has no guarantees on speed. Class 2 guarantees 2MB/s write speed, class 4 guarantees 4MB/s write speed and class 6 guarantees 8 MB/s write speed. Almost nobody makes class 0 and class 2 cards (which makes sense since nobody would want them), but here are some deals on class 4 and 6 cards. Also are listed some card X cards. These are theoretically class 6, but have been observed to perform better than 6 MB/s. NOTE: There is no official class X classification. This is what I label cards that perform better than class 6.
4 GB | 8 GB | 16 GB | 32 GB | |
class 4 | $18.42 | $20.95 | $45.25 | $135.59 |
class 6 | $8.95 | $14.45 | $34.75 | $169.95 |
class X | $21.83 | $35.27 | $99.99 | $299.99 |
9/17/08
T|T3 update
Let the rejoicing begin...
9/16/08
T|T3
9/12/08
8/29/08
8/26/08
Update
Also fixed is a small UI bug where PowerSDHC splash screen left the DIA on 320x480 devices in an indeterminate state.
8/24/08
PowerSDHC
8/21/08
Beta 1.0.5
8/6/08
Beta 1.0.2
7/30/08
Updates
7/26/08
Zodiac and iQue support close
7/24/08
Beta Updated
7/21/08
Beta available + summary
News via PalmPowerups:
| PalmSDHC |
<GET A TRIAL KEY> |
As you may be aware, most Palm devices that do not carry a "Treo" or "Centro" brand cannot read or write to the new SDHC cards. This leaves everyone owning such devices behind in terms of storage and costs. SD cards top out at 2GB, while SDHC cards are available at 32GB sizes already, and 16GB cards can be obtained for less than $80 USD.
Palm Inc has repeatedly refused to write an SDHC driver for their handhelds. This has long been regarded as a lost cause by most Palm owners. Luckily Palm Inc are not the only ones in power to help. PalmPowerups to the rescue! We've been hard at work creating an SDHC driver for your devices. It is very difficult and has been one of the most complex projects we've ever undertaken here. It is made harder yet since each individual device needs to be uniquely supported and programmed for.
Today we're glad to announce that for for a small set of devices the driver has entered beta testing. Due to huge demand to make the beta available to everyone, it has been decided that the beta will be available for purchase as well. It is more expensive than the final version will be, for reasons that are beyond the scope of this document. Internally we've been using it on our devices, and it works well, so we're reasonably confident that it will work for you too.
There are many benefits from this driver even if you do not have an SDHC card yet. For example with this driver the card access speed will grow very noticeably, and the card access will not shut off at low battery levels. And of course, now you have support for SDHC cards.
There are caveats of course. First, to use cards whose size is 4GB or over, your device needs to support the FAT32 filesystem. Only Palm LifeDrive and Palm TX ship with it included. All other devices will need to install a FAT32 driver. There is only one option for where to get one - Palm Inc. We here at PalmPowerups are currently investigating writing our own due to reasons mentioned later in this document. For now you may download our wrapper and installer for Palm's FAT32 driver here: [LINK]. All you need to do is install it to RAM and reset. Your device will now support FAT32. Please note that Palm's FAT32 driver is VERY inefficient and slow when mounting cards. Thus on slower devices it can take up to 30 seconds to recognize an inserted 32GB card. This delay goes down for smaller cards, and when we release out own FAT32 driver, it will go away. Also this delay is not present on LifeDrive and TX devices. Another caveat, which is well known to our customers who purchase PowerDrive, is that PalmOS cannot display card sizes over 4GB or free space over 4GB. This does not mean it cannot use them, just that the display of card size and free space will be wrong. This is usually just a cosmetic error, and will usually not cause errors or problems. We are investigating a possibility of releasing a patch to alleviate this problem, but there is no certainty on this yet.
Current beta supports the following devices:
- Palm TX
- LifeDrive
- Tungsten T5
- Tungsten E2
- Zire 72
- Zire 31
- Tungsten E
- Tungsten C
- Tapwave Zodiac
- Tungsten T3
The process to get a trial version is simple. First you need to register a username on www.PalmPowerups.com. Then you need to download the trial version PRC file. To do this, click the "download" link under the PalmSDHC icon on the front page. Now run it. It will give you your device ID, which will be something like 2134CD6E. Write this down. Your device will now reset; this is normal. Now click on the <GET A TRIAL KEY> link on the top of this article, and fill in the required data. Please be very careful to fill it in correctly. when you do this, you will be given a link to download a keyfile. Download it and save it to a safe location, you will not be able to re-download it. You now need ot install it to RAM of your device. Do so, and run PalmSDHC again. It will blink and return to the launcher screen. The SDHC driver is now active. Your device will get your attention and tell you about the trial expiration and limitations. You will have unrestricted access for 3-4 days, after which the driver will become read-only and speed-limited to a very low speed of 50 KB/s. At this point you may delete it and soft reset to remove it, or purchase it to get a new key file, that will not expire. To do so, click 'buy" under the PalmSDHC icon on the front page and follow the usual PalmPowerups purchasing process.
This is a beta version, so please report any bugs and problems you may have with it. Of course when the release version comes out, you will be entitled to the upgrade for free. The release version is coming later, and will cost $20 USD. Also note that for the beta, the driver must stay in ram, and you must run it after a soft reset to regain SDHC functionality. This is a precaution against driver conflicts.
As always we're not responsible for any data loss or any damage that may occur as result of using our software and all efforts are made to ensure it does not happen. Please read this document carefully before proceeding.
7/18/08
News
Can i please buy the driver now? I know it's in beta, but i'll pay any money to have it now. Please please please? |
- When the final version comes you, you get the free upgrade of course
- The final price will be around $20, thus you are paying a premium (whose size is to be determined) over it for getting it "right now"
- This is not the final version and may have bugs. I use it daily on all my devices, and it works, but of course no guarantees for you
- A trial version will be provided so that you may evaluate the driver. It will work for three days after which is will become read-only and limited to 50KB/s access to card.
More details of this (price, methods of purchase, etc) to follow. Please do not email me such letters anymore.
Responses to this idea are welcome in this thread
7/15/08
More Updates
- T|C DAL had a few bugs. Some fixed, some pending, device chart has been updated
- T|E2, T|C, and Zire31 AAL optimized and performance has increased 3x
- The driver, unlike PalmOne's driver, will run till battery is 0%, and not shut off at 10%
7/12/08
Zire31 & T|C
Device support post has been updated
7/11/08
FAQ and Device support
FAQ:
Q: | When will the driver be released? |
A: | As soon as i feel that is it ready to be released. This will be soon. |
Q: | Does the driver has SDIO support? |
A: | This is being investigated, but for now it does not. |
Q: | Does the driver still support old non-SDHC cards? |
A: | Yes. SD, miniSD, microSD, transFlash, MMC, MMCPlus, MMCmobile, RS-MMC, and SDHC are supported by this driver. |
Q: | How fast is it? |
A: | The driver is significantly faster than the original PalmOne driver that your device currently has. |
Q: | Size limitations? |
A: | None. The driver supports SD cards up to 4GB, and SDHC cards up to any size. |
Q: | But my device does not support FAT32. Can I still use big cards? |
A: | You can get a working FAT32 driver (a slightly modified PalmOne driver) by doing a search on this forum. With this you can use FAT32 normally |
Q: | What applications support this new driver? |
A: | All of them! The driver integrates with the OS and thus automatically gets used by every application. |
Q: | My device is not listed as supported. What can I do to make it supported? |
A: | I will need at least 30-40 people with that device to pledge to buy the driver at its current price once it is done, and I will need to get my hands on a device of that type. You will need to get or loan me one for the time while I write the driver. Offering to test is useless, I need the device in my hands, no exceptions. |
SUPPORTED DEVICES:
For driver architecture, which explains what "AAL" and "DAL" mean see here
Device | AAL | DAL | Notes |
T|X | done | done | fully supported |
T|T5 | done | done | fully supported |
LifeDrive | done | done | fully supported |
Zire 72 | done | done | fully supported |
T|E2 | done | done | fully supported |
T|C | done | fixing OS bugs | will support |
Zire 31 | done | done | fully supported |
T|E | work in progress | done | limited to 16 Mbit/sec |
T|T3 | awaiting documents from Winbond | N/A | support planned |
Zodiac | unsatisfactory performance | work in progress - DRM gets in the way | support planned |
iQue3600 | work in progress | Awaiting loaned device | support planned |
if your device is not in this list, see the above FAQ for how to get it into this list.
7/9/08
Devices update
The driver is composed of 3 Layers: The topmost is the SD/MMC layer that implements the SD/MMC protocol and is hardware-independent. The layer below it is the AAL - Architecture Abstraction Layer. It hides the device-independent SD interface details from the SD/MMC layer. Usually it is based on the SD/MMC controller in use. In most palms that is the processor. So for TX, T5, and LifeDrive the AAL is the same. Thus if you want, for example T|C supported, which has the same processor as the well-supported T|E2, I will not have to make a new AAL for T|C. The lowest level is the DAL - device abstraction layer. It is unique and different for each device. IT patches the OS to make it use the new driver, and talks directly to the hardware to check card lock state, check si card is inserted, and deals with the interrupts. This DAL is very hard to write without a device being present. It is possible that your device will work with a DAL from a similar device, but it will not be good. For example T|C can use the T|E2 DAL, but the device does not notice card insertion/removal and cannot use power management thus wasting battery power. I have decided to not support devices whose DALs I did not write and test well. So if your device is not in the above list of devices I have, and you want it supported, something needs to be done. Perhaps you know someone who can loan me one...
7/6/08
Tungsten E2 support
7/3/08
6/30/08
Beta Testers Needed
Do not get excited yet, there are conditions and requirements!
- You must be old enough and willing to legally sign a nondisclosure agreement (NDA), which will disallow you from distributing the driver to anyone.
- You must reside in the USA(allows the NDA to be easily enforceable)
- You must have the device in question
- You must have SD and SDHC cards and commit to at least some daily use of each
- This is an unpaid position, and there is no compensation of any kind for this, including free copies of this driver
- The beta driver may expire before final is released
No exceptions!
If anyone is still interested, email dmitrygr@gmail.com with email subject of "SDHC BETA", in the email include:
- your name
- device type
- state or province you reside in
- cards you plan to test with
- any other information that you think would convince me that you'd be a good person to test this
To everyone outside of the USA: sorry. I've been burned by too-open betas and piracy too badly to allow any chance of this happening again. Since i am not willing to deal with potential NDA breach in another country, I cannot allow this at this time. Please do not take this personally.
Updates
T|T3 will take a bit of time as there is a number of steps inside Winbond that need to happen before I am able to get the needed documentation.
6/29/08
Update
If all goes to plan, beta testing cards will be written and prepared for shipping tomorrow. Beta testers will also be selected from the pool pf applicants and sent the NDA to sign. When a tester signs the NDA, I will ship out the read-only SD card with the beta driver to him/her. The tester will then run it to obtain the device ID, which will be sent to me, in return a key file will be sent to the tester to enable unlimited operation.
Assuming no major bugs are found during the beta phase, it will run for a week or two, after which sales to the general public will begin.
I will continue perusing Zodiac and T|T3 support, since it seems those hold the majority of user interest among all the devices not currently supported by this driver.
Zodiac driver is written and works, but the DRM in the OS prevents its reliable operation. Turning the DRM completely off is currently not considered a good solution, and a better one is being researched.
T|T3 driver work will begin once I get the detailed specs for the T|T3's SD controller chip from Winbond (hopefully soon). Depending on the complexity of this interface and the intricacies of working with this chip, support for T|T3 could come in a week or in a month.
All other devices can be supported, but I will need a large-ish group of users of such devices to pledge to buy the driver before I set off working on support for that device.
6/27/08
T|T3 #7
I heard from KC So. The spec will cost some money, but it is doable. You T|T3 owners better buy this driver enough to recoup this cost! You hear me??
Beta
Beta includes users of TX, T|T5, LifeDrive, and Zire 72.
Beta testers will be notified around Sunday, if all goes well.
6/23/08
T|T3 #6 and zodiac #3
as for t3 - kc so from winbond has not gotten back to me yet. will call again tomorrow.
For Zodiac developers
void* oldState = installExpansion(&__call_expander_func);
....
....
crashing code
....
....
installExpansion(oldState);
this will install expanded error handler function myExpander(). This function is for you to write, and has prototype void myExpander(ExceptionFrame* exc);
The usefullines is in the wealth of information that this function gets - it gets the full exception frame, including all registers, address that caused the error, etc... This can be very useful. See code lsiting below for more info
Additionally you'll need the following code listing:
typedef struct{
UInt32 zodFaultCategory;
UInt32 saved_user_R0;
UInt32 saved_user_R1;
UInt32 saved_user_R2;
UInt32 saved_user_R3;
UInt32 saved_user_R4;
UInt32 saved_user_R5;
UInt32 saved_user_R6;
UInt32 saved_user_R7;
UInt32 saved_user_R8;
UInt32 saved_user_R9;
UInt32 saved_user_R10;
UInt32 saved_user_R11;
UInt32 saved_user_R12;
UInt32 saved_user_SP;
UInt32 saved_user_LR;
UInt32 saved_user_CPSR;
UInt32 saved_svc_SP;
UInt32 saved_svc_LR;
UInt32 saved_svr_SPSR;
UInt32 saved_art_SP;
UInt32 saved_abt_LR;
UInt32 saved_abt_SPSR;
UInt32 saved_und_SP;
UInt32 saved_und_LR;
UInt32 saved_und_SPSR;
UInt32 saved_irq_SP;
UInt32 saved_irq_LR;
UInt32 saved_irq_SPSR;
UInt32 saved_fiq_R8;
UInt32 saved_fiq_R9;
UInt32 saved_fiq_R10;
UInt32 saved_fiq_R11;
UInt32 saved_fiq_R12;
UInt32 saved_fiq_SP;
UInt32 saved_fiq_LR;
UInt32 saved_fiq_SPSR;
UInt32 faultStatus;
UInt32 faultAddress;
UInt32 PC_whe_we_hit_error;
}ExceptionFrame; //for sys FatalAlert, at entry pointed to by R4
asm void* installExpansion(void* func){
LDR R1,[R9,#-12]
LDR R2,[R1,#0x444]
STR R0,[R1,#0x444]
MOV R0,R2
BX LR
}
asm void __call_expander_func(){
MOV R0,R4
B myExpander
}
6/22/08
Zodiac #3
now working on putting the security system out of its misery...
Zodiac #2
The solution was to just reset the controller after all data operations. This caused the maximum speed of transfers to fall, BUT now it works correctly. :-)
Zodiac
6/21/08
volumes over 4GB
Hello, As you may already be aware I am writing an SDHC driver for all PalmOS 5 devices, due to be released soon. After that, I will release a FAT32 driver, to fix the horrific performance of palm's driver. This brings into contrast PalmOS's VFS layer's problems in dealing with reporting volume sizes and free sizes over 4GB. I plan to introduce a new API in my driver, and would like to ask you to add support for it in your products. It should be a very painless, and backwards compatible to do so. The api consists of two parts. There is a Feature ('PpFs', 0x3137). If it is present and its value is 1 or greater, the device has the driver and supports the new api. To call it, you need to call the relevant filesystem library's CustomControl function. The creator for the call should be 'PpFs' and the call id should be 0 to get total card space and 1 to get free space. The parameter should be a pointer to a UInt32 where the return value is stored. The return value is not in bytes like palm's api, but in blocks of 512 bytes. Thus a return of 2048 after a call to get free space means that there is 1MB free on the card. Please reply with your opinion on adding support for this. |
6/19/08
Speed
Vertical scale is the same in both graphs.
Test was done with a Sandisk 512MB card, on a Palm TX after a clean hard reset.
Mine:
Palm:
T|T3 #5
T|T3 #4
Reverse engineering effort will continue.
KC So, Winbond's director of marketing, USA said their support resources are stretched too thin to allow them to email me a single 3MB PDF file with the specs, even if I agree to pay for it, sign an N.D.A., and agree to not contact them with any further questions.
EDIT: talked to them again, things are looking better. See post above this one...
Specifically I need them to give me the non-public specification sheet for W86L488Y. The public spec sheet lists device registers on pages 15-17, but does not list the bits in those registers and what they do - making it useless. The detailed sheet they refuse to help with lists those.
FAQ
A: I've tested 16GB, and it works, anything larger will too *
Q: Besides this driver what do I need to use big cards
A: On TX and LideDrive - nothing.* On all other devices to use cards 8GB+ you need a FAT32 driver.*
Q: How fast is it?
A: Currently the driver is significantly faster than the stock driver for multi-block writes, but until I release my own FAT32 implementation you're unlikely to see much increase in speed since palm's version of FAT32 rarely uses multi-block writes, for some reason.
*: PalmOS cannot report free or total space of a device over 4GB. This is an architectural and an API limit. I am releasing a hack that would help legacy applications overcome it in at least some way, while at the same time I will release a more modern api and encourage all software developers to use it.
6/17/08
T|T3 #3
6/16/08
T|T3 #2
I went about reverse engineering how this chip works, and wasted lots of time on it. Today just for kicks I called up Winbond - the maker of the T3's SD chip and asked for the specs. They said call a distributor. I called a distributor of theirs, who took down my information and said they will contact me when you get me the specification! Hopefully this will go well, and save me countless more hours of reverse-engineering how this thing works...
EDIT: I called winbond again, and this time spoke with KC So, Marketing Director. This conversation differed from what I heard before, but he said he will see if he can get me the specification, so hopefully this will help.
6/15/08
T|T3
Most information on the 'net about is either useless(the public spec. sheet) or wrong(the palm Linux project driver). So I went on to figure out how it works. The original driver only uses part of the functionality, but I am determined to get it to work completely. So far I mostly figured out the command/response related registers, and the response FIFO. The data FIFO is still not working too well, but it will soon.
The cool part about this chip is that the FIFO shows how many bytes are in it, unlike other CPUs, where you just get a full/not full bit.
Update
Bug A solution is becoming clearer...
6/13/08
Devices update
Device | Support level | Notes |
TX | Full | Known bugs A and B |
Tungsten T5 | Full | Known bugs A and B |
LifeDrive | Full | Known bugs A and B |
Zire 72 | Read Only | Known bugs A, B and C |
Zodiac | In progress. | Commands work, data transmission not yet. Right slot only. |
Tungsten T3 | In progress. | Mostly finished mapping out the undocumented SD chip. Driver work to begin soon |
Bugs:
Bug | Description | Priority | Cause known/Fix known |
A | Inserting/removing card while device is off is not acknowleged | Medium | Yes/Partially UPDATE:FIXED |
B | MMC[plus] Cards are readonly | Low | No |
C | 100% write CRC errors on Zire 72 | Medium | Yes/No |