u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] sunxi: Fix two H616 DRAM bugs
@ 2022-01-29 15:58 Jernej Skrabec
  2022-01-29 15:58 ` [PATCH 1/2] sunxi: fix H616 DRAM ODT support Jernej Skrabec
  2022-01-29 15:58 ` [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank Jernej Skrabec
  0 siblings, 2 replies; 5+ messages in thread
From: Jernej Skrabec @ 2022-01-29 15:58 UTC (permalink / raw)
  To: jagan, andre.przywara; +Cc: u-boot, linux-sunxi, Jernej Skrabec

At closer inspection of H616 DRAM code I found two issues:
1. ODT is never configured due to missing CONFIG_ prefix in check
2. Dual rank read calibration never exits calibration mode

Only first issue is important to fix for currently supported boards.
Fixing second one is future proofing.

Please take a look.

Best regards,
Jernej

Jernej Skrabec (2):
  sunxi: fix H616 DRAM ODT support
  sunxi: Fix H616 DRAM read calibration for dual rank

 arch/arm/mach-sunxi/dram_sun50i_h616.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.35.0


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

* [PATCH 1/2] sunxi: fix H616 DRAM ODT support
  2022-01-29 15:58 [PATCH 0/2] sunxi: Fix two H616 DRAM bugs Jernej Skrabec
@ 2022-01-29 15:58 ` Jernej Skrabec
  2022-01-30 22:19   ` Andre Przywara
  2022-01-29 15:58 ` [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank Jernej Skrabec
  1 sibling, 1 reply; 5+ messages in thread
From: Jernej Skrabec @ 2022-01-29 15:58 UTC (permalink / raw)
  To: jagan, andre.przywara; +Cc: u-boot, linux-sunxi, Jernej Skrabec

Kconfig symbol is missing CONFIG_ prefix, so compiler will always
skip ODT configuration.

Fix symbol name.

Fixes: f4317dbd06b6 ("sunxi: Add H616 DRAM support")
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
 arch/arm/mach-sunxi/dram_sun50i_h616.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-sunxi/dram_sun50i_h616.c b/arch/arm/mach-sunxi/dram_sun50i_h616.c
index acdfb3ceef8c..76f520f4e780 100644
--- a/arch/arm/mach-sunxi/dram_sun50i_h616.c
+++ b/arch/arm/mach-sunxi/dram_sun50i_h616.c
@@ -720,7 +720,7 @@ static bool mctl_phy_init(struct dram_para *para)
 	writel(0x80, SUNXI_DRAM_PHY0_BASE + 0x3dc);
 	writel(0x80, SUNXI_DRAM_PHY0_BASE + 0x45c);
 
-	if (IS_ENABLED(DRAM_ODT_EN))
+	if (IS_ENABLED(CONFIG_DRAM_ODT_EN))
 		mctl_phy_configure_odt();
 
 	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 4, 7, 0xa);
-- 
2.35.0


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

* [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank
  2022-01-29 15:58 [PATCH 0/2] sunxi: Fix two H616 DRAM bugs Jernej Skrabec
  2022-01-29 15:58 ` [PATCH 1/2] sunxi: fix H616 DRAM ODT support Jernej Skrabec
@ 2022-01-29 15:58 ` Jernej Skrabec
  2022-01-30 22:20   ` Andre Przywara
  1 sibling, 1 reply; 5+ messages in thread
From: Jernej Skrabec @ 2022-01-29 15:58 UTC (permalink / raw)
  To: jagan, andre.przywara; +Cc: u-boot, linux-sunxi, Jernej Skrabec

Although it isn't known what bit 0 in PHY reg 8 does, it's obvious that
it has to be set before read calibration and cleared afterwards. This is
already done for first rank, but not for second (copy & paste error.)

Fix it.

Fixes: f4317dbd06b6 ("sunxi: Add H616 DRAM support")
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
 arch/arm/mach-sunxi/dram_sun50i_h616.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-sunxi/dram_sun50i_h616.c b/arch/arm/mach-sunxi/dram_sun50i_h616.c
index 76f520f4e780..83e8abc2f8d8 100644
--- a/arch/arm/mach-sunxi/dram_sun50i_h616.c
+++ b/arch/arm/mach-sunxi/dram_sun50i_h616.c
@@ -360,7 +360,7 @@ static bool mctl_phy_read_calibration(struct dram_para *para)
 			}
 		}
 
