Skip to contentSkip to conversation

Print simple row of dots instead of spinning wheel

PATCH Superseded Wolfgang Denk 4 participants 12 messages Oct 23, 2008 – Oct 31, 2008

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

---
Hey, seems I'm heading for the record of submitting the maximum number of patch versions in the shorted time :-(

This patch version fixes a few typos in the first version, and gets rid of a few variables no longer needed because of the changes.

 board/esd/common/cmd_loadpci.c      |    6 +-----
 board/esd/pci405/cmd_pci405.c       |    6 +-----
 board/esd/pmc440/cmd_pmc440.c       |    6 +-----
 cpu/ppc4xx/44x_spd_ddr2.c           |   14 ++++----------
 cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c |   16 ++++------------
 5 files changed, 11 insertions(+), 37 deletions(-)
board/esd/common/cmd_loadpci.c +1 -5
index d88b387..aaf8b0c 100644
@@ -38,9 +38,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	unsigned int *ptr = 0;
 	int count = 0;
-	int count2 = 0;
 	char addr[16];
-	char str[] = "\\|/-";
 	char *local_args[2];
 
 	while(1) {
@@ -59,9 +57,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		while (*ptr == 0xffffffff) {
 			count++;
 			if (!(count % 100)) {
-				count2++;
-				putc(0x08); /* backspace */
-				putc(str[count2 % 4]);
+				putc('.');
 			}
 
 			/* Abort if ctrl-c was pressed */
board/esd/pci405/cmd_pci405.c +1 -5
index 5c717e2..9ffe686 100644
@@ -47,11 +47,9 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	unsigned int *ptr = 0;
 	int count = 0;
-	int count2 = 0;
 	int status;
 	int i;
 	char addr[16];
-	char str[] = "\\|/-";
 	char *local_args[2];
 
 	/*
@@ -67,9 +65,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	while (*ptr == 0xffffffff) {
 		count++;
 		if (!(count % 100)) {
-			count2++;
-			putc(0x08); /* backspace */
-			putc(str[count2 % 4]);
+			putc('.');
 		}
 
 		/* Abort if ctrl-c was pressed */
board/esd/pmc440/cmd_pmc440.c +1 -5
index 38ee74e..42d2fe6 100644
@@ -121,10 +121,8 @@ int do_fifo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	int i;
 	int n = 0;
 	u32 ctrl, data, f;
-	char str[] = "\\|/-";
 	int abort = 0;
 	int count = 0;
-	int count2 = 0;
 
 	switch (argc) {
 	case 1:
@@ -174,9 +172,7 @@ int do_fifo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 				while (!got_fifoirq) {
 					count++;
 					if (!(count % 100)) {
-						count2++;
-						putc(0x08); /* backspace */
-						putc(str[count2 % 4]);
+						putc('.');
 					}
 
 					/* Abort if ctrl-c was pressed */
cpu/ppc4xx/44x_spd_ddr2.c +4 -10
index b40e4b1..586fa74 100644
@@ -2362,10 +2362,8 @@ static void program_ecc_addr(unsigned long start_address,
 	unsigned long end_address;
 	unsigned long address_increment;
 	unsigned long mcopt1;
-	char str[] = "ECC generation -";
-	char slash[] = "\\|/-\\|/-";
+	char str[] = "ECC generation: ";
 	int loop = 0;
-	int loopi = 0;
 
 	current_address = start_address;
 	mfsdram(SDRAM_MCOPT1, mcopt1);
@@ -2390,8 +2388,7 @@ static void program_ecc_addr(unsigned long start_address,
 				current_address += address_increment;
 
 				if ((loop++ % (2 << 20)) == 0) {
-					putc('\b');
-					putc(slash[loopi++ % 8]);
+					putc('.');
 				}
 			}
 
@@ -2571,9 +2568,7 @@ static void DQS_calibration_process(void)
 	u32 rqfd;
 	u32 rqfd_start;
 	u32 rqfd_average;
-	int loopi = 0;
-	char str[] = "Auto calibration -";
-	char slash[] = "\\|/-\\|/-";
+	char str[] = "Auto calibration: ";
 
 	/*------------------------------------------------------------------
 	 * Test to determine the best read clock delay tuning bits.
@@ -2760,8 +2755,7 @@ calibration_loop:
 	 *-----------------------------------------------------------------*/
 	if (window_found == FALSE) {
 		if (rqfd_start < SDRAM_RQDC_RQFD_MAX) {
-			putc('\b');
-			putc(slash[loopi++ % 8]);
+			putc('.');
 
 			/* try again from with a different RQFD start value */
 			rqfd_start++;
cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c +4 -12
index 1e3e20d..109bcc7 100644
@@ -428,9 +428,6 @@ static u32 DQS_calibration_methodA(struct ddrautocal *cal)
 #endif
 	ulong rdcc;
 
-	char slash[] = "\\|/-\\|/-";
-	int loopi = 0;
-
 	/* start */
 	in_window = 0;
 
@@ -483,15 +480,13 @@ static u32 DQS_calibration_methodA(struct ddrautocal *cal)
 	debug("<%s>SDRAM_RFDC=0x%x\n", __func__, temp);
 #endif
 
-	putc(' ');
 	for (rqfd = 0; rqfd <= SDRAM_RQDC_RQFD_MAX; rqfd++) {
 
 		mfsdram(SDRAM_RQDC, rqdc_reg);
 		rqdc_reg &= ~(SDRAM_RQDC_RQFD_MASK);
 		mtsdram(SDRAM_RQDC, rqdc_reg | SDRAM_RQDC_RQFD_ENCODE(rqfd));
 
-		putc('\b');
-		putc(slash[loopi++ % 8]);
+		putc('.');
 
 		curr_win_min.rffd = 0;
 		curr_win_max.rffd = 0;
@@ -944,8 +939,6 @@ u32 DQS_autocalibration(void)
 	u32 val;
 	int verbose_lvl = 0;
 	char *str;
-	char slash[] = "\\|/-\\|/-";
-	int loopi = 0;
 	struct sdram_timing *scan_list;
 
 #if defined(DEBUG_PPC4xx_DDR_AUTOCALIBRATION)
@@ -962,9 +955,9 @@ u32 DQS_autocalibration(void)
 
 	mfsdram(SDRAM_MCOPT1, val);
 	if ((val & SDRAM_MCOPT1_MCHK_CHK_REP) == SDRAM_MCOPT1_MCHK_CHK_REP)
-		str = "ECC Auto calibration -";
+		str = "ECC Auto calibration: ";
 	else
-		str = "Auto calibration -";
+		str = "Auto calibration: ";
 
 	puts(str);
 
@@ -1000,8 +993,7 @@ u32 DQS_autocalibration(void)
 
 		relock_memory_DLL();
 
-		putc('\b');
-		putc(slash[loopi++ % 8]);
+		putc('.');
 
 #ifdef DEBUG
 		debug("\n");
Signature · 1 line
1.5.5.1
#1 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Hi Wolfgang,

Quoted 9 lines · Wolfgang Denk

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

---
Hey, seems I'm heading for the record of submitting the maximum number of patch versions in the shorted time :-(

;)

Quoted 6 lines

This patch version fixes a few typos in the first version, and gets rid of a few variables no longer needed because of the changes.

 board/esd/common/cmd_loadpci.c      |    6 +-----
 board/esd/pci405/cmd_pci405.c       |    6 +-----
 board/esd/pmc440/cmd_pmc440.c       |    6 +-----

We need the ACK from esd (Matthias) for this esd specific change. He is on vacation right now. I suggest that you split this patch so that we can apply the ppc4xx specific part directly.

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#2 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Dear Stefan,

Quoted 4 lines · In message <[email protected]> you wrote:

We need the ACK from esd (Matthias) for this esd specific change. He is on vacation right now. I suggest that you split this patch so that we can apply the ppc4xx specific part directly.

Let's just wait until he's back from vacation. It seems useful to me to keep this in a single commit.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I can't understand it. I can't even understand  the  people  who  can
understand it.                    - Queen Juliana of the Netherlands.
#3 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

In reply to Stefan Roese

Dear Matthias,

Quoted 17 lines · In message <[email protected]> Stefan Roese wrote:
Quoted 9 lines · Wolfgang Denk

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

---
Hey, seems I'm heading for the record of submitting the maximum number of patch versions in the shorted time :-(

;)

Quoted 3 lines

This patch version fixes a few typos in the first version, and gets rid of a few variables no longer needed because of the changes.

Quoted 7 lines
Quoted 3 lines
 board/esd/common/cmd_loadpci.c      |    6 +-----
 board/esd/pci405/cmd_pci405.c       |    6 +-----
 board/esd/pmc440/cmd_pmc440.c       |    6 +-----

We need the ACK from esd (Matthias) for this esd specific change. He is on vacation right now. I suggest that you split this patch so that we can apply the ppc4xx specific part directly.

What do you think about this change, at least as far as the ESD boards are concerned?

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The last thing one knows in constructing a work is what to put first.
- Blaise Pascal
#4 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

In reply to Wolfgang Denk

Hi Wolfgang,

please do not remove the spinning cursor from the 'esd' files.

a) Changing this will trigger some documentation update processes which I do not like :-)
b) Your patch results in 10 dots per second. Sometimes the touched boards stay a long time in the waiting states and I want to keep the previous messages in my console. Lots of dots will scroll them out.
c) I like the spinning cursor :-)
d) The control characters did not cause trouble for me or our customers so far.

