1. 18 Sep, 2009 2 commits
  2. 16 Sep, 2009 4 commits
  3. 09 Sep, 2009 2 commits
  4. 05 Sep, 2009 5 commits
    • Carl-Daniel Hailfinger's avatar
      Store block sizes and corresponding erase functions in struct flashchip · f38431a5
      Carl-Daniel Hailfinger authored
      
      I decided to fill in the info for a
      few chips to illustrate how this works both for uniform and non-uniform
      sector sizes.
      
      struct eraseblock{
      int size; /* Eraseblock size */
      int count; /* Number of contiguous blocks with that size */
      };
      
      struct eraseblock doesn't correspond with a single erase block, but with
      a group of contiguous erase blocks having the same size.
      Given a (top boot block) flash chip with the following weird, but
      real-life structure:
      
      top
      16384
      8192
      8192
      32768
      65536
      65536
      65536
      65536
      65536
      65536
      65536
      bottom
      
      we get the following encoding:
      {65536,7},{32768,1},{8192,2},{16384,1}
      
      Although the number of blocks is bigger than 4, the number of block
      groups is only 4. If you ever add some flash chips with more than 4
      contiguous block groups, the definition will not fit into the 4-member
      array anymore and gcc will recognize that and error out. No undetected
      overflow possible. In that case, you simply increase array size a bit.
      For modern flash chips with uniform erase block size, you only need one
      array member anyway.
      
      Of course data types will need to be changed if you ever get flash chips
      with more than 2^30 erase blocks, but even with the lowest known erase
      granularity of 256 bytes, these flash chips will have to have a size of
      a quarter Terabyte. I'm pretty confident we won't see such big EEPROMs
      in the near future (or at least not attached in a way that makes
      flashrom usable). For SPI chips, we even have a guaranteed safety factor
      of 4096 over the maximum SPI chip size (which is 2^24). And if such a
      big flash chip has uniform erase block size, you could even split it
      among the 4 array members. If you change int count to unsigned int
      count, the storable size doubles. So with a split and a slight change of
      data type, the maximum ROM chip size is 2 Terabytes.
      
      Since many chips have multiple block erase functions where the
      eraseblock layout depends on the block erase function, this patch
      couples the block erase functions with their eraseblock layouts.
      struct block_eraser {
        struct eraseblock{
          unsigned int size; /* Eraseblock size */
          unsigned int count; /* Number of contiguous blocks with that size */
        } eraseblocks[NUM_ERASEREGIONS];
        int (*block_erase) (struct flashchip *flash, unsigned int blockaddr, unsigned int blocklen);
      } block_erasers[NUM_ERASEFUNCTIONS];
      
      Corresponding to flashrom svn r719.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarStefan Reinauer <stepan@coresystems.de>
      f38431a5
    • Udu Ogah's avatar
      Update probe timings for dozens of flash chips · c04ee22c
      Udu Ogah authored
      
      Corresponding to flashrom svn r718.
      Signed-off-by: default avatarUdu Ogah <putlinuxonit@gmail.com>
      Acked-by: default avatarStefan Reinauer <stepan@coresystems.de>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      c04ee22c
    • Carl-Daniel Hailfinger's avatar
      Unify some probe functions that basically correspond to probe_jedec() · 4e9cebb2
      Carl-Daniel Hailfinger authored
      
      Use the correct reset sequence for 82802AB. Detailed explanation:
      The reset sequence before ID reading was correct, so ID always
      worked. But the reset sequence after ID reading was a copy-paste
      leftover from probe_jedec and didn't have any effect. I dug up
      flash_and_burn from the freebios-v1 tree and found out that 82802ab.c
      was indeed a copy of jedec.c with lots of experimental unannotated #if 0
      and #if 1.
      About the wait_82802ab change:
      Before the patch, wait_82802ab entered read status mode, switched to ID
      mode, then tried an incorrect and unsupported JEDEC command to exit ID
      mode. Nobody ever saw that this failed because all subsequent function
      calls had the correct reset sequence at the beginning.
      With the patch, wait_82802ab enters read status mode, then switches back
      to read mode with the official reset command.
      
      Corresponding to flashrom svn r717.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarStefan Reinauer <stepan@coresystems.de>
      4e9cebb2
    • Carl-Daniel Hailfinger's avatar
      Not all systems have svnversion installed · d271e791
      Carl-Daniel Hailfinger authored
      
      Fall back to svn info if svnversion fails.
      
      Corresponding to flashrom svn r716.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      d271e791
    • Carl-Daniel Hailfinger's avatar
      Fix strict aliasing in serprog · 6d125608
      Carl-Daniel Hailfinger authored
      
      Initialize the sockaddr,sockaddr_in union directly instead of running
      memset later.
      
      Corresponding to flashrom svn r715.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarStefan Reinauer <stepan@coresystems.de>
      6d125608
  5. 04 Sep, 2009 1 commit
  6. 02 Sep, 2009 6 commits
  7. 01 Sep, 2009 2 commits
  8. 31 Aug, 2009 2 commits
  9. 30 Aug, 2009 1 commit
  10. 24 Aug, 2009 5 commits
  11. 21 Aug, 2009 1 commit
  12. 20 Aug, 2009 1 commit
    • Uwe Hermann's avatar
      Various board status updates · a02d6664
      Uwe Hermann authored
      Mark the following boards as OK (no board-enable needed):
      
       - Tyan S2466 (reported by Oliver Niesner <oli@servebbs.net>)
         http://www.flashrom.org/pipermail/flashrom/2009-August/000211.html
      
      
      
      Mark the following boards as non-working for now:
      
       - ASRock K7VT4A+ (reported by Udu Ogah <putlinuxonit@gmail.com>)
         Chipset detect, but no chip.
       
       - ASUS M2N68 (reported by Udu Ogah <putlinuxonit@gmail.com>)
         Chipset detect, but no chip.
       
       - ASUS A7V600-X (reported by Udu Ogah <putlinuxonit@gmail.com>)
         Chipset and chip detected, writes don't work. Board-enable required.
      
      Also, add some missing board URLs and fix incorrect board names.
      
      Corresponding to flashrom svn r695.
      Signed-off-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      a02d6664
  13. 19 Aug, 2009 5 commits
  14. 18 Aug, 2009 2 commits
  15. 17 Aug, 2009 1 commit