aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKarl Palsson <karlp@tweak.au>2023-08-02 21:42:08 +0000
committerAntonio Borneo <borneo.antonio@gmail.com>2023-08-26 11:39:33 +0000
commit3182a1398a02a930396bd0192bda2a9ed3dacd6f (patch)
tree3c4ab55c47b4898563ccbb0f4a0fea0f8d0ff111 /src
parent05ee88915520d1dd82da94a016a9374a1f3a8129 (diff)
downloadriscv-openocd-3182a1398a02a930396bd0192bda2a9ed3dacd6f.zip
riscv-openocd-3182a1398a02a930396bd0192bda2a9ed3dacd6f.tar.gz
riscv-openocd-3182a1398a02a930396bd0192bda2a9ed3dacd6f.tar.bz2
target/cortex_m: Add Realtek Real-M200 and M300
These cores are advertised as M23 and M33 compatible, but are identified by the Realtek implementor id. These cores are found on the RTL872xD family, at least. Raw CPUIDs: Real-M200 (KM0): 721cd200 Real-M300 (KM4): 721fd220 Change-Id: I4106ccb7e8c562f98072a71e9e818f57999d664e Signed-off-by: Karl Palsson <karlp@tweak.au> Reviewed-on: https://review.openocd.org/c/openocd/+/7846 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/target/arm.h1
-rw-r--r--src/target/cortex_m.c11
-rw-r--r--src/target/cortex_m.h2
3 files changed, 14 insertions, 0 deletions
diff --git a/src/target/arm.h b/src/target/arm.h
index f3abd6c..28e5330 100644
--- a/src/target/arm.h
+++ b/src/target/arm.h
@@ -61,6 +61,7 @@ enum arm_arch {
/** Known ARM implementor IDs */
enum arm_implementor {
ARM_IMPLEMENTOR_ARM = 0x41,
+ ARM_IMPLEMENTOR_REALTEK = 0x72,
};
/**
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 87a8845..014ceae 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -111,6 +111,17 @@ static const struct cortex_m_part_info cortex_m_parts[] = {
.arch = ARM_ARCH_V8M,
.flags = CORTEX_M_F_HAS_FPV5,
},
+ {
+ .impl_part = REALTEK_M200_PARTNO,
+ .name = "Real-M200 (KM0)",
+ .arch = ARM_ARCH_V8M,
+ },
+ {
+ .impl_part = REALTEK_M300_PARTNO,
+ .name = "Real-M300 (KM4)",
+ .arch = ARM_ARCH_V8M,
+ .flags = CORTEX_M_F_HAS_FPV5,
+ },
};
/* forward declarations */
diff --git a/src/target/cortex_m.h b/src/target/cortex_m.h
index 806ff59..b5d1da7 100644
--- a/src/target/cortex_m.h
+++ b/src/target/cortex_m.h
@@ -56,6 +56,8 @@ enum cortex_m_impl_part {
CORTEX_M33_PARTNO = ARM_MAKE_CPUID(ARM_IMPLEMENTOR_ARM, 0xD21),
CORTEX_M35P_PARTNO = ARM_MAKE_CPUID(ARM_IMPLEMENTOR_ARM, 0xD31),
CORTEX_M55_PARTNO = ARM_MAKE_CPUID(ARM_IMPLEMENTOR_ARM, 0xD22),
+ REALTEK_M200_PARTNO = ARM_MAKE_CPUID(ARM_IMPLEMENTOR_REALTEK, 0xd20),
+ REALTEK_M300_PARTNO = ARM_MAKE_CPUID(ARM_IMPLEMENTOR_REALTEK, 0xd22),
};
/* Relevant Cortex-M flags, used in struct cortex_m_part_info.flags */