|
120 | 120 | * http://www.st.com/resource/en/reference_manual/dm00346336.pdf |
121 | 121 | */ |
122 | 122 |
|
| 123 | +/* STM32U5xxx series for reference. |
| 124 | + * |
| 125 | + * RM0456 (STM32U5xx) |
| 126 | + * http://www.st.com/resource/en/reference_manual/dm00477635.pdf |
| 127 | + */ |
| 128 | + |
123 | 129 | /* Erase time can be as high as 25ms, 10x this and assume it's toast... */ |
124 | 130 |
|
125 | 131 | #define FLASH_ERASE_TIMEOUT 250 |
@@ -346,7 +352,11 @@ static const struct stm32l4_rev stm32g49_g4axx_revs[] = { |
346 | 352 |
|
347 | 353 | static const struct stm32l4_rev stm32u57_u58xx_revs[] = { |
348 | 354 | { 0x1000, "A" }, { 0x1001, "Z" }, { 0x1003, "Y" }, { 0x2000, "B" }, |
349 | | - { 0x2001, "X" }, { 0x3000, "C" }, |
| 355 | + { 0x2001, "X" }, { 0x3000, "C" }, { 0x3001, "W" }, |
| 356 | +}; |
| 357 | + |
| 358 | +static const struct stm32l4_rev stm32u59_u5axx_revs[] = { |
| 359 | + { 0x3001, "X" }, |
350 | 360 | }; |
351 | 361 |
|
352 | 362 | static const struct stm32l4_rev stm32wba5x_revs[] = { |
@@ -574,6 +584,18 @@ static const struct stm32l4_part_info stm32l4_parts[] = { |
574 | 584 | .otp_base = 0x1FFF7000, |
575 | 585 | .otp_size = 1024, |
576 | 586 | }, |
| 587 | + { |
| 588 | + .id = DEVID_STM32U59_U5AXX, |
| 589 | + .revs = stm32u59_u5axx_revs, |
| 590 | + .num_revs = ARRAY_SIZE(stm32u59_u5axx_revs), |
| 591 | + .device_str = "STM32U59/U5Axx", |
| 592 | + .max_flash_size_kb = 4096, |
| 593 | + .flags = F_HAS_DUAL_BANK | F_QUAD_WORD_PROG | F_HAS_TZ | F_HAS_L5_FLASH_REGS, |
| 594 | + .flash_regs_base = 0x40022000, |
| 595 | + .fsize_addr = 0x0BFA07A0, |
| 596 | + .otp_base = 0x0BFA0000, |
| 597 | + .otp_size = 512, |
| 598 | + }, |
577 | 599 | { |
578 | 600 | .id = DEVID_STM32U57_U58XX, |
579 | 601 | .revs = stm32u57_u58xx_revs, |
@@ -2000,9 +2022,10 @@ static int stm32l4_probe(struct flash_bank *bank) |
2000 | 2022 | stm32l4_info->bank1_sectors = num_pages / 2; |
2001 | 2023 | } |
2002 | 2024 | break; |
| 2025 | + case DEVID_STM32U59_U5AXX: |
2003 | 2026 | case DEVID_STM32U57_U58XX: |
2004 | | - /* if flash size is max (2M) the device is always dual bank |
2005 | | - * otherwise check DUALBANK |
| 2027 | + /* if flash size is more than 1M the device is always dual bank |
| 2028 | + * otherwise check DUALBANK bit |
2006 | 2029 | */ |
2007 | 2030 | page_size_kb = 8; |
2008 | 2031 | num_pages = flash_size_kb / page_size_kb; |
|
0 commit comments