Processor Initialization, Resets, and Clocking
ARM DDI 0363E
Copyright © 2009 ARM Limited. All rights reserved.
3-3
ID013010
Non-Confidential, Unrestricted Access
•
enable the FPU by setting the EN-bit in the FPEXC register, see
Floating-Point Exception
Register, FPEXC
on page 12-7.
Note
Floating-point logic is only available with the Cortex-R4F processor.
3.1.4
Caches
If the processor has been built with instruction or data caches, these must be invalidated before
they are enabled, otherwise UNPREDICTABLE behavior can occur. See
Cache operations
on
page 4-54.
If you are using an error checking scheme in the cache, you must enable this by programming
the auxiliary control register as described in
Auxiliary Control Registers
on page 4-38 before
invalidating the cache, to ensure that the correct error code or parity bits are calculated when the
cache is invalidated. An invalidate all operation never reports any ECC or parity errors.
3.1.5
TCM
The processor does not initialize the TCM RAMs. It is not essential to initialize all the memory
attached to the TCM interface but ARM recommends that you do. In addition, you might want
to preload instructions or data into the TCM for the main application to use. This section
describes various ways that you can perform data preloading. You can also configure the
processor to use the TCMs from reset.
Preloading TCMs
You can write data to the TCMs using either store instructions or the AXI slave interface.
Depending on the method you choose, you might require:
•
particular hardware on the SoC that you are using
•
boot code
•
a debugger connected to the processor.
Methods to preload TCMs include:
Memory copy with running boot code
The 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, and it
might be necessary to give the TCM one base address while the copy is occurring,
and a different base address when the application is being run.
Copy data from the debug communications channel
The boot code includes a routine to read data from the
Debug Communications
Channel
(DCC) and write it into the TCM. The debug host feeds the data for this
operation into the DCC by writing to the appropriate registers on the processor
APB debug port.
Execute code in debug halt state
The processor is put into debug halt state by the debug host, which then feeds
instructions into the processor through the
Instruction Transfer Register
(ITR).
The processor executes these instructions, which replace the boot code in either
of the two methods described above.