From ed54838ea61afa647a2b6ce2121b4a5bc11995ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sun, 19 Apr 2015 21:25:12 +0200 Subject: [PATCH] flash/nor/xmc4xxx: Loosen checks for XMC4500 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to Infineon, XMC4500 EES AA13 with date codes before GE212 - as seen on an XMC4500 General App Kit - had a zero SCU_IDCHIP register. Handle this by extending our checks to not error out on zero SCU_IDCHIP and by printing a useful info string in that case. Change-Id: Ic2d641a314627dd5a1ff775a0113999191b95e3d Signed-off-by: Andreas Färber Reviewed-on: http://openocd.zylin.com/2751 Tested-by: jenkins Reviewed-by: Paul Fertser Reviewed-by: Jeff Ciesielski --- src/flash/nor/xmc4xxx.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/flash/nor/xmc4xxx.c b/src/flash/nor/xmc4xxx.c index df288ffd0..f47995079 100644 --- a/src/flash/nor/xmc4xxx.c +++ b/src/flash/nor/xmc4xxx.c @@ -341,7 +341,7 @@ static int xmc4xxx_probe(struct flash_bank *bank) } /* Make sure this is a XMC4000 family device */ - if ((devid & 0xF0000) != 0x40000) { + if ((devid & 0xF0000) != 0x40000 && devid != 0) { LOG_ERROR("Platform ID doesn't match XMC4xxx: 0x%08" PRIx32, devid); return ERROR_FAIL; } @@ -949,6 +949,13 @@ static int xmc4xxx_get_info_command(struct flash_bank *bank, char *buf, int buf_ break; } break; + case 0: + /* XMC4500 EES AA13 with date codes before GE212 + * had zero SCU_IDCHIP + */ + dev_str = "XMC4500 EES"; + rev_str = "AA13"; + break; case 0x500: dev_str = "XMC4500";