sddr09.c
This evening I cleaned up sddr09.c, and after some playing succeeded in writing to a SM card.
Remains the question: does anyone have docs for this thing?
(The "read control" command gives 64 bytes for each 16kB block. The last 48 look like junk. The first 16 either are all zero, or start with six FF bytes followed by two groups of five bytes. The first two bytes of both groups of five are equal, and describe the PBA <-> LBA correspondence.
I do not know what the final three bytes of both groups mean. They have five nybbles of even parity and one nybble that ends in two 1 bits.
What is the purpose of this PBA <-> LBA mapping?
To avoid bad blocks? Or is rewriting a sector much slower than relocating it and writing a fresh one?
I invented a "write_data" command, but have not yet tried to do a "write_control".)
Andries
Andries --
I have docs on this thing. It's been an on-again, off-again project with some other developers. You're the first to be able to write to the thing.
The translation is designed to preserve integrity -- i.e. you write the data, then atomically set one block invalid and another valid. There's actually a command for this at the controller-level.
I suggest that, if you're serious about finishing this, you get on board the usb-storage devel team (contact me off-lists about this), so we can get you access to the specs and then get this thing working.
Matt
Quoted 24 lines · On Mon, Apr 08, 2002 at 11:10:43PM +0000, [email protected] wrote:
This evening I cleaned up
sddr09.c, and after some playing succeeded in writing to a SM card.
Remains the question: does anyone have docs for this thing?(The "read control" command gives 64 bytes for each 16kB block. The last 48 look like junk. The first 16 either are all zero, or start with six FF bytes followed by two groups of five bytes. The first two bytes of both groups of five are equal, and describe the PBA <-> LBA correspondence.
I do not know what the final three bytes of both groups mean. They have five nybbles of even parity and one nybble that ends in two 1 bits.
What is the purpose of this PBA <-> LBA mapping?
To avoid bad blocks? Or is rewriting a sector much slower than relocating it and writing a fresh one?
I invented a "write_data" command, but have not yet tried to do a "write_control".)Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 6 lines
Matthew Dharm Home: [email protected] Maintainer, Linux USB Mass Storage Driver I want my GPFs!!! -- Stef User Friendly, 11/9/1998