mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* MCI print revision
@ 2016-05-30  9:01 Alexander Shiyan
  2016-05-31  6:26 ` Sascha Hauer
  0 siblings, 1 reply; 8+ messages in thread
From: Alexander Shiyan @ 2016-05-30  9:01 UTC (permalink / raw)
  To: barebox

Hello.

Commit dbd7190295298acfb4996ec1aba5165a7be28fdc (mci: Print versions with micro levels correctly)
seems to be incorrect.

barebox@Informer:/ mmc0.probe=1
mmc0: detected SD card version 1.a
mmc0: registered mmc0

Thanks.
---
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: MCI print revision
  2016-05-30  9:01 MCI print revision Alexander Shiyan
@ 2016-05-31  6:26 ` Sascha Hauer
  2016-05-31  7:02   ` Re[2]: " Alexander Shiyan
  0 siblings, 1 reply; 8+ messages in thread
From: Sascha Hauer @ 2016-05-31  6:26 UTC (permalink / raw)
  To: Alexander Shiyan; +Cc: barebox, Trent Piepho

+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@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?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re[2]: MCI print revision
  2016-05-31  6:26 ` Sascha Hauer
@ 2016-05-31  7:02   ` Alexander Shiyan
  2016-05-31  7:23     ` Sascha Hauer
  0 siblings, 1 reply; 8+ messages in thread
From: Alexander Shiyan @ 2016-05-31  7:02 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Trent Piepho

> Вторник, 31 мая 2016, 9:26 +03:00 от Sascha Hauer <s.hauer@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@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)
  Capacity: 1962 MiB
   CID: 1C535653-44432020-1000013C-7E007200
   CSD: 005E0032-5F5A83D5-2DB7FFBF-96800000
  Max. transfer speed: 25000000 Hz
  capabilities: 4bit sd-hs
  Manufacturer ID: 1C
  OEM/Application ID: 5356
  Product name: 'SDC  '
  Product revision: 1.0
  Serial no: 3086991254
  Manufacturing date: 2.2007
...

So, expected 1.1

---

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: MCI print revision
  2016-05-31  7:02   ` Re[2]: " Alexander Shiyan
@ 2016-05-31  7:23     ` Sascha Hauer
  2016-05-31  7:33       ` Re[2]: " Alexander Shiyan
  2016-05-31 19:56       ` Trent Piepho
  0 siblings, 2 replies; 8+ messages in thread
From: Sascha Hauer @ 2016-05-31  7:23 UTC (permalink / raw)
  To: Alexander Shiyan; +Cc: barebox, Trent Piepho

On Tue, May 31, 2016 at 10:02:48AM +0300, Alexander Shiyan wrote:
> > Вторник, 31 мая 2016, 9:26 +03:00 от Sascha Hauer <s.hauer@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@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?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re[2]: MCI print revision
  2016-05-31  7:23     ` Sascha Hauer
@ 2016-05-31  7:33       ` Alexander Shiyan
  2016-05-31 19:56       ` Trent Piepho
  1 sibling, 0 replies; 8+ messages in thread
From: Alexander Shiyan @ 2016-05-31  7:33 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Trent Piepho

> Вторник, 31 мая 2016, 10:23 +03:00 от Sascha Hauer <s.hauer@pengutronix.de>:
> 
> On Tue, May 31, 2016 at 10:02:48AM +0300, Alexander Shiyan wrote:
> > > Вторник, 31 мая 2016, 9:26 +03:00 от Sascha Hauer <s.hauer@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@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?

I think yes. AFAIK there is no "1a" revision for SD card, but 1.01 and 1.1 is correct.

---

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: MCI print revision
  2016-05-31  7:23     ` Sascha Hauer
  2016-05-31  7:33       ` Re[2]: " Alexander Shiyan
@ 2016-05-31 19:56       ` Trent Piepho
  2016-05-31 19:58         ` [PATCH] mci: Fix version numbers again Trent Piepho
  1 sibling, 1 reply; 8+ messages in thread
From: Trent Piepho @ 2016-05-31 19:56 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

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@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@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.
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] mci: Fix version numbers again
  2016-05-31 19:56       ` Trent Piepho
@ 2016-05-31 19:58         ` Trent Piepho
  2016-06-07  6:07           ` Sascha Hauer
  0 siblings, 1 reply; 8+ messages in thread
From: Trent Piepho @ 2016-05-31 19:58 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

The SD and eMMC version numbers are a pain to print and sort, since
they are inconsistent in if a two digit minor version shdoulde be
treated as a single number or as minor and micro version numbers.

This allows version 1.10 and 4.5 and 4.41, where 41 is less than 5.

Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
---
 drivers/mci/mci-core.c | 14 +++++++++-----
 include/mci.h          |  7 ++++++-
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 59f6675..42dde06 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -949,14 +949,18 @@ out:
 
 static char *mci_version_string(struct mci *mci)
 {
-	static char version[sizeof("x.xx")];
-	unsigned major, minor;
+	static char version[sizeof("xx.xxx")];
+	unsigned major, minor, micro;
+	int n;
 
 	major = (mci->version >> 8) & 0xf;
-	minor = mci->version & 0xff;
+	minor = (mci->version >> 4) & 0xf;
+	micro = mci->version & 0xf;
 
-	/* Shift off last digit of minor if it's 0 */
-	sprintf(version, "%u.%x", major, minor & 0xf ? minor : minor >> 4);
+	n = sprintf(version, "%u.%u", major, minor);
+	/* Omit zero micro versions */
+	if (micro)
+		sprintf(version + n, "%u", micro);
 
 	return version;
 }
