1. 05 Dec, 2008 1 commit
  2. 04 Dec, 2008 1 commit
  3. 02 Dec, 2008 2 commits
  4. 28 Nov, 2008 1 commit
  5. 25 Nov, 2008 1 commit
  6. 24 Nov, 2008 5 commits
  7. 21 Nov, 2008 1 commit
  8. 19 Nov, 2008 6 commits
  9. 10 Nov, 2008 6 commits
  10. 31 Oct, 2008 1 commit
    • Wolfgang Denk's avatar
      CFI Driver: Fix "flash not ready" problem · 9abda6ba
      Wolfgang Denk authored
      This patch fixes a problem on systems where the NOR flash is attached
      to a 64 bit bus.  The toggle bit detection in flash_toggle() is based
      on the assumption that the same flash address is read twice without
      any other interjacent flash accesses.  However, on 32 bit systems the
      function flash_read64() [as currently implemented] does not perform
      an atomic 64 bit read - instead, this is broken down into two 32 bit
      read accesses on addresses "addr" and "addr + 4".  So instead of
      reading a 64 bit value twice from "addr", we see a sequence of 4 32
      bit reads from "addr", "addr + 4", "addr", and "addr + 4".  The
      consequence is that flash_toggle() fails to work.
      
      This patch implements a simple, but somewhat ugly solution, as it
      avoids the use of flash_read64() in this critical place (by breaking
      it down manually into 32 bit read operations) instead of rewriting
      flash_read64() such to perform atomic 64 bit reads as one could
      expect.  However, such a rewrite would require the use of floating
      point load operations, which becomes pretty complex:
      
      	save MSR;
      	set Floating Point Enable bit in MSR;
      	use "lfd" instruction to perform atomic 64 bit read;
      	use "stfd" to store value to temporary variable on stack;
      	load u64 value from temporary variable;
      	restore saved MSR;
      	return u64 value;
      
      The benefit-cost ratio of such an implementation was considered too
      bad to actually attempt this, especially as we can expect that such
      an implementation would not only have a bigger memory footprint but
      also cause a performance degradation.
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      9abda6ba
  11. 29 Oct, 2008 5 commits
  12. 27 Oct, 2008 2 commits
  13. 25 Oct, 2008 2 commits
  14. 24 Oct, 2008 4 commits
  15. 23 Oct, 2008 1 commit
  16. 21 Oct, 2008 1 commit