So please accept my NAK.

Matthias

Quoted 207 lines · Wolfgang Denk

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

---
Hey, seems I'm heading for the record of submitting the maximum number of patch versions in the shorted time :-(

This patch version fixes a few typos in the first version, and gets rid of a few variables no longer needed because of the changes.

 board/esd/common/cmd_loadpci.c      |    6 +-----
 board/esd/pci405/cmd_pci405.c       |    6 +-----
 board/esd/pmc440/cmd_pmc440.c       |    6 +-----
 cpu/ppc4xx/44x_spd_ddr2.c           |   14 ++++----------
 cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c |   16 ++++------------
 5 files changed, 11 insertions(+), 37 deletions(-)
board/esd/common/cmd_loadpci.c +1 -5
index d88b387..aaf8b0c 100644
@@ -38,9 +38,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	unsigned int *ptr = 0;
 	int count = 0;
-	int count2 = 0;
 	char addr[16];
-	char str[] = "\\|/-";
 	char *local_args[2];
 
 	while(1) {
@@ -59,9 +57,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		while (*ptr == 0xffffffff) {
 			count++;
 			if (!(count % 100)) {
-				count2++;
-				putc(0x08); /* backspace */
-				putc(str[count2 % 4]);
+				putc('.');
 			}
 
 			/* Abort if ctrl-c was pressed */
board/esd/pci405/cmd_pci405.c +1 -5
index 5c717e2..9ffe686 100644
@@ -47,11 +47,9 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	unsigned int *ptr = 0;
 	int count = 0;
-	int count2 = 0;
 	int status;
 	int i;
 	char addr[16];
-	char str[] = "\\|/-";
 	char *local_args[2];
 
 	/*
@@ -67,9 +65,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	while (*ptr == 0xffffffff) {
 		count++;
 		if (!(count % 100)) {
-			count2++;
-			putc(0x08); /* backspace */
-			putc(str[count2 % 4]);
+			putc('.');
 		}
 
 		/* Abort if ctrl-c was pressed */
board/esd/pmc440/cmd_pmc440.c +1 -5
index 38ee74e..42d2fe6 100644
@@ -121,10 +121,8 @@ int do_fifo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	int i;
 	int n = 0;
 	u32 ctrl, data, f;
-	char str[] = "\\|/-";
 	int abort = 0;
 	int count = 0;
-	int count2 = 0;
 
 	switch (argc) {
 	case 1:
@@ -174,9 +172,7 @@ int do_fifo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 				while (!got_fifoirq) {
 					count++;
 					if (!(count % 100)) {
-						count2++;
-						putc(0x08); /* backspace */
-						putc(str[count2 % 4]);
+						putc('.');
 					}
 
 					/* Abort if ctrl-c was pressed */
cpu/ppc4xx/44x_spd_ddr2.c +4 -10
index b40e4b1..586fa74 100644
@@ -2362,10 +2362,8 @@ static void program_ecc_addr(unsigned long start_address,
 	unsigned long end_address;
 	unsigned long address_increment;
 	unsigned long mcopt1;
-	char str[] = "ECC generation -";
-	char slash[] = "\\|/-\\|/-";
+	char str[] = "ECC generation: ";
 	int loop = 0;
-	int loopi = 0;
 
 	current_address = start_address;
 	mfsdram(SDRAM_MCOPT1, mcopt1);
@@ -2390,8 +2388,7 @@ static void program_ecc_addr(unsigned long start_address,
 				current_address += address_increment;
 
 				if ((loop++ % (2 << 20)) == 0) {
-					putc('\b');
-					putc(slash[loopi++ % 8]);
+					putc('.');
 				}
 			}
 
@@ -2571,9 +2568,7 @@ static void DQS_calibration_process(void)
 	u32 rqfd;
 	u32 rqfd_start;
 	u32 rqfd_average;
-	int loopi = 0;
-	char str[] = "Auto calibration -";
-	char slash[] = "\\|/-\\|/-";
+	char str[] = "Auto calibration: ";
 
 	/*------------------------------------------------------------------
 	 * Test to determine the best read clock delay tuning bits.
@@ -2760,8 +2755,7 @@ calibration_loop:
 	 *-----------------------------------------------------------------*/
 	if (window_found == FALSE) {
 		if (rqfd_start < SDRAM_RQDC_RQFD_MAX) {
-			putc('\b');
-			putc(slash[loopi++ % 8]);
+			putc('.');
 
 			/* try again from with a different RQFD start value */
 			rqfd_start++;
cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c +4 -12
index 1e3e20d..109bcc7 100644
@@ -428,9 +428,6 @@ static u32 DQS_calibration_methodA(struct ddrautocal *cal)
 #endif
 	ulong rdcc;
 
-	char slash[] = "\\|/-\\|/-";
-	int loopi = 0;
-
 	/* start */
 	in_window = 0;
 
@@ -483,15 +480,13 @@ static u32 DQS_calibration_methodA(struct ddrautocal *cal)
 	debug("<%s>SDRAM_RFDC=0x%x\n", __func__, temp);
 #endif
 
-	putc(' ');
 	for (rqfd = 0; rqfd <= SDRAM_RQDC_RQFD_MAX; rqfd++) {
 
 		mfsdram(SDRAM_RQDC, rqdc_reg);
 		rqdc_reg &= ~(SDRAM_RQDC_RQFD_MASK);
 		mtsdram(SDRAM_RQDC, rqdc_reg | SDRAM_RQDC_RQFD_ENCODE(rqfd));
 
-		putc('\b');
-		putc(slash[loopi++ % 8]);
+		putc('.');
 
 		curr_win_min.rffd = 0;
 		curr_win_max.rffd = 0;
@@ -944,8 +939,6 @@ u32 DQS_autocalibration(void)
 	u32 val;
 	int verbose_lvl = 0;
 	char *str;
-	char slash[] = "\\|/-\\|/-";
-	int loopi = 0;
 	struct sdram_timing *scan_list;
 
 #if defined(DEBUG_PPC4xx_DDR_AUTOCALIBRATION)
@@ -962,9 +955,9 @@ u32 DQS_autocalibration(void)
 
 	mfsdram(SDRAM_MCOPT1, val);
 	if ((val & SDRAM_MCOPT1_MCHK_CHK_REP) == SDRAM_MCOPT1_MCHK_CHK_REP)
-		str = "ECC Auto calibration -";
+		str = "ECC Auto calibration: ";
 	else
-		str = "Auto calibration -";
+		str = "Auto calibration: ";
 
 	puts(str);
 
@@ -1000,8 +993,7 @@ u32 DQS_autocalibration(void)
 
 		relock_memory_DLL();
 
-		putc('\b');
-		putc(slash[loopi++ % 8]);
+		putc('.');
 
 #ifdef DEBUG
 		debug("\n");
Signature · 13 lines
-------------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs
Head of System Design

esd electronic system design gmbh
Vahrenwalder Str. 207 - 30165 Hannover - GERMANY
Phone: +49-511-37298-0 - Fax: +49-511-37298-68
Please visit our homepage http://www.esd.eu
Quality Products - Made in Germany
-------------------------------------------------------------------------
Gesch?ftsf?hrer: Klaus Detering, Dr. Werner Schulze
Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832
-------------------------------------------------------------------------
#5 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

In reply to Wolfgang Denk

Dear Stefan & Matthias,

Quoted 6 lines · In message <[email protected]> you wrote:

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

Did you come to a decision about this patch?

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It is your destiny.                                     - Darth Vader
#6 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Hi Wolfgang,

Quoted 11 lines · Wolfgang Denk

Dear Stefan & Matthias,

Quoted 6 lines · In message <[email protected]> you wrote:

Replace the "spinning wheel" eye candy by printing a simple row of dots. This avoids problems with control charactersin log files etc.

Also, it saves a few bytes.

Did you come to a decision about this patch?

Matthias already did send a NAK for the esd boards (on Monday).

I have to admit that I like the spinning wheel better as well. Especially the resulting output after the calibration is finished looks better on the "normal" terminal:

DRAM: 256 MB (original version)

instead of:

DRAM: Auto calibration: ..........256 MB (your new version)

I understand that the spinning wheel is not optimal for logfiles, but for the normal usage it just looks nicer for my taste. So I would prefer to stay with the spinning wheel, but if you decide that the 4xx DDR2 calibration mustn't use this, then let's apply your patch for the cpu/ppc4xx files.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#7 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Dear Stefan,

Quoted 4 lines · In message <[email protected]> you wrote:
Quoted 2 lines

Did you come to a decision about this patch?

Matthias already did send a NAK for the esd boards (on Monday).

OK - it's my fault that I missed this when the code was added :-(

Quoted 9 lines

I have to admit that I like the spinning wheel better as well. Especially the resulting output after the calibration is finished looks better on the "normal" terminal:

DRAM: 256 MB (original version)

instead of:

DRAM: Auto calibration: ..........256 MB (your new version)

Of course the end result looks better. There is no doubt about that. But it has disadvantages, too. With the row of dots you can easily see how long you've been waiting - this visualizes variations in timing behaviour that may be indications for problems; also it clearly shows where we have to wait too long, i. e. where optimi- zations are needed.

Quoted 4 lines

I understand that the spinning wheel is not optimal for logfiles, but for the normal usage it just looks nicer for my taste. So I would prefer to stay with the spinning wheel, but if you decide that the 4xx DDR2 calibration mustn't use this, then let's apply your patch for the cpu/ppc4xx files.

It is my understanding that a rework of this code is under way which will avoid the long delay for the standard boot sequence (and only need it for board bringup or intentional recalibration). For this purpose, the row of dots is IMHO more useful than the spinning wheel.

Assuming my understanding is correct (is it?), then we could fix this now as well.

BTW: I've added some statements to the documentation to deprecate control sequences on the console - see
http://www.denx.de/wiki/U-Boot/DesignPrinciples

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
He'd heard her use that sweet, innocent  tone  of  voice  before.  It
meant that, pretty soon, there was going to be trouble.
                                        - Terry Pratchett, _Truckers_
#8 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Hi Wolfgang,

Quoted 13 lines · Wolfgang Denk

Of course the end result looks better. There is no doubt about that. But it has disadvantages, too. With the row of dots you can easily see how long you've been waiting - this visualizes variations in timing behaviour that may be indications for problems; also it clearly shows where we have to wait too long, i. e. where optimi- zations are needed.

Quoted 5 lines

I understand that the spinning wheel is not optimal for logfiles, but for the normal usage it just looks nicer for my taste. So I would prefer to stay with the spinning wheel, but if you decide that the 4xx DDR2 calibration mustn't use this, then let's apply your patch for the cpu/ppc4xx files.

Quoted 3 lines

It is my understanding that a rework of this code is under way which will avoid the long delay for the standard boot sequence (and only need it for board bringup or intentional recalibration).

Are you talking about storing the optimized autocalibration values in FLASH, as discussed on IRC some time ago? I don't know if somebody is working on this. I only know that AMCC is working on a fix for the autocalibration on Kilauea. Not sure if this effects the bootup time, I can only hope it does.

Quoted 5 lines

For this
purpose, the row of dots is IMHO more useful than the spinning wheel.

Assuming my understanding is correct (is it?), then we could fix this now as well.

Again, if you decide that that's the way to go, then I will not object.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#9 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Dear Stefan Roese,

Quoted 7 lines · In message <[email protected]> you wrote:
Quoted 4 lines

It is my understanding that a rework of this code is under way which will avoid the long delay for the standard boot sequence (and only need it for board bringup or intentional recalibration).

Are you talking about storing the optimized autocalibration values in FLASH, as discussed on IRC some time ago? I don't know if somebody is working on

Yes. I see this as a mandatory requirement. The additional delays are not aceptable.

Quoted 4 lines
Quoted 2 lines

Assuming my understanding is correct (is it?), then we could fix this now as well.

Again, if you decide that that's the way to go, then I will not object.

Thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If something is different, it's either better or worse,  and  usually
both.                                                    - Larry Wall
#10 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Hi Wolfgang,

Quoted 10 lines · Wolfgang Denk
Quoted 7 lines
Quoted 3 lines

It is my understanding that a rework of this code is under way which will avoid the long delay for the standard boot sequence (and only need it for board bringup or intentional recalibration).

Are you talking about storing the optimized autocalibration values in FLASH, as discussed on IRC some time ago? I don't know if somebody is working on

Yes. I see this as a mandatory requirement. The additional delays are not aceptable.

I just want to raise some concerns about this approach on boards with DIMM modules. Here it will be hard to determine if a new DIMM module is installed. Even a module from the same manufacturer and type (size, width etc, all the same) will need a new autocalibration. This is probably hard to detect.

Just my $0.02.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#11 lore raw

PATCH v3 1/1 Print simple row of dots instead of spinning wheel

Quoted 14 lines · Stefan Roese

Hi Wolfgang,

Quoted 10 lines · Wolfgang Denk
Quoted 7 lines
Quoted 3 lines

It is my understanding that a rework of this code is under way which will avoid the long delay for the standard boot sequence (and only need it for board bringup or intentional recalibration).

Are you talking about storing the optimized autocalibration values in FLASH, as discussed on IRC some time ago? I don't know if somebody is working on

Yes. I see this as a mandatory requirement. The additional delays are not aceptable.

Quoted 6 lines

I just want to raise some concerns about this approach on boards with DIMM modules. Here it will be hard to determine if a new DIMM module is installed. Even a module from the same manufacturer and type (size, width etc, all the same) will need a new autocalibration. This is probably hard to detect.

Just my $0.02.

As discuss on IRC with Stefan

we can use the EEPROM present on the DIMM to identify two Modules

as point to this link as example
http://www.micron.com/products/spddetail.aspx?part=MT16HTF12864HY-667F1

we have the following interested informations stored

Byte Byte Description
Number
64-71 MANUFACTURERS JEDEC ID CODE
73-90 MODULE PART NUMBER
95-98 MODULE SERIAL NUMBER

we can check this 3 fields to be sure if it's a new modules is installed and so re-do the calibration

Why the 3 fields?
By experience
I've seen 2 Manufacturs use the same Serial Number for 2 differents product and I've also seen a Manufactur using the same Serial Number for 2 differents Part number

Best Regards,
J.