Re: maybe bug in common/ddr_spd.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 10, 2019 at 06:49:38PM +0200, Ladislav Michl wrote:
> On Wed, Apr 10, 2019 at 08:26:40AM +0200, Sascha Hauer wrote:
> > On Tue, Apr 09, 2019 at 05:56:53PM +0800, 张忠山 wrote:
> > > Maybe this is a bug, I'm not sure
> > > 
> > > -----------------------------------8<----------------------------- 
> > > From 55509f359abbb1f5c24e9f0c2b9cff167f62ae4d Mon Sep 17 00:00:00 2001
> > > From: =?UTF-8?q?=E5=BC=A0=E5=BF=A0=E5=B1=B1?= <zzs213@xxxxxxx>
> > > Date: Mon, 8 Apr 2019 14:34:00 +0800
> > > Subject: [PATCH] bugfix: check ddr mod_ranks
> > > MIME-Version: 1.0
> > > Content-Type: text/plain; charset=UTF-8
> > > Content-Transfer-Encoding: 8bit
> > > 
> > > Signed-off-by: 张忠山 <zzs213@xxxxxxx>
> > > ---
> > >  common/ddr_spd.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/common/ddr_spd.c b/common/ddr_spd.c
> > > index ec343ef5a..277d418e9 100644
> > > --- a/common/ddr_spd.c
> > > +++ b/common/ddr_spd.c
> > > @@ -253,7 +253,7 @@ void ddr_spd_print(uint8_t *record)
> > >  		printf("Error module type\n");
> > >  
> > >  	printf("%-48s ", "DRAM Package ");
> > > -	if ((s->mod_ranks & 0x10) == 1)
> > > +	if ((s->mod_ranks & 0x10) != 0)
> > 
> > For sure this is buggy. Applied, thanks
> 
> I know it is too late already, but isn't
> 	if (s->mod_ranks & 0x10)
> a bit more usual fix?

Hmm, actually there's some more comparsion worth verifying as shown
bellow:

diff --git a/common/ddr_spd.c b/common/ddr_spd.c
index 0ba5eacea..7c9abeead 100644
--- a/common/ddr_spd.c
+++ b/common/ddr_spd.c
@@ -256,7 +256,7 @@ void ddr_spd_print(uint8_t *record)
 	ctime = ddr2_sdram_ctime(s->clk_cycle);
 	ddrclk = 2 * (100000 / ctime);
 	tbits = (s->res_7 << 8) + (s->dataw);
-	if ((s->config & 0x03) == 1)
+	if (s->config & 0x01)
 		tbits = tbits - 8;
 
 	pcclk = ddrclk * tbits / 8;
@@ -325,7 +325,7 @@ void ddr_spd_print(uint8_t *record)
 		printf("Error module type\n");
 
 	printf("%-48s ", "DRAM Package ");
-	if ((s->mod_ranks & 0x10) == 1)
+	if (s->mod_ranks & 0x10)
 		printf("Stack\n");
 	else
 		printf("Planar\n");
@@ -341,7 +341,7 @@ void ddr_spd_print(uint8_t *record)
 	if (parity == 0)
 		printf("No Parity\n");
 
-	if ((parity & 0x03) == 0x01)
+	if (parity & 0x01)
 		printf("Data Parity\n");
 	if (parity & 0x02)
 		printf("Data ECC\n");
@@ -349,7 +349,7 @@ void ddr_spd_print(uint8_t *record)
 	if (parity & 0x04)
 		printf("Address/Command Parity\n");
 
-	if ((s->refresh >> 7) == 1)
+	if (s->refresh & 0x80)
 		ref = "- Self Refresh";
 	else
 		ref = " ";

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




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux