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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/** @file
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _PLATFORM_TYPES_H_
#define _PLATFORM_TYPES_H_
#include <PiDxe.h>
#include <Library/DebugLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/HobLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Protocol/VariableWrite.h>
#include <Protocol/CpuIo2.h>
#include <Protocol/Spi.h>
#include <Protocol/IioUds.h>
#include <Library/MemoryAllocationLib.h>
#include <Guid/HobList.h>
#include <Register/PchRegsSpi.h>
#include <Register/PchRegsLpc.h>
#include <PchAccess.h>
#include <Platform.h>
#define EFI_PLATFORM_TYPE_DRIVER_PRIVATE_SIGNATURE SIGNATURE_32 ('T', 'Y', 'P', 'P')
#define EFI_IIO_UDS_DRIVER_PRIVATE_SIGNATURE SIGNATURE_32 ('S', 'D', 'U', 'I')
typedef unsigned char BYTE; //!< 8-bit quantities
typedef unsigned short WORD; //!< 16-bit quantities
typedef unsigned long DWORD; //!< 32-bit quantities
typedef enum
{
#ifndef SUCCESS
SUCCESS = 0x00, //!< Packet it good! .data[] is valid
#endif
DEFER = 0x01, //!< Packet is defered. .data[1] = BufID
W_EARLY_NACK = 0x02, //!< Packet mastered on the SMBus by the MCU was NACKed earlier than expected
NOT_RESP = 0x03, //!< Packet mastered on the SMBus by the MCU was NACKed during the address byte
BUFFER_OVERRUN = 0x04, //!< Too many BYTE s were stuffed into the buffer.
NO_BUFFER = 0x05, //!< All the buffers are used
INVALID_BUF = 0x06, //!< Command passed a buffer id that was not in range
BUF_NOT_IN_QUEUE = 0x07, //!< Command passed a buffer id is not being used.
ARBITRATION_LOST = 0x08, //!< While the MCU was mastering a packet on the SMBus it lost arbitration.
TIMEOUT = 0x0B, //!< SMBus timed out.
CHECKSUM_ERR = 0x0C, //!< Operation encountered a checksum mismatch
DATA_NACK = 0x0D, //!< Still don't know what these mean?
BUS_ERR = 0x0E, //!< ?
FAIL = 0x0F, //!< Generic error
BUSY = 0x10, //!< ?
R_EARLY_NACK = 0x11, //!< ?
INVALID_LCD_COL_OFF = 0x12, //!< The cursor on the LCD was set to a column that was out of range.
INVALID_LCD_ROW_OFF = 0x13, //!< The cursor on the LCD was set to a row that was out of range.
INVALID_CK410_SEL = 0x14, //!< ?
CMD_NOT_SUPPORTED = 0x15, //!< This command is not supported
MORE_DATA_AVAILABLE = 0x16, //!< Do the command again to get more data
} STATUS;
typedef struct {
BYTE byte_count;
STATUS status;
BYTE data[31];
} BUFFER_RSLT;
typedef struct {
UINTN Signature;
EFI_HANDLE Handle; // Handle for protocol this driver installs on
EFI_IIO_UDS_PROTOCOL IioUds; // Policy protocol this driver installs
} EFI_IIO_UDS_DRIVER_PRIVATE;
#endif
|