Message ID | 20200111193639.19022-6-mrjoel@lixil.net |
---|---|
State | New |
Headers | show |
Series | [01/10] arm: mvebu: fix SerDes table alignment | expand |
Hi Joel, On Sat, Jan 11 2020, Joel Johnson wrote: > While 1GB SOM parts are much more common, provide a build config > option for supporting parts with 2GB. > > Signed-off-by: Joel Johnson <mrjoel at lixil.net> > --- > > board/solidrun/clearfog/Kconfig | 6 ++++++ > board/solidrun/clearfog/clearfog.c | 8 ++++++++ > 2 files changed, 14 insertions(+) > > diff --git a/board/solidrun/clearfog/Kconfig b/board/solidrun/clearfog/Kconfig > index 53f01daf7a..fd880ee591 100644 > --- a/board/solidrun/clearfog/Kconfig > +++ b/board/solidrun/clearfog/Kconfig > @@ -31,4 +31,10 @@ config CLEARFOG_SFP_25GB > SGMII connection (requires a supporting SFP). By default, transfer speed > of 1.25 Gbps is used, suitable for a more common 1 Gbps SFP module. > > +config CLEARFOG_2GB_SOM > + bool "Configure for a SOM with 2GB RAM" > + help > + Enable support for the 2GB RAM SOM variant. If this option is not > + enabled then the more common 1GB version will be used. > + > endmenu > diff --git a/board/solidrun/clearfog/clearfog.c b/board/solidrun/clearfog/clearfog.c > index 247785ac56..38f411b942 100644 > --- a/board/solidrun/clearfog/clearfog.c > +++ b/board/solidrun/clearfog/clearfog.c > @@ -67,11 +67,19 @@ static struct mv_ddr_topology_map board_topology_map = { > DEBUG_LEVEL_ERROR, > 0x1, /* active interfaces */ > /* cs_mask, mirror, dqs_swap, ck_swap X PUPs */ > +#if defined (CONFIG_CLEARFOG_2GB_SOM) > + { { { {0x3, 0, 0, 0}, > + {0x3, 0, 0, 0}, > + {0x3, 0, 0, 0}, > + {0x3, 0, 0, 0}, > + {0x3, 0, 0, 0} }, That can only work for 2GB SOMs with twin-die RAM configuration. SOMs with single-die RAM need MV_DDR_DIE_CAP_8GBIT in the mem_size field instead. See board/kobol/helios4/helios4.c. See also https://patchwork.ozlabs.org/patch/1200332/ You should also adjust the ODT configuration to assert M_ODT[0] of both chip-selects, since only M_ODT[0] is connected on the A388 SOM. See the comment I added to the cherry-picked commit log in https://github.com/SolidRun/u-boot/commit/ab15b2d5b6ee50c106628dc0aa5943747a5dd772 Wrong ODT configuration might cause memory corruption in high RAM traffic load. I have a patch adding support for per-board ODT configuration. I have not posted it yet to the list. baruch > +#else > { { { {0x1, 0, 0, 0}, > {0x1, 0, 0, 0}, > {0x1, 0, 0, 0}, > {0x1, 0, 0, 0}, > {0x1, 0, 0, 0} }, > +#endif > SPEED_BIN_DDR_1600K, /* speed_bin */ > MV_DDR_DEV_WIDTH_16BIT, /* memory_width */ > MV_DDR_DIE_CAP_4GBIT, /* mem_size */ -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
On 2020-01-12 03:33, Baruch Siach wrote: > Hi Joel, > > On Sat, Jan 11 2020, Joel Johnson wrote: >> While 1GB SOM parts are much more common, provide a build config >> option for supporting parts with 2GB. >> >> Signed-off-by: Joel Johnson <mrjoel at lixil.net> >> --- >> >> board/solidrun/clearfog/Kconfig | 6 ++++++ >> board/solidrun/clearfog/clearfog.c | 8 ++++++++ >> 2 files changed, 14 insertions(+) >> >> diff --git a/board/solidrun/clearfog/Kconfig >> b/board/solidrun/clearfog/Kconfig >> index 53f01daf7a..fd880ee591 100644 >> --- a/board/solidrun/clearfog/Kconfig >> +++ b/board/solidrun/clearfog/Kconfig >> @@ -31,4 +31,10 @@ config CLEARFOG_SFP_25GB >> SGMII connection (requires a supporting SFP). By default, transfer >> speed >> of 1.25 Gbps is used, suitable for a more common 1 Gbps SFP module. >> >> +config CLEARFOG_2GB_SOM >> + bool "Configure for a SOM with 2GB RAM" >> + help >> + Enable support for the 2GB RAM SOM variant. If this option is not >> + enabled then the more common 1GB version will be used. >> + >> endmenu >> diff --git a/board/solidrun/clearfog/clearfog.c >> b/board/solidrun/clearfog/clearfog.c >> index 247785ac56..38f411b942 100644 >> --- a/board/solidrun/clearfog/clearfog.c >> +++ b/board/solidrun/clearfog/clearfog.c >> @@ -67,11 +67,19 @@ static struct mv_ddr_topology_map >> board_topology_map = { >> DEBUG_LEVEL_ERROR, >> 0x1, /* active interfaces */ >> /* cs_mask, mirror, dqs_swap, ck_swap X PUPs */ >> +#if defined (CONFIG_CLEARFOG_2GB_SOM) >> + { { { {0x3, 0, 0, 0}, >> + {0x3, 0, 0, 0}, >> + {0x3, 0, 0, 0}, >> + {0x3, 0, 0, 0}, >> + {0x3, 0, 0, 0} }, > > That can only work for 2GB SOMs with twin-die RAM configuration. SOMs > with single-die RAM need MV_DDR_DIE_CAP_8GBIT in the mem_size field > instead. See board/kobol/helios4/helios4.c. See also > > https://patchwork.ozlabs.org/patch/1200332/ That seems to only target the newer EEPROM TLV units which I don't believe I have (still pending final checking). As with the other patch, an option for manual predefinition at build time will still be needed as an alternate path. > You should also adjust the ODT configuration to assert M_ODT[0] of both > chip-selects, since only M_ODT[0] is connected on the A388 SOM. See the > comment I added to the cherry-picked commit log in > > > https://github.com/SolidRun/u-boot/commit/ab15b2d5b6ee50c106628dc0aa5943747a5dd772 > > Wrong ODT configuration might cause memory corruption in high RAM > traffic load. > > I have a patch adding support for per-board ODT configuration. I have > not posted it yet to the list. Sounds promising, any planned timeframe for readiness and posting of that patch? I may just remove this patch from this series pending the per-board ODT config ability. Joel
Hi Joel, On Sun, Jan 12 2020, Joel Johnson wrote: > On 2020-01-12 03:33, Baruch Siach wrote: >> On Sat, Jan 11 2020, Joel Johnson wrote: >>> While 1GB SOM parts are much more common, provide a build config >>> option for supporting parts with 2GB. >>> >>> Signed-off-by: Joel Johnson <mrjoel at lixil.net> >>> --- >>> >>> board/solidrun/clearfog/Kconfig | 6 ++++++ >>> board/solidrun/clearfog/clearfog.c | 8 ++++++++ >>> 2 files changed, 14 insertions(+) >>> >>> diff --git a/board/solidrun/clearfog/Kconfig >>> b/board/solidrun/clearfog/Kconfig >>> index 53f01daf7a..fd880ee591 100644 >>> --- a/board/solidrun/clearfog/Kconfig >>> +++ b/board/solidrun/clearfog/Kconfig >>> @@ -31,4 +31,10 @@ config CLEARFOG_SFP_25GB >>> SGMII connection (requires a supporting SFP). By default, transfer >>> speed >>> of 1.25 Gbps is used, suitable for a more common 1 Gbps SFP module. >>> >>> +config CLEARFOG_2GB_SOM >>> + bool "Configure for a SOM with 2GB RAM" >>> + help >>> + Enable support for the 2GB RAM SOM variant. If this option is not >>> + enabled then the more common 1GB version will be used. >>> + >>> endmenu >>> diff --git a/board/solidrun/clearfog/clearfog.c >>> b/board/solidrun/clearfog/clearfog.c >>> index 247785ac56..38f411b942 100644 >>> --- a/board/solidrun/clearfog/clearfog.c >>> +++ b/board/solidrun/clearfog/clearfog.c >>> @@ -67,11 +67,19 @@ static struct mv_ddr_topology_map board_topology_map = >>> { >>> DEBUG_LEVEL_ERROR, >>> 0x1, /* active interfaces */ >>> /* cs_mask, mirror, dqs_swap, ck_swap X PUPs */ >>> +#if defined (CONFIG_CLEARFOG_2GB_SOM) >>> + { { { {0x3, 0, 0, 0}, >>> + {0x3, 0, 0, 0}, >>> + {0x3, 0, 0, 0}, >>> + {0x3, 0, 0, 0}, >>> + {0x3, 0, 0, 0} }, >> >> That can only work for 2GB SOMs with twin-die RAM configuration. SOMs >> with single-die RAM need MV_DDR_DIE_CAP_8GBIT in the mem_size field >> instead. See board/kobol/helios4/helios4.c. See also >> >> https://patchwork.ozlabs.org/patch/1200332/ > > That seems to only target the newer EEPROM TLV units which I don't believe I > have (still pending final checking). As with the other patch, an option for > manual predefinition at build time will still be needed as an alternate path. In linking to this patch I only meant to demonstrate MV_DDR_DIE_CAP_8GBIT. A388 SOMs of rev 2.0 have no EEPROM. >> You should also adjust the ODT configuration to assert M_ODT[0] of both >> chip-selects, since only M_ODT[0] is connected on the A388 SOM. See the >> comment I added to the cherry-picked commit log in >> >> >> https://github.com/SolidRun/u-boot/commit/ab15b2d5b6ee50c106628dc0aa5943747a5dd772 >> >> Wrong ODT configuration might cause memory corruption in high RAM >> traffic load. >> >> I have a patch adding support for per-board ODT configuration. I have >> not posted it yet to the list. > > Sounds promising, any planned timeframe for readiness and posting of that > patch? I plan to post patches adding support for twin-die SOMs once the previous series is merged. > I may just remove this patch from this series pending the per-board ODT > config ability. You need this patch (or equivalent) for twin-die SOMs regardless of per-board ODT. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
diff --git a/board/solidrun/clearfog/Kconfig b/board/solidrun/clearfog/Kconfig index 53f01daf7a..fd880ee591 100644 --- a/board/solidrun/clearfog/Kconfig +++ b/board/solidrun/clearfog/Kconfig @@ -31,4 +31,10 @@ config CLEARFOG_SFP_25GB SGMII connection (requires a supporting SFP). By default, transfer speed of 1.25 Gbps is used, suitable for a more common 1 Gbps SFP module. +config CLEARFOG_2GB_SOM + bool "Configure for a SOM with 2GB RAM" + help + Enable support for the 2GB RAM SOM variant. If this option is not + enabled then the more common 1GB version will be used. + endmenu diff --git a/board/solidrun/clearfog/clearfog.c b/board/solidrun/clearfog/clearfog.c index 247785ac56..38f411b942 100644 --- a/board/solidrun/clearfog/clearfog.c +++ b/board/solidrun/clearfog/clearfog.c @@ -67,11 +67,19 @@ static struct mv_ddr_topology_map board_topology_map = { DEBUG_LEVEL_ERROR, 0x1, /* active interfaces */ /* cs_mask, mirror, dqs_swap, ck_swap X PUPs */ +#if defined (CONFIG_CLEARFOG_2GB_SOM) + { { { {0x3, 0, 0, 0}, + {0x3, 0, 0, 0}, + {0x3, 0, 0, 0}, + {0x3, 0, 0, 0}, + {0x3, 0, 0, 0} }, +#else { { { {0x1, 0, 0, 0}, {0x1, 0, 0, 0}, {0x1, 0, 0, 0}, {0x1, 0, 0, 0}, {0x1, 0, 0, 0} }, +#endif SPEED_BIN_DDR_1600K, /* speed_bin */ MV_DDR_DEV_WIDTH_16BIT, /* memory_width */ MV_DDR_DIE_CAP_4GBIT, /* mem_size */
While 1GB SOM parts are much more common, provide a build config option for supporting parts with 2GB. Signed-off-by: Joel Johnson <mrjoel at lixil.net> --- board/solidrun/clearfog/Kconfig | 6 ++++++ board/solidrun/clearfog/clearfog.c | 8 ++++++++ 2 files changed, 14 insertions(+)