From b7c51c9cf4864df6aabb99a1ae843becd577237c Mon Sep 17 00:00:00 2001 From: raywu Date: Fri, 15 Jun 2018 00:00:50 +0800 Subject: init. 1AQQW051 --- Protocol/GenericFru/GenericFru.c | 35 +++++++++++ Protocol/GenericFru/GenericFru.h | 124 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 Protocol/GenericFru/GenericFru.c create mode 100644 Protocol/GenericFru/GenericFru.h (limited to 'Protocol/GenericFru') diff --git a/Protocol/GenericFru/GenericFru.c b/Protocol/GenericFru/GenericFru.c new file mode 100644 index 0000000..de0c8ce --- /dev/null +++ b/Protocol/GenericFru/GenericFru.c @@ -0,0 +1,35 @@ +/*++ + This file contains 'Framework Code' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may not be modified, except as allowed by + additional terms of your license agreement. +--*/ +/*++ + +Copyright (c) 1999 - 2002 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 such +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. + + +Module Name: + + GenericFru.c + +Abstract: + + Generic FRU Protocol GUID as defined in Tiano + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (GenericFru) + +EFI_GUID gEfiGenericFruProtocolGuid = EFI_SM_FRU_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiGenericFruProtocolGuid, "GENERIC FRU", "GENERIC FRU"); diff --git a/Protocol/GenericFru/GenericFru.h b/Protocol/GenericFru/GenericFru.h new file mode 100644 index 0000000..f50c627 --- /dev/null +++ b/Protocol/GenericFru/GenericFru.h @@ -0,0 +1,124 @@ +// +// This file contains 'Framework Code' and is licensed as such +// under the terms of your license agreement with Intel or your +// vendor. This file may not be modified, except as allowed by +// additional terms of your license agreement. +// +/*++ + +Copyright (c) 1999 - 2001 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 such +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. + + +Module Name: + + GenericFru.h + +Abstract: + + Generic FRU Protocol as defined in Tiano + + This code abstracts the generic FRU Protocol + +--*/ + +#ifndef _GENERIC_FRU_H_ +#define _GENERIC_FRU_H_ + +#define EFI_SM_FRU_PROTOCOL_GUID \ + { \ + 0xc8eebf0e, 0xe10, 0x47f7, 0x81, 0xbd, 0x39, 0xdb, 0x75, 0xca, 0x93, 0x9f \ + } + +EFI_FORWARD_DECLARATION (EFI_SM_FRU_PROTOCOL); + +// +// Common FRU Types +// +#define EFI_CPU_TYPE_FRU_GUID \ + { \ + 0xf064c91f, 0x188c, 0x4f56, 0xb7, 0xfd, 0x30, 0xa9, 0xb8, 0x6a, 0x29, 0xf3 \ + } + +#define EFI_MEMORY_TYPE_FRU_GUID \ + { \ + 0xd50234f4, 0x6f4b, 0x43e8, 0xa0, 0x13, 0x3c, 0x1e, 0x33, 0xd9, 0xb9, 0xb1 \ + } + +#define EFI_SYSTEM_TYPE_FRU_GUID \ + { \ + 0xaab16018, 0x679d, 0x4461, 0xba, 0x20, 0xe7, 0xc, 0xf7, 0x86, 0x6a, 0x9b \ + } + +// +// Common FRU Formats. +// +#define EFI_IPMI_FORMAT_FRU_GUID \ + { \ + 0x3531fdc6, 0xeae, 0x4cd2, 0xb0, 0xa6, 0x5f, 0x48, 0xa0, 0xdf, 0xe3, 0x8 \ + } + +#define EFI_DMI_FORMAT_FRU_GUID \ + { \ + 0x67ef7a73, 0x2594, 0x4a5e, 0x93, 0xa, 0xe1, 0x66, 0xfa, 0xbc, 0xd2, 0xc8 \ + } + +#define EFI_INTEL_MFG_FORMAT_FRU_GUID \ + { \ + 0x79e8c9c7, 0x1152, 0x4f00, 0xb8, 0x31, 0x14, 0xf1, 0xc4, 0x4, 0x1a, 0xe0 \ + } + +// +// Generic FRU Function Prototypes +// +typedef +EFI_STATUS +(EFIAPI *EFI_GET_FRU_INFO) ( + IN EFI_SM_FRU_PROTOCOL * This, + IN EFI_GUID * FruTypeGuid, + IN UINTN FruInstance, + OUT EFI_GUID * FruFormatGuid, + OUT UINTN *DataAccessGranularity, + OUT CHAR16 **FruInformationString + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_GET_FRU_DATA) ( + IN EFI_SM_FRU_PROTOCOL * This, + IN EFI_GUID * FruTypeGuid, + IN UINTN FruInstance, + IN UINTN FruDataOffset, + IN UINTN FruDataSize, + IN UINT8 *FruData + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SET_FRU_DATA) ( + IN EFI_SM_FRU_PROTOCOL * This, + IN EFI_GUID * FruTypeGuid, + IN UINTN FruInstance, + IN UINTN FruDataOffset, + IN UINTN FruDataSize, + IN UINT8 *FruData + ); + +// +// GENERIC FRU PROTOCOL +// +typedef struct _EFI_SM_FRU_PROTOCOL { + EFI_GET_FRU_INFO GetFruInfo; + EFI_GET_FRU_DATA GetFruData; + EFI_SET_FRU_DATA SetFruData; +} EFI_SM_FRU_PROTOCOL; + +extern EFI_GUID gEfiGenericFruProtocolGuid; + +#endif -- cgit v1.2.3