summaryrefslogtreecommitdiffstats
path: root/sst_fwhub.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-05-16 21:22:56 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-05-16 21:22:56 +0000
commit5820f42ef209cfa0d4070fa9be96c9c91123a93f (patch)
treea505b6f813fc4f7601f77e7195e479dfddc73571 /sst_fwhub.c
parent4059598a068f7694f2238a3811d85cbfa520a8d5 (diff)
downloadflashrom-5820f42ef209cfa0d4070fa9be96c9c91123a93f.tar.gz
flashrom-5820f42ef209cfa0d4070fa9be96c9c91123a93f.tar.bz2
flashrom-5820f42ef209cfa0d4070fa9be96c9c91123a93f.zip
Introduce a type "chipaddr" to abstract the offsets within flash regions
Use chipaddr instead of volatile uint8_t * because when we access chips in external flashers, they are not accessed via pointers at all. Benefits: This allows us to differentiate between volatile machine memory accesses and flash chip accesses. It also enforces usage of chip_{read,write}[bwl] to access flash chips, so nobody will unintentionally use pointers to access chips anymore. Some unneeded casts are removed as well. Grepping for chip operations and machine memory operations doesn't yield any false positives anymore. Compile tested on 32 bit and 64 bit Linux. Corresponding to flashrom svn r519. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
Diffstat (limited to 'sst_fwhub.c')
-rw-r--r--sst_fwhub.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sst_fwhub.c b/sst_fwhub.c
index 3b74a9509..6abff0cf8 100644
--- a/sst_fwhub.c
+++ b/sst_fwhub.c
@@ -37,7 +37,7 @@ void print_sst_fwhub_status(uint8_t status)
int check_sst_fwhub_block_lock(struct flashchip *flash, int offset)
{
- volatile uint8_t *registers = flash->virtual_registers;
+ chipaddr registers = flash->virtual_registers;
uint8_t blockstatus;
blockstatus = chip_readb(registers + offset + 2);
@@ -63,7 +63,7 @@ int check_sst_fwhub_block_lock(struct flashchip *flash, int offset)
int clear_sst_fwhub_block_lock(struct flashchip *flash, int offset)
{
- volatile uint8_t *registers = flash->virtual_registers;
+ chipaddr registers = flash->virtual_registers;
uint8_t blockstatus;
blockstatus = check_sst_fwhub_block_lock(flash, offset);
@@ -115,7 +115,7 @@ int erase_sst_fwhub(struct flashchip *flash)
{
int i;
unsigned int total_size = flash->total_size * 1024;
- volatile uint8_t *bios = flash->virtual_memory;
+ chipaddr bios = flash->virtual_memory;
for (i = 0; i < total_size; i += flash->page_size)
erase_sst_fwhub_block(flash, i);
@@ -136,7 +136,7 @@ int write_sst_fwhub(struct flashchip *flash, uint8_t *buf)
int i;
int total_size = flash->total_size * 1024;
int page_size = flash->page_size;
- volatile uint8_t *bios = flash->virtual_memory;
+ chipaddr bios = flash->virtual_memory;
uint8_t blockstatus;
// FIXME: We want block wide erase instead of ironing the whole chip