[coreboot] [PATCH] flashrom: Use helper functions to access flash chips

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Mon May 11 23:32:49 CEST 2009


The semantic patch I used in r418 to make the original conversion to
accessor functions was missing one isomorphism:
a[b] <=> *(a+b)

The semantic patcher Coccinelle was used to create this patch. Semantic
patch follows:
@@
typedef uint8_t;
expression a;
volatile uint8_t *b;
@@
- b[a]
+ *(b + a)
@@
expression a;
volatile uint8_t *b;
@@
- *(b) = (a);
+ chip_writeb(a, b);
@@
volatile uint8_t *b;
@@
- *(b)
+ chip_readb(b)
@@
type T;
T b;
@@
(
 chip_readb
|
 chip_writeb
)
 (...,
- (T)
- (b)
+ b
 )

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

Index: flashrom-inband_chipaccess_helper_functions/jedec.c
===================================================================
--- flashrom-inband_chipaccess_helper_functions/jedec.c	(Revision 496)
+++ flashrom-inband_chipaccess_helper_functions/jedec.c	(Arbeitskopie)
@@ -331,8 +331,8 @@
 	erase_chip_jedec(flash);
 	// dumb check if erase was successful.
 	for (i = 0; i < total_size; i++) {
-		if (bios[i] != (uint8_t) 0xff) {
-			printf("ERASE FAILED @%d, val %02x!\n", i, bios[i]);
+		if (chip_readb(bios + i) != (uint8_t) 0xff) {
+			printf("ERASE FAILED @%d, val %02x!\n", i, chip_readb(bios + i));
 			return -1;
 		}
 	}
Index: flashrom-inband_chipaccess_helper_functions/w39v040c.c
===================================================================
--- flashrom-inband_chipaccess_helper_functions/w39v040c.c	(Revision 496)
+++ flashrom-inband_chipaccess_helper_functions/w39v040c.c	(Arbeitskopie)
@@ -67,8 +67,8 @@
 		erase_sector_jedec(flash->virtual_memory, i);
 
 	for (i = 0; i < total_size; i++)
-		if (0xff != bios[i]) {
-			printf("ERASE FAILED at 0x%08x!  Expected=0xff, Read=0x%02x\n", i, bios[i]);
+		if (0xff != chip_readb(bios + i)) {
+			printf("ERASE FAILED at 0x%08x!  Expected=0xff, Read=0x%02x\n", i, chip_readb(bios + i));
 			return -1;
 		}
 
Index: flashrom-inband_chipaccess_helper_functions/sst_fwhub.c
===================================================================
--- flashrom-inband_chipaccess_helper_functions/sst_fwhub.c	(Revision 496)
+++ flashrom-inband_chipaccess_helper_functions/sst_fwhub.c	(Arbeitskopie)
@@ -122,7 +122,7 @@
 
 	// dumb check if erase was successful.
 	for (i = 0; i < total_size; i++) {
-		if (bios[i] != 0xff) {
+		if (chip_readb(bios + i) != 0xff) {
 			printf("ERASE FAILED!\n");
 			return -1;
 		}
Index: flashrom-inband_chipaccess_helper_functions/w39v080fa.c
===================================================================
--- flashrom-inband_chipaccess_helper_functions/w39v080fa.c	(Revision 496)
+++ flashrom-inband_chipaccess_helper_functions/w39v080fa.c	(Arbeitskopie)
@@ -180,8 +180,8 @@
 	printf("\n");
 
 	for (i = 0; i < total_size; i++) {
-		if (bios[i] != 0xff) {
-			fprintf(stderr, "Error: Flash chip erase failed at 0x%08x(0x%02x)\n", i, bios[i]);
+		if (chip_readb(bios + i) != 0xff) {
+			fprintf(stderr, "Error: Flash chip erase failed at 0x%08x(0x%02x)\n", i, chip_readb(bios + i));
 			return -1;
 		}
 	}


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

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: flashrom_inband_chipaccess_helper_functions03.diff
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20090511/230150e9/attachment.ksh>


More information about the coreboot mailing list