]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/SmBus.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SmBus.h
1 /** @file
2 This file declares the SMBus definitions defined in SmBus Specification V2.0
3 and defined in PI1.0 specification volume 5.
4
5 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef _SMBUS_H_
11 #define _SMBUS_H_
12
13 ///
14 /// UDID of SMBUS device.
15 ///
16 typedef struct {
17 UINT32 VendorSpecificId;
18 UINT16 SubsystemDeviceId;
19 UINT16 SubsystemVendorId;
20 UINT16 Interface;
21 UINT16 DeviceId;
22 UINT16 VendorId;
23 UINT8 VendorRevision;
24 UINT8 DeviceCapabilities;
25 } EFI_SMBUS_UDID;
26
27 ///
28 /// Smbus Device Address
29 ///
30 typedef struct {
31 ///
32 /// The SMBUS hardware address to which the SMBUS device is preassigned or allocated.
33 ///
34 UINTN SmbusDeviceAddress : 7;
35 } EFI_SMBUS_DEVICE_ADDRESS;
36
37 typedef struct {
38 ///
39 /// The SMBUS hardware address to which the SMBUS device is preassigned or
40 /// allocated. Type EFI_SMBUS_DEVICE_ADDRESS is defined in EFI_PEI_SMBUS2_PPI.Execute().
41 ///
42 EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
43 ///
44 /// The SMBUS Unique Device Identifier (UDID) as defined in EFI_SMBUS_UDID.
45 /// Type EFI_SMBUS_UDID is defined in EFI_PEI_SMBUS2_PPI.ArpDevice().
46 ///
47 EFI_SMBUS_UDID SmbusDeviceUdid;
48 } EFI_SMBUS_DEVICE_MAP;
49
50 ///
51 /// Smbus Operations
52 ///
53 typedef enum _EFI_SMBUS_OPERATION {
54 EfiSmbusQuickRead,
55 EfiSmbusQuickWrite,
56 EfiSmbusReceiveByte,
57 EfiSmbusSendByte,
58 EfiSmbusReadByte,
59 EfiSmbusWriteByte,
60 EfiSmbusReadWord,
61 EfiSmbusWriteWord,
62 EfiSmbusReadBlock,
63 EfiSmbusWriteBlock,
64 EfiSmbusProcessCall,
65 EfiSmbusBWBRProcessCall
66 } EFI_SMBUS_OPERATION;
67
68 ///
69 /// EFI_SMBUS_DEVICE_COMMAND
70 ///
71 typedef UINTN EFI_SMBUS_DEVICE_COMMAND;
72
73 #endif