Re: [patch 0/5] Add MMC password protection (lock/unlock) support

Russell King
2005-12-29T20:10:08Z

On Thu, Dec 29, 2005 at 03:06:15PM -0400, Anderson Lizardo wrote:
> On 12/15/05, Russell King <rmk+lkml@arm.linux.org.uk> wrote:
> > Reading through the specs I have here, block sizes seem to be all over
> > the place. The MMC card specs seem to imply that any block size can
> > be set, from 0 bytes to 2^32-1 bytes.
> >
> > The PXA MMC interface specification allows the block size to be anything
> > from 1 to 1023 bytes, excluding CRC. It is unclear whether a value of 0
> > means 1024.
> >
> > The MMCI specification allows the block size to be specified as a power
> > of two, from 1 to 2048 bytes, excluding CRC.
>
> By "allows" do you mean we can set the block size to arbitrary values
> on MMCI too?

No - that's not what I said. I said "power of two, from 1 to 2048
bytes excluding CRC."

To expand on that to make it crystal clear (I feel like I'm teaching
grandmother to suck eggs, but what the hell) that means 1, 2, 4, 8,
16, 32, 64, 128, 256, 512, 1024, and 2048 are the only possible block
sizes with MMCI. All other block sizes can not be configured with
MMCI.

> The MMC specification v4.1 is clear in one thing: the SET_BLOCKLEN
> command should be issued prior to the actual LOCK_UNLOCK command with
> *exactly* the password length + 2 bytes (which contains the operation
> mode bits and the password length in bytes). The MMC password
> unlocking (and other password operations, FWIW) doesn't work on the
> OMAP host if the SET_BLOCKLEN command argument and the block size of
> the data transfer itself do not match.

Since passwords are limited to a maximum of 16 characters, this means
that only passwords of length 2, 6, and 14 are possible with MMCI.
All other passwords are invalid and/or impossible with this host.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core