Skip to content

nxp-mcuxpresso/i.mxrt-ufl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT-UFL (Universal FlashLoader)

  RT-UFL is a universal flashloader, one .FLM file for all i.MXRT chips, it should be integrated into Segger driver (or Keil MDK), then you can download and debug MCUXpresso SDK XIP project by J-Link.

  The main features of RT-UniversalFlashloader:

  • Can run on all i.MXRT chips.
  • Can support any serial NOR Flash that can be used as i.MXRT boot device .
  • Can erase and program Flash connected to ROM specified pinmux.
  • Can auto-detect serial NOR Flash type (QuadSPI, Octal-SPI, Hyperbus).
  • Can auto-detect SFDP version of Flash.
  • Can support Flash without SFDP.
  • Can auto-detect default QE bit status of QuadSPI Flash.
  • Can output necessary information of Flash for boot header.

  The block diagram of RT-UniversalFlashloader:

  RT-UniversalFlashloader contains three layers:

  • [API Layer]: API is defined by Tool (Segger, Keil MDK).
  • [Adapter Layer]: The key layer to support different i.MXRT chips and NOR Flash chips.
  • [Driver Layer]: The low-level FlexSPI NOR driver.

  To develop RT-UniversalFlashloader, we should be aware of below notes:

  • Always use Cortex-M0 instruction set to build final .FLM file.
  • There is no device ID in i.MXRT, we can take use of ROM content to find part number.
  • Most i.MXRT chips contain ROM API, we can use ROM API as low-level NOR driver.
  • Flash auto-probe feature is added in i.MXRT1060 BootROM, we can refer to this feature to develop key flash_auto_probe() function.
  • soft reset command should be issued to reset Flash after every failed attempt in flash_auto_probe()