diff --git a/Makefile b/Makefile
index fbae239..c6d8108 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@
 	am29f040b.o mx29f002.o sst39sf020.o m29f400bt.o w49f002u.o \
 	82802ab.o msys_doc.o pm49fl004.o sst49lf040.o sst49lfxxxc.o \
 	sst_fwhub.o layout.o lbtable.o flashchips.o flashrom.o \
-	sharplhf00l04.o
+	sharplhf00l04.o w29ee011.o
 
 all: pciutils dep $(PROGRAM)
 
diff --git a/README b/README
index 06b5803..7e44d28 100644
--- a/README
+++ b/README
@@ -150,6 +150,7 @@
 Winbond W29C011
 Winbond W29C020C
 Winbond W29C040P
+Winbond W29EE011
 Winbond W49F002U
 Winbond W49V002A
 Winbond W49V002FA
diff --git a/flash.h b/flash.h
index 850bf33..6acbb43 100644
--- a/flash.h
+++ b/flash.h
@@ -102,6 +102,7 @@
 #define W_29C011		0xC1
 #define W_29C020C		0x45
 #define W_29C040P		0x46
+#define W_29EE011		0xC1
 #define W_39V040FA		0x34
 #define W_39V040A		0x3D
 #define W_39V040B		0x54
@@ -260,6 +261,9 @@
 extern int erase_sst_fwhub(struct flashchip *flash);
 extern int write_sst_fwhub(struct flashchip *flash, uint8_t *buf);
 
+/* w29ee011.c */
+extern int probe_w29ee011(struct flashchip *flash);
+
 /* w49f002u.c */
 extern int write_49f002(struct flashchip *flash, uint8_t *buf);
 
diff --git a/flashchips.c b/flashchips.c
index 2915307..dba8774 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -86,6 +86,8 @@
 	 probe_jedec,	erase_chip_jedec, write_jedec},
 	{"W29C020C", 	WINBOND_ID, 	W_29C020C,	256, 128,
 	 probe_jedec, 	erase_chip_jedec, write_jedec},
+	{"W29EE011",	WINBOND_ID,	W_29C011,	128, 128,
+	 probe_w29ee011,erase_chip_jedec, write_jedec},
 	{"W49F002U", 	WINBOND_ID, 	W_49F002U,	256, 128,
 	 probe_jedec,	erase_chip_jedec, write_49f002},
 	{"W49V002A", 	WINBOND_ID, 	W_49V002A,	256, 128,
diff --git a/w29ee011.c b/w29ee011.c
new file mode 100644
index 0000000..88a7a8a
--- /dev/null
+++ b/w29ee011.c
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2007 Markus Boas <ryven@ryven.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#include "flash.h"
+
+int probe_w29ee011(struct flashchip *flash)
+{
+	volatile uint8_t *bios = flash->virtual_memory;
+	uint8_t id1, id2;
+
+	/* Issue JEDEC Product ID Entry command */
+	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x5555) = 0x80;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x5555) = 0x60;
+	myusec_delay(10);
+
+	/* Read product ID */
+	id1 = *(volatile uint8_t *)bios;
+	id2 = *(volatile uint8_t *)(bios + 0x01);
+
+	/* Issue JEDEC Product ID Exit command */
+	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
+	myusec_delay(10);
+	*(volatile uint8_t *)(bios + 0x5555) = 0xF0;
+	myusec_delay(10);
+
+	printf_debug("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, id1, id2);
+
+	if (id1 == flash->manufacture_id && id2 == flash->model_id)
+		return 1;
+
+	return 0;
+}
