1. 23 Nov, 2011 1 commit
  2. 18 Sep, 2011 2 commits
  3. 26 Jun, 2011 1 commit
  4. 13 Oct, 2010 2 commits
  5. 10 Oct, 2010 2 commits
    • Carl-Daniel Hailfinger's avatar
      Simplify calls to inner write functions · 184b95f4
      Carl-Daniel Hailfinger authored
      
      No behavioural changes, just equivalence transformations.
      
      Corresponding to flashrom svn r1209.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      184b95f4
    • Carl-Daniel Hailfinger's avatar
      Unify chip write functions · b30a5ed4
      Carl-Daniel Hailfinger authored
      
      The currently used write functions (wrappers) all use helpers which
      perform the actual write (inner functions).
      
      The signature of the write wrappers is: int write_chip(struct flashchip
      *flash, uint8_t * buf);
      
      The signature of the inner write functions varied a lot. This patch
      changes them to: int write_part(struct flashchip *flash, uint8_t *src,
      int start, int len);
      
      Did you know that flashrom has only 8 inner write functions for all
      flash chips? write_page_write_jedec_common write_sector_jedec_common
      write_sector_28sf040 spi_chip_write_256_new spi_chip_write_1_new
      spi_aai_write_new write_page_82802ab write_page_m29f400bt
      
      Export all inner write functions.
      
      Change the function signature of wait_82802ab to eliminate single-use
      variables.
      
      Remove an error message in write_page_m29f400bt which was printed for
      every byte written regardless of success.
      
      Add sharplhf00l04.c to the list of flash chip drivers in the Makefile.
      While the functions in there are unused, I suspect we will need them
      later, and by hooking the file up we ensure that compilation won't
      break.
      
      Corresponding to flashrom svn r1208.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      b30a5ed4
  6. 08 Oct, 2010 2 commits
  7. 03 Jul, 2010 1 commit
  8. 24 Mar, 2010 1 commit
  9. 16 Mar, 2010 1 commit
  10. 26 Feb, 2010 1 commit
  11. 20 Jan, 2010 1 commit
    • Sean Nelson's avatar
      Convert various SST chips to use block_erasers · 51c83fb2
      Sean Nelson authored
      
      Convert the following chips to block_erasers: SST28SF040A SST29EE010
      SST29LE010 SST29EE020A SST29LE020 SST39SF010A SST39SF020A SST39SF040
      SST39VF512 SST39VF010 SST39VF020 SST39VF040 SST39VF080 SST49LF002A/B
      SST49LF003A/B SST49LF004C SST49LF008A SST49LF008C SST49LF016C SST49LF020
      SST49LF020A SST49LF040 SST49LF040B SST49LF080A SST49LF160C .
      
      Extend sst28sf040 to include chip and sector functions for block_eraser.
      Extend sst49lfxxxc to include chip, sector, block erasers functions for
      block_erasers. Extend sst_fwhub to include chip and sector functions for
      block_erasers. Add copyrights to changed files. Killed erase_sst_fwhub.
      Killed erase_49lfxxxc. NULL A/A mux mode full chip erasers. Ignore block
      locks in erase/write. Change comments from "PP mode" to "A/A mux mode"
      
      Corresponding to flashrom svn r877.
      
      Signed-off-by: Sean Nelson <audiohacked@gmail.com> 
      Acked-by: default avatarMichael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
      51c83fb2
  12. 16 Sep, 2009 1 commit
  13. 02 Sep, 2009 1 commit
  14. 15 Jun, 2009 1 commit
  15. 05 Jun, 2009 1 commit
  16. 16 May, 2009 3 commits
  17. 06 Mar, 2009 2 commits
    • Carl-Daniel Hailfinger's avatar
      FreeBSD definitions of (read|write)[bwl] collide with our own · 0472f3d8
      Carl-Daniel Hailfinger authored
      
      Before we attempt trickery, we can simply rename the accessor functions.
      
      Patch created with the help of Coccinelle.
      
      Corresponding to flashrom svn r420 and coreboot v2 svn r3984.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarIdwer Vollering <idwer_v@hotmail.com>
      Acked-by: default avatarPatrick Georgi <patrick@georgi-clan.de>
      0472f3d8
    • Carl-Daniel Hailfinger's avatar
      Reduce use of volatile variables · b8855697
      Carl-Daniel Hailfinger authored
      During the conversion of flash chip accesses to helper functions, I spotted
      assignments to volatile variables which were neither placed inside the mmapped
      ROM area nor were they counters.
      Due to the use of accessor functions, volatile usage can be reduced
      significantly because the accessor functions take care of actually
      performing the reads/writes correctly.
      
      The following semantic patch spotted them (linebreak in python string
      for readability reasons, please remove before usage):
      @r exists@
      expression b;
      typedef uint8_t;
      volatile uint8_t a;
      position p1;
      @@
       a@p1 = readb(b);
      
      @script:python@
      p1 << r.p1;
      a << r.a;
      b << r.b;
      @@
      print "* file: %s line %s has assignment to unnecessarily volatile
      variable: %s = readb(%s);" % (p1[0].file, p1[0].line, a, b)
      
      Result was:
      HANDLING: sst28sf040.c
      * file: sst28sf040.c line 44 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 43 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 42 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 41 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 40 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 39 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 38 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 58 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 57 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 56 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 55 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 54 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 53 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      * file: sst28sf040.c line 52 has assignment to unnecessarily volatile
      variable: tmp = readb(TODO: Binary);
      
      The following semantic patch uses the spatch builtin match printing
      functionality by prepending a "*" to the line with the pattern:
      @@
      expression b;
      typedef uint8_t;
      volatile uint8_t a;
      @@
      * a = readb(b);
      
      Result is:
      HANDLING: sst28sf040.c
      diff =
      -       tmp = readb(bios + 0x1823);
      -       tmp = readb(bios + 0x1820);
      -       tmp = readb(bios + 0x1822);
      -       tmp = readb(bios + 0x0418);
      -       tmp = readb(bios + 0x041B);
      -       tmp = readb(bios + 0x0419);
      -       tmp = readb(bios + 0x040A);
       }
       
       static __inline__ void unprotect_28sf040(volatile uint8_t *bios)
      @@ -49,13 +42,6 @@ static __inline__ void unprotect_28sf040
              /* ask compiler not to optimize this */
              volatile uint8_t tmp;
       
      -       tmp = readb(bios + 0x1823);
      -       tmp = readb(bios + 0x1820);
      -       tmp = readb(bios + 0x1822);
      -       tmp = readb(bios + 0x0418);
      -       tmp = readb(bios + 0x041B);
      -       tmp = readb(bios + 0x0419);
      -       tmp = readb(bios + 0x041A);
       }
       
       static __inline__ int erase_sector_28sf040(volatile uint8_t *bios,
      
      It's arguably a bit easier to read if you get used to the leading "-"
      for matching lines.
      
      This patch was enabled by Coccinelle:
      http://www.emn.fr/x-info/coccinelle/
      
      
      
      Corresponding to flashrom svn r419 and coreboot v2 svn r3973.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarJoseph Smith <joe@settoplinux.org>
      b8855697
  18. 05 Mar, 2009 1 commit
    • Carl-Daniel Hailfinger's avatar
      Use helper functions to access flash chips · 61a8bd27
      Carl-Daniel Hailfinger authored
      
      Right now we perform direct pointer manipulation without any abstraction
      to read from and write to memory mapped flash chips. That makes it
      impossible to drive any flasher which does not mmap the whole chip.
      
      Using helper functions readb() and writeb() allows a driver for external
      flash programmers like Paraflasher to replace readb and writeb with
      calls to its own chip access routines.
      
      This patch has the additional advantage of removing lots of unnecessary
      casts to volatile uint8_t * and now-superfluous parentheses which caused
      poor readability.
      
      I used the semantic patcher Coccinelle to create this patch. The
      semantic patch follows:
      @@
      expression a;
      typedef uint8_t;
      volatile uint8_t *b;
      @@
      - *(b) = (a);
      + writeb(a, b);
      @@
      volatile uint8_t *b;
      @@
      - *(b)
      + readb(b)
      @@
      type T;
      T b;
      @@
      (
       readb
      |
       writeb
      )
       (...,
      - (T)
      - (b)
      + b
       )
      
      In contrast to a sed script, the semantic patch performs type checking
      before converting anything.
      
      Tested-by: Joe Julian
      
      Corresponding to flashrom svn r418 and coreboot v2 svn r3971.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarFENG Yu Ning <fengyuning1984@gmail.com>
      61a8bd27
  19. 25 Jan, 2009 1 commit
  20. 17 Oct, 2007 1 commit
  21. 09 Sep, 2007 1 commit
  22. 29 Aug, 2007 1 commit
  23. 23 Aug, 2007 2 commits
  24. 13 Aug, 2007 1 commit
  25. 24 May, 2007 1 commit
  26. 23 May, 2007 1 commit
  27. 09 May, 2007 1 commit
  28. 26 Nov, 2005 1 commit
  29. 27 Mar, 2004 1 commit
  30. 20 Mar, 2004 1 commit
  31. 18 Mar, 2004 1 commit
  32. 12 Sep, 2003 1 commit