diff options
author | ntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-07-01 10:15:53 +0000 |
---|---|---|
committer | ntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-07-01 10:15:53 +0000 |
commit | f486f86c6c1aff3248fb556541fe1a18ca456c46 (patch) | |
tree | 39b2d4c2c839de695ee5d9ce99aa81fbe324de6c | |
parent | 3eb441bbcc86deb427a50bb0b598609063971b72 (diff) | |
download | openocd+libswd-f486f86c6c1aff3248fb556541fe1a18ca456c46.tar.gz openocd+libswd-f486f86c6c1aff3248fb556541fe1a18ca456c46.tar.bz2 openocd+libswd-f486f86c6c1aff3248fb556541fe1a18ca456c46.tar.xz openocd+libswd-f486f86c6c1aff3248fb556541fe1a18ca456c46.zip |
- correct stm32 connectivity line programming as per latest manual
git-svn-id: svn://svn.berlios.de/openocd/trunk@2439 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r-- | src/flash/stm32x.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/flash/stm32x.c b/src/flash/stm32x.c index e9f121fc..774b7d37 100644 --- a/src/flash/stm32x.c +++ b/src/flash/stm32x.c @@ -304,14 +304,15 @@ static int stm32x_protect_check(struct flash_bank_s *bank) if (stm32x_info->ppage_size == 2) { - /* high density flash */ + /* high density flash/connectivity line protection */ set = 1; if (protection & (1 << 31)) set = 0; - /* bit 31 controls sector 62 - 255 protection */ + /* bit 31 controls sector 62 - 255 protection for high density + * bit 31 controls sector 62 - 127 protection for connectivity line */ for (s = 62; s < bank->num_sectors; s++) { bank->sectors[s].is_protected = set; @@ -333,7 +334,7 @@ static int stm32x_protect_check(struct flash_bank_s *bank) } else { - /* medium density flash */ + /* low/medium density flash protection */ for (i = 0; i < num_bits; i++) { set = 1; @@ -776,10 +777,10 @@ static int stm32x_probe(struct flash_bank_s *bank) } else if ((device_id & 0x7ff) == 0x418) { - /* connectivity line density - we have 1k pages - * 4 pages for a protection area */ - page_size = 1024; - stm32x_info->ppage_size = 4; + /* connectivity line density - we have 2k pages + * 2 pages for a protection area */ + page_size = 2048; + stm32x_info->ppage_size = 2; /* check for early silicon */ if (num_pages == 0xffff) @@ -921,6 +922,10 @@ static int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size) snprintf(buf, buf_size, "A"); break; + case 0x1001: + snprintf(buf, buf_size, "Z"); + break; + default: snprintf(buf, buf_size, "unknown"); break; |