Changeset 1473
- Timestamp:
- 12/14/11 23:25:15 (5 months ago)
- Location:
- trunk
- Files:
-
- 29 edited
-
82802ab.c (modified) (7 diffs)
-
a25.c (modified) (4 diffs)
-
at25.c (modified) (11 diffs)
-
chipdrivers.h (modified) (3 diffs)
-
cli_classic.c (modified) (2 diffs)
-
dediprog.c (modified) (3 diffs)
-
dummyflasher.c (modified) (2 diffs)
-
flash.h (modified) (6 diffs)
-
flashrom.c (modified) (19 diffs)
-
ichspi.c (modified) (4 diffs)
-
it87spi.c (modified) (4 diffs)
-
jedec.c (modified) (15 diffs)
-
layout.c (modified) (1 diff)
-
linux_spi.c (modified) (3 diffs)
-
m29f400bt.c (modified) (5 diffs)
-
opaque.c (modified) (4 diffs)
-
pm49fl00x.c (modified) (2 diffs)
-
programmer.h (modified) (5 diffs)
-
serprog.c (modified) (2 diffs)
-
sharplhf00l04.c (modified) (1 diff)
-
spi.c (modified) (4 diffs)
-
spi25.c (modified) (22 diffs)
-
sst28sf040.c (modified) (6 diffs)
-
sst49lfxxxc.c (modified) (3 diffs)
-
sst_fwhub.c (modified) (4 diffs)
-
stm50flw0x0x.c (modified) (3 diffs)
-
w29ee011.c (modified) (1 diff)
-
w39.c (modified) (16 diffs)
-
wbsio_spi.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/82802ab.c
r1470 r1473 41 41 } 42 42 43 int probe_82802ab(struct flashc hip*flash)43 int probe_82802ab(struct flashctx *flash) 44 44 { 45 45 chipaddr bios = flash->virtual_memory; … … 90 90 } 91 91 92 uint8_t wait_82802ab(struct flashc hip*flash)92 uint8_t wait_82802ab(struct flashctx *flash) 93 93 { 94 94 uint8_t status; … … 108 108 } 109 109 110 int unlock_82802ab(struct flashc hip*flash)110 int unlock_82802ab(struct flashctx *flash) 111 111 { 112 112 int i; … … 119 119 } 120 120 121 int erase_block_82802ab(struct flashc hip*flash, unsigned int page,121 int erase_block_82802ab(struct flashctx *flash, unsigned int page, 122 122 unsigned int pagesize) 123 123 { … … 142 142 143 143 /* chunksize is 1 */ 144 int write_82802ab(struct flashc hip*flash, uint8_t *src, unsigned int start, unsigned int len)144 int write_82802ab(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 145 145 { 146 146 int i; … … 158 158 } 159 159 160 int unlock_28f004s5(struct flashc hip*flash)160 int unlock_28f004s5(struct flashctx *flash) 161 161 { 162 162 chipaddr bios = flash->virtual_memory; … … 210 210 } 211 211 212 int unlock_lh28f008bjt(struct flashc hip*flash)212 int unlock_lh28f008bjt(struct flashctx *flash) 213 213 { 214 214 chipaddr bios = flash->virtual_memory; -
trunk/a25.c
r1399 r1473 30 30 } 31 31 32 int spi_prettyprint_status_register_amic_a25l05p(struct flashc hip*flash)32 int spi_prettyprint_status_register_amic_a25l05p(struct flashctx *flash) 33 33 { 34 34 uint8_t status; … … 46 46 } 47 47 48 int spi_prettyprint_status_register_amic_a25l40p(struct flashc hip*flash)48 int spi_prettyprint_status_register_amic_a25l40p(struct flashctx *flash) 49 49 { 50 50 uint8_t status; … … 61 61 } 62 62 63 int spi_prettyprint_status_register_amic_a25l032(struct flashc hip*flash)63 int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash) 64 64 { 65 65 uint8_t status; … … 79 79 } 80 80 81 int spi_prettyprint_status_register_amic_a25lq032(struct flashc hip*flash)81 int spi_prettyprint_status_register_amic_a25lq032(struct flashctx *flash) 82 82 { 83 83 uint8_t status; -
trunk/at25.c
r1316 r1473 58 58 } 59 59 60 int spi_prettyprint_status_register_at25df(struct flashc hip*flash)60 int spi_prettyprint_status_register_at25df(struct flashctx *flash) 61 61 { 62 62 uint8_t status; … … 73 73 } 74 74 75 int spi_prettyprint_status_register_at25df_sec(struct flashc hip*flash)75 int spi_prettyprint_status_register_at25df_sec(struct flashctx *flash) 76 76 { 77 77 /* FIXME: We should check the security lockdown. */ … … 81 81 } 82 82 83 int spi_prettyprint_status_register_at25f(struct flashc hip*flash)83 int spi_prettyprint_status_register_at25f(struct flashctx *flash) 84 84 { 85 85 uint8_t status; … … 100 100 } 101 101 102 int spi_prettyprint_status_register_at25fs010(struct flashc hip*flash)102 int spi_prettyprint_status_register_at25fs010(struct flashctx *flash) 103 103 { 104 104 uint8_t status; … … 124 124 } 125 125 126 int spi_prettyprint_status_register_at25fs040(struct flashc hip*flash)126 int spi_prettyprint_status_register_at25fs040(struct flashctx *flash) 127 127 { 128 128 uint8_t status; … … 148 148 } 149 149 150 int spi_prettyprint_status_register_atmel_at26df081a(struct flashc hip*flash)150 int spi_prettyprint_status_register_atmel_at26df081a(struct flashctx *flash) 151 151 { 152 152 uint8_t status; … … 164 164 } 165 165 166 int spi_disable_blockprotect_at25df(struct flashc hip*flash)166 int spi_disable_blockprotect_at25df(struct flashctx *flash) 167 167 { 168 168 uint8_t status; … … 204 204 } 205 205 206 int spi_disable_blockprotect_at25df_sec(struct flashc hip*flash)206 int spi_disable_blockprotect_at25df_sec(struct flashctx *flash) 207 207 { 208 208 /* FIXME: We should check the security lockdown. */ … … 211 211 } 212 212 213 int spi_disable_blockprotect_at25f(struct flashc hip*flash)213 int spi_disable_blockprotect_at25f(struct flashctx *flash) 214 214 { 215 215 /* spi_disable_blockprotect_at25df is not really the right way to do … … 219 219 } 220 220 221 int spi_disable_blockprotect_at25fs010(struct flashc hip*flash)221 int spi_disable_blockprotect_at25fs010(struct flashctx *flash) 222 222 { 223 223 uint8_t status; … … 253 253 } 254 254 255 int spi_disable_blockprotect_at25fs040(struct flashc hip*flash)255 int spi_disable_blockprotect_at25fs040(struct flashctx *flash) 256 256 { 257 257 uint8_t status; -
trunk/chipdrivers.h
r1470 r1473 20 20 * Header file for flash chip drivers. Included from flash.h. 21 21 * As a general rule, every function listed here should take a pointer to 22 * struct flashc hipas first parameter.22 * struct flashctx as first parameter. 23 23 */ 24 24 … … 26 26 #define __CHIPDRIVERS_H__ 1 27 27 28 #include "flash.h" /* for chipaddr and flashc hip*/28 #include "flash.h" /* for chipaddr and flashctx */ 29 29 30 30 /* spi.c, should probably be in spi_chip.c */ 31 int probe_spi_rdid(struct flashc hip*flash);32 int probe_spi_rdid4(struct flashc hip*flash);33 int probe_spi_rems(struct flashc hip*flash);34 int probe_spi_res1(struct flashc hip*flash);35 int probe_spi_res2(struct flashc hip*flash);31 int probe_spi_rdid(struct flashctx *flash); 32 int probe_spi_rdid4(struct flashctx *flash); 33 int probe_spi_rems(struct flashctx *flash); 34 int probe_spi_res1(struct flashctx *flash); 35 int probe_spi_res2(struct flashctx *flash); 36 36 int spi_write_enable(void); 37 37 int spi_write_disable(void); 38 int spi_block_erase_20(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);39 int spi_block_erase_52(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);40 int spi_block_erase_d7(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);41 int spi_block_erase_d8(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);42 int spi_block_erase_60(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);43 int spi_block_erase_c7(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);44 int spi_chip_write_1(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);45 int spi_chip_write_256(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);46 int spi_chip_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, int unsigned len);38 int spi_block_erase_20(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 39 int spi_block_erase_52(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 40 int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 41 int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 42 int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 43 int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 44 int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 45 int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 46 int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); 47 47 uint8_t spi_read_status_register(void); 48 int spi_write_status_register(struct flashc hip*flash, int status);48 int spi_write_status_register(struct flashctx *flash, int status); 49 49 void spi_prettyprint_status_register_bit(uint8_t status, int bit); 50 50 void spi_prettyprint_status_register_bp3210(uint8_t status, int bp); 51 51 void spi_prettyprint_status_register_welwip(uint8_t status); 52 int spi_prettyprint_status_register(struct flashc hip*flash);53 int spi_disable_blockprotect(struct flashc hip*flash);52 int spi_prettyprint_status_register(struct flashctx *flash); 53 int spi_disable_blockprotect(struct flashctx *flash); 54 54 int spi_byte_program(unsigned int addr, uint8_t databyte); 55 55 int spi_nbyte_program(unsigned int addr, uint8_t *bytes, unsigned int len); 56 56 int spi_nbyte_read(unsigned int addr, uint8_t *bytes, unsigned int len); 57 int spi_read_chunked(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);58 int spi_write_chunked(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);59 int spi_aai_write(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);57 int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 58 int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 59 int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 60 60 61 61 /* opaque.c */ 62 int probe_opaque(struct flashc hip*flash);63 int read_opaque(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);64 int write_opaque(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);65 int erase_opaque(struct flashc hip*flash, unsigned int blockaddr, unsigned int blocklen);62 int probe_opaque(struct flashctx *flash); 63 int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 64 int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 65 int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); 66 66 67 67 /* a25.c */ 68 int spi_prettyprint_status_register_amic_a25l05p(struct flashc hip*flash);69 int spi_prettyprint_status_register_amic_a25l40p(struct flashc hip*flash);70 int spi_prettyprint_status_register_amic_a25l032(struct flashc hip*flash);71 int spi_prettyprint_status_register_amic_a25lq032(struct flashc hip*flash);68 int spi_prettyprint_status_register_amic_a25l05p(struct flashctx *flash); 69 int spi_prettyprint_status_register_amic_a25l40p(struct flashctx *flash); 70 int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash); 71 int spi_prettyprint_status_register_amic_a25lq032(struct flashctx *flash); 72 72 73 73 /* at25.c */ 74 int spi_prettyprint_status_register_at25df(struct flashc hip*flash);75 int spi_prettyprint_status_register_at25df_sec(struct flashc hip*flash);76 int spi_prettyprint_status_register_at25f(struct flashc hip*flash);77 int spi_prettyprint_status_register_at25fs010(struct flashc hip*flash);78 int spi_prettyprint_status_register_at25fs040(struct flashc hip*flash);79 int spi_prettyprint_status_register_atmel_at26df081a(struct flashc hip*flash);80 int spi_disable_blockprotect_at25df(struct flashc hip*flash);81 int spi_disable_blockprotect_at25df_sec(struct flashc hip*flash);82 int spi_disable_blockprotect_at25f(struct flashc hip*flash);83 int spi_disable_blockprotect_at25fs010(struct flashc hip*flash);84 int spi_disable_blockprotect_at25fs040(struct flashc hip*flash);74 int spi_prettyprint_status_register_at25df(struct flashctx *flash); 75 int spi_prettyprint_status_register_at25df_sec(struct flashctx *flash); 76 int spi_prettyprint_status_register_at25f(struct flashctx *flash); 77 int spi_prettyprint_status_register_at25fs010(struct flashctx *flash); 78 int spi_prettyprint_status_register_at25fs040(struct flashctx *flash); 79 int spi_prettyprint_status_register_atmel_at26df081a(struct flashctx *flash); 80 int spi_disable_blockprotect_at25df(struct flashctx *flash); 81 int spi_disable_blockprotect_at25df_sec(struct flashctx *flash); 82 int spi_disable_blockprotect_at25f(struct flashctx *flash); 83 int spi_disable_blockprotect_at25fs010(struct flashctx *flash); 84 int spi_disable_blockprotect_at25fs040(struct flashctx *flash); 85 85 86 86 /* 82802ab.c */ 87 uint8_t wait_82802ab(struct flashc hip*flash);88 int probe_82802ab(struct flashc hip*flash);89 int erase_block_82802ab(struct flashc hip*flash, unsigned int page, unsigned int pagesize);90 int write_82802ab(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);87 uint8_t wait_82802ab(struct flashctx *flash); 88 int probe_82802ab(struct flashctx *flash); 89 int erase_block_82802ab(struct flashctx *flash, unsigned int page, unsigned int pagesize); 90 int write_82802ab(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 91 91 void print_status_82802ab(uint8_t status); 92 int unlock_82802ab(struct flashc hip*flash);93 int unlock_28f004s5(struct flashc hip*flash);94 int unlock_lh28f008bjt(struct flashc hip*flash);92 int unlock_82802ab(struct flashctx *flash); 93 int unlock_28f004s5(struct flashctx *flash); 94 int unlock_lh28f008bjt(struct flashctx *flash); 95 95 96 96 /* jedec.c */ … … 100 100 int write_byte_program_jedec(chipaddr bios, uint8_t *src, 101 101 chipaddr dst); 102 int probe_jedec(struct flashc hip*flash);103 int write_jedec(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);104 int write_jedec_1(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);105 int erase_sector_jedec(struct flashc hip*flash, unsigned int page, unsigned int pagesize);106 int erase_block_jedec(struct flashc hip*flash, unsigned int page, unsigned int blocksize);107 int erase_chip_block_jedec(struct flashc hip*flash, unsigned int page, unsigned int blocksize);102 int probe_jedec(struct flashctx *flash); 103 int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 104 int write_jedec_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 105 int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize); 106 int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); 107 int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); 108 108 109 109 /* m29f400bt.c */ 110 int probe_m29f400bt(struct flashc hip*flash);111 int block_erase_m29f400bt(struct flashc hip*flash, unsigned int start, unsigned int len);112 int block_erase_chip_m29f400bt(struct flashc hip*flash, unsigned int start, unsigned int len);113 int write_m29f400bt(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);110 int probe_m29f400bt(struct flashctx *flash); 111 int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); 112 int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); 113 int write_m29f400bt(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 114 114 void protect_m29f400bt(chipaddr bios); 115 115 116 116 /* pm49fl00x.c */ 117 int unlock_49fl00x(struct flashc hip*flash);118 int lock_49fl00x(struct flashc hip*flash);117 int unlock_49fl00x(struct flashctx *flash); 118 int lock_49fl00x(struct flashctx *flash); 119 119 120 120 /* sst28sf040.c */ 121 int erase_chip_28sf040(struct flashc hip*flash, unsigned int addr, unsigned int blocklen);122 int erase_sector_28sf040(struct flashc hip*flash, unsigned int address, unsigned int sector_size);123 int write_28sf040(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);124 int unprotect_28sf040(struct flashc hip*flash);125 int protect_28sf040(struct flashc hip*flash);121 int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 122 int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size); 123 int write_28sf040(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 124 int unprotect_28sf040(struct flashctx *flash); 125 int protect_28sf040(struct flashctx *flash); 126 126 127 127 /* sst49lfxxxc.c */ 128 int erase_sector_49lfxxxc(struct flashc hip*flash, unsigned int address, unsigned int sector_size);129 int unlock_49lfxxxc(struct flashc hip*flash);128 int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address, unsigned int sector_size); 129 int unlock_49lfxxxc(struct flashctx *flash); 130 130 131 131 /* sst_fwhub.c */ 132 int printlock_sst_fwhub(struct flashc hip*flash);133 int unlock_sst_fwhub(struct flashc hip*flash);132 int printlock_sst_fwhub(struct flashctx *flash); 133 int unlock_sst_fwhub(struct flashctx *flash); 134 134 135 135 /* w39.c */ 136 int printlock_w39l040(struct flashc hip* flash);137 int printlock_w39v040a(struct flashc hip*flash);138 int printlock_w39v040b(struct flashc hip*flash);139 int printlock_w39v040c(struct flashc hip*flash);140 int printlock_w39v040fa(struct flashc hip*flash);141 int printlock_w39v040fb(struct flashc hip*flash);142 int printlock_w39v040fc(struct flashc hip*flash);143 int printlock_w39v080a(struct flashc hip*flash);144 int printlock_w39v080fa(struct flashc hip*flash);145 int printlock_w39v080fa_dual(struct flashc hip*flash);146 int unlock_w39v040fb(struct flashc hip*flash);147 int unlock_w39v080fa(struct flashc hip*flash);136 int printlock_w39l040(struct flashctx * flash); 137 int printlock_w39v040a(struct flashctx *flash); 138 int printlock_w39v040b(struct flashctx *flash); 139 int printlock_w39v040c(struct flashctx *flash); 140 int printlock_w39v040fa(struct flashctx *flash); 141 int printlock_w39v040fb(struct flashctx *flash); 142 int printlock_w39v040fc(struct flashctx *flash); 143 int printlock_w39v080a(struct flashctx *flash); 144 int printlock_w39v080fa(struct flashctx *flash); 145 int printlock_w39v080fa_dual(struct flashctx *flash); 146 int unlock_w39v040fb(struct flashctx *flash); 147 int unlock_w39v080fa(struct flashctx *flash); 148 148 149 149 /* w29ee011.c */ 150 int probe_w29ee011(struct flashc hip*flash);150 int probe_w29ee011(struct flashctx *flash); 151 151 152 152 /* stm50flw0x0x.c */ 153 int erase_sector_stm50flw0x0x(struct flashc hip*flash, unsigned int block, unsigned int blocksize);154 int unlock_stm50flw0x0x(struct flashc hip*flash);153 int erase_sector_stm50flw0x0x(struct flashctx *flash, unsigned int block, unsigned int blocksize); 154 int unlock_stm50flw0x0x(struct flashctx *flash); 155 155 156 156 #endif /* !__CHIPDRIVERS_H__ */ -
trunk/cli_classic.c
r1463 r1473 170 170 /* Probe for up to three flash chips. */ 171 171 const struct flashchip *flash; 172 struct flashc hipflashes[3];173 struct flashc hip*fill_flash;172 struct flashctx flashes[3]; 173 struct flashctx *fill_flash; 174 174 const char *name; 175 175 int namelen, opt, i; … … 410 410 #endif 411 411 412 /* Does a chip with the requested name exist in the flashchips array? */ 412 413 if (chip_to_probe) { 413 414 for (flash = flashchips; flash && flash->name; flash++) -
trunk/dediprog.c
r1470 r1473 206 206 * @return 0 on success, 1 on failure 207 207 */ 208 static int dediprog_spi_bulk_read(struct flashc hip*flash, uint8_t *buf,208 static int dediprog_spi_bulk_read(struct flashctx *flash, uint8_t *buf, 209 209 unsigned int start, unsigned int len) 210 210 { … … 254 254 } 255 255 256 static int dediprog_spi_read(struct flashc hip*flash, uint8_t *buf,256 static int dediprog_spi_read(struct flashctx *flash, uint8_t *buf, 257 257 unsigned int start, unsigned int len) 258 258 { … … 300 300 } 301 301 302 static int dediprog_spi_write_256(struct flashc hip*flash, uint8_t *buf,302 static int dediprog_spi_write_256(struct flashctx *flash, uint8_t *buf, 303 303 unsigned int start, unsigned int len) 304 304 { -
trunk/dummyflasher.c
r1470 r1473 63 63 static int dummy_spi_send_command(unsigned int writecnt, unsigned int readcnt, 64 64 const unsigned char *writearr, unsigned char *readarr); 65 static int dummy_spi_write_256(struct flashc hip*flash, uint8_t *buf,65 static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf, 66 66 unsigned int start, unsigned int len); 67 67 … … 549 549 } 550 550 551 static int dummy_spi_write_256(struct flashc hip*flash, uint8_t *buf,551 static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf, 552 552 unsigned int start, unsigned int len) 553 553 { -
trunk/flash.h
r1470 r1473 94 94 #define FEATURE_WRSR_EITHER (FEATURE_WRSR_EWSR | FEATURE_WRSR_WREN) 95 95 96 struct flashctx; 97 96 98 struct flashchip { 97 99 const char *vendor; … … 120 122 uint32_t tested; 121 123 122 int (*probe) (struct flashc hip*flash);124 int (*probe) (struct flashctx *flash); 123 125 124 126 /* Delay after "enter/exit ID mode" commands in microseconds. … … 141 143 /* a block_erase function should try to erase one block of size 142 144 * 'blocklen' at address 'blockaddr' and return 0 on success. */ 143 int (*block_erase) (struct flashc hip*flash, unsigned int blockaddr, unsigned int blocklen);145 int (*block_erase) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); 144 146 } block_erasers[NUM_ERASEFUNCTIONS]; 145 147 146 int (*printlock) (struct flashc hip*flash);147 int (*unlock) (struct flashc hip*flash);148 int (*write) (struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);149 int (*read) (struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);150 struct {148 int (*printlock) (struct flashctx *flash); 149 int (*unlock) (struct flashctx *flash); 150 int (*write) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 151 int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 152 struct voltage { 151 153 uint16_t min; 152 154 uint16_t max; 153 155 } voltage; 154 156 }; 157 158 /* struct flashctx must always contain struct flashchip at the beginning. */ 159 struct flashctx { 160 const char *vendor; 161 const char *name; 162 enum chipbustype bustype; 163 uint32_t manufacture_id; 164 uint32_t model_id; 165 int total_size; 166 int page_size; 167 int feature_bits; 168 uint32_t tested; 169 int (*probe) (struct flashctx *flash); 170 int probe_timing; 171 struct block_eraser block_erasers[NUM_ERASEFUNCTIONS]; 172 int (*printlock) (struct flashctx *flash); 173 int (*unlock) (struct flashctx *flash); 174 int (*write) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 175 int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 176 struct voltage voltage; 177 /* struct flashchip ends here. */ 178 179 chipaddr virtual_memory; 155 180 /* Some flash devices have an additional register space. */ 156 chipaddr virtual_memory;157 181 chipaddr virtual_registers; 158 182 }; … … 204 228 extern const char flashrom_version[]; 205 229 extern char *chip_to_probe; 206 void map_flash_registers(struct flashc hip*flash);207 int read_memmapped(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);208 int erase_flash(struct flashc hip*flash);209 int probe_flash(int startchip, struct flashc hip*fill_flash, int force);210 int read_flash_to_file(struct flashc hip*flash, const char *filename);230 void map_flash_registers(struct flashctx *flash); 231 int read_memmapped(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 232 int erase_flash(struct flashctx *flash); 233 int probe_flash(int startchip, struct flashctx *fill_flash, int force); 234 int read_flash_to_file(struct flashctx *flash, const char *filename); 211 235 int min(int a, int b); 212 236 int max(int a, int b); 213 237 void tolower_string(char *str); 214 238 char *extract_param(char **haystack, const char *needle, const char *delim); 215 int verify_range(struct flashc hip*flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, const char *message);239 int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, const char *message); 216 240 int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granularity gran); 217 241 char *strcat_realloc(char *dest, const char *src); … … 220 244 void list_programmers_linebreak(int startcol, int cols, int paren); 221 245 int selfcheck(void); 222 int doit(struct flashc hip*flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it);246 int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it); 223 247 int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename); 224 248 int write_buf_to_file(unsigned char *buf, unsigned long size, const char *filename); … … 260 284 int read_romlayout(char *name); 261 285 int find_romentry(char *name); 262 int handle_romentries(struct flashc hip*flash, uint8_t *oldcontents, uint8_t *newcontents);286 int handle_romentries(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents); 263 287 264 288 /* spi.c */ -
trunk/flashrom.c
r1470 r1473 269 269 static int may_register_shutdown = 0; 270 270 271 static int check_block_eraser(const struct flashc hip*flash, int k, int log);271 static int check_block_eraser(const struct flashctx *flash, int k, int log); 272 272 273 273 /* Register a function to be executed on programmer shutdown. … … 405 405 } 406 406 407 void map_flash_registers(struct flashc hip*flash)407 void map_flash_registers(struct flashctx *flash) 408 408 { 409 409 size_t size = flash->total_size * 1024; … … 413 413 } 414 414 415 int read_memmapped(struct flashc hip*flash, uint8_t *buf, unsigned int start, int unsigned len)415 int read_memmapped(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len) 416 416 { 417 417 chip_readn(buf, flash->virtual_memory + start, len); … … 524 524 525 525 /* Returns the number of well-defined erasers for a chip. */ 526 static unsigned int count_usable_erasers(const struct flashc hip*flash)526 static unsigned int count_usable_erasers(const struct flashctx *flash) 527 527 { 528 528 unsigned int usable_erasefunctions = 0; … … 536 536 537 537 /* start is an offset to the base address of the flash chip */ 538 int check_erased_range(struct flashc hip*flash, unsigned int start, unsigned int len)538 int check_erased_range(struct flashctx *flash, unsigned int start, unsigned int len) 539 539 { 540 540 int ret; … … 559 559 * @return 0 for success, -1 for failure 560 560 */ 561 int verify_range(struct flashc hip*flash, uint8_t *cmpbuf, unsigned int start, unsigned int len,561 int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, 562 562 const char *message) 563 563 { … … 939 939 } 940 940 941 int probe_flash(int startchip, struct flashc hip*fill_flash, int force)941 int probe_flash(int startchip, struct flashctx *fill_flash, int force) 942 942 { 943 943 const struct flashchip *flash; … … 977 977 978 978 /* Start filling in the dynamic data. */ 979 *fill_flash = *flash;979 memcpy(fill_flash, flash, sizeof(struct flashchip)); 980 980 981 981 base = flashbase ? flashbase : (0xffffffff - size + 1); … … 1030 1030 } 1031 1031 1032 int verify_flash(struct flashc hip*flash, uint8_t *buf)1032 int verify_flash(struct flashctx *flash, uint8_t *buf) 1033 1033 { 1034 1034 int ret; … … 1104 1104 } 1105 1105 1106 int read_flash_to_file(struct flashc hip*flash, const char *filename)1106 int read_flash_to_file(struct flashctx *flash, const char *filename) 1107 1107 { 1108 1108 unsigned long size = flash->total_size * 1024; … … 1203 1203 } 1204 1204 1205 static int erase_and_write_block_helper(struct flashc hip*flash,1205 static int erase_and_write_block_helper(struct flashctx *flash, 1206 1206 unsigned int start, unsigned int len, 1207 1207 uint8_t *curcontents, 1208 1208 uint8_t *newcontents, 1209 int (*erasefn) (struct flashc hip*flash,1209 int (*erasefn) (struct flashctx *flash, 1210 1210 unsigned int addr, 1211 1211 unsigned int len)) … … 1254 1254 } 1255 1255 1256 static int walk_eraseregions(struct flashc hip*flash, int erasefunction,1257 int (*do_something) (struct flashc hip*flash,1256 static int walk_eraseregions(struct flashctx *flash, int erasefunction, 1257 int (*do_something) (struct flashctx *flash, 1258 1258 unsigned int addr, 1259 1259 unsigned int len, … … 1261 1261 uint8_t *param2, 1262 1262 int (*erasefn) ( 1263 struct flashc hip*flash,1263 struct flashctx *flash, 1264 1264 unsigned int addr, 1265 1265 unsigned int len)), … … 1293 1293 } 1294 1294 1295 static int check_block_eraser(const struct flashc hip*flash, int k, int log)1295 static int check_block_eraser(const struct flashctx *flash, int k, int log) 1296 1296 { 1297 1297 struct block_eraser eraser = flash->block_erasers[k]; … … 1317 1317 } 1318 1318 1319 int erase_and_write_flash(struct flashc hip*flash, uint8_t *oldcontents,1319 int erase_and_write_flash(struct flashctx *flash, uint8_t *oldcontents, 1320 1320 uint8_t *newcontents) 1321 1321 { … … 1535 1535 ret = 1; 1536 1536 } 1537 /* Check that virtual_memory in struct flashctx is placed directly 1538 * after the members copied from struct flashchip. 1539 */ 1540 if (sizeof(struct flashchip) != offsetof(struct flashctx, virtual_memory)) { 1541 msg_gerr("struct flashctx broken!\n"); 1542 ret = 1; 1543 } 1537 1544 for (flash = flashchips; flash && flash->name; flash++) 1538 1545 if (selfcheck_eraseblocks(flash)) … … 1560 1567 } 1561 1568 1562 void check_chip_supported(const struct flashc hip*flash)1569 void check_chip_supported(const struct flashctx *flash) 1563 1570 { 1564 1571 if (TEST_OK_MASK != (flash->tested & TEST_OK_MASK)) { … … 1612 1619 * function signature. 1613 1620 */ 1614 int chip_safety_check(struct flashc hip*flash, int force, int read_it, int write_it, int erase_it, int verify_it)1621 int chip_safety_check(struct flashctx *flash, int force, int read_it, int write_it, int erase_it, int verify_it) 1615 1622 { 1616 1623 if (!programmer_may_write && (write_it || erase_it)) { … … 1673 1680 * Besides that, the function itself is a textbook example of abysmal code flow. 1674 1681 */ 1675 int doit(struct flashc hip*flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it)1682 int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it) 1676 1683 { 1677 1684 uint8_t *oldcontents; -
trunk/ichspi.c
r1470 r1473 1176 1176 } 1177 1177 1178 int ich_hwseq_probe(struct flashc hip*flash)1178 int ich_hwseq_probe(struct flashctx *flash) 1179 1179 { 1180 1180 uint32_t total_size, boundary; … … 1229 1229 } 1230 1230 1231 int ich_hwseq_block_erase(struct flashc hip*flash,1231 int ich_hwseq_block_erase(struct flashctx *flash, 1232 1232 unsigned int addr, 1233 1233 unsigned int len) … … 1279 1279 } 1280 1280 1281 int ich_hwseq_read(struct flashc hip*flash, uint8_t *buf, unsigned int addr,1281 int ich_hwseq_read(struct flashctx *flash, uint8_t *buf, unsigned int addr, 1282 1282 unsigned int len) 1283 1283 { … … 1317 1317 } 1318 1318 1319 int ich_hwseq_write(struct flashc hip*flash, uint8_t *buf, unsigned int addr,1319 int ich_hwseq_write(struct flashctx *flash, uint8_t *buf, unsigned int addr, 1320 1320 unsigned int len) 1321 1321 { -
trunk/it87spi.c
r1470 r1473 106 106 static int it8716f_spi_send_command(unsigned int writecnt, unsigned int readcnt, 107 107 const unsigned char *writearr, unsigned char *readarr); 108 static int it8716f_spi_chip_read(struct flashc hip*flash, uint8_t *buf,108 static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf, 109 109 unsigned int start, unsigned int len); 110 static int it8716f_spi_chip_write_256(struct flashc hip*flash, uint8_t *buf,110 static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, 111 111 unsigned int start, unsigned int len); 112 112 … … 313 313 314 314 /* Page size is usually 256 bytes */ 315 static int it8716f_spi_page_program(struct flashc hip*flash, uint8_t *buf,315 static int it8716f_spi_page_program(struct flashctx *flash, uint8_t *buf, 316 316 unsigned int start) 317 317 { … … 341 341 * Need to read this big flash using firmware cycles 3 byte at a time. 342 342 */ 343 static int it8716f_spi_chip_read(struct flashc hip*flash, uint8_t *buf,343 static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf, 344 344 unsigned int start, unsigned int len) 345 345 { … … 359 359 } 360 360 361 static int it8716f_spi_chip_write_256(struct flashc hip*flash, uint8_t *buf,361 static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, 362 362 unsigned int start, unsigned int len) 363 363 { -
trunk/jedec.c
r1470 r1473 92 92 } 93 93 94 static unsigned int getaddrmask(struct flashc hip*flash)94 static unsigned int getaddrmask(struct flashctx *flash) 95 95 { 96 96 switch (flash->feature_bits & FEATURE_ADDR_MASK) { … … 111 111 } 112 112 113 static void start_program_jedec_common(struct flashc hip*flash, unsigned int mask)113 static void start_program_jedec_common(struct flashctx *flash, unsigned int mask) 114 114 { 115 115 chipaddr bios = flash->virtual_memory; … … 119 119 } 120 120 121 static int probe_jedec_common(struct flashc hip*flash, unsigned int mask)121 static int probe_jedec_common(struct flashctx *flash, unsigned int mask) 122 122 { 123 123 chipaddr bios = flash->virtual_memory; … … 238 238 } 239 239 240 static int erase_sector_jedec_common(struct flashc hip*flash, unsigned int page,240 static int erase_sector_jedec_common(struct flashctx *flash, unsigned int page, 241 241 unsigned int pagesize, unsigned int mask) 242 242 { … … 268 268 } 269 269 270 static int erase_block_jedec_common(struct flashc hip*flash, unsigned int block,270 static int erase_block_jedec_common(struct flashctx *flash, unsigned int block, 271 271 unsigned int blocksize, unsigned int mask) 272 272 { … … 298 298 } 299 299 300 static int erase_chip_jedec_common(struct flashc hip*flash, unsigned int mask)300 static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask) 301 301 { 302 302 chipaddr bios = flash->virtual_memory; … … 326 326 } 327 327 328 static int write_byte_program_jedec_common(struct flashc hip*flash, uint8_t *src,328 static int write_byte_program_jedec_common(struct flashctx *flash, uint8_t *src, 329 329 chipaddr dst, unsigned int mask) 330 330 { … … 356 356 357 357 /* chunksize is 1 */ 358 int write_jedec_1(struct flashc hip*flash, uint8_t *src, unsigned int start, unsigned int len)358 int write_jedec_1(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 359 359 { 360 360 int i, failed = 0; … … 377 377 } 378 378 379 int write_page_write_jedec_common(struct flashc hip*flash, uint8_t *src, unsigned int start, unsigned int page_size)379 int write_page_write_jedec_common(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int page_size) 380 380 { 381 381 int i, tried = 0, failed; … … 425 425 * Each page is written separately in chunks with a maximum size of chunksize. 426 426 */ 427 int write_jedec(struct flashc hip*flash, uint8_t *buf, unsigned int start, int unsigned len)427 int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len) 428 428 { 429 429 unsigned int i, starthere, lenhere; 430 430 /* FIXME: page_size is the wrong variable. We need max_writechunk_size 431 * in struct flashc hipto do this properly. All chips using431 * in struct flashctx to do this properly. All chips using 432 432 * write_jedec have page_size set to max_writechunk_size, so 433 433 * we're OK for now. … … 459 459 460 460 /* erase chip with block_erase() prototype */ 461 int erase_chip_block_jedec(struct flashc hip*flash, unsigned int addr,461 int erase_chip_block_jedec(struct flashctx *flash, unsigned int addr, 462 462 unsigned int blocksize) 463 463 { … … 473 473 } 474 474 475 int probe_jedec(struct flashc hip*flash)475 int probe_jedec(struct flashctx *flash) 476 476 { 477 477 unsigned int mask; … … 481 481 } 482 482 483 int erase_sector_jedec(struct flashc hip*flash, unsigned int page, unsigned int size)483 int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int size) 484 484 { 485 485 unsigned int mask; … … 489 489 } 490 490 491 int erase_block_jedec(struct flashc hip*flash, unsigned int page, unsigned int size)491 int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int size) 492 492 { 493 493 unsigned int mask; … … 497 497 } 498 498 499 int erase_chip_jedec(struct flashc hip*flash)499 int erase_chip_jedec(struct flashctx *flash) 500 500 { 501 501 unsigned int mask; -
trunk/layout.c
r1310 r1473 241 241 } 242 242 243 int handle_romentries(struct flashc hip*flash, uint8_t *oldcontents, uint8_t *newcontents)243 int handle_romentries(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents) 244 244 { 245 245 unsigned int start = 0; -
trunk/linux_spi.c
r1470 r1473 37 37 static int linux_spi_send_command(unsigned int writecnt, unsigned int readcnt, 38 38 const unsigned char *txbuf, unsigned char *rxbuf); 39 static int linux_spi_read(struct flashc hip*flash, uint8_t *buf,39 static int linux_spi_read(struct flashctx *flash, uint8_t *buf, 40 40 unsigned int start, unsigned int len); 41 static int linux_spi_write_256(struct flashc hip*flash, uint8_t *buf,41 static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, 42 42 unsigned int start, unsigned int len); 43 43 … … 132 132 } 133 133 134 static int linux_spi_read(struct flashc hip*flash, uint8_t *buf,134 static int linux_spi_read(struct flashctx *flash, uint8_t *buf, 135 135 unsigned int start, unsigned int len) 136 136 { … … 138 138 } 139 139 140 static int linux_spi_write_256(struct flashc hip*flash, uint8_t *buf,140 static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, 141 141 unsigned int start, unsigned int len) 142 142 { -
trunk/m29f400bt.c
r1470 r1473 29 29 30 30 /* chunksize is 1 */ 31 int write_m29f400bt(struct flashc hip*flash, uint8_t *src, unsigned int start, unsigned int len)31 int write_m29f400bt(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 32 32 { 33 33 int i; … … 56 56 } 57 57 58 int probe_m29f400bt(struct flashc hip*flash)58 int probe_m29f400bt(struct flashctx *flash) 59 59 { 60 60 chipaddr bios = flash->virtual_memory; … … 87 87 } 88 88 89 int erase_m29f400bt(struct flashc hip*flash)89 int erase_m29f400bt(struct flashctx *flash) 90 90 { 91 91 chipaddr bios = flash->virtual_memory; … … 106 106 } 107 107 108 int block_erase_m29f400bt(struct flashc hip*flash, unsigned int start, unsigned int len)108 int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len) 109 109 { 110 110 chipaddr bios = flash->virtual_memory; … … 126 126 } 127 127 128 int block_erase_chip_m29f400bt(struct flashc hip*flash, unsigned int address, unsigned int blocklen)128 int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int address, unsigned int blocklen) 129 129 { 130 130 if ((address != 0) || (blocklen != flash->total_size * 1024)) { -
trunk/opaque.c
r1470 r1473 42 42 const struct opaque_programmer *opaque_programmer = &opaque_programmer_none; 43 43 44 int probe_opaque(struct flashc hip*flash)44 int probe_opaque(struct flashctx *flash) 45 45 { 46 46 if (!opaque_programmer->probe) { … … 54 54 } 55 55 56 int read_opaque(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)56 int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 57 57 { 58 58 if (!opaque_programmer->read) { … … 65 65 } 66 66 67 int write_opaque(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)67 int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 68 68 { 69 69 if (!opaque_programmer->write) { … … 76 76 } 77 77 78 int erase_opaque(struct flashc hip*flash, unsigned int blockaddr, unsigned int blocklen)78 int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen) 79 79 { 80 80 if (!opaque_programmer->erase) { -
trunk/pm49fl00x.c
r1470 r1473 37 37 } 38 38 39 int unlock_49fl00x(struct flashc hip*flash)39 int unlock_49fl00x(struct flashctx *flash) 40 40 { 41 41 write_lockbits_49fl00x(flash->virtual_registers, flash->total_size * 1024, 0, flash->page_size); … … 43 43 } 44 44 45 int lock_49fl00x(struct flashc hip*flash)45 int lock_49fl00x(struct flashctx *flash) 46 46 { 47 47 write_lockbits_49fl00x(flash->virtual_registers, flash->total_size * 1024, 1, flash->page_size); -
trunk/programmer.h
r1470 r1473 25 25 #define __PROGRAMMER_H__ 1 26 26 27 #include "flash.h" /* for chipaddr and flashc hip*/27 #include "flash.h" /* for chipaddr and flashctx */ 28 28 29 29 enum programmer { … … 514 514 extern int programmer_may_write; 515 515 extern unsigned long flashbase; 516 void check_chip_supported(const struct flashc hip*flash);516 void check_chip_supported(const struct flashctx *flash); 517 517 int check_max_decode(enum chipbustype buses, uint32_t size); 518 518 char *extract_programmer_param(const char *param_name); … … 571 571 572 572 /* Optimized functions for this programmer */ 573 int (*read)(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);574 int (*write_256)(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);573 int (*read)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 574 int (*write_256)(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 575 575 }; 576 576 … … 579 579 const unsigned char *writearr, unsigned char *readarr); 580 580 int default_spi_send_multicommand(struct spi_command *cmds); 581 int default_spi_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);582 int default_spi_write_256(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);581 int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 582 int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 583 583 void register_spi_programmer(const struct spi_programmer *programmer); 584 584 … … 625 625 int max_data_write; 626 626 /* Specific functions for this programmer */ 627 int (*probe) (struct flashc hip*flash);628 int (*read) (struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);629 int (*write) (struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);630 int (*erase) (struct flashc hip*flash, unsigned int blockaddr, unsigned int blocklen);627 int (*probe) (struct flashctx *flash); 628 int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 629 int (*write) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 630 int (*erase) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); 631 631 }; 632 632 extern const struct opaque_programmer *opaque_programmer; -
trunk/serprog.c
r1470 r1473 303 303 const unsigned char *writearr, 304 304 unsigned char *readarr); 305 static int serprog_spi_read(struct flashc hip*flash, uint8_t *buf,305 static int serprog_spi_read(struct flashctx *flash, uint8_t *buf, 306 306 unsigned int start, unsigned int len); 307 307 static struct spi_programmer spi_programmer_serprog = { … … 823 823 * non-contiguous address space (like AT45DB161D). When spi_read_chunked is 824 824 * fixed this method can be removed. */ 825 static int serprog_spi_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)825 static int serprog_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 826 826 { 827 827 unsigned int i, cur_len; -
trunk/sharplhf00l04.c
r1353 r1473 27 27 */ 28 28 29 int erase_lhf00l04_block(struct flashc hip*flash, unsigned int blockaddr, unsigned int blocklen)29 int erase_lhf00l04_block(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen) 30 30 { 31 31 chipaddr bios = flash->virtual_memory + blockaddr; -
trunk/spi.c
r1470 r1473 98 98 } 99 99 100 int default_spi_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)100 int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 101 101 { 102 102 unsigned int max_data = spi_programmer->max_data_read; … … 110 110 } 111 111 112 int default_spi_write_256(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)112 int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 113 113 { 114 114 unsigned int max_data = spi_programmer->max_data_write; … … 122 122 } 123 123 124 int spi_chip_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)124 int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 125 125 { 126 126 unsigned int addrbase = 0; … … 161 161 */ 162 162 /* real chunksize is up to 256, logical chunksize is 256 */ 163 int spi_chip_write_256(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)163 int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 164 164 { 165 165 if (!spi_programmer->write_256) { -
trunk/spi25.c
r1470 r1473 114 114 } 115 115 116 static int probe_spi_rdid_generic(struct flashc hip*flash, int bytes)116 static int probe_spi_rdid_generic(struct flashctx *flash, int bytes) 117 117 { 118 118 unsigned char readarr[4]; … … 168 168 } 169 169 170 int probe_spi_rdid(struct flashc hip*flash)170 int probe_spi_rdid(struct flashctx *flash) 171 171 { 172 172 return probe_spi_rdid_generic(flash, 3); 173 173 } 174 174 175 int probe_spi_rdid4(struct flashc hip*flash)175 int probe_spi_rdid4(struct flashctx *flash) 176 176 { 177 177 /* Some SPI controllers do not support commands with writecnt=1 and … … 195 195 } 196 196 197 int probe_spi_rems(struct flashc hip*flash)197 int probe_spi_rems(struct flashctx *flash) 198 198 { 199 199 unsigned char readarr[JEDEC_REMS_INSIZE]; … … 231 231 } 232 232 233 int probe_spi_res1(struct flashc hip*flash)233 int probe_spi_res1(struct flashctx *flash) 234 234 { 235 235 static const unsigned char allff[] = {0xff, 0xff, 0xff}; … … 275 275 } 276 276 277 int probe_spi_res2(struct flashc hip*flash)277 int probe_spi_res2(struct flashctx *flash) 278 278 { 279 279 unsigned char readarr[2]; … … 411 411 } 412 412 413 int spi_prettyprint_status_register(struct flashc hip*flash)413 int spi_prettyprint_status_register(struct flashctx *flash) 414 414 { 415 415 uint8_t status; … … 445 445 } 446 446 447 int spi_chip_erase_60(struct flashc hip*flash)447 int spi_chip_erase_60(struct flashctx *flash) 448 448 { 449 449 int result; … … 482 482 } 483 483 484 int spi_chip_erase_c7(struct flashc hip*flash)484 int spi_chip_erase_c7(struct flashctx *flash) 485 485 { 486 486 int result; … … 518 518 } 519 519 520 int spi_block_erase_52(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)520 int spi_block_erase_52(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 521 521 { 522 522 int result; … … 564 564 * 4-32k non-uniform for EON 565 565 */ 566 int spi_block_erase_d8(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)566 int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 567 567 { 568 568 int result; … … 608 608 * 4k for PMC 609 609 */ 610 int spi_block_erase_d7(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)610 int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 611 611 { 612 612 int result; … … 650 650 651 651 /* Sector size is usually 4k, though Macronix eliteflash has 64k */ 652 int spi_block_erase_20(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)652 int spi_block_erase_20(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 653 653 { 654 654 int result; … … 691 691 } 692 692 693 int spi_block_erase_60(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)693 int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 694 694 { 695 695 if ((addr != 0) || (blocklen != flash->total_size * 1024)) { … … 701 701 } 702 702 703 int spi_block_erase_c7(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)703 int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 704 704 { 705 705 if ((addr != 0) || (blocklen != flash->total_size * 1024)) { … … 729 729 * generic that this... 730 730 */ 731 static int spi_write_status_register_ewsr(struct flashc hip*flash, int status)731 static int spi_write_status_register_ewsr(struct flashctx *flash, int status) 732 732 { 733 733 int result; … … 777 777 } 778 778 779 static int spi_write_status_register_wren(struct flashc hip*flash, int status)779 static int spi_write_status_register_wren(struct flashctx *flash, int status) 780 780 { 781 781 int result; … … 825 825 } 826 826 827 int spi_write_status_register(struct flashc hip*flash, int status)827 int spi_write_status_register(struct flashctx *flash, int status) 828 828 { 829 829 int ret = 1; … … 927 927 * part is chip specific). Repeat once. 928 928 */ 929 int spi_disable_blockprotect(struct flashc hip*flash)929 int spi_disable_blockprotect(struct flashctx *flash) 930 930 { 931 931 uint8_t status; … … 969 969 * Each page is read separately in chunks with a maximum size of chunksize. 970 970 */ 971 int spi_read_chunked(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize)971 int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 972 972 { 973 973 int rc = 0; … … 1008 1008 * Each page is written separately in chunks with a maximum size of chunksize. 1009 1009 */ 1010 int spi_write_chunked(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize)1010 int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 1011 1011 { 1012 1012 int rc = 0; 1013 1013 unsigned int i, j, starthere, lenhere, towrite; 1014 1014 /* FIXME: page_size is the wrong variable. We need max_writechunk_size 1015 * in struct flashc hipto do this properly. All chips using1015 * in struct flashctx to do this properly. All chips using 1016 1016 * spi_chip_write_256 have page_size set to max_writechunk_size, so 1017 1017 * we're OK for now. … … 1056 1056 */ 1057 1057 /* real chunksize is 1, logical chunksize is 1 */ 1058 int spi_chip_write_1(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)1058 int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 1059 1059 { 1060 1060 unsigned int i; … … 1072 1072 } 1073 1073 1074 int spi_aai_write(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)1074 int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 1075 1075 { 1076 1076 uint32_t pos = start; -
trunk/sst28sf040.c
r1470 r1473 31 31 #define READ_ID 0x90 32 32 33 int protect_28sf040(struct flashc hip*flash)33 int protect_28sf040(struct flashctx *flash) 34 34 { 35 35 chipaddr bios = flash->virtual_memory; … … 46 46 } 47 47 48 int unprotect_28sf040(struct flashc hip*flash)48 int unprotect_28sf040(struct flashctx *flash) 49 49 { 50 50 chipaddr bios = flash->virtual_memory; … … 61 61 } 62 62 63 int erase_sector_28sf040(struct flashc hip*flash, unsigned int address, unsigned int sector_size)63 int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size) 64 64 { 65 65 chipaddr bios = flash->virtual_memory; … … 77 77 78 78 /* chunksize is 1 */ 79 int write_28sf040(struct flashc hip*flash, uint8_t *src, unsigned int start, unsigned int len)79 int write_28sf040(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 80 80 { 81 81 int i; … … 101 101 } 102 102 103 static int erase_28sf040(struct flashc hip*flash)103 static int erase_28sf040(struct flashctx *flash) 104 104 { 105 105 chipaddr bios = flash->virtual_memory; … … 115 115 } 116 116 117 int erase_chip_28sf040(struct flashc hip*flash, unsigned int addr, unsigned int blocklen)117 int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 118 118 { 119 119 if ((addr != 0) || (blocklen != flash->total_size * 1024)) { -
trunk/sst49lfxxxc.c
r1470 r1473 24 24 #include "chipdrivers.h" 25 25 26 static int write_lockbits_block_49lfxxxc(struct flashc hip*flash, unsigned long address, unsigned char bits)26 static int write_lockbits_block_49lfxxxc(struct flashctx *flash, unsigned long address, unsigned char bits) 27 27 { 28 28 unsigned long lock = flash->virtual_registers + address + 2; … … 33 33 } 34 34 35 static int write_lockbits_49lfxxxc(struct flashc hip*flash, unsigned char bits)35 static int write_lockbits_49lfxxxc(struct flashctx *flash, unsigned char bits) 36 36 { 37 37 chipaddr registers = flash->virtual_registers; … … 55 55 } 56 56 57 int unlock_49lfxxxc(struct flashc hip*flash)57 int unlock_49lfxxxc(struct flashctx *flash) 58 58 { 59 59 return write_lockbits_49lfxxxc(flash, 0); 60 60 } 61 61 62 int erase_sector_49lfxxxc(struct flashc hip*flash, unsigned int address, unsigned int sector_size)62 int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address, unsigned int sector_size) 63 63 { 64 64 uint8_t status; -
trunk/sst_fwhub.c
r1414 r1473 25 25 #include "flash.h" 26 26 27 static int check_sst_fwhub_block_lock(struct flashc hip*flash, int offset)27 static int check_sst_fwhub_block_lock(struct flashctx *flash, int offset) 28 28 { 29 29 chipaddr registers = flash->virtual_registers; … … 51 51 } 52 52 53 static int clear_sst_fwhub_block_lock(struct flashc hip*flash, int offset)53 static int clear_sst_fwhub_block_lock(struct flashctx *flash, int offset) 54 54 { 55 55 chipaddr registers = flash->virtual_registers; … … 69 69 } 70 70 71 int printlock_sst_fwhub(struct flashc hip*flash)71 int printlock_sst_fwhub(struct flashctx *flash) 72 72 { 73 73 int i; … … 79 79 } 80 80 81 int unlock_sst_fwhub(struct flashc hip*flash)81 int unlock_sst_fwhub(struct flashctx *flash) 82 82 { 83 83 int i, ret=0; -
trunk/stm50flw0x0x.c
r1353 r1473 37 37 * before you can erase them or write to them. 38 38 */ 39 static int unlock_block_stm50flw0x0x(struct flashc hip*flash, int offset)39 static int unlock_block_stm50flw0x0x(struct flashctx *flash, int offset) 40 40 { 41 41 chipaddr wrprotect = flash->virtual_registers + 2; … … 80 80 } 81 81 82 int unlock_stm50flw0x0x(struct flashc hip*flash)82 int unlock_stm50flw0x0x(struct flashctx *flash) 83 83 { 84 84 int i; … … 95 95 96 96 /* This function is unused. */ 97 int erase_sector_stm50flw0x0x(struct flashc hip*flash, unsigned int sector, unsigned int sectorsize)97 int erase_sector_stm50flw0x0x(struct flashctx *flash, unsigned int sector, unsigned int sectorsize) 98 98 { 99 99 chipaddr bios = flash->virtual_memory + sector; -
trunk/w29ee011.c
r1414 r1473 25 25 * datasheets this is the only valid probe function for those chips. 26 26 */ 27 int probe_w29ee011(struct flashc hip*flash)27 int probe_w29ee011(struct flashctx *flash) 28 28 { 29 29 chipaddr bios = flash->virtual_memory; -
trunk/w39.c
r1470 r1473 22 22 #include "flash.h" 23 23 24 static int printlock_w39_fwh_block(struct flashc hip*flash, unsigned int offset)24 static int printlock_w39_fwh_block(struct flashctx *flash, unsigned int offset) 25 25 { 26 26 chipaddr wrprotect = flash->virtual_registers + offset + 2; … … 60 60 } 61 61 62 static int unlock_w39_fwh_block(struct flashc hip*flash, unsigned int offset)62 static int unlock_w39_fwh_block(struct flashctx *flash, unsigned int offset) 63 63 { 64 64 chipaddr wrprotect = flash->virtual_registers + offset + 2; … … 81 81 } 82 82 83 static uint8_t w39_idmode_readb(struct flashc hip*flash, unsigned int offset)83 static uint8_t w39_idmode_readb(struct flashctx *flash, unsigned int offset) 84 84 { 85 85 chipaddr bios = flash->virtual_memory; … … 128 128 } 129 129 130 static int printlock_w39_common(struct flashc hip*flash, unsigned int offset)130 static int printlock_w39_common(struct flashctx *flash, unsigned int offset) 131 131 { 132 132 uint8_t lock; … … 137 137 } 138 138 139 static int printlock_w39_fwh(struct flashc hip*flash)139 static int printlock_w39_fwh(struct flashctx *flash) 140 140 { 141 141 unsigned int i, total_size = flash->total_size * 1024; … … 149 149 } 150 150 151 static int unlock_w39_fwh(struct flashc hip*flash)151 static int unlock_w39_fwh(struct flashctx *flash) 152 152 { 153 153 unsigned int i, total_size = flash->total_size * 1024; … … 161 161 } 162 162 163 int printlock_w39l040(struct flashc hip* flash)163 int printlock_w39l040(struct flashctx * flash) 164 164 { 165 165 uint8_t lock; … … 177 177 } 178 178 179 int printlock_w39v040a(struct flashc hip*flash)179 int printlock_w39v040a(struct flashctx *flash) 180 180 { 181 181 uint8_t lock; … … 195 195 } 196 196 197 int printlock_w39v040b(struct flashc hip*flash)197 int printlock_w39v040b(struct flashctx *flash) 198 198 { 199 199 return printlock_w39_common(flash, 0x7fff2); 200 200 } 201 201 202 int printlock_w39v040c(struct flashc hip*flash)202 int printlock_w39v040c(struct flashctx *flash) 203 203 { 204 204 /* Typo in the datasheet? The other chips use 0x7fff2. */ … … 206 206 } 207 207 208 int printlock_w39v040fa(struct flashc hip*flash)208 int printlock_w39v040fa(struct flashctx *flash) 209 209 { 210 210 int ret = 0; … … 216 216 } 217 217 218 int printlock_w39v040fb(struct flashc hip*flash)218 int printlock_w39v040fb(struct flashctx *flash) 219 219 { 220 220 int ret = 0; … … 226 226 } 227 227 228 int printlock_w39v040fc(struct flashc hip*flash)228 int printlock_w39v040fc(struct flashctx *flash) 229 229 { 230 230 int ret = 0; … … 237 237 } 238 238 239 int printlock_w39v080a(struct flashc hip*flash)239 int printlock_w39v080a(struct flashctx *flash) 240 240 { 241 241 return printlock_w39_common(flash, 0xffff2); 242 242 } 243 243 244 int printlock_w39v080fa(struct flashc hip*flash)244 int printlock_w39v080fa(struct flashctx *flash) 245 245 { 246 246 int ret = 0; … … 252 252 } 253 253 254 int printlock_w39v080fa_dual(struct flashc hip*flash)254 int printlock_w39v080fa_dual(struct flashctx *flash) 255 255 { 256 256 msg_cinfo("Block locking for W39V080FA in dual mode is " … … 260 260 } 261 261 262 int unlock_w39v040fb(struct flashc hip*flash)262 int unlock_w39v040fb(struct flashctx *flash) 263 263 { 264 264 if (unlock_w39_fwh(flash)) … … 270 270 } 271 271 272 int unlock_w39v080fa(struct flashc hip*flash)272 int unlock_w39v080fa(struct flashctx *flash) 273 273 { 274 274 if (unlock_w39_fwh(flash)) -
trunk/wbsio_spi.c
r1470 r1473 63 63 static int wbsio_spi_send_command(unsigned int writecnt, unsigned int readcnt, 64 64 const unsigned char *writearr, unsigned char *readarr); 65 static int wbsio_spi_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len);65 static int wbsio_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 66 66 67 67 static const struct spi_programmer spi_programmer_wbsio = { … … 195 195 } 196 196 197 static int wbsio_spi_read(struct flashc hip*flash, uint8_t *buf, unsigned int start, unsigned int len)197 static int wbsio_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 198 198 { 199 199 return read_memmapped(flash, buf, start, len);
Note: See TracChangeset
for help on using the changeset viewer.
