You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add MIMXRT1176 (i.MX RT1170) support with flash boot
Add support for MIMXRT1176 including direct flash boot (XIP) mode.
Build system:
- Add FLASH_BUILD=1 option for flash-resident builds
- Fix UF2_MIMXRT1176_ADDR to 0x30000400 (FCFB at 0x400 offset)
- Use MCU-specific memory.ld for MIMXRT1176
Linker scripts:
- Add MIMXRT1176_flash.ld for XIP boot configuration
- Update MIMXRT1176_memory.ld to support both RAM and flash builds
Flash operations:
- Fix SCB_InvalidateDCache_by_Addr to use absolute address instead of
offset (was causing cache corruption on Cortex-M7)
- Add XIP detection to skip FlexSPI re-init when running from flash
- Add ROM_API_Init() call required for MIMXRT1176
USB support:
- Add optional USB_PWR_PINMUX for boards with USB power control
- Fix USB PHY PLL reference clock for RT1176 (24MHz, not 480MHz)
Board support:
- Add imxrt1170_evk board with clock configuration supporting both
RAM (SDP) and flash (XIP) boot modes
Other fixes:
- Fix CFG_TUSB_MEM_ALIGN to 32 bytes for M7 DCache compatibility
- Add MIMXRT1176-specific sources to family.cmake
- Update README with RT1170-EVK and FLASH_BUILD documentation
Copy file name to clipboardExpand all lines: ports/mimxrt10xx/README.md
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ To initially flash TinyUF2 on your blank board or board that is shipped with oth
8
8
9
9
### External Debugger
10
10
11
-
jlink or pyocd can be used to program .bin file to appropriate address on external flash which is typically **0x60000000** (RT1062) or **0x60000400** (RT1011). This can be done with `flash-jlink-bin` or `flash-pyocd-bin` make target.
11
+
jlink or pyocd can be used to program .bin file to appropriate address on external flash which is typically **0x60000000** (RT1062), **0x60000400** (RT1011), or **0x30000400** (RT1170). This can be done with `flash-jlink-bin` or `flash-pyocd-bin` make target.
12
12
13
13
```
14
14
make BOARD=metro_m7_1011 flash-jlink-bin
@@ -43,12 +43,46 @@ Note: Since SDP with BootROM doesn't requires external debugger and always exist
43
43
44
44
Double tap to enter bootloader mode, then simply drag & drop `update-tinyuf2_BOARD.uf2` into BOOT drive to update. The update file can be generated by running make with `self-update` target or simply download it from [release page](https://github.com/adafruit/tinyuf2/releases).
45
45
46
+
## RT1170 Flash-Resident Builds
47
+
48
+
The RT1170 supports an optional flash-resident (XIP) build mode using `FLASH_BUILD=1`. This is useful when you want TinyUF2 to execute directly from flash rather than being copied to SRAM first.
49
+
50
+
```
51
+
make BOARD=imxrt1170_evk FLASH_BUILD=1 all
52
+
```
53
+
54
+
Key differences in flash-resident mode:
55
+
- Uses `MIMXRT1176_flash.ld` linker script instead of `MIMXRT1176_ram.ld`
56
+
- Data/BSS placed in DTCM (0x20000000) instead of OCRAM
57
+
- Clock configuration detects XIP mode and preserves ROM bootloader clock settings
58
+
- FlexSPI initialization is skipped when already executing from flash
59
+
- Self-update (writing TinyUF2 to flash) is disabled for RT1176 flash builds
60
+
61
+
The flash address for RT1170 is **0x30000400** (FCFB at offset 0x400, IVT at 0x1000).
62
+
63
+
### RT1170-EVK Boot Switch Settings
64
+
65
+
The RT1170-EVK/EVKB uses SW1 (4-position DIP switch) to select boot mode:
0 commit comments