On 13 January 2018 at 06:52, Michael Zimmermann
<sigmaepsilo...@gmail.com> wrote:
> This currently isn't needed by anything in the edk2 tree but
> it's useful for externally maintained platforms which have
> to set this register e.g. to disable alignment aborts.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael Zimmermann <sigmaepsilo...@gmail.com>

Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

Pushed as 1e1d16971d1a

Thanks!

> ---
>  ArmPkg/Include/Library/ArmLib.h               | 6 ++++++
>  ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S | 9 +++++++++
>  ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S     | 4 ++++
>  ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm   | 3 +++
>  4 files changed, 22 insertions(+)
>
> diff --git a/ArmPkg/Include/Library/ArmLib.h b/ArmPkg/Include/Library/ArmLib.h
> index 24e84c7a1965..ffda50e9d767 100644
> --- a/ArmPkg/Include/Library/ArmLib.h
> +++ b/ArmPkg/Include/Library/ArmLib.h
> @@ -558,6 +558,12 @@ ArmReadSctlr (
>    VOID
>    );
>
> +VOID
> +EFIAPI
> +ArmWriteSctlr (
> +  IN  UINT32   Value
> +  );
> +
>  UINTN
>  EFIAPI
>  ArmReadHVBar (
> diff --git a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S 
> b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
> index 9d3dd66b10eb..1ef2f61f5979 100644
> --- a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
> +++ b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
> @@ -187,4 +187,13 @@ ASM_FUNC(ArmReadSctlr)
>  3:mrs   x0, sctlr_el3
>  4:ret
>
> +ASM_FUNC(ArmWriteSctlr)
> +  EL1_OR_EL2_OR_EL3(x1)
> +1:msr   sctlr_el1, x0
> +  ret
> +2:msr   sctlr_el2, x0
> +  ret
> +3:msr   sctlr_el3, x0
> +4:ret
> +
>  ASM_FUNCTION_REMOVE_IF_UNREFERENCED
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S 
> b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S
> index a0b5ed500298..149b57e059ee 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S
> @@ -153,6 +153,10 @@ ASM_FUNC(ArmReadSctlr)
>    mrc     p15, 0, r0, c1, c0, 0      @ Read SCTLR into R0 (Read control 
> register configuration data)
>    bx      lr
>
> +ASM_FUNC(ArmWriteSctlr)
> +  mcr     p15, 0, r0, c1, c0, 0
> +  bx      lr
> +
>  ASM_FUNC(ArmReadCpuActlr)
>    mrc     p15, 0, r0, c1, c0, 1
>    bx      lr
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm 
> b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm
> index 85b0feee20d4..219140c22b13 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm
> @@ -155,6 +155,9 @@
>    mrc     p15, 0, r0, c1, c0, 0      // Read SCTLR into R0 (Read control 
> register configuration data)
>    bx      lr
>
> + RVCT_ASM_EXPORT ArmWriteSctlr
> +  mcr     p15, 0, r0, c1, c0, 0
> +  bx      lr
>
>   RVCT_ASM_EXPORT ArmReadCpuActlr
>    mrc     p15, 0, r0, c1, c0, 1
> --
> 2.15.1
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to