*** empty log message ***
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1852 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
883b8793c9
commit
3678ad8e38
|
@ -66,7 +66,7 @@ struct flashchip flashchips[] = {
|
||||||
{"SST39VF020", SST_ID, SST_39VF020, NULL, 256, 4096,
|
{"SST39VF020", SST_ID, SST_39VF020, NULL, 256, 4096,
|
||||||
probe_jedec, erase_chip_jedec, write_39sf020,NULL},
|
probe_jedec, erase_chip_jedec, write_39sf020,NULL},
|
||||||
{"SST49LF040", SST_ID, SST_49LF040, NULL, 512, 4096,
|
{"SST49LF040", SST_ID, SST_49LF040, NULL, 512, 4096,
|
||||||
probe_jedec, erase_chip_jedec, write_49lf040,NULL},
|
probe_jedec, erase_49lf040, write_49lf040,NULL},
|
||||||
{"SST49LF080A", SST_ID, SST_49LF080A, NULL, 1024, 4096,
|
{"SST49LF080A", SST_ID, SST_49LF080A, NULL, 1024, 4096,
|
||||||
probe_jedec, erase_chip_jedec, write_49lf040,NULL},
|
probe_jedec, erase_chip_jedec, write_49lf040,NULL},
|
||||||
{"SST49LF002A/B", SST_ID, SST_49LF002A, NULL, 256, 16 * 1024,
|
{"SST49LF002A/B", SST_ID, SST_49LF002A, NULL, 256, 16 * 1024,
|
||||||
|
|
|
@ -30,6 +30,21 @@
|
||||||
#include "jedec.h"
|
#include "jedec.h"
|
||||||
#include "sst49lf040.h"
|
#include "sst49lf040.h"
|
||||||
|
|
||||||
|
int erase_49lf040(struct flashchip *flash)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int total_size = flash->total_size * 1024;
|
||||||
|
int page_size = flash->page_size;
|
||||||
|
volatile char *bios = flash->virt_addr;
|
||||||
|
|
||||||
|
for (i = 0; i < total_size / page_size; i++) {
|
||||||
|
/* Chip erase only works in parallel programming mode
|
||||||
|
* for the 49lf040. Use sector-erase instead */
|
||||||
|
erase_sector_jedec(bios, i * page_size);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int write_49lf040(struct flashchip *flash, unsigned char *buf)
|
int write_49lf040(struct flashchip *flash, unsigned char *buf)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -40,8 +55,8 @@ int write_49lf040(struct flashchip *flash, unsigned char *buf)
|
||||||
printf("Programming Page: ");
|
printf("Programming Page: ");
|
||||||
for (i = 0; i < total_size / page_size; i++) {
|
for (i = 0; i < total_size / page_size; i++) {
|
||||||
/* erase the page before programming
|
/* erase the page before programming
|
||||||
* Chip erase only works in parallel programming mode for the 49lf040.
|
* Chip erase only works in parallel programming mode
|
||||||
* Use sector-erase instead */
|
* for the 49lf040. Use sector-erase instead */
|
||||||
erase_sector_jedec(bios, i * page_size);
|
erase_sector_jedec(bios, i * page_size);
|
||||||
|
|
||||||
/* write to the sector */
|
/* write to the sector */
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#ifndef __SST49LF040_H__
|
#ifndef __SST49LF040_H__
|
||||||
#define __SST49LF040_H__ 1
|
#define __SST49LF040_H__ 1
|
||||||
|
|
||||||
|
extern int erase_49lf040(struct flashchip *flash);
|
||||||
extern int write_49lf040(struct flashchip *flash, unsigned char *buf);
|
extern int write_49lf040(struct flashchip *flash, unsigned char *buf);
|
||||||
|
|
||||||
#endif /* !__SST49LF040_H__ */
|
#endif /* !__SST49LF040_H__ */
|
||||||
|
|
Loading…
Reference in New Issue