From 48a79ff9da28a7ef0ce0888f5200b884ad8d7b5d Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Sun, 29 Nov 2020 20:18:05 +0100 Subject: [PATCH] adiv5: More checks for a sensible DPIDR. --- src/target/adiv5.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/target/adiv5.c b/src/target/adiv5.c index 8c5e714f..a45bb1d8 100644 --- a/src/target/adiv5.c +++ b/src/target/adiv5.c @@ -614,8 +614,10 @@ ADIv5_AP_t *adiv5_new_ap(ADIv5_DP_t *dp, uint8_t apsel) void adiv5_dp_init(ADIv5_DP_t *dp) { - /* Check IDCODE for a valid designer*/ - if ((dp->idcode & 0xfff) == 0) { +#define DPIDR_PARTNO_MASK 0x0ff00000 +/* Check IDCODE for a valid designer and sensible PARTNO*/ + if (((dp->idcode & 0xfff) == 0) || + ((dp->idcode & DPIDR_PARTNO_MASK)) == DPIDR_PARTNO_MASK) { DEBUG_WARN("Invalid DP idcode %08" PRIx32 "\n", dp->idcode); free(dp); return;