On Mon, Jun 7, 2021 at 2:31 AM Tom Yan <tom.t...@gmail.com> wrote:

> Hi philmd (and others),
>
> So I just noticed your commit of requiring the size of an emulated SD
> card to be a power of 2, when I was trying to emulate one for an
> actual one (well, it's a microSD, but still), as it errored out.
>
> You claim that the kernel will consider it to be a firmware bug and
> "correct" the capacity by rounding it up. Could you provide a concrete
> reference to the code that does such a thing? I'm not ruling out that
> some crazy code could have gone upstream because some reviewers might
> not be doing their job right, but if that really happened, it's a
> kernel bug/regression and qemu should not do an equally-crazy thing to
> "fix" it.
>
> No offense but what you claimed really sounds absurd and ridiculous.
> Although I don't have hundreds of SD cards in hand, I owned quite a
> few at least, like most people do, with capacities ranging from ~2G to
> ~128G, and I don't even recall seeing a single one that has the
> capacity being a power of 2. (Just like vendors of HDDs and SSDs, they
> literally never do that AFAICT, for whatever reasons.)
>
> Besides, even if there's a proper reason for the kernel to "fix" the
> capacity, there's no reason for it to round it up either, because
> obviously there will never be actual storage for the "virtual blocks".
> I've never seen such a behavior so far either with the "mmcblk" hosts
> I've used so far.
>

Some data points: I have several 224GB SD cards. FreeBSD specifically uses
a size
just a little smaller than the rated size because so many capacity points
are a bit
smaller (1GB cards also tend to be only 1% larger 1E9 bytes, nowhere near a
power
of two). FreeBSD's kernel never adjusts the size of SD or MMC cards, and
there's
nothing in the Simplified SD standard nor in the various MMC standards
requiring a
power of two.

Warner

Reply via email to