cortex_a: remove broken dbgbase patchup code
authorØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 1 Apr 2011 07:59:30 +0000 (09:59 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 1 Apr 2011 08:00:41 +0000 (10:00 +0200)
the patchup code would get false positives when checking
whether a dbgbase had to be corrected.

The solution is to have autodetect default, with manual override
in scripts.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
src/target/arm_adi_v5.c

index b3c491b..cd6e5de 100644 (file)
@@ -1083,23 +1083,11 @@ is_dap_cid_ok(uint32_t cid3, uint32_t cid2, uint32_t cid1, uint32_t cid0)
                        && ((cid1 & 0x0f) == 0) && cid0 == 0x0d;
 }
 
-struct broken_cpu {
-       uint32_t        dbgbase;
-       uint32_t        apid;
-       uint32_t        idcode;
-       uint32_t        correct_dbgbase;
-       char            *model;
-} broken_cpus[] = {
-       { 0x80000000, 0x04770002, 0x1ba00477, 0x60000000, "imx51" },
-       { 0x80040000, 0x04770002, 0x3b95c02f, 0x80000000, "omap4430" },
-};
-
 int dap_get_debugbase(struct adiv5_dap *dap, int ap,
                        uint32_t *out_dbgbase, uint32_t *out_apid)
 {
        uint32_t ap_old;
        int retval;
-       unsigned int i;
        uint32_t dbgbase, apid, idcode;
 
        /* AP address is in bits 31:24 of DP_SELECT */
@@ -1131,19 +1119,6 @@ int dap_get_debugbase(struct adiv5_dap *dap, int ap,
        if (tap == NULL || !tap->hasidcode)
                return ERROR_OK;
 
-       /* Some CPUs are messed up, so fixup if needed. */
-       for (i = 0; i < sizeof(broken_cpus)/sizeof(struct broken_cpu); i++)
-               if (broken_cpus[i].dbgbase == dbgbase &&
-                       broken_cpus[i].apid == apid &&
-                       broken_cpus[i].idcode == idcode) {
-                       LOG_WARNING("Found broken CPU (%s), trying to fixup "
-                               "ROM Table location from 0x%08x to 0x%08x",
-                               broken_cpus[i].model, dbgbase,
-                               broken_cpus[i].correct_dbgbase);
-                       dbgbase = broken_cpus[i].correct_dbgbase;
-                       break;
-               }
-
        dap_ap_select(dap, ap_old);
 
        /* The asignment happens only here to prevent modification of these