View Full Version : Got X-Scale? Got SD? You have SDIO!
Ed Hansberry
01-16-2003, 01:10 AM
One of my MVP buds, Jared Miniman, also of <a href="http://www.pocketnow.com">pocketnow</a> fame, was at CES last week. He had this bit of info to share:<br /><br />"Throughout CES, I had my MVP hat on. When I had the chance to speak with a marketing guy who had a great deal of engineering expertise (gasp!!), I jumped at the opportunity to get my questions out. I spoke with a rep from SyChip, who are delivering Socket's SD WiFi card to begin shipping in March (I assume most of this is under NDA). He delivered this gem of information:<br />1. Any XScale processor device will support SDIO without an on-SD-Card clock handler chip. Why? The PXA250 chipset has built-in support for 1-bit (SDIO) SD!<br />2. Any OMAP processor device will also support SDIO for the same reason. So . . . all the Smartphones announced so far with OMAP--you guessed it--can theoretically support SDIO."<br /><br />Now, this doesn't mean you can stick an SD Bluetooth card in your HP iPAQ h1910, the drivers don't exist yet, but <i><b>if</b></i> this info proves to be correct, it means it is just a matter of drivers being written. Very cool. 8)
sponge
01-16-2003, 01:15 AM
Very interesting. I wonder if SDIO on said non-SDIO devices will be like the old Winmodems, instead of being done on hardware, it's done in software.
I have heard this before, but got no confirmation.
entropy1980
01-16-2003, 01:25 AM
in that case the Ipaq 1910 just became a whole lot more attractive!!!
jngold_me
01-16-2003, 01:28 AM
So does this mean that a vendor such as Symbol needs to write an appropriate driver for an upcoming SDIO card such as 802.11b and it will work?
Question is, will the product vendor be responsible for this or will it be up to "enterprising individuals" to write it?
802.11b for my 1910 would be the move!
guinness
01-16-2003, 01:32 AM
It'd make it really easy for HP to come out with an updated 1910 with a 300 MHz processor and SDIO slot; all they have to do is "flip" a couple of software switches.
mterlouw
01-16-2003, 01:32 AM
The chip supports SDIO, but is it wired for it? The XScale supports serial I/O as well but you can't use it on the iPAQ 1910...
The chip supports SDIO, but is it wired for it? The XScale supports serial I/O as well but you can't use it on the iPAQ 1910...
I agree.
The SDIO specification is exactly as the SD card specification apart from a IRQ interrupt on pin 8 which should be connected to an GPIO if they follow the Intel datasheet.
It all depends on whether the IRQ is connected. If it is then it should be merely a matter of programming. If it isn't then it depends on how important the IRQs are from the SDIO device, and whether there is a way to poll its status instead.
My 2c
PJE
Macguy59
01-16-2003, 01:39 AM
If this info holds true, combined with the OC utility my next PDA is going to be the 1910 :lol: I have been really torn between the Axim and the highend Sony (not the $800 brick). I loved the size and weight of 1910, but the lack of SDIO and a slower xscale speed ruled it out. Now it zooms to the top of my list. The Axim is still nice but compared to the 1910 it's a brick.
Timothy Rapson
01-16-2003, 01:53 AM
Could this really be true?
How could Dell, HP, and others not know this? A software driver is all it needs? Why would it cost $40 more to make a SDIO slot if that is all it took? Wouldn't some enterprising SD/ camera maker have by now shipped drivers for at least their own camera and the slots on the few models without SDIO built into the hardware?
I have understood as above, that there are two more hardware leads that would have to be connected.
But, it is clear that this is exactly the case (drivers only needed) in the Sony NX70 and it's lack of CF memory card support. Except for the fact that Sony could surely do all the drivers for $5 per Clie shipped if they wanted to. They don't want to so that they can sell memory sticks. What would be the reason for Dell not to write drivers for the Axims? None, that I can think of.
It would be terrific but I just don't think this engineer is right.
But, I'm just a mailman off in middle America.
revolution.cx
01-16-2003, 02:01 AM
While working on Clear Speed and reading the XScale Developers Manual this is the conclusion I came to. The SDIO stuff is right there and it seems like they would have to go out of their way to remove it somehow. It still requires drivers though so that remains to be seen. I did read a PR at some point where BSquare was talking about how they added SDIO support retroactively to some sort of device.
It could also be a power issue on the 1910 but so far I've only been impressed with how much power it does have. I can run a full screen arcade game at maximum volume with max backlight which is pretty high peak current.
And no, I'm not going to write an SDIO driver for the 1910. If it's possible HP is the one to do it since they have all the code lying around ready to go.
Time to start an on-line petition.
mterlouw
01-16-2003, 02:07 AM
The SDIO specification is exactly as the SD card specification apart from a IRQ interrupt on pin 8 which should be connected to an GPIO if they follow the Intel datasheet.
It all depends on whether the IRQ is connected. If it is then it should be merely a matter of programming. If it isn't then it depends on how important the IRQs are from the SDIO device, and whether there is a way to poll its status instead.Well, if such a situation were to develop I'm sure more people would be able to take advantage of a software solution, however the disadvantage would be the excessive processor bandwidth polling would require, thus consuming extra battery power. If there was a hardware mod required (e.g., jumper/resistor, or hopefully something as simple) it would be nice as well. I would *love* to be able to send my 1910 in to Pocket PC Techs and get it back with 256Mb RAM, SDIO, and serial I/O support. :lol:
amcat
01-16-2003, 02:52 AM
Sounds too good to be true! If software enabled SDIO on the HP 1910 coupled with the recently annouced SanDisk $149 combo WiFi/256MB SD card and software overclock to 300 mHz is all possible then this may just make me dump my e740 for the smaller form factor and great screen of the 1910!... :D
One of my MVP buds, Jared Miniman, also of pocketnow (http://www.pocketnow.com) fame, was at CES last week. He had this bit of info to share:
"Throughout CES, I had my MVP hat on. When I had the chance to speak with a marketing guy who had a great deal of engineering expertise (gasp!!), I jumped at the opportunity to get my questions out. I spoke with a rep from SyChip, who are delivering Socket's SD WiFi card to begin shipping in March (I assume most of this is under NDA). He delivered this gem of information:
1. Any XScale processor device will support SDIO without an on-SD-Card clock handler chip. Why? The PXA250 chipset has built-in support for 1-bit (SDIO) SD!
Sometime ago this was discussed on Brighthand or PocketPCPassion. I don't remember.
But I think this is not entirely correct. There is a application note on the Intel developer site called: "Using SDCard and SDIO with the IntelŪ PXA250 MMC Controller Application Note". You can download it here:
http://developer.intel.com/design/pca/applicationsprocessors/applnots/278533-001.htm
This note outlines what is required in a device design to use SD memory and SDIO cards with the XScale's on-chip MMC controller.
As far as I understand it, it states that you have to wire the SDIO slot's IRQ pin (interrupt request pin) to one of the GPIO pins (general purpose i/o signal) of the XScale processor. But neither it forces you to do it at all nor it asks for a specific GPIO pin to be used. So if the designer of your PPC used the GPIO signals to control something else, you're out of luck. At least as far as SDIO cards are concerned which need an IRQ, like network cards etc..
So whether SDIO works depends on what the designer of the respective Pocket PC did (or drank :) ). You cannot be sure that IRQ is connected at all to the CPU. And even if it is it might be on a different GPIO pin than in other PPCs. That would make writing a "generic" SDIO driver for all XScale PPC rather difficult I guess.
But a specific driver for a specific PPC should be possible as long as IRQ is connected to the CPU.
T-Will
01-16-2003, 03:29 AM
Wow! Two great developments in the last two days with the 1910 (300 MHz utilities and now maybe SDIO ability)!
But you know what they say, if it sounds too good to be true, then it probably isn't. Maybe that saying doesn't apply to Pocket PC's though! ;)
Covert
01-16-2003, 03:31 AM
(300 MHz utilities and now maybe SDIO ability)!
I wouldn't get too excited about that - the 1910 doesn't have SD I/O support yet.
PacMan
01-16-2003, 03:36 AM
This reminds me of when I got my iPaq 3600 2.5 years ago (has it been that long already). The big deal then was whether or not the multi-button press problem could be solved through software. The problem was that, when playing a game, the iPaq could not recognize two buttons pressed at the same time. Jimmy of JimmySoft was on it. I can't remember the number of times I clicked refresh waiting to hear the good news. To make a long story short: I'm still waiting. It was a hardware problem that was only fixed in later iPaq models (or so I understand).
I'm still using that original iPaq (4G07 for those who know what that means), but I'd love to switch to a H1910 (I saw it; I held it; I was convinced of the form factor immediately). The minute I find that SDIO can be enabled I'll submit my order.
what i don't understand is why would dell not activate it? I mean, i can understand HP not adding SDIO because it might steal share from their highend devices, but dell only has the axim x5 and if it wouldn't cost more, they most likely would have added it.
Same w/ my Asus...
profe
01-16-2003, 04:26 AM
TW wrote:
But I think this is not entirely correct. There is a application note on the Intel developer site called: "Using SDCard and SDIO with the IntelŪ PXA250 MMC Controller Application Note". You can download it here:
http://developer.intel.com/design/pca/applicationsprocessors/applnots/278533-001.htm
This note outlines what is required in a device design to use SD memory and SDIO cards with the XScale's on-chip MMC controller.
Reading the application note and looking at the diagrams, it is evident that the SD/IO does indeed require an additional connection between the chip and the controller beyond that required for simple SD memory.
However, keeping in mind that manufacturing costs are based on volume, it would be cheaper (and logical) for HP to order the 1910 boards wired for SD/IO initially, if they were planning to offer an upgraded unit later. This would also explain the 300 MHz issue as well. My guess is that the connections are there. PPCTech guys should be able to tell us for sure. (If the connection is not there, I wonder if it would be in the realm of possibility for PPCTech upgrades.)
The lack of IO is what is keeping me away from the unit--I need to be able to use it with Margi's Presenter-To-Go, not to mention Bluetooth.
vincentsiaw
01-16-2003, 04:28 AM
SDIO using software is sure nice thing, but how bout the speed? are there going to be a difference at all?
mterlouw
01-16-2003, 05:50 AM
As far as I understand it, it states that you have to wire the SDIO slot's IRQ pin (interrupt request pin) to one of the GPIO pins (general purpose i/o signal) of the XScale processor. But neither it forces you to do it at all nor it asks for a specific GPIO pin to be used. So if the designer of your PPC used the GPIO signals to control something else, you're out of luck. At least as far as SDIO cards are concerned which need an IRQ, like network cards etc..
So whether SDIO works depends on what the designer of the respective Pocket PC did (or drank :) ). You cannot be sure that IRQ is connected at all to the CPU. And even if it is it might be on a different GPIO pin than in other PPCs. That would make writing a "generic" SDIO driver for all XScale PPC rather difficult I guess.
But a specific driver for a specific PPC should be possible as long as IRQ is connected to the CPU.
Hopefully the GPIO pin used on other iPAQs (assuming it is standard across the line) is not in use by the 1910. I don't think it would be; there's nothing fancy in there that would require a separate IRQ line (far as I know). If that were the case it would (best-case scenario) only require making the connection and then installing the driver. Now HW designers are not always near-sighted, and if they were worth a damn there would be a trace in place for this connection, barring some explicit instructions for it not to be there (to preempt modders) or some highly improbable design limitation, whether it be connected or not. This is all a lot of conjecture though. I for one am not willing to risk damaging my new toy to find out ;)
kagayaki1
01-16-2003, 07:37 AM
It would be really nice to get some official comment from PPC Techs as to the feasibility of this. While I'm never going to tear this beauty out of my hands, those guys know what they're doing. If only they had a spare laying around to look at for us...
Jason? Ed? Can you pull some strings?
-Jason
handheldplanet
01-16-2003, 08:07 PM
Okay, I've got a 1910 that I'm willing to sacrifice for the cause. If PPCTechs wants to take a look at it and give us confirmation I'm willing to donate it (of course, while they're in there, they could bump it up to 128mb just for my willingness to donate).
Let me know!
I just emailed PPCTechs a link to this thread.
handheldplanet
01-17-2003, 08:12 PM
Any word yet?
johnmyers
09-15-2004, 07:01 PM
I work repairing these toys in the United Kingdom and I canīt see any difference between the circuit diagram of the 1910 and/or 1915 with SDIO.
So, I guess that SDIO support can be enable through software of the same way that OC programs changes the speed. BTW, this made me remember the fear about overclocking the 1910... Really you are not overclocking nothing. The Intel PXA250 XScale processor has been designed to adjust the clock speeds between 100,200,300 and 400Mhz to save battery power when higher speeds are not required. I donīt have time now, but a good idea to start could be compiling the C code from Intel (http://www.intel.com/design/pca/applicationsprocessors/applnots/278533-001.htm), testing with a SDIO memory/wi-fi card.
Regards,
John.
mubex
09-16-2004, 08:15 PM
any guys have good news for this code ?
johnmyers
09-18-2004, 01:41 AM
sorry, i donīt have time now. you will have to try making an .exe file with a c compiler and testing it with a sd memory/wi-fi card.
regards,
john.
Accordingly to http://www.handhelds.org/hypermail/h1900-port/current/ they say SDIO could be possible on that model
"Regarding SDIO it's quite possible that limitation is only in
wince(software) - aquadran"
Will see when Linux will be usable.
Does anybody have tried to rip and install SDIO driver from higher IPAQ model?
mubex
09-26-2004, 05:16 PM
so problem is Win CE MmmMMMmmMM.
linux is redy to : 1910 ?
johnmyers
09-26-2004, 05:40 PM
sdio must work with both windows or linux because there is NO difference or missing paths from the memory slot to the CPU, between the motherboard of the iPaq 1910 and/or 1940.
regards,
john.
Janak Parekh
09-26-2004, 08:32 PM
sdio must work with both windows or linux because there is NO difference or missing paths from the memory slot to the CPU, between the motherboard of the iPaq 1910 and/or 1940.
Not quite. SDIO drivers must also be present in the OS. As of this time, there are no SDIO drivers available for Pocket PC on the iPAQ 1910, and I wouldn't expect any to be released.
--janak
johnmyers
09-26-2004, 10:35 PM
Not quite. SDIO drivers must also be present in the OS. As of this time, there are no SDIO drivers available for Pocket PC on the iPAQ 1910, and I wouldn't expect any to be released.
There is no difference between the motherboard of the iPaq1940 and the iPaq1910, SO, donīt lose your hopes. The driver will arrive... BTW, I heard a rumor that HP is working on that... :D
Regards,
John Myers.
Janak Parekh
09-26-2004, 10:40 PM
There is no difference between the motherboard of the iPaq1940 and the iPaq1910
:confused totally: There has to be. The 1940 has a Bluetooth chipset and is driven by a Samsung ARM CPU.
SO, donīt lose your hopes. The driver will arrive... BTW, I heard a rumor that HP is working on that... :D
Really? I would be very surprised, because the 1910 is now two generations old. To the best of my knowledge it is end-of-life and you won't see any updates for it at all.
--janak
johnmyers
09-26-2004, 11:00 PM
Iīve opened/repaired all models of the serie 1900 and I can tell you: ALL motheboards are the same with some added devices like Bluetooth. SO, belive it or not. I repeat this again and again: DONīT LOSE YOUR HOPES, THE DRIVER WILL ARRIVE. SDIO IS JUST AROUND THE CORNER. :D
Regards,
John.
Driver is laying on any IPAQ with the same OS version and processor.
For example 3760 is Xscale (?), and has 2002 OS version.
So we need to find, which file/files (i suspect it's dll file) is the SDIO driver, then we need to move it to ipaq 1910/1915 and it should work.
As I don't have access to any other ipaq, so i can't check this. Even ROM downloading can't help because I don't know any ROM ripper/viewer/extracter, so we need real device.
Can anybody try to do that?
I've found on my device:
SDC.dll 17kB
sdmem.dll 14.5kB
If there is no such file on SDIO enabled device, they should be named like sdio.dll, sdiomem.dll or similair
Foe example G1000 Hitachi device driver has name atisdio.dll
Ryan Joseph
09-27-2004, 03:46 PM
Okay, I just found this thread. It's a great topic and I'm learning some very interesting things about the way SDIO works.
Does anyone know about the original XDA? Any hope for SDIO support there? I don't even know what processor is in there. :oops:
johnmyers
09-27-2004, 04:27 PM
Driver is laying on any IPAQ with the same OS version and processor.
For example 3760 is Xscale (?), and has 2002 OS version.
So we need to find, which file/files (i suspect it's dll file) is the SDIO driver, then we need to move it to ipaq 1910/1915 and it should work.
As I don't have access to any other ipaq, so i can't check this. Even ROM downloading can't help because I don't know any ROM ripper/viewer/extracter, so we need real device.
Can anybody try to do that?
I've found on my device:
SDC.dll 17kB
sdmem.dll 14.5kB
If there is no such file on SDIO enabled device, they should be named like sdio.dll, sdiomem.dll or similair
Foe example G1000 Hitachi device driver has name atisdio.dll
Thatīs right, but remember to select "show hidden files" in windows when searching this file. BTW, I guess that copying the sdio.dll driver only in the same folder where is sdc.dll and sdmem.dll could not work. I guess that you first would need to load the driver in something like the windows registry or something like windws.ini or system.ini, SO, if it does work, inserting a sdio memory/wi-fi card would be detected immediately, but again: the first thing that youīll need is a sdio memory/wi-fi card for testing before of searching the driver.
Regards,
John.
I've used free Total Commnder, as i think, it shows all files.
yes, you need to register new dll in the same way as the old one. I saw somewhere utility for it, also probably you can import/export some registry keys.
There may be some other files needed (dialogs for configuration), but i didn't use any other Ipaq then my 1915, co i can only guess
Ed Hansberry
09-28-2004, 01:04 PM
Iīve opened/repaired all models of the serie 1900 and I can tell you: ALL motheboards are the same with some added devices like Bluetooth.
So you are saying the X-Scale processor in the iPAQ 1910 and the Samsung processor in the 1940 are pin compatible and totally interchangable? Interesting...
johnmyers
09-28-2004, 03:05 PM
Yeah, thatīs right. I would call it EmuPaq1910k1.... :mrgreen:
The iPaq1910 reminds me the anything-is-possible emu10k1.... :mrgreen: :mrgreen: :mrgreen:
Regards,
John.
if it's true, you should be able to get screen from 1910/1915 and put it to 1930/1940
Or you should be able to exchange processors...
Or you should be able to exchange ROM from 16MB to bigger one and upgrade to 2003
Hmm...
I think if it could be possible, someone would do it.
johnmyers
10-01-2004, 12:38 AM
if it's true, you should be able to get screen from 1910/1915 and put it to 1930/1940
Or you should be able to exchange processors...
Or you should be able to exchange ROM from 16MB to bigger one and upgrade to 2003
Hmm...
I think if it could be possible, someone would do it.
yeah, thatīs right. itīs 100% possible. all the pieces of the serie 1900 are equals, with little exceptions like bluetooth chipset, etc...
regards,
john.
i don't believe that
Can you post pictures of inside of both ipaq?
johnmyers
10-06-2004, 02:34 AM
http://stores.ebay.com/Fix-Your-PDA-Store
i've found only 1900 motherboard picture there.
BTW, it's possible to "cook" ROM for XDA/MDA, why isn't it possible for IPAQ? That way it could be possible to install Win2003 on 1910/1915 (after ripping some trash, for example pocket word etc). That way SDIO problem would be gone too.
Let's look at http://www.pocketpcmag.com/forum/topic.asp?TOPIC_ID=7020
There iswritten how to put any bios on any IPAQ
johnmyers
10-06-2004, 04:25 PM
i've found only 1900 motherboard picture there.
BTW, it's possible to "cook" ROM for XDA/MDA, why isn't it possible for IPAQ? That way it could be possible to install Win2003 on 1910/1915 (after ripping some trash, for example pocket word etc). That way SDIO problem would be gone too.
Let's look at http://www.pocketpcmag.com/forum/topic.asp?TOPIC_ID=7020
There iswritten how to put any bios on any IPAQ
IMHO, I would not try to do that... you could convert your iPaq in a paperweight. :!:
if you will not overwrite bootsector, it's safe
But it's unknown how to edit ROM
I've found only how to exchange HP logo
johnmyers
10-12-2004, 09:53 AM
if you will not overwrite bootsector, it's safe
But it's unknown how to edit ROM
I've found only how to exchange HP logo
Returning to the main topic, have you tried compiling the driver with c/c++, testing with the sdio memory/wi-fi card?
Regards,
John.
i didn't because I have none of them yet
johnmyers
10-13-2004, 09:20 PM
i didn't because I have none of them yet
Here is the driver, but you will need C or C++ to compile the code:
http://developer.intel.com/design/pca/applicationsprocessors/applnots/278533-001.pdf
1. The first thing to do is configure the GPIO to be an interrupt:
"...One difference to note between the SD Memory Card and the SDIO card is the IRQ signal, which
is available on the SDIO card. The IRQ signal is DAT[1] on the SDIO card and only functions as an
interrupt in the narrow and SPI modes of operation. Connect the IRQ signal to one of the general
purpose input/output (GPIO) signals on the PXA250 applications processor and configure the
GPIO to be an interrupt..."
Code to Configure a GPIO as an Interrupt
//Set up GPIO[22] to interrupt on rising edge
*ICMR = *ICMR & 0xFFFFFBFF;//disable interrupts on GPIO[80:2]
*ICLR = *ICLR & 0xFFFFFBFF;//set GPIO interrupts to be IRQ
*GRERx = *GRERx | 0x00400000;// enable rising edge detect on GPIO[22]
*GFERx = *GFERx & 0xFFBFFFFF;// disable falling edge detect on GPIO[22]
*GPDRx = *GPDRx | 0x00000140;// Set GPIO[22] to be input
*ICMR = *ICMR | 0x00000400;//enable interrupts on GPIO[80:2]
2. The second thing to do is Initialize the SD Memory Card and SDIO:
Initializing the SD Memory Card and SDIO Card
The first steps to initialize the SD Memory Card and SDIO card are the same as the first steps to
initialize the MMC card. The software must configure the GPIOs multiplexed with the MMCLK
and MMCCS0 (if using SPI mode) to their alternate functions. The GPIOs configuration code is
shown in Figure 5. The host must then send a contiguous stream of 1s and wait for the power
supply to ramp up then wait 1 ms followed by 74 clocks. To accomplish this with the MMC
controller, wait 1 ms using one of the PXA250 applications processors timers, then set the
MMC_CMDAT[INIT] bit before sending out the first command. Setting the
MMC_CMDAT[INIT] bit causes the MMC controller to hold the MMCMD signal high while
toggling the clock 80 times before sending out the command in the MMC_CMD register.
SD Memory Card Initialization Code
// Copyright (C) 2000. Intel Corporation.
// File: SDCard.c
#include <stdio.h>
#include <math.h>
extern char pstring[100];
extern void printlcd(const char *cntrl_string);
extern void Delay(int);
extern lcd_row, lcd_col;
int SDCard_test(void)
{
int SDPassed, response[16], rxdata[512], x, y, z;
int SD_Address;
int READ_BL_LEN;
int WRITE_BL_LEN_U, WRITE_BL_LEN_L, WRITE_BL_LEN;
int C_SIZE_U, C_SIZE_L, C_SIZE;
int C_SIZE_MULT;
int memory_capacity;
//Set up alternate function GPIO
*GRERx = *GRERx & 0xFFFFFEBF;// disable rising edge detect on MMCLK and MMCCS0
*GFERx = *GFERx & 0xFFFFFEBF;// disable falling edge detect on MMCLK and MMCCS0
*GPSRx = *GPSRx | 0x00000140;// Set MMCLK and MMCCS0 high before configuring
//output
*GPDRx = *GPDRx | 0x00000140;// Set MMCLK and MMCCS0 to outputs on GPIO 6 and 8
*GAFR0x = (*GAFR0x & 0xFFFDDFFF) | 0x00011000;//Set GPIO6 and GPIO8 to
//alternate function 1
//initialize card
Delay(1000);//wait 1ms per MMC specification
//CMD00 GO_IDLE_STATE
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCRESTO = 0x0000007f;//set response timeout to max value (64 clocks)
*MMCCLKRT = 0x00000006;//set MMCLK rate to 312.5kHz
*MMCCMD = 0x00000000;//CMD02 index ALL_SEND_CID
*MMCARGH = 0x00000000;//stuff bits for argument
*MMCARGL = 0x00000000;//stuff bits for argument
*MMCCMDAT = 0x00000000;//expect no response
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//CMD55 APP_CMD
//This command must be sent every time before an application command
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCMD = 0x00000037;//CMD55 index APP_CMD
*MMCARGH = 0x00000000;//relative card address 0x0
*MMCARGL = 0x00000000;//stuff bits
*MMCCMDAT = 0x00000001;//expect response 1
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<3;x++)
{
Using SDCard and SDIO with the Cotulla MMC Controller
14 Application Note
278533-001
response[x] = *MMCRES & 0x0000ffff;
}
//ACMD41
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCLKRT = 0x00000006;//set MMCLK rate to 312.5kHz
*MMCCMD = 0x00000029;//ACMD41 index SD_APP_OP_COND
*MMCARGH = 0x00000020;//set voltage limit of system in command argument
*MMCARGL = 0x00000000;
*MMCCMDAT = 0x00000043;//set init bit for initial 80 clocks, expect response 3
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<3;x++)
{
response[x] = *MMCRES & 0x0000ffff;
}
y=1;
while(response[0] != 0x3f80)//continue doing ACMD1 until busy bit in response
//is set
{
//CMD55 APP_CMD
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCMD = 0x00000037;//CMD55 index APP_CMD
*MMCARGH = 0x00000000;//relative card address 0x0
*MMCARGL = 0x00000000;//stuff bits
*MMCCMDAT = 0x00000001;//expect response 1
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<3;x++)
{
response[x] = *MMCRES & 0x0000ffff;
}
//ACMD41
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCMD = 0x00000029;//ACMD41 index SD_APP_SEND_OP_COND
*MMCARGH = 0x00000020;//set voltage limit of system in command argument
*MMCARGL = 0x00000000;
*MMCCMDAT = 0x00000003;//expect response 3
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<3;x++)
{
response[x] = *MMCRES & 0x0000ffff;
}
}
//CMD02 ALL_SEND_CID
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCMD = 0x00000002;//CMD02 index ALL_SEND_CID
*MMCARGH = 0x00000000;//stuff bits for argument
*MMCARGL = 0x00000000;//stuff bits for argument
Using SDCard and SDIO with the Cotulla MMC Controller
Application Note 15
278533-001
*MMCCMDAT = 0x00000002;//expect response 2
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<8;x++)
{
response[x] = *MMCRES & 0x0000ffff;
}
//CMD03 SET_RELATIVE_ADDR
*MMCSTRPCL = 0x00000001;//stop clock
while((*MMCSTAT & 0x00000100) == 0x00000100); //wait for clock to stop
*MMCCMD = 0x00000003;//CMD03 index SET_RELATIVE_ADDR
*MMCARGH = 0x00000000;//stuff bits
*MMCARGL = 0x00000000;
*MMCCMDAT = 0x00000001;//expect response 1
*MMCSTRPCL = 0x00000002;//start clock
while((*MMCSTAT & 0x00002000) == 0x00000000);//wait for end_cmd_res
//read response FIFO
for(x=0;x<3;x++)
{
response[x] = *MMCRES & 0x0000ffff;
}
//The address of an SDCard is automatically assigned and returned in the
//response of CMD03
//The following gets the address from the response and puts it into a variable
SD_Address = ((response[0]&0x000000ff)<<8)|((response[1]&0x0000ff00)>>8);
3. And the last thing to do is check the response:
Response Formats
The MMC controller handles responses based on the size of the response. The MMC has responses
R1, R1b, R2, R3, R4, and R5. The SD Memory Card and the SDIO card have responses R1, R1b,
R2, R3, and R6. The R1, R1b, R2, and R3 response sizes are the same regardless of the card type
being used. Hence, the settings for the MMC_CMD[RESPONSE_FORMAT] bits are the same as
described in the IntelŪ PXA250 and PXA210 Applications Processors Developers Manual. Since
response R6 is 48 bits, the MMC_CMDAT[RESPONSE_FORMAT] bits can be set to 0b01 to read
the proper response from the card. Table 7 shows all responses, their sizes, associated card types,
and MMC_CMDAT[RESPONSE_FORMAT] bit values required.
Table 7. Response Types and Sizes
Response Size Card RESPONSE_FORMAT
Bits
R1 48 bit MMC, SD, SDIO 0b01
R1b 48 bit MMC, SD, SDIO 0b01
R2 136 bit MMC, SD, SDIO 0b10
R3 48 bit MMC, SD, SDIO 0b11
R4 48 bit MMC 0b01
R5 48 bit MMC 0b01
R6 48 bit SD, SDIO 0b01
Regards,
John.
mubix
10-30-2004, 07:36 PM
I have both a IPAQ 1910 and an Wifi/256mb SD card. How would I go about setting this up to work? I have knowledge of compiling but not of how I would go about executing the program on the ppc. Any help would be grand, I don't mind being a "beta" tester per say.
Please email me at
[email protected] or MSN messenger talk to me at
[email protected]
I am extremely interested in getting this working.
Mubix
mubix
11-10-2004, 06:46 AM
I am wondering if anyone has gotten this to work. If so.. would they mind helpin out the rest of the world? Or if it is confirmed not to work, someone please burst my bubble.
Thanks,
Mubix
joxx12
11-21-2004, 06:02 PM
I am wondering if anyone has gotten this to work. If so.. would they mind helpin out the rest of the world? Or if it is confirmed not to work, someone please burst my bubble.
Thanks,
Mubix
This is very promising!! If I new how to compile code, I'd give it a shot.
It makes sense that HP is not coming out with the driver since it would take away from their new product sales....
This couldn't possibly be too hard,
HELP ANYONE???
chewondave
11-27-2004, 04:38 AM
ah i wonder when such a driver will available be to us otherwise computer illiterate lower-beings :( the prospect of being able to use wireless on the 1910 is mind-boggling!!
orion2087
07-26-2005, 06:06 AM
In a desperate look to upgrade the 1910 i just purchased, I'm going to bump this thread and ask if anyone has had any luck with compiling this and getting this theory to work?
vBulletin® v3.8.9, Copyright ©2000-2019, vBulletin Solutions, Inc.