1. Dec 16, 2023
  2. Dec 12, 2023
  3. Dec 08, 2023
  4. Dec 07, 2023
    • Evgeniy Naydanov's avatar
      target/riscv: improve error handling in `write_memory_progbuf()` · 8584b141
      Evgeniy Naydanov authored
      
      
      The goal of this commit is to provide more robust error handling in
      `write_memory_progbuf()`. This is achieved by rewriting it in a fashion
      similar to `read_memory_progbuf()`.
      
      The motivation is: some instability in `load_image` was encountered. No
      stable reproduction could be obtained, so the root cause was not
      determined. Therefore, it was decided to clean-up the code, that may be
      implicated in such failures.
      
      Examples of unhanded errors in the code prior to this commit:
      * Most of `dmi_write()` return values are discarded.
      * If `dm_read()` on `abstractcs` failed (line 4546), `abstractauto` was
        not cleared.
      
      Furthermore, the structure of the code was quite complicated, which made
      it hard to analyze and reason whether or not all possible failures are
      handled properly.
      
      Change-Id: I8a100b686e594855fbf34acf5ccf0e1550f18869
      Signed-off-by: default avatarEvgeniy Naydanov <evgeniy.naydanov@syntacore.com>
      8584b141
    • Tim Newsome's avatar
      Merge pull request #972 from en-sc/en-sc/decode-location · 7c948142
      Tim Newsome authored
      target/riscv: report helpfull location during register decode
      7c948142
  5. Dec 01, 2023
  6. Nov 30, 2023
  7. Nov 28, 2023
  8. Nov 21, 2023
  9. Nov 18, 2023
  10. Nov 17, 2023
  11. Nov 16, 2023
  12. Nov 15, 2023
    • Evgeniy Naydanov's avatar
      target/riscv: replace `__PRETTY_FUNCTION__` with `__func__` · 00320fd1
      Evgeniy Naydanov authored
      The reasoning for the change:
      * `__func__` is part of C99, `__PRETTY_FUNCTION__` is GNU extension.
      * `__PRETTY_FUNCTION__` is defined to be the same as `__func__` for C
        sources by GCC documentation but differ for C++ sources (full
        signature instead of just a name).
      * Currently Clang does support `__PRETTY_FUNCTION__`, though it uses
        GCC's C++ variant across C and C++.
      
      Therefore using `__PRETTY_FUNCTION__` creates confusion and does not
      provide any valueble information in the logs.
      
      Change-Id: Ie0db6d73f602784b6752a30911dcef3dd7ee4594
      00320fd1
    • Evgeniy Naydanov's avatar
      target/riscv: dump_field() shouldn't always decode · 3b0c654c
      Evgeniy Naydanov authored
      
      
      Sometimes, the value from of some DMI scans has no meaning (e.g. when
      `op` is read). Such values should not be decoded. To make the dumps more
      consistent, `<no decoding available>` is printed when there is no
      decoding for a register.
      
      Change-Id: I415f06a5a80f2fc8fb8ab3f79132bdf0602c8ad6
      Signed-off-by: default avatarEvgeniy Naydanov <evgeniy.naydanov@syntacore.com>
      3b0c654c
  13. Nov 14, 2023
  14. Nov 11, 2023
  15. Nov 10, 2023
  16. Nov 09, 2023
  17. Nov 08, 2023
  18. Nov 07, 2023
    • Anastasiya Chernikova's avatar
      target/riscv: cache requests to trigger configuration · fea20e2b
      Anastasiya Chernikova authored
      
      
      Depending on configuration, the existing implementation of watchpoints is
      rather inefficient for certain scenarios. Consider HW that:
      
      1. triggers 0-3 can be used as instruction breakpoints
      2. triggers 4-7 can be used as data breakpoints (watchpoints)
      3.  NAPOT triggers are not supported.
      
      Now, consider that we have a pending watchpoint. And we perform a "step"
      operation. According to the current implementation:
      
      * OpenOCD will disable watchpoints
      * Perform a single-step
      * Will try to restore the original watchpoints. It will need 12 attempts
      to find a suitable trigger: (8 attempts to try NAPOT, and another 4 to try
      GE+LE).
      
      This patch introduces a dedicated cache for requests to triggers. It
      significantly speeds things up, since we cache failed attempts and no
      additional interactions with HW is necessary.
      
      Change-Id: Ic272895eaa763a7ae84d14f7633790afd015ca9d
      Signed-off-by: default avatarAnastasiya Chernikova <anastasiya.chernikova@syntacore.com>
      fea20e2b
    • Tim Newsome's avatar
      Merge commit '05ee8891' into from_upstream · b5bd8844
      Tim Newsome authored
      Conflicts:
      	src/jtag/drivers/xds110.c
      	src/target/riscv/riscv.c
      	src/target/riscv/riscv_semihosting.c
      	tcl/target/esp_common.cfg
      
      Change-Id: If0c02817df03b7fd700cc84b4da2c02d36737d28
      b5bd8844
    • Tim Newsome's avatar
      Merge pull request #953 from riscv/regno_name_enum · 839f292f
      Tim Newsome authored
      target/riscv: gdb_regno_name takes an enum.
      839f292f
  19. Nov 04, 2023
  20. Nov 03, 2023
  21. Nov 02, 2023