1. 19 Mar, 2010 1 commit
  2. 26 Feb, 2010 1 commit
  3. 19 Jan, 2010 1 commit
  4. 09 Jan, 2010 1 commit
  5. 26 Nov, 2009 1 commit
    • Michael Karcher's avatar
      Refine support for the JEDEC Software Data Protection · 972cec28
      Michael Karcher authored
      
      This patch removes the extremely dangerous unprotect_jedec function
      which is not used at all within flashrom code, and renames the
      misleadingly named protect_jedec function to start_program_jedec.
      
      Calls to protect_jedec after flashing are removed, because a) on LPC
      chips, the command sent by protoct_jedec is not even in the datasheet
      and b) on parallel chips, the block write command issued before already
      contained the software protection sequence, so software protection is
      definitely enabled.
      
      This patch also removes two clones of protect_jedec
      
      Background: JEDEC Software Data Protection started as an optional
      feature, which was disabled on the first single-voltage-flash chips.
      The software data protection is the need to prefix a write with a magic
      "write enable" command, while without write protection every write
      access into the chip's address space modifies flash content. This magic
      write enable command also tells the flash chip that the programmer
      obviously support sending write-enable commands and turns off the "any
      write modifies flash content" mode. There also exist a two-command (6
      writes) sequence that disables Software Data Protection completey, which
      should only ever be used to prepare updating with a device that can't
      handle software data protection.
      
      Corresponding to flashrom svn r783.
      Signed-off-by: default avatarMichael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
      Acked-by: default avatarSean Nelson <audiohacked@gmail.com>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      972cec28
  6. 16 Sep, 2009 1 commit
  7. 05 Sep, 2009 1 commit
    • 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
  8. 02 Sep, 2009 1 commit
  9. 15 Jun, 2009 2 commits
  10. 05 Jun, 2009 2 commits
  11. 16 May, 2009 2 commits
  12. 11 May, 2009 1 commit
  13. 06 Mar, 2009 1 commit
  14. 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
  15. 25 Jan, 2009 1 commit
  16. 18 Oct, 2008 1 commit
  17. 28 Apr, 2008 1 commit