diff --git a/src/flash/cfi.c b/src/flash/cfi.c
index 58011095803c99dc6fe2bf4c391bc49e8ba4e1fa..3a1e9f1a1928deb677b166472a37ef074cb1eb1b 100644
--- a/src/flash/cfi.c
+++ b/src/flash/cfi.c
@@ -96,6 +96,7 @@ cfi_fixup_t cfi_jedec_fixups[] = {
 	{CFI_MFR_FUJITSU, 0x226b, cfi_fixup_non_cfi, NULL},
 	{CFI_MFR_AMIC, 0xb31a, cfi_fixup_non_cfi, NULL},
 	{CFI_MFR_MX, 0x225b, cfi_fixup_non_cfi, NULL},
+	{CFI_MFR_AMD, 0x225b, cfi_fixup_non_cfi, NULL},
 	{0, 0, NULL, NULL}
 };
 
@@ -110,6 +111,7 @@ cfi_fixup_t cfi_0002_fixups[] = {
 	{CFI_MFR_FUJITSU, 0x226b, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
 	{CFI_MFR_AMIC, 0xb31a, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
 	{CFI_MFR_MX, 0x225b, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
+	{CFI_MFR_AMD, 0x225b, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
 	{CFI_MFR_ANY, CFI_ID_ANY, cfi_fixup_0002_erase_regions, NULL},
 	{0, 0, NULL, NULL}
 };
diff --git a/src/flash/non_cfi.c b/src/flash/non_cfi.c
index 7b4ae3afdbda53169b562f06a1d9596bd86fff9d..632ae7e97c68874c981a2222e486532f2cac2c6c 100644
--- a/src/flash/non_cfi.c
+++ b/src/flash/non_cfi.c
@@ -220,6 +220,23 @@ non_cfi_t non_cfi_flashes[] = {
 			0x00000000
 		}
 	},
+	{
+		.mfr = CFI_MFR_AMD,
+		.id = 0x225b,				/* S29AL008D */
+		.pri_id = 0x02,
+		.dev_size = 0x14,			/* 2^20 = 1MB */
+		.interface_desc = 0x2,		/* x8 or x16 device with nBYTE */
+		.max_buf_write_size = 0x0,
+		.num_erase_regions = 4,
+		.erase_region_info =
+		{
+                        0x00400000,             /* 1x 16KB */
+                        0x00200001,             /* 2x 8KB */
+                        0x00800000,             /* 1x 32KB */
+                        0x0100000e,             /* 15x 64KB */
+			0x00000000
+		}
+	},
 	{
 		.mfr = 0,
 		.id = 0,