-		setbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 1);
+		clrbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 1);
 	}
 
 	clrbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 0x30);
-- 
2.35.0


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

* Re: [PATCH 1/2] sunxi: fix H616 DRAM ODT support
  2022-01-29 15:58 ` [PATCH 1/2] sunxi: fix H616 DRAM ODT support Jernej Skrabec
@ 2022-01-30 22:19   ` Andre Przywara
  0 siblings, 0 replies; 5+ messages in thread
From: Andre Przywara @ 2022-01-30 22:19 UTC (permalink / raw)
  To: Jernej Skrabec; +Cc: jagan, u-boot, linux-sunxi

On Sat, 29 Jan 2022 16:58:42 +0100
Jernej Skrabec <jernej.skrabec@gmail.com> wrote:

> Kconfig symbol is missing CONFIG_ prefix, so compiler will always
> skip ODT configuration.
> 
> Fix symbol name.

Oops, nice catch!

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Applied to sunxi/master.

Cheers,
Andre

> 
> Fixes: f4317dbd06b6 ("sunxi: Add H616 DRAM support")
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> ---
>  arch/arm/mach-sunxi/dram_sun50i_h616.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-sunxi/dram_sun50i_h616.c b/arch/arm/mach-sunxi/dram_sun50i_h616.c
> index acdfb3ceef8c..76f520f4e780 100644
> --- a/arch/arm/mach-sunxi/dram_sun50i_h616.c
> +++ b/arch/arm/mach-sunxi/dram_sun50i_h616.c
> @@ -720,7 +720,7 @@ static bool mctl_phy_init(struct dram_para *para)
>  	writel(0x80, SUNXI_DRAM_PHY0_BASE + 0x3dc);
>  	writel(0x80, SUNXI_DRAM_PHY0_BASE + 0x45c);
>  
> -	if (IS_ENABLED(DRAM_ODT_EN))
> +	if (IS_ENABLED(CONFIG_DRAM_ODT_EN))
>  		mctl_phy_configure_odt();
>  
>  	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 4, 7, 0xa);


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

* Re: [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank
  2022-01-29 15:58 ` [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank Jernej Skrabec
@ 2022-01-30 22:20   ` Andre Przywara
  0 siblings, 0 replies; 5+ messages in thread
From: Andre Przywara @ 2022-01-30 22:20 UTC (permalink / raw)
  To: Jernej Skrabec; +Cc: jagan, u-boot, linux-sunxi

On Sat, 29 Jan 2022 16:58:43 +0100
Jernej Skrabec <jernej.skrabec@gmail.com> wrote:

> Although it isn't known what bit 0 in PHY reg 8 does, it's obvious that
> it has to be set before read calibration and cleared afterwards. This is
> already done for first rank, but not for second (copy & paste error.)

Indeed looks like it, from the logic point of view.

> 
> Fix it.
> 
> Fixes: f4317dbd06b6 ("sunxi: Add H616 DRAM support")
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Applied to sunxi/master.

Cheers,
Andre

> ---
>  arch/arm/mach-sunxi/dram_sun50i_h616.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-sunxi/dram_sun50i_h616.c b/arch/arm/mach-sunxi/dram_sun50i_h616.c
> index 76f520f4e780..83e8abc2f8d8 100644
> --- a/arch/arm/mach-sunxi/dram_sun50i_h616.c
> +++ b/arch/arm/mach-sunxi/dram_sun50i_h616.c
> @@ -360,7 +360,7 @@ static bool mctl_phy_read_calibration(struct dram_para *para)
>  			}
>  		}
>  
> -		setbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 1);
> +		clrbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 1);
>  	}
>  
>  	clrbits_le32(SUNXI_DRAM_PHY0_BASE + 8, 0x30);


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

end of thread, other threads:[~2022-01-30 22:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-29 15:58 [PATCH 0/2] sunxi: Fix two H616 DRAM bugs Jernej Skrabec
2022-01-29 15:58 ` [PATCH 1/2] sunxi: fix H616 DRAM ODT support Jernej Skrabec
2022-01-30 22:19   ` Andre Przywara
2022-01-29 15:58 ` [PATCH 2/2] sunxi: Fix H616 DRAM read calibration for dual rank Jernej Skrabec
2022-01-30 22:20   ` Andre Przywara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).