[U-Boot] [PATCH] sunxi: Fix memory 2-rank initialization for a33 cpu

When we initialize the memory we need to autodetect rank and size but this can happen only if we send the proper reset to both memory module including cke signal. For this reason we need initialize the physical on both channel because we need to presume that both are connected. This way let the CLKE to be activated at the right time with the memory reset coming from the cpu
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com --- arch/arm/mach-sunxi/dram_sun8i_a33.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-sunxi/dram_sun8i_a33.c b/arch/arm/mach-sunxi/dram_sun8i_a33.c index d9aa0c6d7e..1da2727f98 100644 --- a/arch/arm/mach-sunxi/dram_sun8i_a33.c +++ b/arch/arm/mach-sunxi/dram_sun8i_a33.c @@ -334,7 +334,7 @@ unsigned long sunxi_dram_init(void) struct dram_para para = { .cs1 = 0, .bank = 1, - .rank = 1, + .rank = 2, .rows = 15, .bus_width = 16, .page_size = 2048,

Hi Maxime
On Wed, Oct 31, 2018 at 8:03 PM Michael Trimarchi michael@amarulasolutions.com wrote:
When we initialize the memory we need to autodetect rank and size but this can happen only if we send the proper reset to both memory module including cke signal. For this reason we need initialize the physical on both channel because we need to presume that both are connected. This way let the CLKE to be activated at the right time with the memory reset coming from the cpu
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Does enough clear?
Michael
arch/arm/mach-sunxi/dram_sun8i_a33.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-sunxi/dram_sun8i_a33.c b/arch/arm/mach-sunxi/dram_sun8i_a33.c index d9aa0c6d7e..1da2727f98 100644 --- a/arch/arm/mach-sunxi/dram_sun8i_a33.c +++ b/arch/arm/mach-sunxi/dram_sun8i_a33.c @@ -334,7 +334,7 @@ unsigned long sunxi_dram_init(void) struct dram_para para = { .cs1 = 0, .bank = 1,
.rank = 1,
.rank = 2, .rows = 15, .bus_width = 16, .page_size = 2048,
-- 2.17.1

On Wed, Oct 31, 2018 at 08:03:16PM +0100, Michael Trimarchi wrote:
When we initialize the memory we need to autodetect rank and size but this can happen only if we send the proper reset to both memory module including cke signal. For this reason we need initialize the physical on both channel because we need to presume that both are connected. This way let the CLKE to be activated at the right time with the memory reset coming from the cpu
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Maxime

Hi Jagan
On Mon, Nov 5, 2018 at 10:02 AM Maxime Ripard maxime.ripard@bootlin.com wrote:
On Wed, Oct 31, 2018 at 08:03:16PM +0100, Michael Trimarchi wrote:
When we initialize the memory we need to autodetect rank and size but this can happen only if we send the proper reset to both memory module including cke signal. For this reason we need initialize the physical on both channel because we need to presume that both are connected. This way let the CLKE to be activated at the right time with the memory reset coming from the cpu
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Can you test on a consumer board with A33? I have tested over oscilloscope on my device
Michael
Maxime
-- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com

On Thu, Nov 1, 2018 at 12:33 AM Michael Trimarchi michael@amarulasolutions.com wrote:
When we initialize the memory we need to autodetect rank and size but this can happen only if we send the proper reset to both memory module including cke signal. For this reason we need initialize the physical on both channel because we need to presume that both are connected. This way let the CLKE to be activated at the right time with the memory reset coming from the cpu
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Applied to u-boot-sunxi/master
participants (4)
-
Jagan Teki
-
Maxime Ripard
-
Michael Nazzareno Trimarchi
-
Michael Trimarchi