summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-12-19 22:54:07 -0800
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-12-20 11:11:54 -0800
commitabf01895aea06b0e5c79687b68c424e62b205546 (patch)
tree09ce789463e77b5f570a0d8caeacfbd491197543 /src
parent0df5d1eb3c3a640c34de52787c4a70c07b53535f (diff)
downloadopenocd+libswd-abf01895aea06b0e5c79687b68c424e62b205546.tar.gz
openocd+libswd-abf01895aea06b0e5c79687b68c424e62b205546.tar.bz2
openocd+libswd-abf01895aea06b0e5c79687b68c424e62b205546.tar.xz
openocd+libswd-abf01895aea06b0e5c79687b68c424e62b205546.zip
ARM11: recognize ARM11 MPCore
And add my copyright. MPCore is untested, but it's the only other ARM11 core to care about. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src')
-rw-r--r--src/target/arm11.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/target/arm11.c b/src/target/arm11.c
index 970738c9..67a84095 100644
--- a/src/target/arm11.c
+++ b/src/target/arm11.c
@@ -6,6 +6,8 @@
* *
* Copyright (C) 2008 Georg Acher <acher@in.tum.de> *
* *
+ * Copyright (C) 2009 David Brownell *
+ * *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
@@ -1209,20 +1211,24 @@ static int arm11_examine(struct target *target)
CHECK_RETVAL(jtag_execute_queue());
- switch (device_id & 0x0FFFF000)
+ /* assume the manufacturer id is ok; check the part # */
+ switch ((device_id >> 12) & 0xFFFF)
{
- case 0x07B36000:
+ case 0x7B36:
type = "ARM1136";
break;
- case 0x07B56000:
+ case 0x7B37:
+ type = "ARM11 MPCore";
+ break;
+ case 0x7B56:
type = "ARM1156";
break;
- case 0x07B76000:
+ case 0x7B76:
arm11->arm.core_type = ARM_MODE_MON;
type = "ARM1176";
break;
default:
- LOG_ERROR("'target arm11' expects IDCODE 0x*7B*7****");
+ LOG_ERROR("unexpected ARM11 ID code");
return ERROR_FAIL;
}
LOG_INFO("found %s", type);