1. 04 May, 2010 5 commits
  2. 03 May, 2010 1 commit
    • Tobias Ringström's avatar
      STM32 flash erase timeout fix · 14f4606d
      Tobias Ringström authored
      The current timeout for STM32 flash block erase and flash mass erase is
      10 (ms), which is too tight, and fails around 50% of the time for me.
      The data sheet for STM32F107VC specifies a maximum erase time of 40 ms
      (for both operations).
      
      I'd also consider it a bug that the code does not detect a timeout, but
      just assumes that the operation has completed.  The attached patch does
      not address this bug.
      
      The attached patch increases the timeouts from 10 to 100 ms.  Please apply.
      
      /Tobias
      14f4606d
  3. 30 Apr, 2010 1 commit
  4. 29 Apr, 2010 2 commits
  5. 28 Apr, 2010 1 commit
  6. 26 Apr, 2010 2 commits
  7. 24 Apr, 2010 3 commits
    • Mike Dunn's avatar
      xscale: add support for length arg to wp command · 4f1296d1
      Mike Dunn authored
      This patch adds support for the length argument to the xscale implementation of
      the wp command.  Per discussion with David, the length argument specifies the
      range of addresses over which a memory access should generate a debug exception.
      This patch utilizes the "mask" feature of the xscale debug hardware to implement
      the correct functionality of the length argument.  Some limitations imposed by
      the hardware are:
      
         - The length must be a power of two, with a minumum of 4.
         - Two data breakpoint registers are available, allowing for two watchpoints.
           However, if the length of a watchpoint is greater than four, both registers
           are used (the second for a mask value), limiting the number of watchpoints
           to one.
      
      This patch also removes a useless call to xscale_get_reg(dbcon) in
      xscale_set_watchpoint() (value had already been read from the register cache,
      and the same previously read value is then modified and written back).
      
      I have been using and testing this patch for a couple days.
      
      Questions, corrections, criticisms of course gratefully received.
      4f1296d1
    • michal smulski's avatar
    • michal smulski's avatar
      48e282aa
  8. 20 Apr, 2010 3 commits
  9. 16 Apr, 2010 1 commit
    • David Brownell's avatar
      NOR/core bugfix: restore invariants · 620310bc
      David Brownell authored
      
      
      The The patch labeled "CFI CORE: bug-fix protect single sector" was merged
      rged without some requested bugfixes.  Most significantly it broke invariants
      in the code, invalidating descriptions and changing the calling convention
      for underlying drivers.  (It (Also wasn't CFI-specific...)
      
      Fix that, and Include an update from Antonio Borneo for the degenerate
      "nothing to do" case, (although that's still in the  wrong location.  which
      is presumably why that is it was working in some cases but not all.)
      
       src/flash/nor/core.c |   21 ++++++++++++++++-----
       1 file changed, 16 insertions(+), 5 deletions(-)
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      620310bc
  10. 15 Apr, 2010 4 commits
    • Antonio Borneo's avatar
      NOR/CFI: remove redundant code · b886049c
      Antonio Borneo authored
      
      
      Arguments for "flash bank" command are already
      parsed and put in "bank" struct.
      Removed code to parse them again.
      
      Signed-off-by: default avatarAntonio Borneo <borneo.antonio@gmail.com>
      b886049c
    • Antonio Borneo's avatar
      NOR/CFI: fix order of arguments check · c9e58238
      Antonio Borneo authored
      
      
      Syntax of "flash bank" command requires:
      - chip_width as CMD_ARGV[3]
      - bus_width  as CMD_ARGV[4]
      Actual code swaps the arguments.
      Bug has no run time impact since wrong variables
      are only used to check value and both are checked
      against same constraint.
      
      Signed-off-by: default avatarAntonio Borneo <borneo.antonio@gmail.com>
      c9e58238
    • Mike Dunn's avatar
      xscale: fix analyze_trace for trace data collected in wrap mode · ee139164
      Mike Dunn authored
      This patch fixes the xscale_analyze_trace() function.  This function was
      defective for a trace collected in 'fill' mode (hiccups with repeated
      instructions) and completely broken when buffer overflowed in 'wrap' mode.  The
      reason for the latter case is that the checkpoint registers were interpreted
      incorrectly when two checkpoints are present in the trace (which will be true in
      'wrap' mode once the buffer fills).  In this case, checkpoint1 register will
      contain the older entry, and checkpoint0 the newer.  The original code assumed
      the opposite.  I eventually gave up trying to understand all the logic of the
      function, and rewrote it.  I think it's much cleaner and understandable now.  I
      have been using and testing this for a few weeks now.  I'm confident it hasn't
      regressed in any way.
      
      Also added capability to handle (as best as possible) the case where an
      instruction can not be read from the loaded trace image; e.g., partial image.
      This was a 'TODO' comment in the original xscale_analyze_trace().
      
      Outside of xcsale_analyze_trace(), these (related) changes were made:
      
      - Remove pc_ok and current_pc elements from struct xscale_trace.  These elements
        and associated logic are useless clutter because the very first entry placed
        in the trace buffer is always an indirect jump to the address at which
        execution resumed.  This type of trace entry includes the literal address in
        the trace buffer, so the initial address of the trace is immediately
        determined from the trace buffer contents and does not need to be recorded
        when trace is enabled.
      
      - Added num_checkpoints to struct xscale_trace_data, which is necessary in order
        to correctly interpret the checkpoint register contents.
      
      - In xscale_read_trace()
        - Fix potential array out-of-bounds condition.
        - Eliminate partial address entries when parsing trace (can occur in wrap mode).
        - Count and record number of checkpoints in trace.
      
      - Added small, inlined utility function xscale_display_instruction() to help
        make the code more concise and clear.
      
      TODO:
       - Save processor state (arm or thumb) in struct xscale_trace when trace is
         enabled so that trace can be analyzed correctly (currently assumes arm mode).
       - Add element to struct xscale_trace that records (when trace is enabled)
         whether vector table is relocated high (to 0xffff0000) or not, so that a
         branch to an exception vector is traced correctly (curently assumes vectors
         at 0x0).
      ee139164
    • Antonio Borneo's avatar
      TCL SCRIPTS: fix command name · d31bbc33
      Antonio Borneo authored
      
      
      Some tcl script has underline between the words "flash bank"
      resulting in 'invalid command name "flash_bank"'.
      
      Signed-off-by: default avatarAntonio Borneo <borneo.antonio@gmail.com>
      d31bbc33
  11. 14 Apr, 2010 1 commit
    • Anton Fedotov's avatar
      cortex-a8: more MMU support · decad308
      Anton Fedotov authored
      
      
      + virt2phys() can now convert virtual address to real
      + read_memory() and write_memory() are renamed to read_phys_memory()
      and write_phys_memory()
      + new read_memory() and write_memory() try to resolve real address if
      mmu is enambled than perform real address reading/writing
         + if address is bellow 0xc000000 than TTB0 is used for page table
      dereference, if above - than TTB1. Linux style of user/kernel address
      separation
         + if above fails (i.e address is unspecified) than mode is checked
      whether it is Supervisor (than TTB1) or User (than TTB0)
      - Software breakpoints doesn't work. You should invoke
      "gdb_breakpoint_override hard" before you start debugging
      + cortex_a8_mmu(), cortex_a8_enable_mmu_caches(),
      cortex_a8_disable_mmu_caches() are implemented
      
      Signed-off-by: default avatarØyvind Harboe <oyvind.harboe@zylin.com>
      decad308
  12. 10 Apr, 2010 16 commits