diff --git a/chipdrivers.h b/chipdrivers.h
index e3eb978..1569bf3 100644
--- a/chipdrivers.h
+++ b/chipdrivers.h
@@ -149,6 +149,7 @@
 int printlock_w39v080fa_dual(struct flashctx *flash);
 int unlock_w39v040fb(struct flashctx *flash);
 int unlock_w39v080fa(struct flashctx *flash);
+int printlock_at49f(struct flashctx *flash);
 
 /* w29ee011.c */
 int probe_w29ee011(struct flashctx *flash);
diff --git a/flashchips.c b/flashchips.c
index 6d997be..09daa0a 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -2226,30 +2226,6 @@
 
 	{
 		.vendor		= "Atmel",
-		.name		= "AT49F020",
-		.bustype	= BUS_PARALLEL,
-		.manufacture_id	= ATMEL_ID,
-		.model_id	= ATMEL_AT49F020,
-		.total_size	= 256,
-		.page_size	= 256,
-		.feature_bits	= FEATURE_EITHER_RESET,
-		.tested		= TEST_OK_PRE,
-		.probe		= probe_jedec,
-		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
-		.block_erasers	=
-		{
-			{
-				.eraseblocks = { {256 * 1024, 1} },
-				.block_erase = erase_chip_block_jedec,
-			}
-		},
-		.write		= write_jedec_1,
-		.read		= read_memmapped,
-		.voltage	= {4500, 5500},
-	},
-
-	{
-		.vendor		= "Atmel",
 		.name		= "AT49F002(N)",
 		.bustype	= BUS_PARALLEL,
 		.manufacture_id	= ATMEL_ID,
@@ -2314,6 +2290,68 @@
 
 	{
 		.vendor		= "Atmel",
+		.name		= "AT49F020",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= ATMEL_ID,
+		.model_id	= ATMEL_AT49F020,
+		.total_size	= 256,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_OK_PRE,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {256 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			}
+			/* Chip features an optional permanent write protection
+			 * of the first 8 kB. The erase function is the same as
+			 * above, but 00000H to 01FFFH will not be erased.
+			 * FIXME: add another eraser when partial erasers are
+			 * supported.
+			 */
+		},
+		.printlock	= printlock_at49f,
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
+	},
+
+	{
+		.vendor		= "Atmel",
+		.name		= "AT49F040",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= ATMEL_ID,
+		.model_id	= ATMEL_AT49F040,
+		.total_size	= 512,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,  /* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			}
+			/* Chip features an optional permanent write protection
+			 * of the first 16 kB. The erase function is the same as
+			 * above, but 00000H to 03FFFH will not be erased.
+			 * FIXME: add another eraser when partial erasers are
+			 * supported.
+			 */
+		},
+		.printlock	= printlock_at49f,
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
+	},
+
+	{
+		.vendor		= "Atmel",
 		.name		= "AT49LH002",
 		.bustype	= BUS_LPC | BUS_FWH, /* A/A Mux */
 		.manufacture_id	= ATMEL_ID,
diff --git a/flashchips.h b/flashchips.h
index d6cf757..29bd5be 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -184,10 +184,11 @@
 #define ATMEL_AT45DB642		/* No ID available */
 #define ATMEL_AT45DB642D	0x2800
 #define ATMEL_AT49BV512		0x03
-#define ATMEL_AT49F020		0x0B
 #define ATMEL_AT49F002N		0x07	/* for AT49F002(N)  */
-#define ATMEL_AT49F002NT		0x08	/* for AT49F002(N)T */
 #define ATMEL_AT49LH002		0xE9
+#define ATMEL_AT49F002NT	0x08	/* for AT49F002(N)T */
+#define ATMEL_AT49F020		0x0B
+#define ATMEL_AT49F040		0x13
 
 /* Bright Microelectronics has the same manufacturer ID as Hyundai... */
 #define BRIGHT_ID		0xAD	/* Bright Microelectronics */
diff --git a/w39.c b/w39.c
index e6dc8de..5f0c347 100644
--- a/w39.c
+++ b/w39.c
@@ -278,3 +278,11 @@
 
 	return 0;
 }
+
+int printlock_at49f(struct flashctx *flash)
+{
+	uint8_t lock = w39_idmode_readb(flash, 0x00002);
+	msg_cdbg("Hardware bootblock lockout is %sactive.\n",
+		 (lock & 0x01) ? "" : "not ");
+	return 0;
+}
