2 ARM implementation of architecture specific routines related to
3 PersistAcrossReset capsules
5 Copyright (c) 2018, Linaro, Ltd. All rights reserved.<BR>
6 Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
8 This program and the accompanying materials are licensed and made available
9 under the terms and conditions of the BSD License which accompanies this
10 distribution. The full text of the license may be found at
11 http://opensource.org/licenses/bsd-license.php
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 #include "CapsuleService.h"
21 Whether the platform supports capsules that persist across reset. Note that
22 some platforms only support such capsules at boot time.
24 @return TRUE if a PersistAcrossReset capsule may be passed to UpdateCapsule()
29 IsPersistAcrossResetCapsuleSupported (
34 // ARM requires the capsule payload to be cleaned to the point of coherency
35 // (PoC), but only permits doing so using cache maintenance instructions that
36 // operate on virtual addresses. Since at runtime, we don't know the virtual
37 // addresses of the data structures that make up the scatter/gather list, we
38 // cannot perform the maintenance, and all we can do is give up.
40 return FeaturePcdGet (PcdSupportUpdateCapsuleReset
) && !EfiAtRuntime ();