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
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/
--
Matthew Dharm Home: [email protected]
Maintainer, Linux USB Mass Storage Driver
I want my GPFs!!!
-- Stef
User Friendly, 11/9/1998