Changeset 1473


Ignore:
Timestamp:
12/14/11 23:25:15 (5 months ago)
Author:
hailfinger
Message:

Use struct flashctx instead of struct flashchip for flash chip access

struct flashchip is used only for the flashchips array and for
operations which do not access hardware, e.g. printing a list of
supported flash chips.

struct flashctx (flash context) contains all data available in
struct flashchip, but it also contains runtime information like
mapping addresses. struct flashctx is expected to grow additional
members over time, a prime candidate being programmer info.
struct flashctx contains all of struct flashchip with identical
member layout, but struct flashctx has additional members at the end.

The separation between struct flashchip/flashctx shrinks the memory
requirement of the big flashchips array and allows future extension
of flashctx without having to worry about bloat.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@…>
Acked-by: Michael Karcher <flashrom@…>

Location:
trunk
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • trunk/82802ab.c

    r1470 r1473  
    4141} 
    4242 
    43 int probe_82802ab(struct flashchip *flash) 
     43int probe_82802ab(struct flashctx *flash) 
    4444{ 
    4545        chipaddr bios = flash->virtual_memory; 
     
    9090} 
    9191 
    92 uint8_t wait_82802ab(struct flashchip *flash) 
     92uint8_t wait_82802ab(struct flashctx *flash) 
    9393{ 
    9494        uint8_t status; 
     
    108108} 
    109109 
    110 int unlock_82802ab(struct flashchip *flash) 
     110int unlock_82802ab(struct flashctx *flash) 
    111111{ 
    112112        int i; 
     
    119119} 
    120120 
    121 int erase_block_82802ab(struct flashchip *flash, unsigned int page, 
     121int erase_block_82802ab(struct flashctx *flash, unsigned int page, 
    122122                        unsigned int pagesize) 
    123123{ 
     
    142142 
    143143/* chunksize is 1 */ 
    144 int write_82802ab(struct flashchip *flash, uint8_t *src, unsigned int start, unsigned int len) 
     144int write_82802ab(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 
    145145{ 
    146146        int i; 
     
    158158} 
    159159 
    160 int unlock_28f004s5(struct flashchip *flash) 
     160int unlock_28f004s5(struct flashctx *flash) 
    161161{ 
    162162        chipaddr bios = flash->virtual_memory; 
     
    210210} 
    211211 
    212 int unlock_lh28f008bjt(struct flashchip *flash) 
     212int unlock_lh28f008bjt(struct flashctx *flash) 
    213213{ 
    214214        chipaddr bios = flash->virtual_memory; 
  • trunk/a25.c

    r1399 r1473  
    3030} 
    3131 
    32 int spi_prettyprint_status_register_amic_a25l05p(struct flashchip *flash) 
     32int spi_prettyprint_status_register_amic_a25l05p(struct flashctx *flash) 
    3333{ 
    3434        uint8_t status; 
     
    4646} 
    4747 
    48 int spi_prettyprint_status_register_amic_a25l40p(struct flashchip *flash) 
     48int spi_prettyprint_status_register_amic_a25l40p(struct flashctx *flash) 
    4949{ 
    5050        uint8_t status; 
     
    6161} 
    6262 
    63 int spi_prettyprint_status_register_amic_a25l032(struct flashchip *flash) 
     63int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash) 
    6464{ 
    6565        uint8_t status; 
     
    7979} 
    8080 
    81 int spi_prettyprint_status_register_amic_a25lq032(struct flashchip *flash) 
     81int spi_prettyprint_status_register_amic_a25lq032(struct flashctx *flash) 
    8282{ 
    8383        uint8_t status; 
  • trunk/at25.c

    r1316 r1473  
    5858} 
    5959 
    60 int spi_prettyprint_status_register_at25df(struct flashchip *flash) 
     60int spi_prettyprint_status_register_at25df(struct flashctx *flash) 
    6161{ 
    6262        uint8_t status; 
     
    7373} 
    7474 
    75 int spi_prettyprint_status_register_at25df_sec(struct flashchip *flash) 
     75int spi_prettyprint_status_register_at25df_sec(struct flashctx *flash) 
    7676{ 
    7777        /* FIXME: We should check the security lockdown. */ 
     
    8181} 
    8282 
    83 int spi_prettyprint_status_register_at25f(struct flashchip *flash) 
     83int spi_prettyprint_status_register_at25f(struct flashctx *flash) 
    8484{ 
    8585        uint8_t status; 
     
    100100} 
    101101 
    102 int spi_prettyprint_status_register_at25fs010(struct flashchip *flash) 
     102int spi_prettyprint_status_register_at25fs010(struct flashctx *flash) 
    103103{ 
    104104        uint8_t status; 
     
    124124} 
    125125 
    126 int spi_prettyprint_status_register_at25fs040(struct flashchip *flash) 
     126int spi_prettyprint_status_register_at25fs040(struct flashctx *flash) 
    127127{ 
    128128        uint8_t status; 
     
    148148} 
    149149 
    150 int spi_prettyprint_status_register_atmel_at26df081a(struct flashchip *flash) 
     150int spi_prettyprint_status_register_atmel_at26df081a(struct flashctx *flash) 
    151151{ 
    152152        uint8_t status; 
     
    164164} 
    165165 
    166 int spi_disable_blockprotect_at25df(struct flashchip *flash) 
     166int spi_disable_blockprotect_at25df(struct flashctx *flash) 
    167167{ 
    168168        uint8_t status; 
     
    204204} 
    205205 
    206 int spi_disable_blockprotect_at25df_sec(struct flashchip *flash) 
     206int spi_disable_blockprotect_at25df_sec(struct flashctx *flash) 
    207207{ 
    208208        /* FIXME: We should check the security lockdown. */ 
     
    211211} 
    212212 
    213 int spi_disable_blockprotect_at25f(struct flashchip *flash) 
     213int spi_disable_blockprotect_at25f(struct flashctx *flash) 
    214214{ 
    215215        /* spi_disable_blockprotect_at25df is not really the right way to do 
     
    219219} 
    220220 
    221 int spi_disable_blockprotect_at25fs010(struct flashchip *flash) 
     221int spi_disable_blockprotect_at25fs010(struct flashctx *flash) 
    222222{ 
    223223        uint8_t status; 
     
    253253} 
    254254 
    255 int spi_disable_blockprotect_at25fs040(struct flashchip *flash) 
     255int spi_disable_blockprotect_at25fs040(struct flashctx *flash) 
    256256{ 
    257257        uint8_t status; 
  • trunk/chipdrivers.h

    r1470 r1473  
    2020 * Header file for flash chip drivers. Included from flash.h. 
    2121 * As a general rule, every function listed here should take a pointer to 
    22  * struct flashchip as first parameter. 
     22 * struct flashctx as first parameter. 
    2323 */ 
    2424 
     
    2626#define __CHIPDRIVERS_H__ 1 
    2727 
    28 #include "flash.h"      /* for chipaddr and flashchip */ 
     28#include "flash.h"      /* for chipaddr and flashctx */ 
    2929 
    3030/* spi.c, should probably be in spi_chip.c */ 
    31 int probe_spi_rdid(struct flashchip *flash); 
    32 int probe_spi_rdid4(struct flashchip *flash); 
    33 int probe_spi_rems(struct flashchip *flash); 
    34 int probe_spi_res1(struct flashchip *flash); 
    35 int probe_spi_res2(struct flashchip *flash); 
     31int probe_spi_rdid(struct flashctx *flash); 
     32int probe_spi_rdid4(struct flashctx *flash); 
     33int probe_spi_rems(struct flashctx *flash); 
     34int probe_spi_res1(struct flashctx *flash); 
     35int probe_spi_res2(struct flashctx *flash); 
    3636int spi_write_enable(void); 
    3737int spi_write_disable(void); 
    38 int spi_block_erase_20(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    39 int spi_block_erase_52(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    40 int spi_block_erase_d7(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    41 int spi_block_erase_d8(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    42 int spi_block_erase_60(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    43 int spi_block_erase_c7(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    44 int spi_chip_write_1(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    45 int spi_chip_write_256(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    46 int spi_chip_read(struct flashchip *flash, uint8_t *buf, unsigned int start, int unsigned len); 
     38int spi_block_erase_20(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     39int spi_block_erase_52(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     40int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     41int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     42int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     43int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     44int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     45int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     46int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); 
    4747uint8_t spi_read_status_register(void); 
    48 int spi_write_status_register(struct flashchip *flash, int status); 
     48int spi_write_status_register(struct flashctx *flash, int status); 
    4949void spi_prettyprint_status_register_bit(uint8_t status, int bit); 
    5050void spi_prettyprint_status_register_bp3210(uint8_t status, int bp); 
    5151void spi_prettyprint_status_register_welwip(uint8_t status); 
    52 int spi_prettyprint_status_register(struct flashchip *flash); 
    53 int spi_disable_blockprotect(struct flashchip *flash); 
     52int spi_prettyprint_status_register(struct flashctx *flash); 
     53int spi_disable_blockprotect(struct flashctx *flash); 
    5454int spi_byte_program(unsigned int addr, uint8_t databyte); 
    5555int spi_nbyte_program(unsigned int addr, uint8_t *bytes, unsigned int len); 
    5656int spi_nbyte_read(unsigned int addr, uint8_t *bytes, unsigned int len); 
    57 int spi_read_chunked(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 
    58 int spi_write_chunked(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 
    59 int spi_aai_write(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     57int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 
     58int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); 
     59int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    6060 
    6161/* opaque.c */ 
    62 int probe_opaque(struct flashchip *flash); 
    63 int read_opaque(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    64 int write_opaque(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    65 int erase_opaque(struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen); 
     62int probe_opaque(struct flashctx *flash); 
     63int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     64int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     65int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); 
    6666 
    6767/* a25.c */ 
    68 int spi_prettyprint_status_register_amic_a25l05p(struct flashchip *flash); 
    69 int spi_prettyprint_status_register_amic_a25l40p(struct flashchip *flash); 
    70 int spi_prettyprint_status_register_amic_a25l032(struct flashchip *flash); 
    71 int spi_prettyprint_status_register_amic_a25lq032(struct flashchip *flash); 
     68int spi_prettyprint_status_register_amic_a25l05p(struct flashctx *flash); 
     69int spi_prettyprint_status_register_amic_a25l40p(struct flashctx *flash); 
     70int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash); 
     71int spi_prettyprint_status_register_amic_a25lq032(struct flashctx *flash); 
    7272 
    7373/* at25.c */ 
    74 int spi_prettyprint_status_register_at25df(struct flashchip *flash); 
    75 int spi_prettyprint_status_register_at25df_sec(struct flashchip *flash); 
    76 int spi_prettyprint_status_register_at25f(struct flashchip *flash); 
    77 int spi_prettyprint_status_register_at25fs010(struct flashchip *flash); 
    78 int spi_prettyprint_status_register_at25fs040(struct flashchip *flash); 
    79 int spi_prettyprint_status_register_atmel_at26df081a(struct flashchip *flash); 
    80 int spi_disable_blockprotect_at25df(struct flashchip *flash); 
    81 int spi_disable_blockprotect_at25df_sec(struct flashchip *flash); 
    82 int spi_disable_blockprotect_at25f(struct flashchip *flash); 
    83 int spi_disable_blockprotect_at25fs010(struct flashchip *flash); 
    84 int spi_disable_blockprotect_at25fs040(struct flashchip *flash); 
     74int spi_prettyprint_status_register_at25df(struct flashctx *flash); 
     75int spi_prettyprint_status_register_at25df_sec(struct flashctx *flash); 
     76int spi_prettyprint_status_register_at25f(struct flashctx *flash); 
     77int spi_prettyprint_status_register_at25fs010(struct flashctx *flash); 
     78int spi_prettyprint_status_register_at25fs040(struct flashctx *flash); 
     79int spi_prettyprint_status_register_atmel_at26df081a(struct flashctx *flash); 
     80int spi_disable_blockprotect_at25df(struct flashctx *flash); 
     81int spi_disable_blockprotect_at25df_sec(struct flashctx *flash); 
     82int spi_disable_blockprotect_at25f(struct flashctx *flash); 
     83int spi_disable_blockprotect_at25fs010(struct flashctx *flash); 
     84int spi_disable_blockprotect_at25fs040(struct flashctx *flash); 
    8585 
    8686/* 82802ab.c */ 
    87 uint8_t wait_82802ab(struct flashchip *flash); 
    88 int probe_82802ab(struct flashchip *flash); 
    89 int erase_block_82802ab(struct flashchip *flash, unsigned int page, unsigned int pagesize); 
    90 int write_82802ab(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     87uint8_t wait_82802ab(struct flashctx *flash); 
     88int probe_82802ab(struct flashctx *flash); 
     89int erase_block_82802ab(struct flashctx *flash, unsigned int page, unsigned int pagesize); 
     90int write_82802ab(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    9191void print_status_82802ab(uint8_t status); 
    92 int unlock_82802ab(struct flashchip *flash); 
    93 int unlock_28f004s5(struct flashchip *flash); 
    94 int unlock_lh28f008bjt(struct flashchip *flash); 
     92int unlock_82802ab(struct flashctx *flash); 
     93int unlock_28f004s5(struct flashctx *flash); 
     94int unlock_lh28f008bjt(struct flashctx *flash); 
    9595 
    9696/* jedec.c */ 
     
    100100int write_byte_program_jedec(chipaddr bios, uint8_t *src, 
    101101                             chipaddr dst); 
    102 int probe_jedec(struct flashchip *flash); 
    103 int write_jedec(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    104 int write_jedec_1(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    105 int erase_sector_jedec(struct flashchip *flash, unsigned int page, unsigned int pagesize); 
    106 int erase_block_jedec(struct flashchip *flash, unsigned int page, unsigned int blocksize); 
    107 int erase_chip_block_jedec(struct flashchip *flash, unsigned int page, unsigned int blocksize); 
     102int probe_jedec(struct flashctx *flash); 
     103int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     104int write_jedec_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     105int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize); 
     106int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); 
     107int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize); 
    108108 
    109109/* m29f400bt.c */ 
    110 int probe_m29f400bt(struct flashchip *flash); 
    111 int block_erase_m29f400bt(struct flashchip *flash, unsigned int start, unsigned int len); 
    112 int block_erase_chip_m29f400bt(struct flashchip *flash, unsigned int start, unsigned int len); 
    113 int write_m29f400bt(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     110int probe_m29f400bt(struct flashctx *flash); 
     111int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); 
     112int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len); 
     113int write_m29f400bt(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    114114void protect_m29f400bt(chipaddr bios); 
    115115 
    116116/* pm49fl00x.c */ 
    117 int unlock_49fl00x(struct flashchip *flash); 
    118 int lock_49fl00x(struct flashchip *flash); 
     117int unlock_49fl00x(struct flashctx *flash); 
     118int lock_49fl00x(struct flashctx *flash); 
    119119 
    120120/* sst28sf040.c */ 
    121 int erase_chip_28sf040(struct flashchip *flash, unsigned int addr, unsigned int blocklen); 
    122 int erase_sector_28sf040(struct flashchip *flash, unsigned int address, unsigned int sector_size); 
    123 int write_28sf040(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    124 int unprotect_28sf040(struct flashchip *flash); 
    125 int protect_28sf040(struct flashchip *flash); 
     121int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen); 
     122int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size); 
     123int write_28sf040(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     124int unprotect_28sf040(struct flashctx *flash); 
     125int protect_28sf040(struct flashctx *flash); 
    126126 
    127127/* sst49lfxxxc.c */ 
    128 int erase_sector_49lfxxxc(struct flashchip *flash, unsigned int address, unsigned int sector_size); 
    129 int unlock_49lfxxxc(struct flashchip *flash); 
     128int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address, unsigned int sector_size); 
     129int unlock_49lfxxxc(struct flashctx *flash); 
    130130 
    131131/* sst_fwhub.c */ 
    132 int printlock_sst_fwhub(struct flashchip *flash); 
    133 int unlock_sst_fwhub(struct flashchip *flash); 
     132int printlock_sst_fwhub(struct flashctx *flash); 
     133int unlock_sst_fwhub(struct flashctx *flash); 
    134134 
    135135/* w39.c */ 
    136 int printlock_w39l040(struct flashchip * flash); 
    137 int printlock_w39v040a(struct flashchip *flash); 
    138 int printlock_w39v040b(struct flashchip *flash); 
    139 int printlock_w39v040c(struct flashchip *flash); 
    140 int printlock_w39v040fa(struct flashchip *flash); 
    141 int printlock_w39v040fb(struct flashchip *flash); 
    142 int printlock_w39v040fc(struct flashchip *flash); 
    143 int printlock_w39v080a(struct flashchip *flash); 
    144 int printlock_w39v080fa(struct flashchip *flash); 
    145 int printlock_w39v080fa_dual(struct flashchip *flash); 
    146 int unlock_w39v040fb(struct flashchip *flash); 
    147 int unlock_w39v080fa(struct flashchip *flash); 
     136int printlock_w39l040(struct flashctx * flash); 
     137int printlock_w39v040a(struct flashctx *flash); 
     138int printlock_w39v040b(struct flashctx *flash); 
     139int printlock_w39v040c(struct flashctx *flash); 
     140int printlock_w39v040fa(struct flashctx *flash); 
     141int printlock_w39v040fb(struct flashctx *flash); 
     142int printlock_w39v040fc(struct flashctx *flash); 
     143int printlock_w39v080a(struct flashctx *flash); 
     144int printlock_w39v080fa(struct flashctx *flash); 
     145int printlock_w39v080fa_dual(struct flashctx *flash); 
     146int unlock_w39v040fb(struct flashctx *flash); 
     147int unlock_w39v080fa(struct flashctx *flash); 
    148148 
    149149/* w29ee011.c */ 
    150 int probe_w29ee011(struct flashchip *flash); 
     150int probe_w29ee011(struct flashctx *flash); 
    151151 
    152152/* stm50flw0x0x.c */ 
    153 int erase_sector_stm50flw0x0x(struct flashchip *flash, unsigned int block, unsigned int blocksize); 
    154 int unlock_stm50flw0x0x(struct flashchip *flash); 
     153int erase_sector_stm50flw0x0x(struct flashctx *flash, unsigned int block, unsigned int blocksize); 
     154int unlock_stm50flw0x0x(struct flashctx *flash); 
    155155 
    156156#endif /* !__CHIPDRIVERS_H__ */ 
  • trunk/cli_classic.c

    r1463 r1473  
    170170        /* Probe for up to three flash chips. */ 
    171171        const struct flashchip *flash; 
    172         struct flashchip flashes[3]; 
    173         struct flashchip *fill_flash; 
     172        struct flashctx flashes[3]; 
     173        struct flashctx *fill_flash; 
    174174        const char *name; 
    175175        int namelen, opt, i; 
     
    410410#endif 
    411411 
     412        /* Does a chip with the requested name exist in the flashchips array? */ 
    412413        if (chip_to_probe) { 
    413414                for (flash = flashchips; flash && flash->name; flash++) 
  • trunk/dediprog.c

    r1470 r1473  
    206206 * @return      0 on success, 1 on failure 
    207207 */ 
    208 static int dediprog_spi_bulk_read(struct flashchip *flash, uint8_t *buf, 
     208static int dediprog_spi_bulk_read(struct flashctx *flash, uint8_t *buf, 
    209209                                  unsigned int start, unsigned int len) 
    210210{ 
     
    254254} 
    255255 
    256 static int dediprog_spi_read(struct flashchip *flash, uint8_t *buf, 
     256static int dediprog_spi_read(struct flashctx *flash, uint8_t *buf, 
    257257                             unsigned int start, unsigned int len) 
    258258{ 
     
    300300} 
    301301 
    302 static int dediprog_spi_write_256(struct flashchip *flash, uint8_t *buf, 
     302static int dediprog_spi_write_256(struct flashctx *flash, uint8_t *buf, 
    303303                                  unsigned int start, unsigned int len) 
    304304{ 
  • trunk/dummyflasher.c

    r1470 r1473  
    6363static int dummy_spi_send_command(unsigned int writecnt, unsigned int readcnt, 
    6464                      const unsigned char *writearr, unsigned char *readarr); 
    65 static int dummy_spi_write_256(struct flashchip *flash, uint8_t *buf, 
     65static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf, 
    6666                               unsigned int start, unsigned int len); 
    6767 
     
    549549} 
    550550 
    551 static int dummy_spi_write_256(struct flashchip *flash, uint8_t *buf, 
     551static int dummy_spi_write_256(struct flashctx *flash, uint8_t *buf, 
    552552                               unsigned int start, unsigned int len) 
    553553{ 
  • trunk/flash.h

    r1470 r1473  
    9494#define FEATURE_WRSR_EITHER     (FEATURE_WRSR_EWSR | FEATURE_WRSR_WREN) 
    9595 
     96struct flashctx; 
     97 
    9698struct flashchip { 
    9799        const char *vendor; 
     
    120122        uint32_t tested; 
    121123 
    122         int (*probe) (struct flashchip *flash); 
     124        int (*probe) (struct flashctx *flash); 
    123125 
    124126        /* Delay after "enter/exit ID mode" commands in microseconds. 
     
    141143                /* a block_erase function should try to erase one block of size 
    142144                 * 'blocklen' at address 'blockaddr' and return 0 on success. */ 
    143                 int (*block_erase) (struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen); 
     145                int (*block_erase) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); 
    144146        } block_erasers[NUM_ERASEFUNCTIONS]; 
    145147 
    146         int (*printlock) (struct flashchip *flash); 
    147         int (*unlock) (struct flashchip *flash); 
    148         int (*write) (struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    149         int (*read) (struct flashchip *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 { 
    151153                uint16_t min; 
    152154                uint16_t max; 
    153155        } voltage; 
    154  
     156}; 
     157 
     158/* struct flashctx must always contain struct flashchip at the beginning. */ 
     159struct 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; 
    155180        /* Some flash devices have an additional register space. */ 
    156         chipaddr virtual_memory; 
    157181        chipaddr virtual_registers; 
    158182}; 
     
    204228extern const char flashrom_version[]; 
    205229extern char *chip_to_probe; 
    206 void map_flash_registers(struct flashchip *flash); 
    207 int read_memmapped(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    208 int erase_flash(struct flashchip *flash); 
    209 int probe_flash(int startchip, struct flashchip *fill_flash, int force); 
    210 int read_flash_to_file(struct flashchip *flash, const char *filename); 
     230void map_flash_registers(struct flashctx *flash); 
     231int read_memmapped(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     232int erase_flash(struct flashctx *flash); 
     233int probe_flash(int startchip, struct flashctx *fill_flash, int force); 
     234int read_flash_to_file(struct flashctx *flash, const char *filename); 
    211235int min(int a, int b); 
    212236int max(int a, int b); 
    213237void tolower_string(char *str); 
    214238char *extract_param(char **haystack, const char *needle, const char *delim); 
    215 int verify_range(struct flashchip *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, const char *message); 
     239int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, const char *message); 
    216240int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granularity gran); 
    217241char *strcat_realloc(char *dest, const char *src); 
     
    220244void list_programmers_linebreak(int startcol, int cols, int paren); 
    221245int selfcheck(void); 
    222 int doit(struct flashchip *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it); 
     246int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it); 
    223247int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename); 
    224248int write_buf_to_file(unsigned char *buf, unsigned long size, const char *filename); 
     
    260284int read_romlayout(char *name); 
    261285int find_romentry(char *name); 
    262 int handle_romentries(struct flashchip *flash, uint8_t *oldcontents, uint8_t *newcontents); 
     286int handle_romentries(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents); 
    263287 
    264288/* spi.c */ 
  • trunk/flashrom.c

    r1470 r1473  
    269269static int may_register_shutdown = 0; 
    270270 
    271 static int check_block_eraser(const struct flashchip *flash, int k, int log); 
     271static int check_block_eraser(const struct flashctx *flash, int k, int log); 
    272272 
    273273/* Register a function to be executed on programmer shutdown. 
     
    405405} 
    406406 
    407 void map_flash_registers(struct flashchip *flash) 
     407void map_flash_registers(struct flashctx *flash) 
    408408{ 
    409409        size_t size = flash->total_size * 1024; 
     
    413413} 
    414414 
    415 int read_memmapped(struct flashchip *flash, uint8_t *buf, unsigned int start, int unsigned len) 
     415int read_memmapped(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len) 
    416416{ 
    417417        chip_readn(buf, flash->virtual_memory + start, len); 
     
    524524 
    525525/* Returns the number of well-defined erasers for a chip. */ 
    526 static unsigned int count_usable_erasers(const struct flashchip *flash) 
     526static unsigned int count_usable_erasers(const struct flashctx *flash) 
    527527{ 
    528528        unsigned int usable_erasefunctions = 0; 
     
    536536 
    537537/* start is an offset to the base address of the flash chip */ 
    538 int check_erased_range(struct flashchip *flash, unsigned int start, unsigned int len) 
     538int check_erased_range(struct flashctx *flash, unsigned int start, unsigned int len) 
    539539{ 
    540540        int ret; 
     
    559559 * @return      0 for success, -1 for failure 
    560560 */ 
    561 int verify_range(struct flashchip *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, 
     561int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, unsigned int len, 
    562562                 const char *message) 
    563563{ 
     
    939939} 
    940940 
    941 int probe_flash(int startchip, struct flashchip *fill_flash, int force) 
     941int probe_flash(int startchip, struct flashctx *fill_flash, int force) 
    942942{ 
    943943        const struct flashchip *flash; 
     
    977977 
    978978                /* Start filling in the dynamic data. */ 
    979                 *fill_flash = *flash; 
     979                memcpy(fill_flash, flash, sizeof(struct flashchip)); 
    980980 
    981981                base = flashbase ? flashbase : (0xffffffff - size + 1); 
     
    10301030} 
    10311031 
    1032 int verify_flash(struct flashchip *flash, uint8_t *buf) 
     1032int verify_flash(struct flashctx *flash, uint8_t *buf) 
    10331033{ 
    10341034        int ret; 
     
    11041104} 
    11051105 
    1106 int read_flash_to_file(struct flashchip *flash, const char *filename) 
     1106int read_flash_to_file(struct flashctx *flash, const char *filename) 
    11071107{ 
    11081108        unsigned long size = flash->total_size * 1024; 
     
    12031203} 
    12041204 
    1205 static int erase_and_write_block_helper(struct flashchip *flash, 
     1205static int erase_and_write_block_helper(struct flashctx *flash, 
    12061206                                        unsigned int start, unsigned int len, 
    12071207                                        uint8_t *curcontents, 
    12081208                                        uint8_t *newcontents, 
    1209                                         int (*erasefn) (struct flashchip *flash, 
     1209                                        int (*erasefn) (struct flashctx *flash, 
    12101210                                                        unsigned int addr, 
    12111211                                                        unsigned int len)) 
     
    12541254} 
    12551255 
    1256 static int walk_eraseregions(struct flashchip *flash, int erasefunction, 
    1257                              int (*do_something) (struct flashchip *flash, 
     1256static int walk_eraseregions(struct flashctx *flash, int erasefunction, 
     1257                             int (*do_something) (struct flashctx *flash, 
    12581258                                                  unsigned int addr, 
    12591259                                                  unsigned int len, 
     
    12611261                                                  uint8_t *param2, 
    12621262                                                  int (*erasefn) ( 
    1263                                                         struct flashchip *flash, 
     1263                                                        struct flashctx *flash, 
    12641264                                                        unsigned int addr, 
    12651265                                                        unsigned int len)), 
     
    12931293} 
    12941294 
    1295 static int check_block_eraser(const struct flashchip *flash, int k, int log) 
     1295static int check_block_eraser(const struct flashctx *flash, int k, int log) 
    12961296{ 
    12971297        struct block_eraser eraser = flash->block_erasers[k]; 
     
    13171317} 
    13181318 
    1319 int erase_and_write_flash(struct flashchip *flash, uint8_t *oldcontents, 
     1319int erase_and_write_flash(struct flashctx *flash, uint8_t *oldcontents, 
    13201320                          uint8_t *newcontents) 
    13211321{ 
     
    15351535                ret = 1; 
    15361536        } 
     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        } 
    15371544        for (flash = flashchips; flash && flash->name; flash++) 
    15381545                if (selfcheck_eraseblocks(flash)) 
     
    15601567} 
    15611568 
    1562 void check_chip_supported(const struct flashchip *flash) 
     1569void check_chip_supported(const struct flashctx *flash) 
    15631570{ 
    15641571        if (TEST_OK_MASK != (flash->tested & TEST_OK_MASK)) { 
     
    16121619 * function signature. 
    16131620 */ 
    1614 int chip_safety_check(struct flashchip *flash, int force, int read_it, int write_it, int erase_it, int verify_it) 
     1621int chip_safety_check(struct flashctx *flash, int force, int read_it, int write_it, int erase_it, int verify_it) 
    16151622{ 
    16161623        if (!programmer_may_write && (write_it || erase_it)) { 
     
    16731680 * Besides that, the function itself is a textbook example of abysmal code flow. 
    16741681 */ 
    1675 int doit(struct flashchip *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it) 
     1682int doit(struct flashctx *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it) 
    16761683{ 
    16771684        uint8_t *oldcontents; 
  • trunk/ichspi.c

    r1470 r1473  
    11761176} 
    11771177 
    1178 int ich_hwseq_probe(struct flashchip *flash) 
     1178int ich_hwseq_probe(struct flashctx *flash) 
    11791179{ 
    11801180        uint32_t total_size, boundary; 
     
    12291229} 
    12301230 
    1231 int ich_hwseq_block_erase(struct flashchip *flash, 
     1231int ich_hwseq_block_erase(struct flashctx *flash, 
    12321232                          unsigned int addr, 
    12331233                          unsigned int len) 
     
    12791279} 
    12801280 
    1281 int ich_hwseq_read(struct flashchip *flash, uint8_t *buf, unsigned int addr, 
     1281int ich_hwseq_read(struct flashctx *flash, uint8_t *buf, unsigned int addr, 
    12821282                   unsigned int len) 
    12831283{ 
     
    13171317} 
    13181318 
    1319 int ich_hwseq_write(struct flashchip *flash, uint8_t *buf, unsigned int addr, 
     1319int ich_hwseq_write(struct flashctx *flash, uint8_t *buf, unsigned int addr, 
    13201320                    unsigned int len) 
    13211321{ 
  • trunk/it87spi.c

    r1470 r1473  
    106106static int it8716f_spi_send_command(unsigned int writecnt, unsigned int readcnt, 
    107107                        const unsigned char *writearr, unsigned char *readarr); 
    108 static int it8716f_spi_chip_read(struct flashchip *flash, uint8_t *buf, 
     108static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf, 
    109109                                 unsigned int start, unsigned int len); 
    110 static int it8716f_spi_chip_write_256(struct flashchip *flash, uint8_t *buf, 
     110static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, 
    111111                                      unsigned int start, unsigned int len); 
    112112 
     
    313313 
    314314/* Page size is usually 256 bytes */ 
    315 static int it8716f_spi_page_program(struct flashchip *flash, uint8_t *buf, 
     315static int it8716f_spi_page_program(struct flashctx *flash, uint8_t *buf, 
    316316                                    unsigned int start) 
    317317{ 
     
    341341 * Need to read this big flash using firmware cycles 3 byte at a time. 
    342342 */ 
    343 static int it8716f_spi_chip_read(struct flashchip *flash, uint8_t *buf, 
     343static int it8716f_spi_chip_read(struct flashctx *flash, uint8_t *buf, 
    344344                                 unsigned int start, unsigned int len) 
    345345{ 
     
    359359} 
    360360 
    361 static int it8716f_spi_chip_write_256(struct flashchip *flash, uint8_t *buf, 
     361static int it8716f_spi_chip_write_256(struct flashctx *flash, uint8_t *buf, 
    362362                                      unsigned int start, unsigned int len) 
    363363{ 
  • trunk/jedec.c

    r1470 r1473  
    9292} 
    9393 
    94 static unsigned int getaddrmask(struct flashchip *flash) 
     94static unsigned int getaddrmask(struct flashctx *flash) 
    9595{ 
    9696        switch (flash->feature_bits & FEATURE_ADDR_MASK) { 
     
    111111} 
    112112 
    113 static void start_program_jedec_common(struct flashchip *flash, unsigned int mask) 
     113static void start_program_jedec_common(struct flashctx *flash, unsigned int mask) 
    114114{ 
    115115        chipaddr bios = flash->virtual_memory; 
     
    119119} 
    120120 
    121 static int probe_jedec_common(struct flashchip *flash, unsigned int mask) 
     121static int probe_jedec_common(struct flashctx *flash, unsigned int mask) 
    122122{ 
    123123        chipaddr bios = flash->virtual_memory; 
     
    238238} 
    239239 
    240 static int erase_sector_jedec_common(struct flashchip *flash, unsigned int page, 
     240static int erase_sector_jedec_common(struct flashctx *flash, unsigned int page, 
    241241                              unsigned int pagesize, unsigned int mask) 
    242242{ 
     
    268268} 
    269269 
    270 static int erase_block_jedec_common(struct flashchip *flash, unsigned int block, 
     270static int erase_block_jedec_common(struct flashctx *flash, unsigned int block, 
    271271                             unsigned int blocksize, unsigned int mask) 
    272272{ 
     
    298298} 
    299299 
    300 static int erase_chip_jedec_common(struct flashchip *flash, unsigned int mask) 
     300static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask) 
    301301{ 
    302302        chipaddr bios = flash->virtual_memory; 
     
    326326} 
    327327 
    328 static int write_byte_program_jedec_common(struct flashchip *flash, uint8_t *src, 
     328static int write_byte_program_jedec_common(struct flashctx *flash, uint8_t *src, 
    329329                             chipaddr dst, unsigned int mask) 
    330330{ 
     
    356356 
    357357/* chunksize is 1 */ 
    358 int write_jedec_1(struct flashchip *flash, uint8_t *src, unsigned int start, unsigned int len) 
     358int write_jedec_1(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 
    359359{ 
    360360        int i, failed = 0; 
     
    377377} 
    378378 
    379 int write_page_write_jedec_common(struct flashchip *flash, uint8_t *src, unsigned int start, unsigned int page_size) 
     379int write_page_write_jedec_common(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int page_size) 
    380380{ 
    381381        int i, tried = 0, failed; 
     
    425425 * Each page is written separately in chunks with a maximum size of chunksize. 
    426426 */ 
    427 int write_jedec(struct flashchip *flash, uint8_t *buf, unsigned int start, int unsigned len) 
     427int write_jedec(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len) 
    428428{ 
    429429        unsigned int i, starthere, lenhere; 
    430430        /* FIXME: page_size is the wrong variable. We need max_writechunk_size 
    431          * in struct flashchip to do this properly. All chips using 
     431         * in struct flashctx to do this properly. All chips using 
    432432         * write_jedec have page_size set to max_writechunk_size, so 
    433433         * we're OK for now. 
     
    459459 
    460460/* erase chip with block_erase() prototype */ 
    461 int erase_chip_block_jedec(struct flashchip *flash, unsigned int addr, 
     461int erase_chip_block_jedec(struct flashctx *flash, unsigned int addr, 
    462462                           unsigned int blocksize) 
    463463{ 
     
    473473} 
    474474 
    475 int probe_jedec(struct flashchip *flash) 
     475int probe_jedec(struct flashctx *flash) 
    476476{ 
    477477        unsigned int mask; 
     
    481481} 
    482482 
    483 int erase_sector_jedec(struct flashchip *flash, unsigned int page, unsigned int size) 
     483int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int size) 
    484484{ 
    485485        unsigned int mask; 
     
    489489} 
    490490 
    491 int erase_block_jedec(struct flashchip *flash, unsigned int page, unsigned int size) 
     491int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int size) 
    492492{ 
    493493        unsigned int mask; 
     
    497497} 
    498498 
    499 int erase_chip_jedec(struct flashchip *flash) 
     499int erase_chip_jedec(struct flashctx *flash) 
    500500{ 
    501501        unsigned int mask; 
  • trunk/layout.c

    r1310 r1473  
    241241} 
    242242 
    243 int handle_romentries(struct flashchip *flash, uint8_t *oldcontents, uint8_t *newcontents) 
     243int handle_romentries(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents) 
    244244{ 
    245245        unsigned int start = 0; 
  • trunk/linux_spi.c

    r1470 r1473  
    3737static int linux_spi_send_command(unsigned int writecnt, unsigned int readcnt, 
    3838                        const unsigned char *txbuf, unsigned char *rxbuf); 
    39 static int linux_spi_read(struct flashchip *flash, uint8_t *buf, 
     39static int linux_spi_read(struct flashctx *flash, uint8_t *buf, 
    4040                          unsigned int start, unsigned int len); 
    41 static int linux_spi_write_256(struct flashchip *flash, uint8_t *buf, 
     41static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, 
    4242                               unsigned int start, unsigned int len); 
    4343 
     
    132132} 
    133133 
    134 static int linux_spi_read(struct flashchip *flash, uint8_t *buf, 
     134static int linux_spi_read(struct flashctx *flash, uint8_t *buf, 
    135135                          unsigned int start, unsigned int len) 
    136136{ 
     
    138138} 
    139139 
    140 static int linux_spi_write_256(struct flashchip *flash, uint8_t *buf, 
     140static int linux_spi_write_256(struct flashctx *flash, uint8_t *buf, 
    141141                               unsigned int start, unsigned int len) 
    142142{ 
  • trunk/m29f400bt.c

    r1470 r1473  
    2929 
    3030/* chunksize is 1 */ 
    31 int write_m29f400bt(struct flashchip *flash, uint8_t *src, unsigned int start, unsigned int len) 
     31int write_m29f400bt(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 
    3232{ 
    3333        int i; 
     
    5656} 
    5757 
    58 int probe_m29f400bt(struct flashchip *flash) 
     58int probe_m29f400bt(struct flashctx *flash) 
    5959{ 
    6060        chipaddr bios = flash->virtual_memory; 
     
    8787} 
    8888 
    89 int erase_m29f400bt(struct flashchip *flash) 
     89int erase_m29f400bt(struct flashctx *flash) 
    9090{ 
    9191        chipaddr bios = flash->virtual_memory; 
     
    106106} 
    107107 
    108 int block_erase_m29f400bt(struct flashchip *flash, unsigned int start, unsigned int len) 
     108int block_erase_m29f400bt(struct flashctx *flash, unsigned int start, unsigned int len) 
    109109{ 
    110110        chipaddr bios = flash->virtual_memory; 
     
    126126} 
    127127 
    128 int block_erase_chip_m29f400bt(struct flashchip *flash, unsigned int address, unsigned int blocklen) 
     128int block_erase_chip_m29f400bt(struct flashctx *flash, unsigned int address, unsigned int blocklen) 
    129129{ 
    130130        if ((address != 0) || (blocklen != flash->total_size * 1024)) { 
  • trunk/opaque.c

    r1470 r1473  
    4242const struct opaque_programmer *opaque_programmer = &opaque_programmer_none; 
    4343 
    44 int probe_opaque(struct flashchip *flash) 
     44int probe_opaque(struct flashctx *flash) 
    4545{ 
    4646        if (!opaque_programmer->probe) { 
     
    5454} 
    5555 
    56 int read_opaque(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     56int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    5757{ 
    5858        if (!opaque_programmer->read) { 
     
    6565} 
    6666 
    67 int write_opaque(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     67int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    6868{ 
    6969        if (!opaque_programmer->write) { 
     
    7676} 
    7777 
    78 int erase_opaque(struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen) 
     78int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen) 
    7979{ 
    8080        if (!opaque_programmer->erase) { 
  • trunk/pm49fl00x.c

    r1470 r1473  
    3737} 
    3838 
    39 int unlock_49fl00x(struct flashchip *flash) 
     39int unlock_49fl00x(struct flashctx *flash) 
    4040{ 
    4141        write_lockbits_49fl00x(flash->virtual_registers, flash->total_size * 1024, 0, flash->page_size); 
     
    4343} 
    4444 
    45 int lock_49fl00x(struct flashchip *flash) 
     45int lock_49fl00x(struct flashctx *flash) 
    4646{ 
    4747        write_lockbits_49fl00x(flash->virtual_registers, flash->total_size * 1024, 1, flash->page_size); 
  • trunk/programmer.h

    r1470 r1473  
    2525#define __PROGRAMMER_H__ 1 
    2626 
    27 #include "flash.h"      /* for chipaddr and flashchip */ 
     27#include "flash.h"      /* for chipaddr and flashctx */ 
    2828 
    2929enum programmer { 
     
    514514extern int programmer_may_write; 
    515515extern unsigned long flashbase; 
    516 void check_chip_supported(const struct flashchip *flash); 
     516void check_chip_supported(const struct flashctx *flash); 
    517517int check_max_decode(enum chipbustype buses, uint32_t size); 
    518518char *extract_programmer_param(const char *param_name); 
     
    571571 
    572572        /* Optimized functions for this programmer */ 
    573         int (*read)(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    574         int (*write_256)(struct flashchip *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); 
    575575}; 
    576576 
     
    579579                             const unsigned char *writearr, unsigned char *readarr); 
    580580int default_spi_send_multicommand(struct spi_command *cmds); 
    581 int default_spi_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    582 int default_spi_write_256(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     581int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     582int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    583583void register_spi_programmer(const struct spi_programmer *programmer); 
    584584 
     
    625625        int max_data_write; 
    626626        /* Specific functions for this programmer */ 
    627         int (*probe) (struct flashchip *flash); 
    628         int (*read) (struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    629         int (*write) (struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    630         int (*erase) (struct flashchip *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); 
    631631}; 
    632632extern const struct opaque_programmer *opaque_programmer; 
  • trunk/serprog.c

    r1470 r1473  
    303303                                    const unsigned char *writearr, 
    304304                                    unsigned char *readarr); 
    305 static int serprog_spi_read(struct flashchip *flash, uint8_t *buf, 
     305static int serprog_spi_read(struct flashctx *flash, uint8_t *buf, 
    306306                            unsigned int start, unsigned int len); 
    307307static struct spi_programmer spi_programmer_serprog = { 
     
    823823 * non-contiguous address space (like AT45DB161D). When spi_read_chunked is 
    824824 * fixed this method can be removed. */ 
    825 static int serprog_spi_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     825static int serprog_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    826826{ 
    827827        unsigned int i, cur_len; 
  • trunk/sharplhf00l04.c

    r1353 r1473  
    2727 */ 
    2828 
    29 int erase_lhf00l04_block(struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen) 
     29int erase_lhf00l04_block(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen) 
    3030{ 
    3131        chipaddr bios = flash->virtual_memory + blockaddr; 
  • trunk/spi.c

    r1470 r1473  
    9898} 
    9999 
    100 int default_spi_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     100int default_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    101101{ 
    102102        unsigned int max_data = spi_programmer->max_data_read; 
     
    110110} 
    111111 
    112 int default_spi_write_256(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     112int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    113113{ 
    114114        unsigned int max_data = spi_programmer->max_data_write; 
     
    122122} 
    123123 
    124 int spi_chip_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     124int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    125125{ 
    126126        unsigned int addrbase = 0; 
     
    161161 */ 
    162162/* real chunksize is up to 256, logical chunksize is 256 */ 
    163 int spi_chip_write_256(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     163int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    164164{ 
    165165        if (!spi_programmer->write_256) { 
  • trunk/spi25.c

    r1470 r1473  
    114114} 
    115115 
    116 static int probe_spi_rdid_generic(struct flashchip *flash, int bytes) 
     116static int probe_spi_rdid_generic(struct flashctx *flash, int bytes) 
    117117{ 
    118118        unsigned char readarr[4]; 
     
    168168} 
    169169 
    170 int probe_spi_rdid(struct flashchip *flash) 
     170int probe_spi_rdid(struct flashctx *flash) 
    171171{ 
    172172        return probe_spi_rdid_generic(flash, 3); 
    173173} 
    174174 
    175 int probe_spi_rdid4(struct flashchip *flash) 
     175int probe_spi_rdid4(struct flashctx *flash) 
    176176{ 
    177177        /* Some SPI controllers do not support commands with writecnt=1 and 
     
    195195} 
    196196 
    197 int probe_spi_rems(struct flashchip *flash) 
     197int probe_spi_rems(struct flashctx *flash) 
    198198{ 
    199199        unsigned char readarr[JEDEC_REMS_INSIZE]; 
     
    231231} 
    232232 
    233 int probe_spi_res1(struct flashchip *flash) 
     233int probe_spi_res1(struct flashctx *flash) 
    234234{ 
    235235        static const unsigned char allff[] = {0xff, 0xff, 0xff}; 
     
    275275} 
    276276 
    277 int probe_spi_res2(struct flashchip *flash) 
     277int probe_spi_res2(struct flashctx *flash) 
    278278{ 
    279279        unsigned char readarr[2]; 
     
    411411} 
    412412 
    413 int spi_prettyprint_status_register(struct flashchip *flash) 
     413int spi_prettyprint_status_register(struct flashctx *flash) 
    414414{ 
    415415        uint8_t status; 
     
    445445} 
    446446 
    447 int spi_chip_erase_60(struct flashchip *flash) 
     447int spi_chip_erase_60(struct flashctx *flash) 
    448448{ 
    449449        int result; 
     
    482482} 
    483483 
    484 int spi_chip_erase_c7(struct flashchip *flash) 
     484int spi_chip_erase_c7(struct flashctx *flash) 
    485485{ 
    486486        int result; 
     
    518518} 
    519519 
    520 int spi_block_erase_52(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     520int spi_block_erase_52(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    521521{ 
    522522        int result; 
     
    564564 * 4-32k non-uniform for EON 
    565565 */ 
    566 int spi_block_erase_d8(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     566int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    567567{ 
    568568        int result; 
     
    608608 * 4k for PMC 
    609609 */ 
    610 int spi_block_erase_d7(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     610int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    611611{ 
    612612        int result; 
     
    650650 
    651651/* Sector size is usually 4k, though Macronix eliteflash has 64k */ 
    652 int spi_block_erase_20(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     652int spi_block_erase_20(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    653653{ 
    654654        int result; 
     
    691691} 
    692692 
    693 int spi_block_erase_60(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     693int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    694694{ 
    695695        if ((addr != 0) || (blocklen != flash->total_size * 1024)) { 
     
    701701} 
    702702 
    703 int spi_block_erase_c7(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     703int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    704704{ 
    705705        if ((addr != 0) || (blocklen != flash->total_size * 1024)) { 
     
    729729 * generic that this... 
    730730 */ 
    731 static int spi_write_status_register_ewsr(struct flashchip *flash, int status) 
     731static int spi_write_status_register_ewsr(struct flashctx *flash, int status) 
    732732{ 
    733733        int result; 
     
    777777} 
    778778 
    779 static int spi_write_status_register_wren(struct flashchip *flash, int status) 
     779static int spi_write_status_register_wren(struct flashctx *flash, int status) 
    780780{ 
    781781        int result; 
     
    825825} 
    826826 
    827 int spi_write_status_register(struct flashchip *flash, int status) 
     827int spi_write_status_register(struct flashctx *flash, int status) 
    828828{ 
    829829        int ret = 1; 
     
    927927 * part is chip specific). Repeat once. 
    928928 */ 
    929 int spi_disable_blockprotect(struct flashchip *flash) 
     929int spi_disable_blockprotect(struct flashctx *flash) 
    930930{ 
    931931        uint8_t status; 
     
    969969 * Each page is read separately in chunks with a maximum size of chunksize. 
    970970 */ 
    971 int spi_read_chunked(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 
     971int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 
    972972{ 
    973973        int rc = 0; 
     
    10081008 * Each page is written separately in chunks with a maximum size of chunksize. 
    10091009 */ 
    1010 int spi_write_chunked(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 
     1010int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize) 
    10111011{ 
    10121012        int rc = 0; 
    10131013        unsigned int i, j, starthere, lenhere, towrite; 
    10141014        /* FIXME: page_size is the wrong variable. We need max_writechunk_size 
    1015          * in struct flashchip to do this properly. All chips using 
     1015         * in struct flashctx to do this properly. All chips using 
    10161016         * spi_chip_write_256 have page_size set to max_writechunk_size, so 
    10171017         * we're OK for now. 
     
    10561056 */ 
    10571057/* real chunksize is 1, logical chunksize is 1 */ 
    1058 int spi_chip_write_1(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     1058int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    10591059{ 
    10601060        unsigned int i; 
     
    10721072} 
    10731073 
    1074 int spi_aai_write(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     1074int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    10751075{ 
    10761076        uint32_t pos = start; 
  • trunk/sst28sf040.c

    r1470 r1473  
    3131#define READ_ID                 0x90 
    3232 
    33 int protect_28sf040(struct flashchip *flash) 
     33int protect_28sf040(struct flashctx *flash) 
    3434{ 
    3535        chipaddr bios = flash->virtual_memory; 
     
    4646} 
    4747 
    48 int unprotect_28sf040(struct flashchip *flash) 
     48int unprotect_28sf040(struct flashctx *flash) 
    4949{ 
    5050        chipaddr bios = flash->virtual_memory; 
     
    6161} 
    6262 
    63 int erase_sector_28sf040(struct flashchip *flash, unsigned int address, unsigned int sector_size) 
     63int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size) 
    6464{ 
    6565        chipaddr bios = flash->virtual_memory; 
     
    7777 
    7878/* chunksize is 1 */ 
    79 int write_28sf040(struct flashchip *flash, uint8_t *src, unsigned int start, unsigned int len) 
     79int write_28sf040(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 
    8080{ 
    8181        int i; 
     
    101101} 
    102102 
    103 static int erase_28sf040(struct flashchip *flash) 
     103static int erase_28sf040(struct flashctx *flash) 
    104104{ 
    105105        chipaddr bios = flash->virtual_memory; 
     
    115115} 
    116116 
    117 int erase_chip_28sf040(struct flashchip *flash, unsigned int addr, unsigned int blocklen) 
     117int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen) 
    118118{ 
    119119        if ((addr != 0) || (blocklen != flash->total_size * 1024)) { 
  • trunk/sst49lfxxxc.c

    r1470 r1473  
    2424#include "chipdrivers.h" 
    2525 
    26 static int write_lockbits_block_49lfxxxc(struct flashchip *flash, unsigned long address, unsigned char bits) 
     26static int write_lockbits_block_49lfxxxc(struct flashctx *flash, unsigned long address, unsigned char bits) 
    2727{ 
    2828        unsigned long lock = flash->virtual_registers + address + 2; 
     
    3333} 
    3434 
    35 static int write_lockbits_49lfxxxc(struct flashchip *flash, unsigned char bits) 
     35static int write_lockbits_49lfxxxc(struct flashctx *flash, unsigned char bits) 
    3636{ 
    3737        chipaddr registers = flash->virtual_registers; 
     
    5555} 
    5656 
    57 int unlock_49lfxxxc(struct flashchip *flash) 
     57int unlock_49lfxxxc(struct flashctx *flash) 
    5858{ 
    5959        return write_lockbits_49lfxxxc(flash, 0); 
    6060} 
    6161 
    62 int erase_sector_49lfxxxc(struct flashchip *flash, unsigned int address, unsigned int sector_size) 
     62int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address, unsigned int sector_size) 
    6363{ 
    6464        uint8_t status; 
  • trunk/sst_fwhub.c

    r1414 r1473  
    2525#include "flash.h" 
    2626 
    27 static int check_sst_fwhub_block_lock(struct flashchip *flash, int offset) 
     27static int check_sst_fwhub_block_lock(struct flashctx *flash, int offset) 
    2828{ 
    2929        chipaddr registers = flash->virtual_registers; 
     
    5151} 
    5252 
    53 static int clear_sst_fwhub_block_lock(struct flashchip *flash, int offset) 
     53static int clear_sst_fwhub_block_lock(struct flashctx *flash, int offset) 
    5454{ 
    5555        chipaddr registers = flash->virtual_registers; 
     
    6969} 
    7070 
    71 int printlock_sst_fwhub(struct flashchip *flash) 
     71int printlock_sst_fwhub(struct flashctx *flash) 
    7272{ 
    7373        int i; 
     
    7979} 
    8080 
    81 int unlock_sst_fwhub(struct flashchip *flash) 
     81int unlock_sst_fwhub(struct flashctx *flash) 
    8282{ 
    8383        int i, ret=0; 
  • trunk/stm50flw0x0x.c

    r1353 r1473  
    3737 * before you can erase them or write to them. 
    3838 */ 
    39 static int unlock_block_stm50flw0x0x(struct flashchip *flash, int offset) 
     39static int unlock_block_stm50flw0x0x(struct flashctx *flash, int offset) 
    4040{ 
    4141        chipaddr wrprotect = flash->virtual_registers + 2; 
     
    8080} 
    8181 
    82 int unlock_stm50flw0x0x(struct flashchip *flash) 
     82int unlock_stm50flw0x0x(struct flashctx *flash) 
    8383{ 
    8484        int i; 
     
    9595 
    9696/* This function is unused. */ 
    97 int erase_sector_stm50flw0x0x(struct flashchip *flash, unsigned int sector, unsigned int sectorsize) 
     97int erase_sector_stm50flw0x0x(struct flashctx *flash, unsigned int sector, unsigned int sectorsize) 
    9898{ 
    9999        chipaddr bios = flash->virtual_memory + sector; 
  • trunk/w29ee011.c

    r1414 r1473  
    2525 * datasheets this is the only valid probe function for those chips. 
    2626 */ 
    27 int probe_w29ee011(struct flashchip *flash) 
     27int probe_w29ee011(struct flashctx *flash) 
    2828{ 
    2929        chipaddr bios = flash->virtual_memory; 
  • trunk/w39.c

    r1470 r1473  
    2222#include "flash.h" 
    2323 
    24 static int printlock_w39_fwh_block(struct flashchip *flash, unsigned int offset) 
     24static int printlock_w39_fwh_block(struct flashctx *flash, unsigned int offset) 
    2525{ 
    2626        chipaddr wrprotect = flash->virtual_registers + offset + 2; 
     
    6060} 
    6161 
    62 static int unlock_w39_fwh_block(struct flashchip *flash, unsigned int offset) 
     62static int unlock_w39_fwh_block(struct flashctx *flash, unsigned int offset) 
    6363{ 
    6464        chipaddr wrprotect = flash->virtual_registers + offset + 2; 
     
    8181} 
    8282 
    83 static uint8_t w39_idmode_readb(struct flashchip *flash, unsigned int offset) 
     83static uint8_t w39_idmode_readb(struct flashctx *flash, unsigned int offset) 
    8484{ 
    8585        chipaddr bios = flash->virtual_memory; 
     
    128128} 
    129129 
    130 static int printlock_w39_common(struct flashchip *flash, unsigned int offset) 
     130static int printlock_w39_common(struct flashctx *flash, unsigned int offset) 
    131131{ 
    132132        uint8_t lock; 
     
    137137} 
    138138 
    139 static int printlock_w39_fwh(struct flashchip *flash) 
     139static int printlock_w39_fwh(struct flashctx *flash) 
    140140{ 
    141141        unsigned int i, total_size = flash->total_size * 1024; 
     
    149149} 
    150150 
    151 static int unlock_w39_fwh(struct flashchip *flash) 
     151static int unlock_w39_fwh(struct flashctx *flash) 
    152152{ 
    153153        unsigned int i, total_size = flash->total_size * 1024; 
     
    161161} 
    162162 
    163 int printlock_w39l040(struct flashchip * flash) 
     163int printlock_w39l040(struct flashctx * flash) 
    164164{ 
    165165        uint8_t lock; 
     
    177177} 
    178178 
    179 int printlock_w39v040a(struct flashchip *flash) 
     179int printlock_w39v040a(struct flashctx *flash) 
    180180{ 
    181181        uint8_t lock; 
     
    195195} 
    196196 
    197 int printlock_w39v040b(struct flashchip *flash) 
     197int printlock_w39v040b(struct flashctx *flash) 
    198198{ 
    199199        return printlock_w39_common(flash, 0x7fff2); 
    200200} 
    201201 
    202 int printlock_w39v040c(struct flashchip *flash) 
     202int printlock_w39v040c(struct flashctx *flash) 
    203203{ 
    204204        /* Typo in the datasheet? The other chips use 0x7fff2. */ 
     
    206206} 
    207207 
    208 int printlock_w39v040fa(struct flashchip *flash) 
     208int printlock_w39v040fa(struct flashctx *flash) 
    209209{ 
    210210        int ret = 0; 
     
    216216} 
    217217 
    218 int printlock_w39v040fb(struct flashchip *flash) 
     218int printlock_w39v040fb(struct flashctx *flash) 
    219219{ 
    220220        int ret = 0; 
     
    226226} 
    227227 
    228 int printlock_w39v040fc(struct flashchip *flash) 
     228int printlock_w39v040fc(struct flashctx *flash) 
    229229{ 
    230230        int ret = 0; 
     
    237237} 
    238238 
    239 int printlock_w39v080a(struct flashchip *flash) 
     239int printlock_w39v080a(struct flashctx *flash) 
    240240{ 
    241241        return printlock_w39_common(flash, 0xffff2); 
    242242} 
    243243 
    244 int printlock_w39v080fa(struct flashchip *flash) 
     244int printlock_w39v080fa(struct flashctx *flash) 
    245245{ 
    246246        int ret = 0; 
     
    252252} 
    253253 
    254 int printlock_w39v080fa_dual(struct flashchip *flash) 
     254int printlock_w39v080fa_dual(struct flashctx *flash) 
    255255{ 
    256256        msg_cinfo("Block locking for W39V080FA in dual mode is " 
     
    260260} 
    261261 
    262 int unlock_w39v040fb(struct flashchip *flash) 
     262int unlock_w39v040fb(struct flashctx *flash) 
    263263{ 
    264264        if (unlock_w39_fwh(flash)) 
     
    270270} 
    271271 
    272 int unlock_w39v080fa(struct flashchip *flash) 
     272int unlock_w39v080fa(struct flashctx *flash) 
    273273{ 
    274274        if (unlock_w39_fwh(flash)) 
  • trunk/wbsio_spi.c

    r1470 r1473  
    6363static int wbsio_spi_send_command(unsigned int writecnt, unsigned int readcnt, 
    6464                      const unsigned char *writearr, unsigned char *readarr); 
    65 static int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len); 
     65static int wbsio_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); 
    6666 
    6767static const struct spi_programmer spi_programmer_wbsio = { 
     
    195195} 
    196196 
    197 static int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, unsigned int start, unsigned int len) 
     197static int wbsio_spi_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) 
    198198{ 
    199199        return read_memmapped(flash, buf, start, len); 
Note: See TracChangeset for help on using the changeset viewer.