|
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