drivers: renesas: common: Add support for DRAM initialization on RZ/G2N SoC

Add support for initializing DRAM on RZ/G2N SoC.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Change-Id: Id09a367b92b11a5da88f2dce6887677cc935d0c0
diff --git a/drivers/renesas/common/ddr/ddr_b/boot_init_dram.c b/drivers/renesas/common/ddr/ddr_b/boot_init_dram.c
index 859c05b..aa3bc24 100644
--- a/drivers/renesas/common/ddr/ddr_b/boot_init_dram.c
+++ b/drivers/renesas/common/ddr/ddr_b/boot_init_dram.c
@@ -38,6 +38,7 @@
 
 #define RZ_G2M		100U
 #define RZ_G2H		101U
+#define RZ_G2N		102U
 
 #define RCAR_CUT_10	0
 #define RCAR_CUT_11	1
@@ -56,7 +57,7 @@
 static const uint32_t prr_product = PRR_PRODUCT_H3;
 #elif(RCAR_LSI == RCAR_M3 || RCAR_LSI == RZ_G2M)
 static const uint32_t prr_product = PRR_PRODUCT_M3;
-#elif(RCAR_LSI == RCAR_M3N)
+#elif(RCAR_LSI == RCAR_M3N || RCAR_LSI == RZ_G2N)
 static const uint32_t prr_product = PRR_PRODUCT_M3N;
 #elif(RCAR_LSI == RCAR_H3N || RCAR_LSI == RZ_G2H)
 static const uint32_t prr_product = PRR_PRODUCT_H3;
diff --git a/drivers/renesas/common/ddr/ddr_b/boot_init_dram_config.c b/drivers/renesas/common/ddr/ddr_b/boot_init_dram_config.c
index 9ce51cf..45b6b08 100644
--- a/drivers/renesas/common/ddr/ddr_b/boot_init_dram_config.c
+++ b/drivers/renesas/common/ddr/ddr_b/boot_init_dram_config.c
@@ -10,7 +10,7 @@
 #endif
 
 #if (RZG_SOC == 1)
-#define BOARDNUM 3
+#define BOARDNUM 4
 #else
 #define BOARDNUM 22
 #endif /* RZG_SOC == 1 */
@@ -260,7 +260,37 @@
 				  0, 0, 0, 0, 0, 0, 0, 0 }
 			}
 		}
-	}
+	},
+/* boardcnf[3] HopeRun HiHope RZ/G2N board 16Gbit/2rank/1ch */
+	{
+		0x01U,
+		0x01U,
+		0x0300U,
+		0,
+		0x0300U,
+		0x00a0U,
+		{
+			{
+				{ 0x04U, 0x04U },
+				0x00345201UL,
+				0x3201U,
+				{ 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
+				{ 0x08U, 0x08U, 0x08U, 0x08U },
+				WDQLVL_PAT,
+				{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+				{ 0, 0, 0, 0 },
+				{ 0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0 },
+				{ 0, 0, 0, 0 },
+				{ 0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0,
+				  0, 0, 0, 0, 0, 0, 0, 0 }
+			}
+		}
+	},
 };
 #else
 static const struct _boardcnf boardcnfs[BOARDNUM] = {
@@ -1926,6 +1956,9 @@
 	case PRR_PRODUCT_H3:
 		brd = 2U;
 		break;
+	case PRR_PRODUCT_M3N:
+		brd = 3U;
+		break;
 	default:
 		brd = 99U;
 	}
diff --git a/plat/renesas/common/common.mk b/plat/renesas/common/common.mk
index f68f40d..fb8fba4 100644
--- a/plat/renesas/common/common.mk
+++ b/plat/renesas/common/common.mk
@@ -35,6 +35,7 @@
 RCAR_AUTO:=99
 RZ_G2M:=100
 RZ_G2H:=101
+RZ_G2N:=102
 $(eval $(call add_define,RCAR_H3))
 $(eval $(call add_define,RCAR_M3))
 $(eval $(call add_define,RCAR_M3N))
@@ -45,6 +46,7 @@
 $(eval $(call add_define,RCAR_AUTO))
 $(eval $(call add_define,RZ_G2M))
 $(eval $(call add_define,RZ_G2H))
+$(eval $(call add_define,RZ_G2N))
 
 RCAR_CUT_10:=0
 RCAR_CUT_11:=1