alder_lake_bios/Intel/AlderLake/AlderLakePlatSamplePkg/Include/CastroCovePmicNvm.h

102 lines
3.0 KiB
C

/**@file
This file is for CastroCove Pmic Nvm update
@copyright
Copyright (c) 2020 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by the
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
This file contains an 'Intel Peripheral Driver' and is uniquely
identified as "Intel Reference Module" and is licensed for Intel
CPUs and chipsets under the terms of your license agreement with
Intel or your vendor. This file may be modified by the user, subject
to additional terms of the license agreement.
@par Specification
**/
#ifndef _CASTRO_COVE_PMIC_NVM_H_
#define _CASTRO_COVE_PMIC_NVM_H_
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_READ8) (
IN UINT32 RegisterOffset,
IN UINT8 *Value,
IN UINT8 PmicId
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_WRITE8) (
IN UINT32 RegisterOffset,
IN UINT8 Value,
IN UINT8 PmicId
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_NVM_READ_FROM_FV) (
IN OUT UINT8 **Buffer,
IN OUT UINTN *Size,
IN EFI_GUID *PmicNvmFvFileGuid
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_NVM_UPDATE_CRITERIA_CHECK) (
IN UINT8 *Buffer,
IN UINTN Size,
IN UINT8 PmicId
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_NVM_UPDATE) (
IN UINT8 *Buffer,
IN UINTN Size,
IN UINT8 DesiredPayloadType,
IN UINT8 PmicId,
IN OUT UINT8 *PayloadFvBuffer,
IN OUT UINT16 *PayloadFvSize
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_NVM_UPDATE_FROM_APP) (
IN UINT8 *Buffer,
IN UINTN Size
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_READ_FROM_NVM) (
IN OUT UINT8 **Buffer,
IN OUT UINT16 *Size,
IN UINT16 StartAddress,
IN UINT8 PmicId
);
typedef
EFI_STATUS
(EFIAPI *CASTRO_COVE_PMIC_WRITE_LOCK) (
VOID
);
typedef struct _EFI_CASTRO_COVE_PMIC_NVM_PROTOCOL {
CASTRO_COVE_PMIC_READ8 CastroCovePmicRead8;
CASTRO_COVE_PMIC_WRITE8 CastroCovePmicWrite8;
CASTRO_COVE_PMIC_NVM_READ_FROM_FV CastroCovePmicNvmReadFromFv;
CASTRO_COVE_PMIC_NVM_UPDATE_CRITERIA_CHECK CastroCovePmicNvmUpdateCriteriaCheck;
CASTRO_COVE_PMIC_NVM_UPDATE CastroCovePmicNvmUpdate;
CASTRO_COVE_PMIC_NVM_UPDATE_FROM_APP CastroCovePmicNvmUpdatefromApp;
CASTRO_COVE_PMIC_READ_FROM_NVM CastroCovePmicReadFromNvm;
CASTRO_COVE_PMIC_WRITE_LOCK CastroCovePmicWriteLock;
} EFI_CASTRO_COVE_PMIC_NVM_PROTOCOL;
#endif //_CASTRO_COVE_PMIC_NVM_H_