From 26b237ee18cf3f846313d85dcb80fb42041c3529 Mon Sep 17 00:00:00 2001 From: Li-Ta Lo Date: Thu, 18 Mar 2004 19:40:07 +0000 Subject: fixed 32bit v.s. 64bit long int arithematics git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1434 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/flash_and_burn/flash_rom.c | 5 ++--- util/flash_and_burn/sst28sf040.c | 2 +- util/flash_and_burn/sst39sf020.c | 40 ++++++---------------------------------- util/flash_and_burn/sst49lf040.c | 4 +++- util/flash_and_burn/udelay.c | 3 --- util/flash_and_burn/w49f002u.c | 3 ++- 6 files changed, 14 insertions(+), 43 deletions(-) (limited to 'util') diff --git a/util/flash_and_burn/flash_rom.c b/util/flash_and_burn/flash_rom.c index b8ffeb0696..13bb182a50 100644 --- a/util/flash_and_burn/flash_rom.c +++ b/util/flash_and_burn/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/util/flash_and_burn/sst28sf040.c b/util/flash_and_burn/sst28sf040.c index ee49f79786..c63f5fa5ba 100644 --- a/util/flash_and_burn/sst28sf040.c +++ b/util/flash_and_burn/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/util/flash_and_burn/sst39sf020.c b/util/flash_and_burn/sst39sf020.c index fa35276e94..3d23adfa29 100644 --- a/util/flash_and_burn/sst39sf020.c +++ b/util/flash_and_burn/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/util/flash_and_burn/sst49lf040.c b/util/flash_and_burn/sst49lf040.c index 5f2503d2ce..9f754857aa 100644 --- a/util/flash_and_burn/sst49lf040.c +++ b/util/flash_and_burn/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 @@ -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); diff --git a/util/flash_and_burn/udelay.c b/util/flash_and_burn/udelay.c index a6597e50e8..ad2fb4e3c5 100644 --- a/util/flash_and_burn/udelay.c +++ b/util/flash_and_burn/udelay.c @@ -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; diff --git a/util/flash_and_burn/w49f002u.c b/util/flash_and_burn/w49f002u.c index 4d5d16b653..28a94abaf8 100644 --- a/util/flash_and_burn/w49f002u.c +++ b/util/flash_and_burn/w49f002u.c @@ -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: "); -- cgit v1.2.3