/** @file ARM implementation of architecture specific routines related to PersistAcrossReset capsules Copyright (c) 2018, Linaro, Ltd. All rights reserved.
Copyright (c) 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "CapsuleService.h" /** Whether the platform supports capsules that persist across reset. Note that some platforms only support such capsules at boot time. @return TRUE if a PersistAcrossReset capsule may be passed to UpdateCapsule() at this time FALSE otherwise **/ BOOLEAN IsPersistAcrossResetCapsuleSupported ( VOID ) { // // ARM requires the capsule payload to be cleaned to the point of coherency // (PoC), but only permits doing so using cache maintenance instructions that // operate on virtual addresses. Since at runtime, we don't know the virtual // addresses of the data structures that make up the scatter/gather list, we // cannot perform the maintenance, and all we can do is give up. // return FeaturePcdGet (PcdSupportUpdateCapsuleReset) && !EfiAtRuntime (); }