Hana: Update memory supporting list

Update new DRAM: hynix_lpddr3_h9ccnnnbjtalar_nud, micron_mt52l256m32d1pf &
micron_mt52l512m32d2pf

BUG=chrome-os-partner:60341
TEST=Manually test
     1. cros_workon-hana start mosys
     2. emerge-hana mosys
     3. cros deploy ${DUT_IP} mosys
     3. mosys memory spd print all

Change-Id: I6c952a118fabfc12219a04f9ed554c60fd28ec6d
Signed-off-by: Milton Chiang <milton.chiang@mediatek.com>
Reviewed-on: https://chromium-review.googlesource.com/414693
Reviewed-by: Philip Chen <philipchen@chromium.org>
diff --git a/include/lib/nonspd.h b/include/lib/nonspd.h
index 2945558..0ae2200 100644
--- a/include/lib/nonspd.h
+++ b/include/lib/nonspd.h
@@ -110,11 +110,14 @@
 extern const struct nonspd_mem_info hynix_ddr3l_h5tc4g63afr_pba;
 extern const struct nonspd_mem_info hynix_ddr3l_h5tc4g63cfr_pba;
 extern const struct nonspd_mem_info hynix_lpddr3_h9ccnnn8gtmlar_nud;
+extern const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbjtalar_nud;
 extern const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbjtmlar_nud;
 extern const struct nonspd_mem_info hynix_ddr3l_h5tc8g63amr_pba;
 extern const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbptblbr_nud;
 extern const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbltblar_nud;
 extern const struct nonspd_mem_info micron_mt41k256m16ha;
+extern const struct nonspd_mem_info micron_mt52l256m32d1pf;
+extern const struct nonspd_mem_info micron_mt52l512m32d2pf;
 extern const struct nonspd_mem_info nanya_ddr3l_nt5cc256m16dp_di;
 extern const struct nonspd_mem_info samsung_k4b4g1646d;
 extern const struct nonspd_mem_info samsung_k4b4g1646e;
diff --git a/lib/spd/nonspd_modules.c b/lib/spd/nonspd_modules.c
index 647be07..4b7036a 100644
--- a/lib/spd/nonspd_modules.c
+++ b/lib/spd/nonspd_modules.c
@@ -135,6 +135,23 @@
                   'A', 'R', '-', 'N', 'U', 'D',},
 };
 
+const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbjtalar_nud = {
+        .dram_type              = SPD_DRAM_TYPE_LPDDR3,
+        .module_type.ddr3_type  = DDR3_MODULE_TYPE_SO_DIMM,
+
+        .module_size_mbits      = 16384,
+        .num_ranks              = 2,
+        .device_width           = 32,
+        .ddr_freq               = { DDR_333, DDR_400, DDR_533, DDR_667, DDR_800 },
+
+        .module_mfg_id          = { .msb = 0xad, .lsb = 0x80 },
+        .dram_mfg_id            = { .msb = 0xad, .lsb = 0x80 },
+
+        .part_num               =
+                { 'H', '9', 'C', 'C', 'N', 'N', 'N', 'B', 'J', 'T', 'A', 'L',
+                  'A', 'R', '-', 'N', 'U', 'D',},
+};
+
 const struct nonspd_mem_info hynix_lpddr3_h9ccnnnbjtmlar_nud = {
         .dram_type              = SPD_DRAM_TYPE_LPDDR3,
         .module_type.ddr3_type  = DDR3_MODULE_TYPE_SO_DIMM,
@@ -252,6 +269,42 @@
 				    '1', '6', 'H', 'A', '-', '1', '2', '5' },
 };
 
