summaryrefslogtreecommitdiff
path: root/drivers/ram/k3-ddrss/k3-ddrss.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ram/k3-ddrss/k3-ddrss.c')
-rw-r--r--drivers/ram/k3-ddrss/k3-ddrss.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c
index 87741d3943..322e8e86de 100644
--- a/drivers/ram/k3-ddrss/k3-ddrss.c
+++ b/drivers/ram/k3-ddrss/k3-ddrss.c
@@ -781,9 +781,13 @@ static int k3_ddrss_probe(struct udevice *dev)
if (ret)
return ret;
- if (IS_ENABLED(CONFIG_SOC_K3_AM642)) {
+ k3_ddrss_ddr_bank_base_size_calc(ddrss);
+
+ if (IS_ENABLED(CONFIG_SOC_K3_AM625) || IS_ENABLED(CONFIG_SOC_K3_AM642)) {
+ /* AM62x SIP supports only up to 512 MB SDRAM */
/* AM64x supports only up to 2 GB SDRAM */
- writel(0x000001EF, ddrss->ddrss_ss_cfg + DDRSS_V2A_CTL_REG);
+ writel((((ilog2(ddrss->ddr_ram_size) - 16) << 5) | 0xF),
+ ddrss->ddrss_ss_cfg + DDRSS_V2A_CTL_REG);
writel(0x0, ddrss->ddrss_ss_cfg + DDRSS_ECC_CTRL_REG);
}
@@ -799,8 +803,6 @@ static int k3_ddrss_probe(struct udevice *dev)
k3_lpddr4_start(ddrss);
- k3_ddrss_ddr_bank_base_size_calc(ddrss);
-
if (ddrss->ti_ecc_enabled) {
if (!ddrss->ddrss_ss_cfg) {
printf("%s: ss_cfg is required if ecc is enabled but not provided.",