Re: MMC Driver RFC

From: Pierre Ossman
Date: Fri Jan 14 2005 - 06:40:35 EST


Nice too see that you're alive Ian ;)

I've been trying to send you some mail regarding your SD implementation but I haven't received any replies. Perhaps they've gotten lost somewhere?

I've made my own SD patch using some of your work but also a lot of my own stuff. I had some problems getting your patches to apply cleanly to the current tree so I reimplemented it using your code as a template.

The patch can be found at:
http://projects.drzeus.cx/wbsd/sd.php
That page also contains the legal issues as I've understood them.

A summary of what I've done (relative your work):

* flags renamed to caps to better reflect what it does.
* SD_4_BITS changed to 4_BIT_DATA. Hopefully 4-bit mode in SD and MMC will be compatible, at least on the driver level.
* HOST_ changed to MMC_ to conform with the rest of the macros.
* Added a function in the driver to test for SD read-only switch.
* Moved SD-specific commands to a separate section in the header so they are more easily distinguished.
* SCR register is read from card and used when determining bus width.
* I've separated SD detection a bit.
* The mode (SD/MMC) of the host is stored. Since MMC uses a bus topology and SD uses a star one it is useful to be able to see which mode the controller is in.

I also couldn't find the reason for the ACMD flags you've added. Application commands only differ in semantics, not format, so I couldn't figure out why these where needed. Perhaps I'm missing something.

Ian Molton wrote:

Unfortunately, such specs only cover MMC cards and not SD cards.


ISTR seeing a SD card doc at some point

I have specs for SD cards from Sandisk and Toshiba. Both found on the respective manufacturer's site using google. These have been the basis for my work.


Well I *know* I never saw the specs from the SD forum. I hacve never reverse engineered a SDHC core driver either (I have reverse engineered a chip driver but it contained no SD *protocol* information.

as such my code should be 100% safe to commit to the kernel.


My code is based on the SD card specs I've found so it probably isn't as safe.

Rgds
Pierre
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/