diff --git a/src/cap-description.adoc b/src/cap-description.adoc index 28a6a3b0..ec3dc2ba 100644 --- a/src/cap-description.adoc +++ b/src/cap-description.adoc @@ -630,7 +630,7 @@ or 'root' capability. | SDP | ones | Grants all permissions | AP (MXLEN=32) | 0x8/0x9^1^ (see xref:cap_perms_encoding32[xrefstyle=short]) | Grants all permissions -| AP (MXLEN=64) | 0xFF (see xref:cap_perms_encoding64[xrefstyle=short]) +| AP (MXLEN=64) | 0x3F/0xFF^3^ (see xref:cap_perms_encoding64[xrefstyle=short]) | Grants all permissions | CL | one^2^| _Global_ | CT | zero | Unsealed @@ -652,6 +652,8 @@ or 'root' capability. ^2^ This field only exists if {cheri_levels_ext_name} is implemented. +^3^ When {cheri_levels_ext_name} is not implemented the value is 0x3f since the bits reserved for `EL` and `SL` must be zero. + [#section_cap_representable_check, reftext="Representable Range"] === Representable Range Check diff --git a/src/insns/gcperm_32bit.adoc b/src/insns/gcperm_32bit.adoc index 36c06a42..2c8da2ff 100644 --- a/src/insns/gcperm_32bit.adoc +++ b/src/insns/gcperm_32bit.adoc @@ -33,6 +33,9 @@ permission bits in `rd` are set to 0. [#gcperm_bit_field] include::../img/acperm_bit_field.edn[] +NOTE: When {cheri_levels_ext_name} is not implemented, the `CL`, `SL`, and `EL` fields always report 0. +Therefore, the presence of the {cheri_levels_ext_name} can be detected by checking the <> result on the <>. + Exceptions:: include::require_cre.adoc[]