1. 28 Jun, 2013 1 commit
  2. 20 Jun, 2013 1 commit
    • Stefan Tauner's avatar
      Fix unlocking function for most Atmel AT2[56]D* chips · cecb2c56
      Stefan Tauner authored
      
      I broke unlocking them correctly in r1635 while refactoring (NB: the
      commit log including the overly selfconfident statement about the
      "bug in spi_disable_blockprotect_at25df()").
      
      Affected chips have per sector protection bits and the write protection bits
      in the status register do indicate if none, some or all sectors are protected.
      It is possible to globally (un)lock all sectors at once but in a way that was
      not anticipated when refactoring the spi25 unlocking functions into
      spi_disable_blockprotect_generic(). To globally unprotect not only the
      protection bits (2 and 3) have 0 to be written to them but also bits 4 and 5
      which normally would not be touched by spi_disable_blockprotect_generic().
      Some of the chips also support a permanent lockdown with fuses which we
      do not handle yet.
      
      To fix this without copying the whole method I introduce another mask
      parameter to spi_disable_blockprotect_generic() namely unprotect_mask.
      See verbose comments inline for details.
      
      Also, prettyprint the status register after trying to disable the block
      protection fails.
      
      Corresponding to flashrom svn r1679.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Tested-by: default avatarChi Zhang <zhangchi866@gmail.com>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      cecb2c56
  3. 09 Jun, 2013 1 commit
  4. 19 Apr, 2013 2 commits
  5. 16 Mar, 2013 1 commit
    • Stefan Tauner's avatar
      Fix evil twins of Macronix MX25L1605, MX25L3205, MX25L6405 · 226037da
      Stefan Tauner authored
      Similarly to the patch in r1647 this one updates the chips identified as above
      with references to and data about their respective twins. Unlike previously this
      one deals with the more evil details.
      
      Helge Wagner from GE discovered some problems with chips sharing IDs
      and proposed a patch to tackle (some of) them, see:
      http://patchwork.coreboot.org/patch/3709/
      That patch was bitrotting in our mailboxes for a long time and it is still not
      ready for merge, but we increasingly get reports about problems (e.g.
      http://paste.flashrom.org/view.php?id=1525
      
      ) regarding these chips and
      hence must act to ensure users' safety.
      
      This patch splits the chip definitions of evil twins into separate ones which
      correctly declare the respective attributes (the main problems are the erase
      block sizes for the 0x20 opcode and hence my changes combine different
      chips with partly different attributes apart from their names as long as the
      erasers layout it the same). This forces the user to select the (right) chip
      definition with the -c/--chip parameter and hence will break a number of
      previously perfectly working environments.
      
      0x2015 is used by and split to
       - MX25L1605 (64kB sectors in 0x20 erases)
       - MX25L1605A/MX25L1606E (4kB in 0x20 erases and an additional 0x52 opcode with 64kB blocks)
       - MX25L1605D/MX25L1608D (4k sectors in 0x20 erases)
      
      0x2016 is used by and split to
       - MX25L3205/MX25L3205A (64kB 0x20)
       - MX25L3205D/MX25L3208D (4kB 0x20)
       - MX25L3206E (4k 0x20, 64k 0x52)
      
      0x2017 is used by and split to
       - MX25L6405/MX25L6405D (64k 0x20)
       - MX25L6406E/MX25L6436E (4k 0x20)
       - MX25L6445E (4k 0x20, 64k 0x52)
      
      Bonus: add some minor details to MX25L1635D, MX25L1635E, MX25L3235D,
      MX25L12805D.
      
      Tested with MX25L3206E, MX25L64036E.
      
      Corresponding to flashrom svn r1657.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      226037da
  6. 04 Mar, 2013 1 commit
  7. 22 Feb, 2013 1 commit
  8. 02 Feb, 2013 1 commit
  9. 01 Jan, 2013 1 commit
  10. 29 Dec, 2012 2 commits
    • Stefan Tauner's avatar
      Add support for Atmel's AT25F series of SPI flash chips · 57794ac1
      Stefan Tauner authored
      
      This adds support for the following chips:
       - AT25F512, AT25F512A, AT25F512B
       - AT25F1024, AT25F1024A
       - AT25F2048
       - AT25F4096
      
      Besides the definitions of the the chips in flashchips.c this includes
      - a dedicated probing method (probe_spi_at25f)
      - pretty printing methods (spi_prettyprint_status_register_at25f*), and
      - unlocking methods (spi_disable_blockprotect_at25f*)
      
      Corresponding to flashrom svn r1637.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      57794ac1
    • Stefan Tauner's avatar
      Add support for Intel S33 series flash chips · 54aaa4ae
      Stefan Tauner authored
      
      This includes:
      Bottom boot block:
      * 16Mb/2MB:
        QB25F160S33B8, QB25F016S33B8, QH25F160S33B8, QH25F016S33B8
      * 32Mb/4MB:
        QB25F320S33B8, QH25F320S33B8
      * 64Mb/8MB:
        QB25F640S33B8, QH25F640S33B8
      
      Top boot block:
      * 16Mb/2MB:
        QB25F160S33T8, QB25F016S33T8, QH25F160S33T8, QH25F016S33T8
      * 32Mb/4MB:
        QB25F320S33T8, QH25F320S33T8
      * 64Mb/8MB:
        QB25F640S33T8, QH25F640S33T8
      
      At least some seem to be marketed by other vendors (too?) but also with
      Intel's vendor ID.
      
      Besides a 0xC7 chip erase and a 0xD8 uniform 64kB block erase they
      support also erasing the top/bottom 8 8kB blocks with opcode 0x40.
      But since this command fails for all addresses outside those ranges,
      it is not easily implemented with flashrom's current code base and
      hence left out.
      
      Corresponding to flashrom svn r1636.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      54aaa4ae
  11. 28 Oct, 2012 1 commit
  12. 26 Oct, 2012 1 commit
  13. 04 Oct, 2012 1 commit
  14. 17 Sep, 2012 1 commit
  15. 06 Sep, 2012 1 commit
  16. 13 Aug, 2012 1 commit
  17. 14 May, 2012 1 commit
  18. 15 Apr, 2012 1 commit
  19. 14 Apr, 2012 3 commits
  20. 17 Feb, 2012 1 commit
  21. 16 Feb, 2012 1 commit
  22. 04 Nov, 2011 1 commit
  23. 13 Sep, 2011 1 commit
  24. 08 Sep, 2011 1 commit
  25. 03 Sep, 2011 1 commit
  26. 24 Jul, 2011 1 commit
  27. 19 May, 2011 1 commit
  28. 06 Mar, 2011 1 commit
  29. 05 Feb, 2011 1 commit
  30. 29 Nov, 2010 1 commit
  31. 05 Oct, 2010 1 commit
    • Mattias Mattsson's avatar
      Make sure all chip variants are present in .name strings in flashchips.c · cbee4a72
      Mattias Mattsson authored
      
      Strip package prefix in constant names (everything before "28F").
      
      Prefix every constant name with INTEL_
      
      Sort intel chip constants by ID.
      
      Rename the following constants to their "canonical" name:
      
      P28F400BT (0x70  -> INTEL_28F400T (28F400BV/BX/CE/CV-T)
      P28F400BB (0x71) -> INTEL_28F400B (28F400BV/BX/CE/CV-B)
      P28F004BT (0x78) -> INTEL_28F004T (28F004B5/BE/BV/BX-T)
      P28F004BB (0x79) -> INTEL_28F004B (28F004B5/BE/BV/BX-B)
      E_28F008S5 (0xA6) -> INTEL_28F008S3 (28F008S3/S5/SC)
      E_28F004S5 (0xA7) -> INTEL_28F004S3 (28F008S3/S5/SC)
      P28F001BXT (0x94) -> INTEL_28F001T (28F001BN/BX-T)
      P28F001BXB (0x95) -> INTEL_28F001B (28F001BN/BX-B)
      E_28F016S5 (0xAA) -> INTEL_28F016S3 (28F016S3/S5/SC)
      
      Add chip IDs for the following chips:
      
      28F320J5
      28F640J5
      28F320J3
      28F640J3
      28F128J3
      28F256J3
      28F200BL/BV/BX/CV-T
      28F200BL/BV/BX/CV-B
      28F002BL/BV/BX-B
      28F008BE/BV-T
      28F008BE/BV-B
      28F800B5/BV/CE/CV-T
      28F800B5/BV/CE/CV-B
      28F016SA/SV
      28F008SA
      28F008S3/S5/SC
      28F008S3/S5/SC
      28F016XS
      28F010
      28F512
      28F256A
      28F020
      28F016B3-T
      28F016B3-B
      28F008B3-T
      28F008B3-B
      28F004B3-T
      28F004B3-B
      
      Corresponding to flashrom svn r1189.
      Signed-off-by: default avatarMattias Mattsson <vitplister@gmail.com>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      cbee4a72
  32. 18 Sep, 2010 1 commit
  33. 16 Sep, 2010 1 commit
  34. 15 Sep, 2010 1 commit
  35. 14 Sep, 2010 2 commits
    • Mattias Mattsson's avatar
      Various style/consistency fixes mainly for Winbond chips · a745cf46
      Mattias Mattsson authored
      Rename constants W_nnnn -> WINBOND_Wnnnn W_25nnn -> WINBOND_NEX_W25nnn.
      
      Kill incorrect ASD chip and vendor id.
      
      Group Winbond SPI and parallel chips separately (they have different
      vendor IDs).
      
      Change constant names to the "canonical" chip name for the following
      ids:
      
      W_29C020C (0x45)
       -> WINBOND_W29C020 (Same as W29C020C, W29C022 and ASD AE29F2008)
      
      W_29C040P (0x46)
       -> WINBOND_W29C040 ("P" is for package type [32-pin PLCC], irrelevant)
      
      W_29C011 + W_29EE011 (0xC1)
       -> WINBOND_W29C010 (Same as W29C010M, W29C011A, W29EE011, W29EE012,
          and ASD AE29F1008)
      
      
      List all chip variants in the .name strings in flashchips.c
      
      
      Have two identical entries for Winbond
      W29C010(M)/W29C011A/W29EE011/W29EE012 but with different probe functions
      in flashchips.c as sometimes (for newer revisions of these chips?) the
      standard jedec probe seems to work. E.g. see test report here:
      http://patchwork.coreboot.org/patch/1476/
      
      
      
      
      Also add ids for the following Winbond chips:
      W25Q40
      W25Q128
      W19B160BB
      W19B160BT
      W19B320SB/W19L320SB
      W19B320ST/W19L320ST
      W19B322MB
      W19B322MT
      W19B323MB
      W19B323MT
      W19B324MB
      W19B324MT
      W29C512A/W29EE512
      W39L010
      W39L040A
      W39L512
      W49F002/W49F002B
      
      Corresponding to flashrom svn r1168.
      Signed-off-by: default avatarMattias Mattsson <vitplister@gmail.com>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      a745cf46
    • Jason Shriver's avatar
      Add support for ST M25PX32 and M25PX64 flash chips · 4119e9b6
      Jason Shriver authored
      
      Probe, read, erase and write have been tested and all are functional.
      
      Corresponding to flashrom svn r1165.
      Signed-off-by: default avatarJason Shriver <j.shriver@f5.com>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      4119e9b6