summaryrefslogtreecommitdiffstats
path: root/pm49fl004.c
diff options
context:
space:
mode:
authorOllie Lho <ollie@sis.com.tw>2004-12-08 20:10:01 +0000
committerOllie Lho <ollie@sis.com.tw>2004-12-08 20:10:01 +0000
commitefa28589b1c2c402e62c8d5b1e32e5e45b164c2d (patch)
tree745e579906240cfce9f3f6bca9b1d5e63630289e /pm49fl004.c
parent1b8b66000f6c8f18193cd93fff1e852faaa9715f (diff)
downloadast2050-flashrom-efa28589b1c2c402e62c8d5b1e32e5e45b164c2d.zip
ast2050-flashrom-efa28589b1c2c402e62c8d5b1e32e5e45b164c2d.tar.gz
Add -E option for chip erase, remove duplicated code
Corresponding to flashrom svn r30 and coreboot v2 svn r1815.
Diffstat (limited to 'pm49fl004.c')
-rw-r--r--pm49fl004.c34
1 files changed, 2 insertions, 32 deletions
diff --git a/pm49fl004.c b/pm49fl004.c
index a3f42fa..afcd55a 100644
--- a/pm49fl004.c
+++ b/pm49fl004.c
@@ -27,43 +27,13 @@
#include "jedec.h"
#include "pm49fl004.h"
-static __inline__ int erase_block_49fl004(volatile unsigned char *bios,
- unsigned long address)
-{
- volatile unsigned char *Temp;
-
- Temp = bios + 0x5555; /* set up address to be C000:5555h */
- *Temp = 0xAA; /* write data 0xAA to the address */
- myusec_delay(10);
- Temp = bios + 0x2AAA; /* set up address to be C000:2AAAh */
- *Temp = 0x55; /* write data 0x55 to the address */
- myusec_delay(10);
- Temp = bios + 0x5555; /* set up address to be C000:5555h */
- *Temp = 0x80; /* write data 0x80 to the address */
- myusec_delay(10);
- Temp = bios + 0x5555; /* set up address to be C000:5555h */
- *Temp = 0xAA; /* write data 0xAA to the address */
- myusec_delay(10);
- Temp = bios + 0x2AAA; /* set up address to be C000:2AAAh */
- *Temp = 0x55; /* write data 0x55 to the address */
- myusec_delay(10);
- Temp = bios + address; /* set up address to be C000:5555h */
- *Temp = 0x50; /* write data 0x50 to the address */
-
- /* wait for Toggle bit ready */
- toggle_ready_jedec(bios);
-
- return (0);
-}
-
-
extern int exclude_start_page, exclude_end_page;
int write_49fl004(struct flashchip *flash, unsigned char *buf)
{
int i;
int total_size = flash->total_size * 1024, page_size =
- flash->page_size;
+ flash->page_size;
volatile char *bios = flash->virt_addr;
printf("Programming Page: ");
@@ -72,7 +42,7 @@ int write_49fl004(struct flashchip *flash, unsigned char *buf)
continue;
/* erase the page before programming */
- erase_block_49fl004(bios, i * page_size);
+ erase_block_jedec(bios, i * page_size);
/* write to the sector */
printf("%04d at address: 0x%08x", i, i * page_size);
OpenPOWER on IntegriCloud