+const struct nonspd_mem_info micron_mt52l256m32d1pf = {
+	.dram_type		= SPD_DRAM_TYPE_DDR3,
+	.module_type.ddr3_type	= DDR3_MODULE_TYPE_UNDEFINED,
+
+	.module_size_mbits	= 8192,
+	.num_ranks		= 1,
+	.device_width		= 32,
+	.ddr_freq 		= { DDR_800, DDR_933, DDR_1067 },
+
+	.module_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+	.dram_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+
+	.serial_num 		= { 0, 0, 0, 0 },
+	.part_num		= { 'M', 'T', '5', '2', 'L', '2', '5', '6', 'M',
+				    '3', '2', 'D', '1', 'P', 'F', '-', '0', '9',
+				    '3', 'W', 'T', ':', 'B' },
+};
+
+const struct nonspd_mem_info micron_mt52l512m32d2pf = {
+	.dram_type		= SPD_DRAM_TYPE_DDR3,
+	.module_type.ddr3_type	= DDR3_MODULE_TYPE_UNDEFINED,
+
+	.module_size_mbits	= 16384,
+	.num_ranks		= 2,
+	.device_width		= 32,
+	.ddr_freq 		= { DDR_800, DDR_933, DDR_1067 },
+
+	.module_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+	.dram_mfg_id		= { .msb = 0x2c, .lsb = 0x00 },
+
+	.serial_num 		= { 0, 0, 0, 0 },
+	.part_num		= { 'M', 'T', '5', '2', 'L', '5', '1', '2', 'M',
+				    '3', '2', 'D', '2', 'P', 'F', '-', '0', '9',
+				    '3', 'W', 'T', ':', 'B' },
+};
+
 const struct nonspd_mem_info nanya_ddr3l_nt5cc256m16dp_di = {
 	.dram_type		= SPD_DRAM_TYPE_DDR3,
 	.module_type.ddr3_type	= DDR3_MODULE_TYPE_UNDEFINED,
@@ -565,6 +618,7 @@
 	&hynix_ddr3l_h5tc4g63afr_pba,
 	&hynix_ddr3l_h5tc4g63cfr_pba,
 	&hynix_lpddr3_h9ccnnn8gtmlar_nud,
+	&hynix_lpddr3_h9ccnnnbjtalar_nud,
 	&hynix_lpddr3_h9ccnnnbjtmlar_nud,
 	&hynix_ddr3l_h5tc8g63amr_pba,
 	&hynix_lpddr3_h9ccnnnbptblbr_nud,
@@ -574,6 +628,8 @@
 	&micron_lpddr4_mt53b256m32d1np,
 	&micron_lpddr4_mt53b512m32d2np,
 	&micron_mt41k256m16ha,
+	&micron_mt52l256m32d1pf,
+	&micron_mt52l512m32d2pf,
 	&nanya_ddr3l_nt5cc256m16dp_di,
 	&samsung_k4b4g1646d,
 	&samsung_k4b4g1646e,
diff --git a/platform/google/oak/memory.c b/platform/google/oak/memory.c
index 5d4eaf5..57dd1b4 100644
--- a/platform/google/oak/memory.c
+++ b/platform/google/oak/memory.c
@@ -41,10 +41,14 @@
 
 enum oak_memory_config {
 	HYNIX_DDR3_H9CCNNN8GTMLAR_NUD_1G,
+	HYNIX_DDR3_H9CCNNNBJTALAR_NUD_2G,
 	HYNIX_DDR3_H9CCNNNBLTBLAR_NUD_2G,
-	SAMSUNG_DDR3_K4E8E304EE_EGCE_1G,
-	SAMSUNG_DDR3_K4E6E304EE_EGCE_2G,
+	MICRON_DDR3_MT52L256M32D1PF_107WTB_1G,
+	MICRON_DDR3_MT52L512M32D2PF_107WTB_2G,
 	SAMSUNG_DDR3_K4E6E304EB_EGCF_2G,
+	SAMSUNG_DDR3_K4E6E304EE_EGCE_2G,
+	SAMSUNG_DDR3_K4E8E304EE_EGCE_1G,
+	SAMSUNG_DDR3_K4E8E324EB_EGCF_1G,
 	MEM_UNKNOWN,
 };
 
@@ -68,6 +72,15 @@
 		return HYNIX_DDR3_H9CCNNNBLTBLAR_NUD_2G;
 	case 4:
 		return SAMSUNG_DDR3_K4E6E304EB_EGCF_2G;
+	case 5:
+		return SAMSUNG_DDR3_K4E8E324EB_EGCF_1G;
+	case 6:
+		return MICRON_DDR3_MT52L512M32D2PF_107WTB_2G;
+	case 7:
+		return HYNIX_DDR3_H9CCNNNBJTALAR_NUD_2G;
+	case 8:
+		return MICRON_DDR3_MT52L256M32D1PF_107WTB_1G;
+
 	default:
 		lprintf(LOG_ERR, "Unable to determine memory configuration\n");
 	}
@@ -95,17 +108,29 @@
 	case HYNIX_DDR3_H9CCNNN8GTMLAR_NUD_1G:
 		*info = &hynix_lpddr3_h9ccnnn8gtmlar_nud;
 		break;
+	case HYNIX_DDR3_H9CCNNNBJTALAR_NUD_2G:
+		*info = &hynix_lpddr3_h9ccnnnbjtalar_nud;
+		break;
 	case HYNIX_DDR3_H9CCNNNBLTBLAR_NUD_2G:
 		*info = &hynix_lpddr3_h9ccnnnbltblar_nud;
 		break;
-	case SAMSUNG_DDR3_K4E8E304EE_EGCE_1G:
-		*info = &samsung_lpddr3_k4e8e304ee_egce;
+	case MICRON_DDR3_MT52L256M32D1PF_107WTB_1G:
+		*info = &micron_mt52l256m32d1pf;
+		break;
+	case MICRON_DDR3_MT52L512M32D2PF_107WTB_2G:
+		*info = &micron_mt52l512m32d2pf;
+		break;
+	case SAMSUNG_DDR3_K4E6E304EB_EGCF_2G:
+		*info = &samsung_lpddr3_k4e6e304eb_egcf;
 		break;
 	case SAMSUNG_DDR3_K4E6E304EE_EGCE_2G:
 		*info = &samsung_lpddr3_k4e6e304ee_egce;
 		break;
-	case SAMSUNG_DDR3_K4E6E304EB_EGCF_2G:
-		*info = &samsung_lpddr3_k4e6e304eb_egcf;
+	case SAMSUNG_DDR3_K4E8E304EE_EGCE_1G:
+		*info = &samsung_lpddr3_k4e8e304ee_egce;
+		break;
+	case SAMSUNG_DDR3_K4E8E324EB_EGCF_1G:
+		*info = &samsung_lpddr3_k4e8e324eb_egcf;
 		break;
 	default:
 		return -1;