[PATCH] ARM: imx: esdctl: fix LPDDR4 size calculation

Teresa Remmet T.Remmet at phytec.de
Fri May 20 07:55:25 PDT 2022


Am Freitag, dem 20.05.2022 um 16:33 +0200 schrieb Lucas Stach:
> Hi Teresa,
> 
> Am Freitag, dem 20.05.2022 um 14:16 +0000 schrieb Teresa Remmet:
> > Hello Lucas,
> > 
> > Am Freitag, dem 13.05.2022 um 16:16 +0200 schrieb Lucas Stach:
> > > The DDRC only uses the DEVICE_CONFIG field for memory types other
> > > than
> > > LPDDR4. While LPDDR4 always has a bus width of x32, the script
> > > aid
> > 
> > this is not true for i.MX8M Nano. This SoC has only x16. This is
> > probably why reading the register worked for Joacim on imx8mn.
> > So there is some more checking needed.
> > 
> Does the 8MN really use the DEVICE_CONFIG to configure the LPDDR4 bus
> to 16bit width, or does it use the DATA_BUS_WIDTH control to limit
> the
> bus to 16bit?
> 
> The register programming aid spreadsheet for the 8MN claims that
> DEVICE_CONFIG has no effect on LPDDR4 memory, same as for all other
> i.M8M* variants. But then the spreadsheet may have copy-and-paste
> issues. So maybe we do in fact need to know that native bus width of
> controller implementation on the specific SoC to get things right for
> LPDDR4?

when looking behind the formulas of the DATA_BUS_WIDTH in the
spreadsheet for i.MX8MN "Full DQ bus width" means always 16bit. For
i.MX8MM + i.MX8MP always 32bit. So yes, I guess we need to check for
the SoC we are running on to get it right.

Regards,
Teresa

> 
> Regards,
> Lucas
> 
> > Regards,
> > Teresa
> > 
> > > generates the value for a x16 bus, as this was apparently used
> > > for
> > > the
> > > controller validation. This resulted in the calculated DRAM size
> > > to
> > > be
> > > halved on boards with LPDDR4 memory.
> > > 
> > > Fixes: d8d5778ee8c2 ("ARM: imx: Correct mem size calculation for
> > > 4/8/16/32 bit bus width")
> > > Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> > > ---
> > >  arch/arm/mach-imx/esdctl.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-
> > > imx/esdctl.c
> > > index d3dbfff423da..4c8765c193d0 100644
> > > --- a/arch/arm/mach-imx/esdctl.c
> > > +++ b/arch/arm/mach-imx/esdctl.c
> > > @@ -392,7 +392,7 @@ imx_ddrc_sdram_size(void __iomem *ddrc, const
> > > u32
> > > addrmap[],
> > >  	}
> > >  
> > >  	/* Bus width in bytes, 0 means half byte or 4-bit mode */
> > > -	if (is_imx8)
> > > +	if (is_imx8 && !(mstr & DDRC_MSTR_LPDDR4))
> > >  		width = (1 << FIELD_GET(DDRC_MSTR_DEVICE_CONFIG, mstr))
> > > > > 1;
> > >  	else
> > >  		width = 4;
> > -- 
> > PHYTEC Messtechnik GmbH | Robert-Koch-Str. 39 | 55129 Mainz,
> > Germany
> > 
> > Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber
> > |
> > Handelsregister Mainz HRB 4656 | Finanzamt Mainz | St.Nr.
> > 266500608, DE
> > 149059855
> 
> 
-- 
PHYTEC Messtechnik GmbH | Robert-Koch-Str. 39 | 55129 Mainz, Germany

Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber |
Handelsregister Mainz HRB 4656 | Finanzamt Mainz | St.Nr. 266500608, DE
149059855


More information about the barebox mailing list