GPCBW_EL3, Granule Protection Check Bypass Window Register (EL3)

The GPCBW_EL3 characteristics are:

Purpose

The control register for Granule Protection Check bypass window.

Configuration

This register is present only when FEAT_RME_GPC3 is implemented. Otherwise, direct accesses to GPCBW_EL3 are UNDEFINED.

Attributes

GPCBW_EL3 is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0BWSIZEBWSTRIDE
RES0BWADDR

Bits [63:40]

Reserved, RES0.

BWSIZE, bits [39:37]

GPC Bypass Window Size.

BWSIZE defines the size of the GPC bypass memory region.

BWSIZEMeaning
0b000

30 bits, 1GB GPC bypass window.

0b001

31 bits, 2GB GPC bypass window.

0b010

32 bits, 4GB GPC bypass window.

0b011

34 bits, 16GB GPC bypass window.

0b100

36 bits, 64GB GPC bypass window.

All other values are reserved.

This field is permitted to be cached in a TLB.

The reset behavior of this field is:

BWSTRIDE, bits [36:32]

GPC Bypass Window Stride.

BWSTRIDE allows creating multiple GPC bypass memory regions in the memory map across a specific stride.

BWSTRIDEMeaning
0b00000

1TB stride.

0b00010

4TB stride.

0b00100

16TB stride.

0b00110

64TB stride.

0b00111

128TB stride.

0b01000

256TB stride.

0b01001

512TB stride.

0b01010

1PB stride.

0b10000

64PB (No stride).

All other values are reserved.

This field is permitted to be cached in a TLB.

The reset behavior of this field is:

Bits [31:26]

Reserved, RES0.

BWADDR, bits [25:0]

GPC Bypass window address.

This field represents bits [55:30] of the GPC bypass window base address.

The GPC bypass window is:

This means that only bits [gpcbwu:gpcbwl] of a PA are compared against bits [gpcbwu:gpcbwl] of the window base address derived from BWADDR when checking if a PA falls within the range of a window, where:

BWSIZEgpcbwl
0b00030
0b00131
0b01032
0b10034
0b11036
BWSTRIDEgpcbwu
0b0000039
0b0001041
0b0010043
0b0011045
0b0011146
0b0100047
0b0100148
0b0101049
0b1000055

If the base address derived from BWADDR is not aligned to the size programmed in BWSIZE the configuration is invalid.

An access to a PA falls within a GPC bypass window if the pseudocode function PAWithinGPCBypassWindow() returns TRUE.

This field is permitted to be cached in a TLB.

The reset behavior of this field is:

Accessing GPCBW_EL3

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, GPCBW_EL3

op0op1CRnCRmop2
0b110b1100b00100b00010b101

if !IsFeatureImplemented(FEAT_RME_GPC3) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then X[t, 64] = GPCBW_EL3;

MSR GPCBW_EL3, <Xt>

op0op1CRnCRmop2
0b110b1100b00100b00010b101

if !IsFeatureImplemented(FEAT_RME_GPC3) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then if IsFeatureImplemented(FEAT_FGWTE3) && FGWTE3_EL3.GPCBW_EL3 == '1' then AArch64.SystemAccessTrap(EL3, 0x18); else GPCBW_EL3 = X[t, 64];


15/12/2024 22:27; 5e0a212688c6bd7aee92394b6f5e491b4d0fee1d

Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.