diff options
author | Kuldeep Singh Dhaka <kuldeepdhaka9@gmail.com> | 2014-02-03 21:57:33 +0530 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2014-02-11 11:05:44 +0000 |
commit | 7b9b4a0d287cdf84033a0d34d05a25fa80160cf5 (patch) | |
tree | 3648d8087f61a6b91ddfe6bc7f84743aabbcca14 | |
parent | ddef36905cc3e4493960ce0ad6bf6ac113148c29 (diff) |
nor/flash/stm32f1x: add stm32f07x support
Added configuration to work with stm32f07x.
Tested on stm32f072discovery with libopencm3 stm32f0 blink example.
Change-Id: I63cdc9bf1f28f5951d6b4faac871cfde331c9c78
Signed-off-by: Kuldeep Singh Dhaka <kuldeepdhaka9@gmail.com>
Reviewed-on: http://openocd.zylin.com/1921
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
-rw-r--r-- | src/flash/nor/stm32f1x.c | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c index 30652c6f..105bd79c 100644 --- a/src/flash/nor/stm32f1x.c +++ b/src/flash/nor/stm32f1x.c @@ -921,8 +921,8 @@ static int stm32x_probe(struct flash_bank *bank) stm32x_info->option_offset = 6; stm32x_info->default_rdp = 0x55AA; break; - case 0x440: /* stm32f0x */ - case 0x444: + case 0x440: /* stm32f05x */ + case 0x444: /* stm32f03x */ page_size = 1024; stm32x_info->ppage_size = 4; max_flash_size_in_kb = 64; @@ -930,6 +930,14 @@ static int stm32x_probe(struct flash_bank *bank) stm32x_info->option_offset = 6; stm32x_info->default_rdp = 0x55AA; break; + case 0x448: /* stm32f07x */ + page_size = 2048; + stm32x_info->ppage_size = 4; + max_flash_size_in_kb = 128; + stm32x_info->user_data_offset = 16; + stm32x_info->option_offset = 6; + stm32x_info->default_rdp = 0x55AA; + break; default: LOG_WARNING("Cannot identify target as a STM32 family."); return ERROR_FAIL; @@ -1167,9 +1175,36 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) } break; - case 0x440: case 0x444: - device_str = "STM32F0xx"; + device_str = "STM32F03x"; + + switch (rev_id) { + case 0x1000: + rev_str = "1.0"; + break; + + case 0x2000: + rev_str = "2.0"; + break; + } + break; + + case 0x440: + device_str = "STM32F05x"; + + switch (rev_id) { + case 0x1000: + rev_str = "1.0"; + break; + + case 0x2000: + rev_str = "2.0"; + break; + } + break; + + case 0x448: + device_str = "STM32F07x"; switch (rev_id) { case 0x1000: |