flapjack: Add memeory micron_lpddr4x_mt53e1g32d4nq_046wte

Add Memory micron_lpddr4x_mt53e1g32d4nq_046wte

BUG=b:121465302
TEST=emerge-flapjack mosys; mosys -vvv memory spd print all

Change-Id: Id052e6a1fe21d67790cb5975e6149a60fcb7d1d8
Reviewed-on: https://chromium-review.googlesource.com/1486952
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Kaka Ni <nigang@huaqin.corp-partner.google.com>
Reviewed-by: YH Lin <yueherngl@chromium.org>
diff --git a/include/lib/nonspd.h b/include/lib/nonspd.h
index bea4d02..c53e31b 100644
--- a/include/lib/nonspd.h
+++ b/include/lib/nonspd.h
@@ -124,6 +124,7 @@
 extern const struct nonspd_mem_info micron_lpddr3_mt52l256m32d1pf_107wtb;
 extern const struct nonspd_mem_info micron_lpddr3_mt52l256m64d2pp_107wtb;
 extern const struct nonspd_mem_info micron_lpddr3_mt52l512m32d2pf_107wtb;
+extern const struct nonspd_mem_info micron_lpddr4x_mt53e1g32d4nq_046wte;
 extern const struct nonspd_mem_info nanya_ddr3l_nt5cc256m16dp_di;
 extern const struct nonspd_mem_info nanya_ddr3l_nt5cc256m16er_ek;
 extern const struct nonspd_mem_info samsung_k4b4g1646d;
diff --git a/lib/spd/nonspd_modules.c b/lib/spd/nonspd_modules.c
index d95c27c..e5e5146 100644
--- a/lib/spd/nonspd_modules.c
+++ b/lib/spd/nonspd_modules.c
@@ -715,6 +715,22 @@
 		  '2', 'N', 'P'},
 };
 
+const struct nonspd_mem_info micron_lpddr4x_mt53e1g32d4nq_046wte = {
+	.dram_type		= SPD_DRAM_TYPE_LPDDR4X,
+
+	.module_size_mbits	= 32768,
+	.num_ranks		= 2,
+	.device_width		= 32,
+	.ddr_freq		= { DDR_800, DDR_1400, DDR_1600 },
+
+	.module_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+	.dram_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+
+	.part_num		=
+		{ 'M', 'T', '5', '3', 'E', '1', 'G', '3', '2', 'D', '4', 'N',
+		  'Q', '-', '4', '6', 'W', 'T', ':', 'E'},
+};
+
 const struct nonspd_mem_info samsung_lpddr4_k3uh5h50mm_agcj = {
 	.dram_type		= SPD_DRAM_TYPE_LPDDR4,
 
@@ -825,6 +841,7 @@
 	&micron_lpddr4_mt53b256m32d1np,
 	&micron_lpddr4_mt53b512m32d2np,
 	&micron_lpddr4_mt53e512m32d2np,
+	&micron_lpddr4x_mt53e1g32d4nq_046wte,
 	&micron_mt41k256m16ha,
 	&micron_mt52l256m32d1pf,
 	&micron_mt52l512m32d2pf,
diff --git a/platform/oak/memory.c b/platform/oak/memory.c
index ed9cb5f..80b2af5 100644
--- a/platform/oak/memory.c
+++ b/platform/oak/memory.c
@@ -47,6 +47,7 @@
 	HYNIX_LPDDR4X_H9HCNNNCPMALHR_NEE_4G,
 	MICRON_DDR3_MT52L256M32D1PF_107WTB_1G,
 	MICRON_DDR3_MT52L512M32D2PF_107WTB_2G,
+	MICRON_LPDDR4X_MT53E1G32D4NQ_046WTE_4G,
 	SAMSUNG_DDR3_K4E6E304EB_EGCF_2G,
 	SAMSUNG_DDR3_K4E6E304EE_EGCE_2G,
 	SAMSUNG_DDR3_K4E8E304EE_EGCE_1G,
@@ -102,6 +103,8 @@
 	switch (ram_code) {
 	case 1:
 		return HYNIX_LPDDR4X_H9HCNNNCPMALHR_NEE_4G;
+	case 2:
+		return MICRON_LPDDR4X_MT53E1G32D4NQ_046WTE_4G;
 	default:
 		lprintf(LOG_ERR, "Not implemented\n");
 	}
@@ -166,6 +169,9 @@
 	case HYNIX_LPDDR4X_H9HCNNNCPMALHR_NEE_4G:
 		*info = &hynix_lpddr4x_h9hcnnncpmalhr_nee;
 		break;
+	case MICRON_LPDDR4X_MT53E1G32D4NQ_046WTE_4G:
+		*info = &micron_lpddr4x_mt53e1g32d4nq_046wte;
+		break;
 	default:
 		return -1;
 	}