MCI print revision
Trent Piepho
tpiepho at kymetacorp.com
Tue May 31 12:56:19 PDT 2016
On Tue, 2016-05-31 at 09:23 +0200, Sascha Hauer wrote:
> On Tue, May 31, 2016 at 10:02:48AM +0300, Alexander Shiyan wrote:
> > > Вторник, 31 мая 2016, 9:26 +03:00 от Sascha Hauer <s.hauer at pengutronix.de>:
> > >
> > > +Cc Trent
> > >
> > > On Mon, May 30, 2016 at 12:01:12PM +0300, Alexander Shiyan wrote:
> > > > Hello.
> > > >
> > > > Commit dbd7190295298acfb4996ec1aba5165a7be28fdc (mci: Print versions with micro levels correctly)
> > > > seems to be incorrect.
> > > >
> > > > barebox at Informer:/ mmc0.probe=1
> > > > mmc0: detected SD card version 1.a
> > > > mmc0: registered mmc0
> > >
> > > So what's the expected printout and was it correct without this patch?
> >
> > Host information:
> > current clock: 25000000
> > current buswidth: 4
> > capabilities: 4bit sd-hs mmc-hs
> > Card information:
> > Attached is an SD Card (Version: 1.10)
>
> So the %x for printing the minor should really be a %u?
No, that will print MMC version 4.41 incorrectly as 4.65.
I think the issue is the value of the version codes and how they should
be printed. AFAICT, the codes originated in u-boot but were changed in
commit "mci: Fix version handling" in 2014. The original u-boot code
was easier to print, using "0x429" for version 4.41 so it would print
correctly with "%u", but since 0x29 > 0x05 this resulted in 4.41 being
sorted after 4.5. I think the fundamental problem here is fault of the
people who created the SD and eMMC standards giving us this:
1.10 > 1.01
4.41 < 4.5
It's just not consistent. In one case the last two digits are single
number but in the other they are a minor,micro version pair.
More information about the barebox
mailing list