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