diff --git a/plat/renesas/rcar/bl2_plat_setup.c b/plat/renesas/rcar/bl2_plat_setup.c
index b286539..75b9b90 100644
--- a/plat/renesas/rcar/bl2_plat_setup.c
+++ b/plat/renesas/rcar/bl2_plat_setup.c
@@ -300,55 +300,80 @@
 	return &bl2_tzram_layout;
 }
 
+static void bl2_advertise_dram_entries(uint64_t dram_config[8])
+{
+	uint64_t start, size;
+	int chan;
+
+	for (chan = 0; chan < 4; chan++) {
+		start = dram_config[2 * chan];
+		size = dram_config[2 * chan + 1];
+		if (!size)
+			continue;
+
+		NOTICE("BL2: CH%d: %llx - %llx, %lld GiB\n",
+			chan, start, start + size - 1, size >> 30);
+	}
+}
+
 static void bl2_advertise_dram_size(uint32_t product)
 {
+	uint64_t dram_config[8] = {
+		[0] = 0x400000000ULL,
+		[2] = 0x500000000ULL,
+		[4] = 0x600000000ULL,
+		[6] = 0x700000000ULL,
+	};
+
 	switch (product) {
 	case RCAR_PRODUCT_H3:
 #if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
 		/* 4GB(1GBx4) */
-		NOTICE("BL2: CH0: 0x400000000 - 0x43fffffff, 1 GiB\n");
-		NOTICE("BL2: CH1: 0x500000000 - 0x53fffffff, 1 GiB\n");
-		NOTICE("BL2: CH2: 0x600000000 - 0x63fffffff, 1 GiB\n");
-		NOTICE("BL2: CH3: 0x700000000 - 0x73fffffff, 1 GiB\n");
+		dram_config[1] = 0x40000000ULL;
+		dram_config[3] = 0x40000000ULL;
+		dram_config[5] = 0x40000000ULL;
+		dram_config[7] = 0x40000000ULL;
 #elif (RCAR_DRAM_LPDDR4_MEMCONF == 1) && \
       (RCAR_DRAM_CHANNEL        == 5) && \
       (RCAR_DRAM_SPLIT          == 2)
 		/* 4GB(2GBx2 2ch split) */
-		NOTICE("BL2: CH0: 0x400000000 - 0x47fffffff, 2 GiB\n");
-		NOTICE("BL2: CH1: 0x500000000 - 0x57fffffff, 2 GiB\n");
+		dram_config[1] = 0x80000000ULL;
+		dram_config[3] = 0x80000000ULL;
 #elif (RCAR_DRAM_LPDDR4_MEMCONF == 1) && (RCAR_DRAM_CHANNEL == 15)
 		/* 8GB(2GBx4: default) */
-		NOTICE("BL2: CH0: 0x400000000 - 0x47fffffff, 2 GiB\n");
-		NOTICE("BL2: CH1: 0x500000000 - 0x57fffffff, 2 GiB\n");
-		NOTICE("BL2: CH2: 0x600000000 - 0x67fffffff, 2 GiB\n");
-		NOTICE("BL2: CH3: 0x700000000 - 0x77fffffff, 2 GiB\n");
+		dram_config[1] = 0x80000000ULL;
+		dram_config[3] = 0x80000000ULL;
+		dram_config[5] = 0x80000000ULL;
+		dram_config[7] = 0x80000000ULL;
 #endif /* RCAR_DRAM_LPDDR4_MEMCONF == 0 */
 		break;
 
 	case RCAR_PRODUCT_M3:
 		/* 4GB(2GBx2 2ch split) */
-		NOTICE("BL2: CH0: 0x400000000 - 0x480000000, 2 GiB\n");
-		NOTICE("BL2: CH1: 0x600000000 - 0x680000000, 2 GiB\n");
+		dram_config[1] = 0x80000000ULL;
+		dram_config[5] = 0x80000000ULL;
 		break;
 
 	case RCAR_PRODUCT_M3N:
 		/* 2GB(1GBx2) */
-		NOTICE("BL2: 0x400000000 - 0x480000000, 2 GiB\n");
+		dram_config[1] = 0x80000000ULL;
 		break;
 
 	case RCAR_PRODUCT_E3:
 #if (RCAR_DRAM_DDR3L_MEMCONF == 0)
 		/* 1GB(512MBx2) */
-		NOTICE("BL2: 0x400000000 - 0x43fffffff, 1 GiB\n");
+		dram_config[1] = 0x40000000ULL;
 #elif (RCAR_DRAM_DDR3L_MEMCONF == 1)
 		/* 2GB(512MBx4) */
-		NOTICE("BL2: 0x400000000 - 0x47fffffff, 2 GiB\n");
+		dram_config[1] = 0x80000000ULL;
 #elif (RCAR_DRAM_DDR3L_MEMCONF == 2)
 		/* 4GB(1GBx4) */
-		NOTICE("BL2: 0x400000000 - 0x4ffffffff, 4 GiB\n");
+		dram_config[1] = 0x100000000ULL;
 #endif /* RCAR_DRAM_DDR3L_MEMCONF == 0 */
 		break;
 	}
+
+	bl2_advertise_dram_entries(dram_config);
 }
 
 void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
