--- flashrom/pm49fl004.c	2007-12-06 23:19:15.000000000 +0100
+++ ../flashrom/pm49fl004.c	2007-12-06 23:13:25.000000000 +0100
@@ -3,6 +3,7 @@
  *
  * Copyright (C) 2004 Tyan Corporation
  * Copyright (C) 2007 Nikolay Petukhov <nikolay.petukhov@gmail.com>
+ * Copyright (C) 2007 Reinder E.N. de Haan <lb_reha@mveas.com>
  *
  * 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
@@ -51,19 +52,32 @@
 
 int erase_49fl00x(struct flashchip *flash)
 {
+	int i;
 	int total_size = flash->total_size * 1024;
 	int page_size = flash->page_size;
-	int ret;
+	volatile uint8_t *bios = flash->virtual_memory;
 
 	/* unprotected */
 	write_lockbits_49fl00x(flash->virtual_registers, total_size, 0, page_size);
 
-	ret = erase_chip_jedec(flash);
+//	erase_chip_jedec will not work ... datasheet says "Chip erase is available in A/A Mux Mode only"
+	printf("Erasing page: ");
+	for (i = 0; i < total_size / page_size; i++) {
+		if ((i >= exclude_start_page) && (i < exclude_end_page))
+			continue;
+
+		/* erase the page */
+		erase_block_jedec(bios, i * page_size);
+		printf("%04d at address: 0x%08x", i, i * page_size);
+		printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
+		fflush(stdout);
+	}
+	printf("\n");
 
 	/* protected */
 	write_lockbits_49fl00x(flash->virtual_registers, total_size, 1, page_size);
 
-	return ret;
+	return 0;
 }
 
 int write_49fl00x(struct flashchip *flash, uint8_t *buf)
