diff options
| author | Ollie Lho <ollie@sis.com.tw> | 2004-03-18 19:40:07 +0000 | 
|---|---|---|
| committer | Ollie Lho <ollie@sis.com.tw> | 2004-03-18 19:40:07 +0000 | 
| commit | cf29de879843ec2293483eeb609191a834a4863c (patch) | |
| tree | 17ed4f4c1e385338b6470fa3d2974668d6b8b5fc | |
| parent | cec287936c8e00039f634cbfeb2cc64b457f2da0 (diff) | |
| download | flashrom-cf29de879843ec2293483eeb609191a834a4863c.tar.gz flashrom-cf29de879843ec2293483eeb609191a834a4863c.tar.bz2 flashrom-cf29de879843ec2293483eeb609191a834a4863c.zip | |
Fix 32bit vs. 64bit long int arithematics
Corresponding to flashrom svn r8 and coreboot v2 svn r1434.
| -rw-r--r-- | flash_rom.c | 5 | ||||
| -rw-r--r-- | sst28sf040.c | 2 | ||||
| -rw-r--r-- | sst39sf020.c | 40 | ||||
| -rw-r--r-- | sst49lf040.c | 4 | ||||
| -rw-r--r-- | udelay.c | 3 | ||||
| -rw-r--r-- | w49f002u.c | 3 | 
6 files changed, 14 insertions, 43 deletions
| diff --git a/flash_rom.c b/flash_rom.c index b8ffeb06..13bb182a 100644 --- a/flash_rom.c +++ b/flash_rom.c @@ -115,8 +115,7 @@ struct flashchip * probe_flash(struct flashchip * flash)  			       flash->total_size * 1024, (unsigned long)size);  		}  		bios = mmap (0, size, PROT_WRITE | PROT_READ, MAP_SHARED, -			     //fd_mem, (off_t) (0x100000000-size)); -			     fd_mem, (off_t) (0xffffffff-size+1)); +			     fd_mem, (off_t) (0xffffffff - size + 1));  		if (bios == MAP_FAILED) {  			perror("Error MMAP /dev/mem");  			exit(1); @@ -126,7 +125,7 @@ struct flashchip * probe_flash(struct flashchip * flash)  		if (flash->probe(flash) == 1) {  			printf ("%s found at physical address: 0x%lx\n", -				flash->name, (0 - size)); +				flash->name, (0xffffffff - size + 1));  			return flash;  		}  		munmap ((void *) bios, size); diff --git a/sst28sf040.c b/sst28sf040.c index ee49f797..c63f5fa5 100644 --- a/sst28sf040.c +++ b/sst28sf040.c @@ -31,7 +31,7 @@  #define AUTO_PG_ERASE1		0x20  #define AUTO_PG_ERASE2		0xD0 -#define AUTO_PGRM			0x10 +#define AUTO_PGRM		0x10  #define CHIP_ERASE		0x30  #define RESET			0xFF  #define READ_ID			0x90 diff --git a/sst39sf020.c b/sst39sf020.c index fa35276e..3d23adfa 100644 --- a/sst39sf020.c +++ b/sst39sf020.c @@ -22,6 +22,8 @@   * Reference:   *	4 MEgabit (512K x 8) SuperFlash EEPROM, SST28SF040 data sheet   * + * ToDo: Consilidated to standard JEDEC code. + *   * $Id$   */ @@ -37,34 +39,6 @@  #define RESET			0xFF  #define READ_ID			0x90 -static __inline__ void protect_39sf020 (volatile char * bios) -{ -	/* ask compiler not to optimize this */ -	volatile unsigned char tmp; - -	tmp = *(volatile unsigned char *) (bios + 0x1823); -	tmp = *(volatile unsigned char *) (bios + 0x1820); -	tmp = *(volatile unsigned char *) (bios + 0x1822); -	tmp = *(volatile unsigned char *) (bios + 0x0418); -	tmp = *(volatile unsigned char *) (bios + 0x041B); -	tmp = *(volatile unsigned char *) (bios + 0x0419); -	tmp = *(volatile unsigned char *) (bios + 0x040A); -} - -static __inline__ void unprotect_39sf020 (volatile char * bios) -{ -	/* ask compiler not to optimize this */ -	volatile unsigned char tmp; - -	tmp = *(volatile unsigned char *) (bios + 0x1823); -	tmp = *(volatile unsigned char *) (bios + 0x1820); -	tmp = *(volatile unsigned char *) (bios + 0x1822); -	tmp = *(volatile unsigned char *) (bios + 0x0418); -	tmp = *(volatile unsigned char *) (bios + 0x041B); -	tmp = *(volatile unsigned char *) (bios + 0x0419); -	tmp = *(volatile unsigned char *) (bios + 0x041A); -} -  static __inline__ int erase_sector_39sf020 (volatile char * bios, unsigned long address)  {  	*bios = AUTO_PG_ERASE1; @@ -77,9 +51,9 @@ static __inline__ int erase_sector_39sf020 (volatile char * bios, unsigned long  }  static __inline__ int write_sector_39sf020(volatile char * bios,  -				       unsigned char * src, -				       volatile unsigned char * dst,  -				       unsigned int page_size) +					   unsigned char * src, +					   volatile unsigned char * dst,  +					   unsigned int page_size)  {  	int i;  	volatile char *Temp; @@ -177,8 +151,8 @@ int write_39sf020 (struct flashchip * flash, unsigned char * buf)  	int total_size = flash->total_size * 1024, page_size = flash->page_size;  	volatile char * bios = flash->virt_addr; -//	unprotect_39sf020 (bios);  	erase_39sf020(flash); +  	printf ("Programming Page: ");  	for (i = 0; i < total_size/page_size; i++) {  		/* erase the page before programming */ @@ -193,7 +167,5 @@ int write_39sf020 (struct flashchip * flash, unsigned char * buf)  	}  	printf("\n"); -//	protect_39sf020 (bios); -  	return(0);  } diff --git a/sst49lf040.c b/sst49lf040.c index 5f2503d2..9f754857 100644 --- a/sst49lf040.c +++ b/sst49lf040.c @@ -21,6 +21,8 @@   * Reference:   *      4 MEgabit (512K x 8) SuperFlash EEPROM, SST49lF040 data sheet   * + * ToDo: Consilidated to standard JEDEC code. + *   * $Id$   */  #include <stdio.h> @@ -59,7 +61,7 @@ static int erase_sector_49lf040 (volatile char * bios, unsigned int page)  	myusec_delay(10);          Temp  = bios + page; /* set up address to be the current sector */          *Temp = 0x30;       /* write data 0x30 to the address       */ -	myusec_delay(25000); +	myusec_delay(50000);  	/* wait for Toggle bit ready         */  	toggle_ready_jedec(bios); @@ -17,17 +17,14 @@ void myusec_calibrate_delay()  	unsigned long timeusec;  	struct timeval start, end;  	int ok = 0; -	void myusec_delay(int time);  	printf("Setting up microsecond timing loop\n");  	while (!ok) { -		//fprintf(stderr, "Try %d\n", count);  		gettimeofday(&start, 0);  		myusec_delay(count);  		gettimeofday(&end, 0);  		timeusec = 1000000 * (end.tv_sec - start.tv_sec ) +   			(end.tv_usec - start.tv_usec); -		//fprintf(stderr, "timeusec is %d\n", timeusec);  		count *= 2;  		if (timeusec < 1000000/4)  			continue; @@ -22,6 +22,8 @@   * Reference:   *	W49F002U data sheet   * + * ToDo: Consilidated to standard JEDEC code. + *   * $Id$   */ @@ -80,7 +82,6 @@ int write_49f002 (struct flashchip * flash, unsigned char * buf)  	volatile char * bios = flash->virt_addr;  	volatile char * dst = bios; -	myusec_delay(10);  	erase_49f002(flash);  	printf ("Programming Page: "); | 
