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;
