From: Tim Harvey <tharvey@gateworks.com>
To: u-boot@lists.denx.de, Stefano Babic <sbabic@nabladev.com>
Cc: Fabio Estevam <festevam@gmail.com>,
"NXP i . MX U-Boot Team" <uboot-imx@nxp.com>,
Tim Harvey <tharvey@gateworks.com>
Subject: [PATCH 04/13] board: venice: fix dram bus config for GW7902/GW7903/GW7904
Date: Fri, 23 May 2025 10:20:09 -0700 [thread overview]
Message-ID: <20250523172018.4164647-4-tharvey@gateworks.com> (raw)
In-Reply-To: <20250523172018.4164647-1-tharvey@gateworks.com>
The GW7902/GW7903/GW7904 have an alternate databus layout affecting a few
of the DDRC and DDR PHY registers.
The 512MB configuration used this alternate bus layout. Change
the 512MB config to the standard bus configuration and add a generic
function to patch the DDRC/PHY configs for the alternate bus layout.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
board/gateworks/venice/lpddr4_timing_imx8mm.c | 46 +++++++++++++++++--
1 file changed, 41 insertions(+), 5 deletions(-)
diff --git a/board/gateworks/venice/lpddr4_timing_imx8mm.c b/board/gateworks/venice/lpddr4_timing_imx8mm.c
index 39e4e46490fd..956071c5125d 100644
--- a/board/gateworks/venice/lpddr4_timing_imx8mm.c
+++ b/board/gateworks/venice/lpddr4_timing_imx8mm.c
@@ -6,6 +6,7 @@
*/
#include <linux/kernel.h>
+#include <string.h>
#include <asm/arch/ddr.h>
#include <asm/arch/lpddr4_define.h>
@@ -1333,7 +1334,7 @@ static struct dram_cfg_param ddr_ddrc_cfg_512mb[] = {
{ 0x3d400304, 0x1 },
{ 0x3d400030, 0x1 },
{ 0x3d400000, 0xa1080020 },
- { 0x3d400020, 0x203 },
+ { 0x3d400020, 0x223 },
{ 0x3d400024, 0x3a980 },
{ 0x3d400064, 0x5b0062 },
{ 0x3d4000d0, 0xc00305ba },
@@ -1385,7 +1386,7 @@ static struct dram_cfg_param ddr_ddrc_cfg_512mb[] = {
{ 0x3d400498, 0x620096 },
{ 0x3d40049c, 0x1100e07 },
{ 0x3d4004a0, 0xc8012c },
- { 0x3d402020, 0x1 },
+ { 0x3d402020, 0x21 },
{ 0x3d402024, 0x7d00 },
{ 0x3d402050, 0x20d040 },
{ 0x3d402064, 0xc000d },
@@ -1410,7 +1411,7 @@ static struct dram_cfg_param ddr_ddrc_cfg_512mb[] = {
{ 0x3d402194, 0x80303 },
{ 0x3d4021b4, 0x100 },
{ 0x3d4020f4, 0xc99 },
- { 0x3d403020, 0x1 },
+ { 0x3d403020, 0x21 },
{ 0x3d403024, 0x1f40 },
{ 0x3d403050, 0x20d040 },
{ 0x3d403064, 0x30004 },
@@ -1459,9 +1460,9 @@ static struct dram_cfg_param ddr_ddrphy_cfg_512mb[] = {
{ 0x120a0, 0x0 },
{ 0x120a1, 0x1 },
{ 0x120a2, 0x3 },
- { 0x120a3, 0x4 },
+ { 0x120a3, 0x2 },
{ 0x120a4, 0x5 },
- { 0x120a5, 0x2 },
+ { 0x120a5, 0x4 },
{ 0x120a6, 0x7 },
{ 0x120a7, 0x6 },
{ 0x130a0, 0x0 },
@@ -3535,6 +3536,28 @@ static struct dram_timing_info dram_timing_2gb = {
.fsp_table = { 3000, 400, 100, },
};
+static void apply_cfg_patch(struct dram_cfg_param *cfg, int cfg_sz,
+ struct dram_cfg_param *patch, int patch_sz)
+{
+ int i, j;
+
+ for (i = 0; i < cfg_sz; i++)
+ for (j = 0; j < patch_sz; j++)
+ if (cfg[i].reg == patch[j].reg)
+ cfg[i].val = patch[j].val;
+}
+
+static struct dram_cfg_param ddr_ddrc_cfg_alt_patch[] = {
+ { 0x3d400020, 0x203},
+ { 0x3d402020, 0x1},
+ { 0x3d403020, 0x1}
+};
+
+static struct dram_cfg_param ddr_ddrphy_cfg_alt_patch[] = {
+ { 0x120a3, 0x4 },
+ { 0x120a5, 0x2 },
+};
+
struct dram_timing_info *spl_dram_init(const char *model, int sizemb)
{
struct dram_timing_info *dram_timing;
@@ -3557,5 +3580,18 @@ struct dram_timing_info *spl_dram_init(const char *model, int sizemb)
dram_timing = &dram_timing_1gb;
}
+ /* apply ddrc/phy register changes for alternate dram bus layout */
+ if (!strncmp(model, "GW7902", 6) ||
+ !strncmp(model, "GW7903", 6) ||
+ !strncmp(model, "GW7904", 6)) {
+ apply_cfg_patch(dram_timing->ddrc_cfg, dram_timing->ddrc_cfg_num,
+ ddr_ddrc_cfg_alt_patch,
+ ARRAY_SIZE(ddr_ddrc_cfg_alt_patch));
+
+ apply_cfg_patch(dram_timing->ddrphy_cfg, dram_timing->ddrphy_cfg_num,
+ ddr_ddrphy_cfg_alt_patch,
+ ARRAY_SIZE(ddr_ddrphy_cfg_alt_patch));
+ }
+
return dram_timing;
}
--
2.25.1
next prev parent reply other threads:[~2025-05-23 17:20 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-23 17:20 [PATCH 01/13] configs: imx8m*_venice: enable several commands useful for scripting Tim Harvey
2025-05-23 17:20 ` [PATCH 02/13] configs: imx8m*_venice: enable GPT support Tim Harvey
2025-05-26 8:21 ` Peng Fan
2025-05-23 17:20 ` [PATCH 03/13] board: venice: move soc-specific dram config into soc-specific files Tim Harvey
2025-05-26 8:21 ` Peng Fan
2025-05-23 17:20 ` Tim Harvey [this message]
2025-05-26 8:20 ` [PATCH 04/13] board: venice: fix dram bus config for GW7902/GW7903/GW7904 Peng Fan
2025-05-23 17:20 ` [PATCH 05/13] board: venice: fix dram size for GW7901-SP486 Tim Harvey
2025-05-26 8:20 ` Peng Fan
2025-05-23 17:20 ` [PATCH 06/13] board: venice: use baseboard model for family Tim Harvey
2025-05-26 8:20 ` Peng Fan
2025-05-23 17:20 ` [PATCH 07/13] board: venice: use SOM model for PMIC adjustment on SOM Tim Harvey
2025-05-26 8:19 ` Peng Fan
2025-05-23 17:20 ` [PATCH 08/13] board: venice: flip logic for GSC supervisor enable Tim Harvey
2025-05-26 8:19 ` Peng Fan
2025-05-23 17:20 ` [PATCH 09/13] board: venice: add imx8mp-gw82xx support Tim Harvey
2025-05-26 8:19 ` Peng Fan
2025-05-23 17:20 ` [PATCH 10/13] board: venice: add FSA support Tim Harvey
2025-05-26 8:19 ` Peng Fan
2025-05-23 17:20 ` [PATCH 11/13] board: venice: update model representation for venice-flex Tim Harvey
2025-05-26 8:18 ` Peng Fan
2025-05-23 17:20 ` [PATCH 12/13] board: venice: append configuration string to model Tim Harvey
2025-05-26 8:18 ` Peng Fan
2025-05-23 17:20 ` [PATCH 13/13] imx8mp-venice-gw74xx: add w_disable2 gpio configuration Tim Harvey
2025-05-26 8:17 ` Peng Fan
2025-05-26 8:21 ` [PATCH 01/13] configs: imx8m*_venice: enable several commands useful for scripting Peng Fan
2025-06-01 13:32 ` Fabio Estevam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250523172018.4164647-4-tharvey@gateworks.com \
--to=tharvey@gateworks.com \
--cc=festevam@gmail.com \
--cc=sbabic@nabladev.com \
--cc=u-boot@lists.denx.de \
--cc=uboot-imx@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox