[flashrom] [PATCH] Remove sharplhf00l04.c

Michael Karcher flashrom at mkarcher.dialup.fu-berlin.de
Mon Jun 20 01:13:12 CEST 2011


The currently unreferenced function in sharplhf00l04.c does a standard
FWH block protection reset (writes 0 to the protection register) and a
standard FWH block erase.

The locking blocks of the FWH block lock cover 128KB areas, and thats
the only thing page_size is used for in the functions referenced in the
LHF00L04 entry.

Finally, this adds a comment that there are non-volatile (flash memory)
lock bits for 8 sectors in the last 64KB. They are write-only and clearable
at once. Readback seems unsupported.

Signed-off-by: Michael Karcher <flashrom at mkarcher.dialup.fu-berlin.de>
---
 Makefile        |    2 +-
 flashchips.c    |    5 ++-
 sharplhf00l04.c |   58 -------------------------------------------------------
 3 files changed, 4 insertions(+), 61 deletions(-)
 delete mode 100644 sharplhf00l04.c

diff --git a/Makefile b/Makefile
index 6e6e2de..470d944 100644
--- a/Makefile
+++ b/Makefile
@@ -119,7 +119,7 @@ endif
 
 CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \
 	sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
-	sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o sharplhf00l04.o \
+	sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o \
 	a25.o at25.o
 
 LIB_OBJS = layout.o
diff --git a/flashchips.c b/flashchips.c
index 865ba2f..4514985 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -5151,7 +5151,7 @@ const struct flashchip flashchips[] = {
 		.manufacture_id	= SHARP_ID,
 		.model_id	= SHARP_LHF00L04,
 		.total_size	= 1024,
-		.page_size	= 64 * 1024,
+		.page_size	= 128 * 1024,
 		.feature_bits	= FEATURE_EITHER_RESET | FEATURE_REGISTERMAP,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_82802ab,
@@ -5171,7 +5171,8 @@ const struct flashchip flashchips[] = {
 				.block_erase = NULL, /* 30 D0, only in A/A mux mode */
 			},
 		},
-		.unlock		= unlock_82802ab,
+		.unlock		= unlock_82802ab, /* additionally, there are write-only non-volatile
+		                                     boot block protection bits per 8K sector*/
 		.write		= write_82802ab,
 		.read		= read_memmapped,
 		.voltage	= {3000, 3600},
diff --git a/sharplhf00l04.c b/sharplhf00l04.c
deleted file mode 100644
index f21950a..0000000
--- a/sharplhf00l04.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * This file is part of the flashrom project.
- *
- * Copyright (C) 2000 Silicon Integrated System Corporation
- *
- * 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"
-#include "chipdrivers.h"
-
-/* FIXME: The datasheet is unclear whether we should use toggle_ready_jedec
- * or wait_82802ab.
- * FIXME: This file is unused.
- */
-
-int erase_lhf00l04_block(struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen)
-{
-	chipaddr bios = flash->virtual_memory + blockaddr;
-	chipaddr wrprotect = flash->virtual_registers + blockaddr + 2;
-	uint8_t status;
-
-	// clear status register
-	chip_writeb(0x50, bios);
-	status = wait_82802ab(flash);
-	print_status_82802ab(status);
-	// clear write protect
-	msg_cspew("write protect is at 0x%lx\n", (wrprotect));
-	msg_cspew("write protect is 0x%x\n", chip_readb(wrprotect));
-	chip_writeb(0, wrprotect);
-	msg_cspew("write protect is 0x%x\n", chip_readb(wrprotect));
-
-	// now start it
-	chip_writeb(0x20, bios);
-	chip_writeb(0xd0, bios);
-	programmer_delay(10);
-	// now let's see what the register is
-	status = wait_82802ab(flash);
-	print_status_82802ab(status);
-
-	if (check_erased_range(flash, blockaddr, blocklen)) {
-		msg_cerr("ERASE FAILED!\n");
-		return -1;
-	}
-	return 0;
-}
-- 
1.7.5.3





More information about the flashrom mailing list