4.1.6. Preloading TCM

Methods to preload TCMs include:

Memory copy with running boot code

Where boot code includes a memory copy routine that reads data from a ROM, and writes it into the appropriate TCM, you must enable the TCM to do this. This bootcode must be run from an address outside the TCM region.

DMA into TCM

The System includes a DMA device that reads data from a ROM, and writes it to the TCMs through the AHB slave interface. This method can be used to preload the TCM so they can be used by the processor from reset.

Using the TCM from reset

If the TCM interface is configured to enable the TCM at reset and the reset vector address is inside the TCM memory region then the processor boots from TCM. The system must ensure that the bootcode software is present in the appropriate memory region before execution starts. This can be accomplished by either initializing the memory before reset or by transferring the data after reset using the AHB slave interface and asserting the CPUWAIT input signal. Asserting this signal stops the processor fetching or executing instructions after reset. When the CPUWAIT signal is deasserted the processor starts fetching instructions from the reset vector address in the normal way.


When CPUWAIT has been deasserted to start the processor fetching, CPUWAIT must not be asserted again except when the processor is under processor reset or Power-on reset; that is nSYSRESET or nPORESET asserted. The processor does not halt if the CPUWAIT is asserted while the processor is running.

Copyright © 2014-2016, 2018 Arm. All rights reserved.ARM DDI 0489F