This is an automated email from Gerrit.

"Tomas Vanek <[email protected]>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/9141

-- gerrit

commit 67ddd8f64a6fe9d1d840158c0ee2a4b394ba984e
Author: Mark Zhuang <[email protected]>
Date:   Thu May 15 14:58:07 2025 +0800

    target/riscv: check nextdm address in abits range
    
    Imported from
    https://github.com/riscv-collab/riscv-openocd/pull/1257
    
    When abits not correctly configured, we hope to detect it
    as soon as possible.
    
    Checkpatch-ignore: NO_AUTHOR_SIGN_OFF
    Change-Id: I0b7b170c39761fb531dda0747f88ace3f39ae03b
    Signed-off-by: Tomas Vanek <[email protected]>

diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c
index 9da9684e4e..1f34cd1a30 100644
--- a/src/target/riscv/riscv-013.c
+++ b/src/target/riscv/riscv-013.c
@@ -538,6 +538,7 @@ static bool check_dbgbase_exists(struct target *target)
 {
        uint32_t next_dm = 0;
        unsigned int count = 1;
+       riscv013_info_t *info = get_info(target);
 
        LOG_TARGET_DEBUG(target, "Searching for DM with DMI base address 
(dbgbase) = 0x%x", target->dbgbase);
        while (1) {
@@ -552,6 +553,12 @@ static bool check_dbgbase_exists(struct target *target)
                        LOG_TARGET_ERROR(target, "Reached the end of DM chain 
(detected %u DMs in total).", count);
                        break;
                }
+               if (next_dm >> info->abits) {
+                       LOG_TARGET_ERROR(target, "The address of the next Debug 
Module does not fit into %u bits, "
+                                       "which is the width of the DMI bus 
address. This is a HW bug",
+                                       info->abits);
+                       break;
+               }
                /* Safety: Avoid looping forever in case of buggy nextdm values 
in the hardware. */
                if (count++ > RISCV_MAX_DMS) {
                        LOG_TARGET_ERROR(target, "Supporting no more than %d 
DMs on a DMI bus. Aborting", RISCV_MAX_DMS);

-- 

Reply via email to