Understanding Arm documentation
Arm provides a lot of documentation to developers. We will explain where to find documentation and other information for developing on Arm.
Where is the documentation?
The Arm developer website - This is where you can download the Arm architecture and processor manuals.
The Arm community is where you can ask development questions, and find articles and blogs on specific topics from Arm experts.
Which document describes what?
- Each Arm Architecture Reference Manuals (Arm ARM) describes an architecture specifications. An Arm ARM is relevant to any implementation of that architecture.
- Each Arm Cortex processor has a Technical Reference Manual (TRM). The TRM describes the features specific to that processor. In general, the TRMs will not repeat any information given in the Arm ARMs.
- Each Arm Cortex processor also has a Configuration or Integration Manual (CIM). The CIM describes how to integrate the processor into a system. Generally, this information is only relevant to SoC designers.
Note: The CIMs are only available to IP licensees. The TRMs are available to download from developer.arm.com without a license.
So, what does this mean for me?
If you are looking for information on a particular processor, you might need to refer to several different documents. Here we can see the different documents you might need to use with a Cortex-A75 processor.
Cortex-A75 implements ARMv8.2-A, a GICv4 CPU interface and AMBA bus interfaces, so you would need to refer to separate documents for each element. Plus, you would need to refer to the documents detailing the micro-architecture.
If you are working with an existing SoC, you will also use documentation from the SoC’s manufacturer. This documentation is typically referred to as a datasheet. The datasheet gives information specific to that SoC.
What information will I find in each document?
|GIC specifications||AMBA specifications||TRM||CIM|
|Instruction cycle timings||X|
|Processor specific registers||X|
|Support for optional features||X
(some might be synthesis choice)
|Size of caches/TLBs||X|
|All legal bus transactions||X|
|Bus transactions generated by processor||X|
|Pin-out of SoC||X|
Differences between reference manuals and user guides
The documents we have looked at so far, Arm ARMs, TRMs and CIMs, are reference manuals. This means that they do not provide guidance on how to use the processor. For example, the Arm ARM does not have a section on how to turn on an MMU.
This structure is deliberate, and is intended to keep a clear divide between the technical detail of what the architecture requires, which is found in reference manuals, and documents that provide more general guidance, such as this guide. Some general guidance documents will introduce concepts, and others provide instructions for you to follow.