SCP Address Translation Unit (ATU) Configuration

Introduction

The ATU provides means to convert the 32-bit logical address from the sub-system memory map to the physical address residing in the system memory map with rich security attributes.

The SCP is treated as a secure processor in the RD-Fremont platform variants and hence cannot access Root or Realm physical address space (PAS). But during the platform boot, the SCP is required to generate transactions to root PAS for configuring the CMN via the ATU.

Overview

The SCP can access the AP memory map via Address Translation Window which must be configured in the ATU. The ATU driver module in the SCP firmware configures the ATU regions.

The SCP ATU is configured with the following translation regions:

Region

Logical Address Range

Physical Address Range

PAS

Cluster Utility

0x6000_0000 - 0x6FFF_FFFF

0x2_0000_0000 - 0x2_FFFF_FFFF

Root

AP Shared SRAM

0x7000_0000 - 0x77FF_FFFF

0x0000_0000 - 0x07FF_FFFF

Root

GPC SMMU

0x7800_0000 - 0x780F_FFFF

0x3_0000_0000 - 0x3_000F_FFFF

Root

AP Peripherals

0x7810_0000 - 0x784F_FFFF

0x2F00_0000 - 0x2F3F_FFFF

Secure

CMN CFGM

0xA000_0000 - 0xDFFF_FFFF

0x1_0000_0000 - 0x1_3FFF_FFFF

Root

This SCP ATU driver implementation can be found in the in the following file in the software stack: <workspace>/scp/module/atu/

Runtime Configuration of ATU

In addition to the statically mapped translation regions if an additional ATU region needs to be configured during the runtime, then the ATU API can be used by the modules.

Please refer <workspace>/scp/module/atu/doc/atu.md


Copyright (c) 2023-2024, Arm Limited. All rights reserved.