diff --git a/include/mci.h b/include/mci.h
index 174d150..001c86c 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -30,11 +30,16 @@
 #include <block.h>
 #include <regulator.h>
 
+/* These codes should be sorted numerically in order of newness.  If the last
+ * nybble is a zero, it will not be printed.  So 0x120 -> "1.2" and 0x123 ->
+ * "1.23", 0x1a0 -> "1.10", 0x1b0 and 0x111 -> "1.11" but sort differently.
+ * It's not possible to create "1.20".  */
+
 /* Firmware revisions for SD cards */
 #define SD_VERSION_SD		0x20000
-#define SD_VERSION_2		(SD_VERSION_SD | 0x200)
 #define SD_VERSION_1_0		(SD_VERSION_SD | 0x100)
 #define SD_VERSION_1_10		(SD_VERSION_SD | 0x1a0)
+#define SD_VERSION_2		(SD_VERSION_SD | 0x200)
 
 /* Firmware revisions for MMC cards */
 #define MMC_VERSION_MMC		0x10000
-- 
2.7.0.25.gfc10eb5.dirty


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] mci: Fix version numbers again
  2016-05-31 19:58         ` [PATCH] mci: Fix version numbers again Trent Piepho
@ 2016-06-07  6:07           ` Sascha Hauer
  0 siblings, 0 replies; 8+ messages in thread
From: Sascha Hauer @ 2016-06-07  6:07 UTC (permalink / raw)
  To: Trent Piepho; +Cc: barebox

On Tue, May 31, 2016 at 07:58:56PM +0000, Trent Piepho wrote:
> The SD and eMMC version numbers are a pain to print and sort, since
> they are inconsistent in if a two digit minor version shdoulde be
> treated as a single number or as minor and micro version numbers.
> 
> This allows version 1.10 and 4.5 and 4.41, where 41 is less than 5.
> 
> Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
> ---

Applied, thanks

Sascha

>  drivers/mci/mci-core.c | 14 +++++++++-----
>  include/mci.h          |  7 ++++++-
>  2 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
> index 59f6675..42dde06 100644
> --- a/drivers/mci/mci-core.c
> +++ b/drivers/mci/mci-core.c
> @@ -949,14 +949,18 @@ out:
>  
>  static char *mci_version_string(struct mci *mci)
>  {
> -	static char version[sizeof("x.xx")];
> -	unsigned major, minor;
> +	static char version[sizeof("xx.xxx")];
> +	unsigned major, minor, micro;
> +	int n;
>  
>  	major = (mci->version >> 8) & 0xf;
> -	minor = mci->version & 0xff;
> +	minor = (mci->version >> 4) & 0xf;
> +	micro = mci->version & 0xf;
>  
> -	/* Shift off last digit of minor if it's 0 */
> -	sprintf(version, "%u.%x", major, minor & 0xf ? minor : minor >> 4);
> +	n = sprintf(version, "%u.%u", major, minor);
> +	/* Omit zero micro versions */
> +	if (micro)
> +		sprintf(version + n, "%u", micro);
>  
>  	return version;
>  }
> diff --git a/include/mci.h b/include/mci.h
> index 174d150..001c86c 100644
> --- a/include/mci.h
> +++ b/include/mci.h
> @@ -30,11 +30,16 @@
>  #include <block.h>
>  #include <regulator.h>
>  
> +/* These codes should be sorted numerically in order of newness.  If the last
> + * nybble is a zero, it will not be printed.  So 0x120 -> "1.2" and 0x123 ->
> + * "1.23", 0x1a0 -> "1.10", 0x1b0 and 0x111 -> "1.11" but sort differently.
> + * It's not possible to create "1.20".  */
> +
>  /* Firmware revisions for SD cards */
>  #define SD_VERSION_SD		0x20000
> -#define SD_VERSION_2		(SD_VERSION_SD | 0x200)
>  #define SD_VERSION_1_0		(SD_VERSION_SD | 0x100)
>  #define SD_VERSION_1_10		(SD_VERSION_SD | 0x1a0)
> +#define SD_VERSION_2		(SD_VERSION_SD | 0x200)
>  
>  /* Firmware revisions for MMC cards */
>  #define MMC_VERSION_MMC		0x10000
> -- 
> 2.7.0.25.gfc10eb5.dirty
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-06-07  6:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-30  9:01 MCI print revision Alexander Shiyan
2016-05-31  6:26 ` Sascha Hauer
2016-05-31  7:02   ` Re[2]: " Alexander Shiyan
2016-05-31  7:23     ` Sascha Hauer
2016-05-31  7:33       ` Re[2]: " Alexander Shiyan
2016-05-31 19:56       ` Trent Piepho
2016-05-31 19:58         ` [PATCH] mci: Fix version numbers again Trent Piepho
2016-06-07  6:07           ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox