[coreboot] [RFC] flashrom: drop 82802ab.c or sharplhf00l04.c

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Mar 13 13:22:40 CET 2008


On 13.03.2008 02:39, Peter Stuge wrote:
> On Thu, Mar 13, 2008 at 12:49:49AM +0100, Carl-Daniel Hailfinger wrote:
>   
>> flashrom/82802ab.c and flashrom/sharplhf00l04.c are basically
>> identical except for function names and pretty status printing.
>> Can we please drop one of them?
>>     
>
> Fine with me.
>   
Drop 82802ab.c as it is identical to sharplhf00l04.c.
82802ab.c removal is done with "svn rm".

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>


Index: flashrom-fwh/82802ab.c
===================================================================
--- flashrom-fwh/82802ab.c	(Revision 3125)
+++ flashrom-fwh/82802ab.c	(Arbeitskopie)
@@ -1,186 +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
- */
-
-/*
- * Datasheet:
- *  - Name: Intel 82802AB/82802AC Firmware Hub (FWH)
- *  - URL: http://www.intel.com/design/chipsets/datashts/290658.htm
- *  - PDF: http://download.intel.com/design/chipsets/datashts/29065804.pdf
- *  - Order number: 290658-004
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include "flash.h"
-
-// I need that Berkeley bit-map printer
-void print_82802ab_status(uint8_t status)
-{
-	printf("%s", status & 0x80 ? "Ready:" : "Busy:");
-	printf("%s", status & 0x40 ? "BE SUSPEND:" : "BE RUN/FINISH:");
-	printf("%s", status & 0x20 ? "BE ERROR:" : "BE OK:");
-	printf("%s", status & 0x10 ? "PROG ERR:" : "PROG OK:");
-	printf("%s", status & 0x8 ? "VP ERR:" : "VPP OK:");
-	printf("%s", status & 0x4 ? "PROG SUSPEND:" : "PROG RUN/FINISH:");
-	printf("%s", status & 0x2 ? "WP|TBL#|WP#,ABORT:" : "UNLOCK:");
-}
-
-int probe_82802ab(struct flashchip *flash)
-{
-	volatile uint8_t *bios = flash->virtual_memory;
-	uint8_t id1, id2;
-
-#if 0
-	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
-	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
-	*(volatile uint8_t *)(bios + 0x5555) = 0x90;
-#endif
-
-	*bios = 0xff;
-	myusec_delay(10);
-	*bios = 0x90;
-	myusec_delay(10);
-
-	id1 = *(volatile uint8_t *)bios;
-	id2 = *(volatile uint8_t *)(bios + 0x01);
-
-	/* Leave ID mode */
-	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
-	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
-	*(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 0;
-
-	map_flash_registers(flash);
-
-	return 1;
-}
-
-uint8_t wait_82802ab(volatile uint8_t *bios)
-{
-	uint8_t status;
-	uint8_t id1, id2;
-
-	*bios = 0x70;
-	if ((*bios & 0x80) == 0) {	// it's busy
-		while ((*bios & 0x80) == 0) ;
-	}
-
-	status = *bios;
-
-	// put another command to get out of status register mode
-
-	*bios = 0x90;
-	myusec_delay(10);
-
-	id1 = *(volatile uint8_t *)bios;
-	id2 = *(volatile uint8_t *)(bios + 0x01);
-
-	// this is needed to jam it out of "read id" mode
-	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
-	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
-	*(volatile uint8_t *)(bios + 0x5555) = 0xF0;
-
-	return status;
-}
-
-int erase_82802ab_block(struct flashchip *flash, int offset)
-{
-	volatile uint8_t *bios = flash->virtual_memory + offset;
-	volatile uint8_t *wrprotect = flash->virtual_registers + offset + 2;
-	uint8_t status;
-
-	// clear status register
-	*bios = 0x50;
-	//printf("Erase at %p\n", bios);
-	// clear write protect
-	//printf("write protect is at %p\n", (wrprotect));
-	//printf("write protect is 0x%x\n", *(wrprotect));
-	*(wrprotect) = 0;
-	//printf("write protect is 0x%x\n", *(wrprotect));
-
-	// now start it
-	*(volatile uint8_t *)(bios) = 0x20;
-	*(volatile uint8_t *)(bios) = 0xd0;
-	myusec_delay(10);
-	// now let's see what the register is
-	status = wait_82802ab(flash->virtual_memory);
-	//print_82802ab_status(status);
-	printf("DONE BLOCK 0x%x\n", offset);
-
-	return 0;
-}
-
-int erase_82802ab(struct flashchip *flash)
-{
-	int i;
-	unsigned int total_size = flash->total_size * 1024;
-
-	printf("total_size is %d; flash->page_size is %d\n",
-	       total_size, flash->page_size);
-	for (i = 0; i < total_size; i += flash->page_size)
-		erase_82802ab_block(flash, i);
-	printf("DONE ERASE\n");
-
-	return 0;
-}
-
-void write_page_82802ab(volatile uint8_t *bios, uint8_t *src,
-			volatile uint8_t *dst, int page_size)
-{
-	int i;
-
-	for (i = 0; i < page_size; i++) {
-		/* transfer data from source to destination */
-		*dst = 0x40;
-		*dst++ = *src++;
-		wait_82802ab(bios);
-	}
-}
-
-int write_82802ab(struct flashchip *flash, uint8_t *buf)
-{
-	int i;
-	int total_size = flash->total_size * 1024;
-	int page_size = flash->page_size;
-	volatile uint8_t *bios = flash->virtual_memory;
-
-	erase_82802ab(flash);
-	if (*bios != 0xff) {
-		printf("ERASE FAILED\n");
-		return -1;
-	}
-	printf("Programming page: ");
-	for (i = 0; i < total_size / page_size; i++) {
-		printf("%04d at address: 0x%08x", i, i * page_size);
-		write_page_82802ab(bios, buf + i * page_size,
-				   bios + i * page_size, 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");
-	}
-	printf("\n");
-	protect_jedec(bios);
-
-	return 0;
-}
Index: flashrom-fwh/Makefile
===================================================================
--- flashrom-fwh/Makefile	(Revision 3125)
+++ flashrom-fwh/Makefile	(Arbeitskopie)
@@ -22,7 +22,7 @@
 
 OBJS = chipset_enable.o board_enable.o udelay.o jedec.o sst28sf040.o \
 	am29f040b.o mx29f002.o sst39sf020.o m29f400bt.o w49f002u.o \
-	82802ab.o msys_doc.o pm49fl004.o sst49lf040.o sst49lfxxxc.o \
+	msys_doc.o pm49fl004.o sst49lf040.o sst49lfxxxc.o \
 	sst_fwhub.o layout.o cbtable.o flashchips.o flashrom.o \
 	sharplhf00l04.o w29ee011.o spi.o
 
Index: flashrom-fwh/flashchips.c
===================================================================
--- flashrom-fwh/flashchips.c	(Revision 3125)
+++ flashrom-fwh/flashchips.c	(Arbeitskopie)
@@ -192,10 +192,10 @@
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
 	{"M25P128",	ST_ID,		ST_M25P128,	16384,	256,
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
-	{"82802ab",	137,		173,		512, 64 * 1024,
-	 probe_82802ab, erase_82802ab,	write_82802ab},
-	{"82802ac",	137,		172,		1024, 64 * 1024,
-	 probe_82802ab, erase_82802ab,	write_82802ab},
+	{"82802ab",	INTEL_ID,	173,		512, 64 * 1024,
+	 probe_lhf00l04, erase_lhf00l04,	write_lhf00l04},
+	{"82802ac",	INTEL_ID,	172,		1024, 64 * 1024,
+	 probe_lhf00l04, erase_lhf00l04,	write_lhf00l04},
 	{"F49B002UA",   EMST_ID,        EMST_F49B002UA, 256, 4096,
          probe_jedec,   erase_chip_jedec, write_49f002},
 #ifndef DISABLE_DOC


-- 
http://www.hailfinger.org/





More information about the coreboot mailing list