target/arm_adi_v5: change prototype of dap_rom_display() 73/5073/2
authorPaul Fertser <fercerpav@gmail.com>
Mon, 1 Apr 2019 03:10:56 +0000 (05:10 +0200)
committerTomas Vanek <vanekt@fbl.cz>
Tue, 14 May 2019 18:36:14 +0000 (19:36 +0100)
To prepare for handling TCL return values consistently, all calls
to command_print/command_print_sameline should be ready to switch
to CMD as first parameter.

Change prototype of dap_rom_display() and dap_info_command() to
pass CMD instead of CMD_CTX.

This change was part of http://openocd.zylin.com/1815 from Paul
Fertser and has been extracted and rebased to simplify the review.

Change-Id: Idb97b20759c03fcecbac1184c354966f469caa5f
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5073
Tested-by: jenkins
src/target/arm_adi_v5.c
src/target/arm_adi_v5.h
src/target/arm_dap.c

index 9a641fce22df613ddb77e8b50a34d3b71b70b227..f9eb8f4cbb361db453cf254907fe1d13c9c16a3e 100644 (file)
@@ -1190,7 +1190,7 @@ static const struct {
        { ANY_ID, 0x343, "TI DAPCTL",                  "", }, /* from OMAP3 memmap */
 };
 
-static int dap_rom_display(struct command_context *cmd_ctx,
+static int dap_rom_display(struct command_invocation *cmd,
                                struct adiv5_ap *ap, uint32_t dbgbase, int depth)
 {
        int retval;
@@ -1199,7 +1199,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
        char tabs[16] = "";
 
        if (depth > 16) {
-               command_print(cmd_ctx, "\tTables too deep");
+               command_print(cmd->ctx, "\tTables too deep");
                return ERROR_FAIL;
        }
 
@@ -1207,25 +1207,25 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                snprintf(tabs, sizeof(tabs), "[L%02d] ", depth);
 
        uint32_t base_addr = dbgbase & 0xFFFFF000;
-       command_print(cmd_ctx, "\t\tComponent base address 0x%08" PRIx32, base_addr);
+       command_print(cmd->ctx, "\t\tComponent base address 0x%08" PRIx32, base_addr);
 
        retval = dap_read_part_id(ap, base_addr, &cid, &pid);
        if (retval != ERROR_OK) {
-               command_print(cmd_ctx, "\t\tCan't read component, the corresponding core might be turned off");
+               command_print(cmd->ctx, "\t\tCan't read component, the corresponding core might be turned off");
                return ERROR_OK; /* Don't abort recursion */
        }
 
        if (!is_dap_cid_ok(cid)) {
-               command_print(cmd_ctx, "\t\tInvalid CID 0x%08" PRIx32, cid);
+               command_print(cmd->ctx, "\t\tInvalid CID 0x%08" PRIx32, cid);
                return ERROR_OK; /* Don't abort recursion */
        }
 
        /* component may take multiple 4K pages */
        uint32_t size = (pid >> 36) & 0xf;
        if (size > 0)
-               command_print(cmd_ctx, "\t\tStart address 0x%08" PRIx32, (uint32_t)(base_addr - 0x1000 * size));
+               command_print(cmd->ctx, "\t\tStart address 0x%08" PRIx32, (uint32_t)(base_addr - 0x1000 * size));
 
-       command_print(cmd_ctx, "\t\tPeripheral ID 0x%010" PRIx64, pid);
+       command_print(cmd->ctx, "\t\tPeripheral ID 0x%010" PRIx64, pid);
 
        uint8_t class = (cid >> 12) & 0xf;
        uint16_t part_num = pid & 0xfff;
@@ -1233,12 +1233,12 @@ static int dap_rom_display(struct command_context *cmd_ctx,
 
        if (designer_id & 0x80) {
                /* JEP106 code */
-               command_print(cmd_ctx, "\t\tDesigner is 0x%03" PRIx16 ", %s",
+               command_print(cmd->ctx, "\t\tDesigner is 0x%03" PRIx16 ", %s",
                                designer_id, jep106_manufacturer(designer_id >> 8, designer_id & 0x7f));
        } else {
                /* Legacy ASCII ID, clear invalid bits */
                designer_id &= 0x7f;
-               command_print(cmd_ctx, "\t\tDesigner ASCII code 0x%02" PRIx16 ", %s",
+               command_print(cmd->ctx, "\t\tDesigner ASCII code 0x%02" PRIx16 ", %s",
                                designer_id, designer_id == 0x41 ? "ARM" : "<unknown>");
        }
 
@@ -1260,8 +1260,8 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                break;
        }
 
-       command_print(cmd_ctx, "\t\tPart is 0x%" PRIx16", %s %s", part_num, type, full);
-       command_print(cmd_ctx, "\t\tComponent class is 0x%" PRIx8 ", %s", class, class_description[class]);
+       command_print(cmd->ctx, "\t\tPart is 0x%" PRIx16", %s %s", part_num, type, full);
+       command_print(cmd->ctx, "\t\tComponent class is 0x%" PRIx8 ", %s", class, class_description[class]);
 
        if (class == 1) { /* ROM Table */
                uint32_t memtype;
@@ -1270,9 +1270,9 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                        return retval;
 
                if (memtype & 0x01)
-                       command_print(cmd_ctx, "\t\tMEMTYPE system memory present on bus");
+                       command_print(cmd->ctx, "\t\tMEMTYPE system memory present on bus");
                else
-                       command_print(cmd_ctx, "\t\tMEMTYPE system memory not present: dedicated debug bus");
+                       command_print(cmd->ctx, "\t\tMEMTYPE system memory not present: dedicated debug bus");
 
                /* Read ROM table entries from base address until we get 0x00000000 or reach the reserved area */
                for (uint16_t entry_offset = 0; entry_offset < 0xF00; entry_offset += 4) {
@@ -1280,17 +1280,17 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                        retval = mem_ap_read_atomic_u32(ap, base_addr | entry_offset, &romentry);
                        if (retval != ERROR_OK)
                                return retval;
-                       command_print(cmd_ctx, "\t%sROMTABLE[0x%x] = 0x%" PRIx32 "",
+                       command_print(cmd->ctx, "\t%sROMTABLE[0x%x] = 0x%" PRIx32 "",
                                        tabs, entry_offset, romentry);
                        if (romentry & 0x01) {
                                /* Recurse */
-                               retval = dap_rom_display(cmd_ctx, ap, base_addr + (romentry & 0xFFFFF000), depth + 1);
+                               retval = dap_rom_display(cmd, ap, base_addr + (romentry & 0xFFFFF000), depth + 1);
                                if (retval != ERROR_OK)
                                        return retval;
                        } else if (romentry != 0) {
-                               command_print(cmd_ctx, "\t\tComponent not present");
+                               command_print(cmd->ctx, "\t\tComponent not present");
                        } else {
-                               command_print(cmd_ctx, "\t%s\tEnd of ROM table", tabs);
+                               command_print(cmd->ctx, "\t%s\tEnd of ROM table", tabs);
                                break;
                        }
                }
@@ -1435,7 +1435,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                        }
                        break;
                }
-               command_print(cmd_ctx, "\t\tType is 0x%02" PRIx8 ", %s, %s",
+               command_print(cmd->ctx, "\t\tType is 0x%02" PRIx8 ", %s, %s",
                                (uint8_t)(devtype & 0xff),
                                major, subtype);
                /* REVISIT also show 0xfc8 DevId */
@@ -1444,7 +1444,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
        return ERROR_OK;
 }
 
-int dap_info_command(struct command_context *cmd_ctx,
+int dap_info_command(struct command_invocation *cmd,
                struct adiv5_ap *ap)
 {
        int retval;
@@ -1456,27 +1456,27 @@ int dap_info_command(struct command_context *cmd_ctx,
        if (retval != ERROR_OK)
                return retval;
 
-       command_print(cmd_ctx, "AP ID register 0x%8.8" PRIx32, apid);
+       command_print(cmd->ctx, "AP ID register 0x%8.8" PRIx32, apid);
        if (apid == 0) {
-               command_print(cmd_ctx, "No AP found at this ap 0x%x", ap->ap_num);
+               command_print(cmd->ctx, "No AP found at this ap 0x%x", ap->ap_num);
                return ERROR_FAIL;
        }
 
        switch (apid & (IDR_JEP106 | IDR_TYPE)) {
        case IDR_JEP106_ARM | AP_TYPE_JTAG_AP:
-               command_print(cmd_ctx, "\tType is JTAG-AP");
+               command_print(cmd->ctx, "\tType is JTAG-AP");
                break;
        case IDR_JEP106_ARM | AP_TYPE_AHB_AP:
-               command_print(cmd_ctx, "\tType is MEM-AP AHB");
+               command_print(cmd->ctx, "\tType is MEM-AP AHB");
                break;
        case IDR_JEP106_ARM | AP_TYPE_APB_AP:
-               command_print(cmd_ctx, "\tType is MEM-AP APB");
+               command_print(cmd->ctx, "\tType is MEM-AP APB");
                break;
        case IDR_JEP106_ARM | AP_TYPE_AXI_AP:
-               command_print(cmd_ctx, "\tType is MEM-AP AXI");
+               command_print(cmd->ctx, "\tType is MEM-AP AXI");
                break;
        default:
-               command_print(cmd_ctx, "\tUnknown AP type");
+               command_print(cmd->ctx, "\tUnknown AP type");
                break;
        }
 
@@ -1485,17 +1485,17 @@ int dap_info_command(struct command_context *cmd_ctx,
         */
        mem_ap = (apid & IDR_CLASS) == AP_CLASS_MEM_AP;
        if (mem_ap) {
-               command_print(cmd_ctx, "MEM-AP BASE 0x%8.8" PRIx32, dbgbase);
+               command_print(cmd->ctx, "MEM-AP BASE 0x%8.8" PRIx32, dbgbase);
 
                if (dbgbase == 0xFFFFFFFF || (dbgbase & 0x3) == 0x2) {
-                       command_print(cmd_ctx, "\tNo ROM table present");
+                       command_print(cmd->ctx, "\tNo ROM table present");
                } else {
                        if (dbgbase & 0x01)
-                               command_print(cmd_ctx, "\tValid ROM table present");
+                               command_print(cmd->ctx, "\tValid ROM table present");
                        else
-                               command_print(cmd_ctx, "\tROM table in legacy format");
+                               command_print(cmd->ctx, "\tROM table in legacy format");
 
-                       dap_rom_display(cmd_ctx, ap, dbgbase & 0xFFFFF000, 0);
+                       dap_rom_display(cmd, ap, dbgbase & 0xFFFFF000, 0);
                }
        }
 
@@ -1646,7 +1646,7 @@ COMMAND_HANDLER(handle_dap_info_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       return dap_info_command(CMD_CTX, &dap->ap[apsel]);
+       return dap_info_command(CMD, &dap->ap[apsel]);
 }
 
 COMMAND_HANDLER(dap_baseaddr_command)
index 96291a7aff9d7bcf60f8abbb9ff9526c081a99b9..0b61b757ac9b572730d205d11917ff4e3a7ad0d4 100644 (file)
@@ -526,7 +526,7 @@ extern const struct command_registration dap_instance_commands[];
 struct arm_dap_object;
 extern struct adiv5_dap *dap_instance_by_jim_obj(Jim_Interp *interp, Jim_Obj *o);
 extern struct adiv5_dap *adiv5_get_dap(struct arm_dap_object *obj);
-extern int dap_info_command(struct command_context *cmd_ctx,
+extern int dap_info_command(struct command_invocation *cmd,
                                         struct adiv5_ap *ap);
 extern int dap_register_commands(struct command_context *cmd_ctx);
 extern const char *adiv5_dap_name(struct adiv5_dap *self);
index dd7ec9b5893f14ee57de953a94345253c16cf6e4..5c15f2c10fce56977104113832cd03ce444ccb35 100644 (file)
@@ -331,7 +331,7 @@ COMMAND_HANDLER(handle_dap_info_command)
                        return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       return dap_info_command(CMD_CTX, &dap->ap[apsel]);
+       return dap_info_command(CMD, &dap->ap[apsel]);
 }
 
 static const struct command_registration dap_subcommand_handlers[] = {

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)