3.8. Relocation of Low Virtual Addresses by Process Identifier

The virtual address produced by the processor core going to the IDC and MMU may be relocated if it lies in the bottom 32MB of the virtual address (that is, virtual address bits [31:25] = 0000000) by the substitution of the seven bits [31:25] of the ProcessID register in the CP15 Coprocessor.

The two instructions fetched immediately following an instruction to change the Process Identifier are fetched with a relocation to the previous Process Identifier, if the addresses of the instructions being fetched lie within the range of addresses to be relocated. In this behaviour, a change to the Process Identifier exhibits similar behaviour to a delayed branch.

On reset, the Process Identifier register bits [31:25] are set to 0000000, thus disabling all relocation. For this reason, the low address reset exception vector is effectively never relocated by this mechanism.

Relocation of the virtual address only occurs if the WinCE Enhancements pin is at a logic “1”; that is, the WinCE Enhancements are enabled.

Note

All addresses produced by the processor core undergo this translation if they lie in the appropriate address range; this includes the exception vectors if they are configured to lie in the bottom of the virtual memory map (this configuration is determined by the Vbit in the CP15 Control Register).

Copyright © 1997, 1998 ARM Limited. All rights reserved.DDI 0087E
Non-Confidential