hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/** @file
  IPMI Ttransport PPI Header File.
 
  @copyright
  Copyright 2014 - 2021 Intel Corporation. <BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _IPMI_TRANSPORT_PPI_H_
#define _IPMI_TRANSPORT_PPI_H_
 
#include "ServerManagement.h"
 
typedef struct _PEI_IPMI_TRANSPORT_PPI PEI_IPMI_TRANSPORT_PPI;
 
#define PEI_IPMI_TRANSPORT_PPI_GUID \
  { \
    0x7bf5fecc, 0xc5b5, 0x4b25, 0x81, 0x1b, 0xb4, 0xb5, 0xb, 0x28, 0x79, 0xf7 \
  }
 
//
// Common Defines
//
typedef UINT32  BMC_STATUS;
 
#define BMC_OK        0
#define BMC_SOFTFAIL  1
#define BMC_HARDFAIL  2
#define BMC_UPDATE_IN_PROGRESS  3
#define BMC_NOTREADY  4
 
 
//
//  IPMI Function Prototypes
//
typedef
EFI_STATUS
(EFIAPI *PEI_IPMI_SEND_COMMAND) (
  IN PEI_IPMI_TRANSPORT_PPI            *This,
  IN UINT8                             NetFunction,
  IN UINT8                             Lun,
  IN UINT8                             Command,
  IN UINT8                             *CommandData,
  IN UINT32                            CommandDataSize,
  OUT UINT8                            *ResponseData,
  OUT UINT32                           *ResponseDataSize
  );
 
typedef
EFI_STATUS
(EFIAPI *PEI_IPMI_GET_CHANNEL_STATUS) (
  IN PEI_IPMI_TRANSPORT_PPI       *This,
  OUT BMC_STATUS                  *BmcStatus,
  OUT SM_COM_ADDRESS              *ComAddress
  );
 
//
// IPMI TRANSPORT PPI
//
struct _PEI_IPMI_TRANSPORT_PPI {
  UINT64                      Revision;
  PEI_IPMI_SEND_COMMAND       IpmiSubmitCommand;
  PEI_IPMI_GET_CHANNEL_STATUS GetBmcStatus;
};
 
extern EFI_GUID gPeiIpmiTransportPpiGuid;
 
#endif