nds32: remove .soft_reset_halt dependency
authorHsiangkai Wang <hsiangkai@gmail.com>
Wed, 4 Sep 2013 05:21:59 +0000 (13:21 +0800)
committerSpencer Oliver <spen@spen-soft.co.uk>
Fri, 13 Sep 2013 19:38:09 +0000 (19:38 +0000)
.soft_reset_halt is not necessary for nds32 target.
Remove the dependency.

Change-Id: Ic3b126d6c7eb995583a661b762627e736222fcaa
Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-on: http://openocd.zylin.com/1612
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/nds32.c
src/target/nds32_v2.c
src/target/nds32_v3.c
src/target/nds32_v3_common.c
src/target/nds32_v3_common.h
src/target/nds32_v3m.c

index 4d2564975d841dfa78a5e45f8dc96d41f43319b9..b171afebeb895cea29fe2eb4232e76ca8e9bc530 100644 (file)
@@ -2164,6 +2164,27 @@ int nds32_resume(struct target *target, int current,
        return ERROR_OK;
 }
 
+static int nds32_soft_reset_halt(struct target *target)
+{
+       /* TODO: test it */
+       struct nds32 *nds32 = target_to_nds32(target);
+       struct aice_port_s *aice = target_to_aice(target);
+
+       aice_assert_srst(aice, AICE_SRST);
+
+       /* halt core and set pc to 0x0 */
+       int retval = target_halt(target);
+       if (retval != ERROR_OK)
+               return retval;
+
+       /* start fetching from IVB */
+       uint32_t value_ir3;
+       nds32_get_mapped_reg(nds32, IR3, &value_ir3);
+       nds32_set_mapped_reg(nds32, PC, value_ir3 & 0xFFFF0000);
+
+       return ERROR_OK;
+}
+
 int nds32_assert_reset(struct target *target)
 {
        struct nds32 *nds32 = target_to_nds32(target);
@@ -2177,7 +2198,7 @@ int nds32_assert_reset(struct target *target)
                                && (cpu_version->revision == 0x1C)
                                && (cpu_version->cpu_id_family == 0xC)
                                && (cpu_version->cpu_id_version == 0x0)))
-                       target->type->soft_reset_halt(target);
+                       nds32_soft_reset_halt(target);
                else
                        aice_assert_srst(aice, AICE_RESET_HOLD);
        } else {
index c774194e263057c294d6a8587c8ddd638f116b66..24f5108ccb2d2b07dedfbd6374985efb8a9726c2 100644 (file)
@@ -388,27 +388,6 @@ static int nds32_v2_leave_debug_state(struct nds32 *nds32, bool enable_watchpoin
        return ERROR_OK;
 }
 
-static int nds32_v2_soft_reset_halt(struct target *target)
-{
-       /* TODO: test it */
-       struct nds32 *nds32 = target_to_nds32(target);
-       struct aice_port_s *aice = target_to_aice(target);
-
-       aice_assert_srst(aice, AICE_SRST);
-
-       /* halt core and set pc to 0x0 */
-       int retval = target_halt(target);
-       if (retval != ERROR_OK)
-               return retval;
-
-       /* start fetching from IVB */
-       uint32_t value_ir3;
-       nds32_get_mapped_reg(nds32, IR3, &value_ir3);
-       nds32_set_mapped_reg(nds32, PC, value_ir3 & 0xFFFF0000);
-
-       return ERROR_OK;
-}
-
 static int nds32_v2_deassert_reset(struct target *target)
 {
        int retval;
@@ -774,7 +753,6 @@ struct target_type nds32_v2_target = {
 
        .assert_reset = nds32_assert_reset,
        .deassert_reset = nds32_v2_deassert_reset,
-       .soft_reset_halt = nds32_v2_soft_reset_halt,
 
        /* register access */
        .get_gdb_reg_list = nds32_get_gdb_reg_list,
index f1763cb0db66e6af4092f529bbab12c8e49556af..ea9252e4cc0d3ce36b3b617a9fc9357649ece800 100644 (file)
@@ -484,7 +484,6 @@ struct target_type nds32_v3_target = {
 
        .assert_reset = nds32_assert_reset,
        .deassert_reset = nds32_v3_deassert_reset,
-       .soft_reset_halt = nds32_v3_soft_reset_halt,
 
        /* register access */
        .get_gdb_reg_list = nds32_get_gdb_reg_list,
index 3930c25090b992f74da052a4b9aa883da60f2ce8..531cab09452e0ecccfeed918c065e002418b41ca 100644 (file)
@@ -369,12 +369,6 @@ int nds32_v3_target_request_data(struct target *target,
        return ERROR_OK;
 }
 
-int nds32_v3_soft_reset_halt(struct target *target)
-{
-       struct aice_port_s *aice = target_to_aice(target);
-       return aice_assert_srst(aice, AICE_RESET_HOLD);
-}
-
 int nds32_v3_checksum_memory(struct target *target,
                uint32_t address, uint32_t count, uint32_t *checksum)
 {
index c62da9a3da39823ccfb0a39ed033d4a963e078a7..fd4a590717540cf0770d6d9d379d7217c9f30f31 100644 (file)
@@ -34,7 +34,6 @@ struct nds32_v3_common_callback {
 void nds32_v3_common_register_callback(struct nds32_v3_common_callback *callback);
 int nds32_v3_target_request_data(struct target *target,
                uint32_t size, uint8_t *buffer);
-int nds32_v3_soft_reset_halt(struct target *target);
 int nds32_v3_checksum_memory(struct target *target,
                uint32_t address, uint32_t count, uint32_t *checksum);
 int nds32_v3_hit_watchpoint(struct target *target,
index 35a76378021a6b77777df86100dd63695153f56b..2c0d255743f9385ae1b3b94611b82cad75b592e4 100644 (file)
@@ -473,7 +473,6 @@ struct target_type nds32_v3m_target = {
 
        .assert_reset = nds32_assert_reset,
        .deassert_reset = nds32_v3m_deassert_reset,
-       .soft_reset_halt = nds32_v3_soft_reset_halt,
 
        /* register access */
        .get_gdb_reg_list = nds32_get_gdb_reg_list,