1. 08 Oct, 2010 2 commits
  2. 03 Jul, 2010 1 commit
  3. 24 Mar, 2010 1 commit
  4. 16 Mar, 2010 1 commit
  5. 26 Feb, 2010 1 commit
  6. 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
  7. 16 Sep, 2009 1 commit
  8. 02 Sep, 2009 1 commit
  9. 15 Jun, 2009 1 commit
  10. 05 Jun, 2009 1 commit
  11. 16 May, 2009 3 commits
  12. 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
  13. 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
  14. 25 Jan, 2009 1 commit
  15. 17 Oct, 2007 1 commit
  16. 09 Sep, 2007 1 commit
  17. 29 Aug, 2007 1 commit
  18. 23 Aug, 2007 2 commits
  19. 13 Aug, 2007 1 commit
  20. 24 May, 2007 1 commit
  21. 23 May, 2007 1 commit
  22. 09 May, 2007 1 commit
  23. 26 Nov, 2005 1 commit
  24. 27 Mar, 2004 1 commit
  25. 20 Mar, 2004 1 commit
  26. 18 Mar, 2004 1 commit
  27. 12 Sep, 2003 1 commit
  28. 28 Feb, 2003 1 commit
  29. 29 Jan, 2002 2 commits