OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
AppleSmc.h
Go to the documentation of this file.
1
13#ifndef APPLE_SMC_H
14#define APPLE_SMC_H
15
16//
17// SMC uses Big Endian byte order to store keys.
18// For some reason AppleSmcIo protocol in UEFI takes little endian keys.
19// As this header is used by both UEFI and Kernel VirtualSMC parts,
20// we define SMC_MAKE_IDENTIFIER to produce Little Endian keys in UEFI (EFIAPI),
21// and Big Endian keys in all other places.
22//
23// Note: This code assumes Little Endian host byte order, which so far is the
24// only supported byte order in UEFI.
25//
26#ifdef EFIAPI
27#define SMC_MAKE_IDENTIFIER(A, B, C, D) \
28 ((UINT32)(((UINT32)(A) << 24U) | ((UINT32)(B) << 16U) | ((UINT32)(C) << 8U) | (UINT32)(D)))
29#else
30#define SMC_MAKE_IDENTIFIER(A, B, C, D) \
31 ((UINT32)(((UINT32)(D) << 24U) | ((UINT32)(C) << 16U) | ((UINT32)(B) << 8U) | (UINT32)(A)))
32#endif
33
34// PMIO
35
36#define SMC_PORT_BASE 0x0300
37#define SMC_PORT_LENGTH 0x0020
38
39#define SMC_PORT_OFFSET_DATA 0x00
40#define SMC_PORT_OFFSET_COMMAND 0x04
41#define SMC_PORT_OFFSET_STATUS SMC_PORT_OFFSET_COMMAND
42#define SMC_PORT_OFFSET_RESULT 0x1E
43#define SMC_PORT_OFFSET_EVENT 0x1F
44
45// MMIO
46
47#define SMC_MMIO_BASE_ADDRESS 0xFEF00000
48#define SMC_MMIO_LENGTH 0x00010000
49
50#define SMC_MMIO_DATA_VARIABLE 0x00
51#define SMC_MMIO_DATA_FIXED 0x78
52
53// MMIO offsets
54
55#define SMC_MMIO_OFFSET_KEY 0x00
56#define SMC_MMIO_OFFSET_KEY_TYPE SMC_MMIO_OFFSET_KEY
57#define SMC_MMIO_OFFSET_SMC_MODE SMC_MMIO_OFFSET_KEY
58#define SMC_MMIO_OFFSET_DATA_SIZE 0x05
59#define SMC_MMIO_OFFSET_KEY_ATTRIBUTES 0x06
60#define SMC_MMIO_OFFSET_COMMAND 0x07
61#define SMC_MMIO_OFFSET_RESULT SMC_MMIO_OFFSET_COMMAND
62#define SMC_MMIO_OFFSET_LOG 0x08
63
64// Read addresses
65
66#define SMC_MMIO_READ_KEY \
67 (SMC_MMIO_DATA_VARIABLE + SMC_MMIO_OFFSET_KEY)
68
69#define SMC_MMIO_READ_KEY_TYPE \
70 (SMC_MMIO_DATA_VARIABLE + SMC_MMIO_OFFSET_KEY_TYPE)
71
72#define SMC_MMIO_READ_DATA_SIZE \
73 (SMC_MMIO_DATA_VARIABLE + SMC_MMIO_OFFSET_DATA_SIZE)
74
75#define SMC_MMIO_READ_KEY_ATTRIBUTES \
76 (SMC_MMIO_DATA_VARIABLE + SMC_MMIO_OFFSET_KEY_ATTRIBUTES)
77
78#define SMC_MMIO_READ_LOG \
79 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_LOG)
80
81#define SMC_MMIO_READ_RESULT \
82 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_RESULT)
83
84#define SMC_MMIO_READ_EVENT_STATUS 0x4000
85#define SMC_MMIO_READ_UNKNOWN1 0x4004
86#define SMC_MMIO_READ_KEY_STATUS 0x4005
87
88// Write addresses
89
90#define SMC_MMIO_WRITE_MODE \
91 (SMC_MMIO_DATA_VARIABLE + SMC_MMIO_OFFSET_SMC_MODE)
92
93#define SMC_MMIO_WRITE_KEY \
94 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_KEY)
95
96#define SMC_MMIO_WRITE_INDEX \
97 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_KEY_TYPE)
98
99#define SMC_MMIO_WRITE_DATA_SIZE \
100 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_DATA_SIZE)
101
102#define SMC_MMIO_WRITE_KEY_ATTRIBUTES \
103 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_KEY_ATTRIBUTES)
104
105#define SMC_MMIO_WRITE_COMMAND \
106 (SMC_MMIO_DATA_FIXED + SMC_MMIO_OFFSET_COMMAND)
107
108typedef UINT32 SMC_ADDRESS;
109
110// Modes
111
112#define SMC_MODE_APPCODE 'A'
113#define SMC_MODE_UPDATE 'U'
114#define SMC_MODE_BASE 'B'
115
116// SMC_MODE
117typedef CHAR8 *SMC_MODE;
118
119enum {
125
126typedef UINT8 SMC_RESET_MODE;
127
128enum {
134
135typedef UINT8 SMC_FLASH_TYPE;
136
137enum {
143
144typedef UINT8 SMC_FLASH_MODE;
145
146// Commands
147
148enum {
157 SmcCmdReadPKey = 0x20, // response based on payload submitted
162 SmcCmdFlashWriteMoreData = 0xF5, // write more data than available at once
163 SmcCmdFlashAuthMoreData = 0xF6 // auth more data than available at once
165
166typedef UINT8 SMC_COMMAND;
167
168// Reports
169
170#define SMC_STATUS_AWAITING_DATA BIT0
171#define SMC_STATUS_IB_CLOSED BIT1
172#define SMC_STATUS_BUSY BIT2
173#define SMC_STATUS_GOT_COMMAND BIT3
174#define SMC_STATUS_UKN_0x16 BIT4
175#define SMC_STATUS_KEY_DONE BIT5
176#define SMC_STATUS_READY BIT6 // Ready to work
177#define SMC_STATUS_UKN_0x80 BIT7 // error
178
179// SMC_STATUS
180typedef UINT8 SMC_STATUS;
181
182enum {
185
196
199
206
207 SmcInvalidSize = 206
209
210#define SMC_ERROR(a) (((UINTN)(a)) > 0)
211
212#define EFI_STATUS_FROM_SMC_RESULT(x) \
213 ((((UINTN)(x)) == SmcSuccess) ? EFI_SUCCESS : EFIERR ((UINTN)(x)))
214
215#define EFI_SMC_SUCCESS SmcSuccess
216#define EFI_SMC_ERROR EFIERR (SmcError)
217
218#define EFI_SMC_COMM_COLLISION EFIERR (SmcCommCollision)
219#define EFI_SMC_SPURIOUS_DATA EFIERR (SmcSpuriousData)
220#define EFI_SMC_BAD_COMMAND EFIERR (SmcBadCommand)
221#define EFI_SMC_BAD_PARAMETER EFIERR (SmcBadParameter)
222#define EFI_SMC_NOT_FOUND EFIERR (SmcNotFound)
223#define EFI_SMC_NOT_READABLE EFIERR (SmcNotReadable)
224#define EFI_SMC_NOT_WRITABLE EFIERR (SmcNotWritable)
225#define EFI_SMC_KEY_MISMATCH EFIERR (SmcKeySizeMismatch)
226#define EFI_SMC_FRAMING_ERROR EFIERR (SmcFramingError)
227#define EFI_SMC_BAD_ARGUMENT_ERROR EFIERR (SmcBadArgumentError)
228
229#define EFI_SMC_TIMEOUT_ERROR EFIERR (SmcTimeoutError)
230#define EFI_SMC_KEY_INDEX_RANGE_ERROR EFIERR (SmcKeyIndexRangeError)
231
232#define EFI_SMC_BAD_FUNCTION_PARAMETER EFIERR (SmcBadFunctionParameter)
233#define EFI_SMC_EVENT_BUFFER_WRONG_ORDER EFIERR (SmcEventBufferWrongOrder)
234#define EFI_SMC_EVENT_BUFFER_READ_ERROR EFIERR (SmcEventBufferReadError)
235#define EFI_SMC_DEVICE_ACCESS_ERROR EFIERR (SmcDeviceAccessError)
236#define EFI_SMC_UNSUPPORTED_FEATURE EFIERR (SmcUnsupportedFeature)
237#define EFI_SMB_ACCESS_ERROR EFIERR (SmcSmbAccessError)
238
239#define EFI_SMC_INVALID_SIZE EFIERR (SmcInvalidSize)
240
241// SMC_RESULT
242typedef UINT8 SMC_RESULT;
243
244// Key Types
245
246#define SMC_MAKE_KEY_TYPE(A, B, C, D) SMC_MAKE_IDENTIFIER ((A), (B), (C), (D))
247
248enum {
249 SmcKeyTypeCh8s = SMC_MAKE_KEY_TYPE ('c', 'h', '8', '*'),
250 SmcKeyTypeChar = SMC_MAKE_KEY_TYPE ('c', 'h', 'a', 'r'),
251 SmcKeyTypeFloat = SMC_MAKE_KEY_TYPE ('f', 'l', 't', ' '),
252 SmcKeyTypeFlag = SMC_MAKE_KEY_TYPE ('f', 'l', 'a', 'g'),
253 SmcKeyTypeFp1f = SMC_MAKE_KEY_TYPE ('f', 'p', '1', 'f'),
254 SmcKeyTypeFp2e = SMC_MAKE_KEY_TYPE ('f', 'p', '2', 'e'),
255 SmcKeyTypeFp3d = SMC_MAKE_KEY_TYPE ('f', 'p', '3', 'd'),
256 SmcKeyTypeFp4c = SMC_MAKE_KEY_TYPE ('f', 'p', '4', 'c'),
257 SmcKeyTypeFp5b = SMC_MAKE_KEY_TYPE ('f', 'p', '5', 'b'),
258 SmcKeyTypeFp6a = SMC_MAKE_KEY_TYPE ('f', 'p', '6', 'a'),
259 SmcKeyTypeFp79 = SMC_MAKE_KEY_TYPE ('f', 'p', '7', '9'),
260 SmcKeyTypeFp88 = SMC_MAKE_KEY_TYPE ('f', 'p', '8', '8'),
261 SmcKeyTypeFp97 = SMC_MAKE_KEY_TYPE ('f', 'p', '9', '7'),
262 SmcKeyTypeFpa6 = SMC_MAKE_KEY_TYPE ('f', 'p', 'a', '6'),
263 SmcKeyTypeFpb5 = SMC_MAKE_KEY_TYPE ('f', 'p', 'b', '5'),
264 SmcKeyTypeFpc4 = SMC_MAKE_KEY_TYPE ('f', 'p', 'c', '4'),
265 SmcKeyTypeFpd3 = SMC_MAKE_KEY_TYPE ('f', 'p', 'd', '3'),
266 SmcKeyTypeFpe2 = SMC_MAKE_KEY_TYPE ('f', 'p', 'e', '2'),
267 SmcKeyTypeFpf1 = SMC_MAKE_KEY_TYPE ('f', 'p', 'f', '1'),
268 SmcKeyTypeHex = SMC_MAKE_KEY_TYPE ('h', 'e', 'x', '_'),
269 SmcKeyTypeIoft = SMC_MAKE_KEY_TYPE ('i', 'o', 'f', 't'),
270 SmcKeyTypeSint8 = SMC_MAKE_KEY_TYPE ('s', 'i', '8', ' '),
271 SmcKeyTypeSint16 = SMC_MAKE_KEY_TYPE ('s', 'i', '1', '6'),
272 SmcKeyTypeSint32 = SMC_MAKE_KEY_TYPE ('s', 'i', '3', '2'),
273 SmcKeyTypeSint64 = SMC_MAKE_KEY_TYPE ('s', 'i', '6', '4'),
274 SmcKeyTypeSp1e = SMC_MAKE_KEY_TYPE ('s', 'p', '1', 'e'),
275 SmcKeyTypeSp2d = SMC_MAKE_KEY_TYPE ('s', 'p', '2', 'd'),
276 SmcKeyTypeSp3c = SMC_MAKE_KEY_TYPE ('s', 'p', '3', 'c'),
277 SmcKeyTypeSp4b = SMC_MAKE_KEY_TYPE ('s', 'p', '4', 'b'),
278 SmcKeyTypeSp5a = SMC_MAKE_KEY_TYPE ('s', 'p', '5', 'a'),
279 SmcKeyTypeSp69 = SMC_MAKE_KEY_TYPE ('s', 'p', '6', '9'),
280 SmcKeyTypeSp78 = SMC_MAKE_KEY_TYPE ('s', 'p', '7', '8'),
281 SmcKeyTypeSp87 = SMC_MAKE_KEY_TYPE ('s', 'p', '8', '7'),
282 SmcKeyTypeSp96 = SMC_MAKE_KEY_TYPE ('s', 'p', '9', '6'),
283 SmcKeyTypeSpa5 = SMC_MAKE_KEY_TYPE ('s', 'p', 'a', '5'),
284 SmcKeyTypeSpb4 = SMC_MAKE_KEY_TYPE ('s', 'p', 'b', '4'),
285 SmcKeyTypeSpc3 = SMC_MAKE_KEY_TYPE ('s', 'p', 'c', '3'),
286 SmcKeyTypeSpd2 = SMC_MAKE_KEY_TYPE ('s', 'p', 'd', '2'),
287 SmcKeyTypeSpe1 = SMC_MAKE_KEY_TYPE ('s', 'p', 'e', '1'),
288 SmcKeyTypeSpf0 = SMC_MAKE_KEY_TYPE ('s', 'p', 'f', '0'),
289 SmcKeyTypeUint8z = SMC_MAKE_KEY_TYPE ('u', 'i', '8', '\0'),
290 SmcKeyTypeUint8 = SMC_MAKE_KEY_TYPE ('u', 'i', '8', ' '),
291 SmcKeyTypeUint8s = SMC_MAKE_KEY_TYPE ('u', 'i', '8', '*'),
292 SmcKeyTypeUint16 = SMC_MAKE_KEY_TYPE ('u', 'i', '1', '6'),
293 SmcKeyTypeUint32 = SMC_MAKE_KEY_TYPE ('u', 'i', '3', '2'),
294 SmcKeyTypeUint64 = SMC_MAKE_KEY_TYPE ('u', 'i', '6', '4'),
295 SmcKeyTypeAla = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'a'),
296 SmcKeyTypeAlc = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'c'),
297 SmcKeyTypeAli = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'i'),
298 SmcKeyTypeAlp = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'p'),
299 SmcKeyTypeAlr = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'r'),
300 SmcKeyTypeAlt = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 't'),
301 SmcKeyTypeAlv = SMC_MAKE_KEY_TYPE ('{', 'a', 'l', 'v'),
302 SmcKeyTypeClc = SMC_MAKE_KEY_TYPE ('{', 'c', 'l', 'c'),
303 SmcKeyTypeClh = SMC_MAKE_KEY_TYPE ('{', 'c', 'l', 'h'),
304 SmcKeyTypeFds = SMC_MAKE_KEY_TYPE ('{', 'f', 'd', 's'),
305 SmcKeyTypeHdi = SMC_MAKE_KEY_TYPE ('{', 'h', 'd', 'i'),
306 SmcKeyTypeJst = SMC_MAKE_KEY_TYPE ('{', 'j', 's', 't'),
307 SmcKeyTypeLia = SMC_MAKE_KEY_TYPE ('{', 'l', 'i', 'a'),
308 SmcKeyTypeLic = SMC_MAKE_KEY_TYPE ('{', 'l', 'i', 'c'),
309 SmcKeyTypeLim = SMC_MAKE_KEY_TYPE ('{', 'l', 'i', 'm'),
310 SmcKeyTypeLkb = SMC_MAKE_KEY_TYPE ('{', 'l', 'k', 'b'),
311 SmcKeyTypeLks = SMC_MAKE_KEY_TYPE ('{', 'l', 'k', 's'),
312 SmcKeyTypeLsc = SMC_MAKE_KEY_TYPE ('{', 'l', 's', 'c'),
313 SmcKeyTypeLsd = SMC_MAKE_KEY_TYPE ('{', 'l', 's', 'd'),
314 SmcKeyTypeLsf = SMC_MAKE_KEY_TYPE ('{', 'l', 's', 'f'),
315 SmcKeyTypeLso = SMC_MAKE_KEY_TYPE ('{', 'l', 's', 'o'),
316 SmcKeyTypeMss = SMC_MAKE_KEY_TYPE ('{', 'm', 's', 's'),
317 SmcKeyTypePwm = SMC_MAKE_KEY_TYPE ('{', 'p', 'w', 'm'),
318 SmcKeyTypeRev = SMC_MAKE_KEY_TYPE ('{', 'r', 'e', 'v')
320
321// SMC_KEY_TYPE
322typedef UINT32 SMC_KEY_TYPE;
323
324// Key Attributes
325
326#define SMC_KEY_ATTRIBUTE_PRIVATE_WRITE BIT0
327#define SMC_KEY_ATTRIBUTE_PRIVATE_READ BIT1
328#define SMC_KEY_ATTRIBUTE_ATOMIC BIT2
329#define SMC_KEY_ATTRIBUTE_CONST BIT3
330#define SMC_KEY_ATTRIBUTE_FUNCTION BIT4
331#define SMC_KEY_ATTRIBUTE_UKN_0x20 BIT5
332#define SMC_KEY_ATTRIBUTE_WRITE BIT6
333#define SMC_KEY_ATTRIBUTE_READ BIT7
334
335// SMC_KEY_ATTRIBUTES
336typedef UINT8 SMC_KEY_ATTRIBUTES;
337
338// Data
339
340#define SMC_MAX_DATA_SIZE (SMC_MMIO_DATA_FIXED - SMC_MMIO_DATA_VARIABLE)
341
342typedef UINT8 SMC_DATA;
343typedef UINT8 SMC_DATA_SIZE;
344
345// Keys
346
347// SMC_KEY_IS_VALID_CHAR
348#define SMC_KEY_IS_VALID_CHAR(x) (((x) >= 0x20) && ((x) <= 0x7E))
349
350// SMC_MAKE_KEY
351#define SMC_MAKE_KEY(A, B, C, D) SMC_MAKE_IDENTIFIER ((A), (B), (C), (D))
352
353#define SMC_KEY_NUM SMC_MAKE_KEY ('$', 'N', 'u', 'm')
354#define SMC_KEY_ADR SMC_MAKE_KEY ('$', 'A', 'd', 'r')
355#define SMC_KEY_LDKN SMC_MAKE_KEY ('L', 'D', 'K', 'N')
356#define SMC_KEY_HBKP SMC_MAKE_KEY ('H', 'B', 'K', 'P')
357#define SMC_KEY_KEY SMC_MAKE_KEY ('#', 'K', 'E', 'Y')
358#define SMC_KEY_RMde SMC_MAKE_KEY ('R', 'M', 'd', 'e')
359#define SMC_KEY_BRSC SMC_MAKE_KEY ('B', 'R', 'S', 'C')
360#define SMC_KEY_MSLD SMC_MAKE_KEY ('M', 'S', 'L', 'D')
361#define SMC_KEY_BATP SMC_MAKE_KEY ('B', 'A', 'T', 'P')
362#define SMC_KEY_BBIN SMC_MAKE_KEY ('B', 'B', 'I', 'N')
363
364typedef UINT32 SMC_KEY;
365typedef UINT32 SMC_KEY_INDEX;
366
367typedef UINT8 SMC_DEVICE_INDEX;
368
369// Flash data
370
371// SMC_FLASH_SIZE_MAX
372#define SMC_FLASH_SIZE_MAX 0x0800
373
374// SMC_FLASH_SIZE
375typedef UINT16 SMC_FLASH_SIZE;
376
377// Events
378
379enum {
388 SmcEventUnknown6A = 0x6A, // Bug??
395 SmcEventPCIeReady = 0x83, // Not certain
396};
397
398// SmcEventSystemStateNotify subtypes, not always certain
399// Mostly from bridgeOS kernelcache and ramrod.
400// Check SMCRegisterForSubTypeNotification in libSMC.dylib.
401enum {
410};
411
412// SmcSystemStateNotifyMacOsPanicCause values, received after PanicDone
413enum {
422};
423
424// SMC_EVENT_CODE
425typedef UINT8 SMC_EVENT_CODE;
426
427// Log
428
429#define SMC_MAX_LOG_SIZE 0x80
430
431typedef UINT8 SMC_LOG;
432typedef UINT8 SMC_LOG_SIZE;
433
434// Hard drive encryption
435
436#define SMC_HBKP_SIZE 0x20
437
438#endif // APPLE_SMC_H
UINT32 SMC_KEY_TYPE
Definition AppleSmc.h:322
@ SmcCmdReadValue
Definition AppleSmc.h:149
@ SmcCmdWriteValueAtIndex
Definition AppleSmc.h:154
@ SmcCmdFlashAuthMoreData
Definition AppleSmc.h:163
@ SmcCmdUnknown1
Definition AppleSmc.h:158
@ SmcCmdGetKeyInfo
Definition AppleSmc.h:152
@ SmcCmdFlashType
Definition AppleSmc.h:161
@ SmcCmdWriteValue
Definition AppleSmc.h:150
@ SmcCmdGetSramAddress
Definition AppleSmc.h:156
@ SmcCmdReadValueAtIndex
Definition AppleSmc.h:155
@ SmcCmdGetKeyFromIndex
Definition AppleSmc.h:151
@ SmcCmdFlashWrite
Definition AppleSmc.h:159
@ SmcCmdFlashAuth
Definition AppleSmc.h:160
@ SmcCmdFlashWriteMoreData
Definition AppleSmc.h:162
@ SmcCmdReadPKey
Definition AppleSmc.h:157
@ SmcCmdReset
Definition AppleSmc.h:153
@ SmcUnsupportedFeature
Definition AppleSmc.h:204
@ SmcNotFound
Definition AppleSmc.h:190
@ SmcNotReadable
Definition AppleSmc.h:191
@ SmcKeySizeMismatch
Definition AppleSmc.h:193
@ SmcEventBufferWrongOrder
Definition AppleSmc.h:201
@ SmcDeviceAccessError
Definition AppleSmc.h:203
@ SmcCommCollision
Definition AppleSmc.h:186
@ SmcBadCommand
Definition AppleSmc.h:188
@ SmcSpuriousData
Definition AppleSmc.h:187
@ SmcTimeoutError
Definition AppleSmc.h:197
@ SmcNotWritable
Definition AppleSmc.h:192
@ SmcBadArgumentError
Definition AppleSmc.h:195
@ SmcError
Definition AppleSmc.h:184
@ SmcBadParameter
Definition AppleSmc.h:189
@ SmcInvalidSize
Definition AppleSmc.h:207
@ SmcEventBufferReadError
Definition AppleSmc.h:202
@ SmcFramingError
Definition AppleSmc.h:194
@ SmcSuccess
Definition AppleSmc.h:183
@ SmcBadFunctionParameter
Definition AppleSmc.h:200
@ SmcSmbAccessError
Definition AppleSmc.h:205
@ SmcKeyIndexRangeError
Definition AppleSmc.h:198
UINT32 SMC_ADDRESS
Definition AppleSmc.h:108
@ SmcFlashTypeUpdate
Definition AppleSmc.h:131
@ SmcFlashTypeBase
Definition AppleSmc.h:130
@ SmcFlashTypeAppCode
Definition AppleSmc.h:129
@ SmcFlashTypeEpm
Definition AppleSmc.h:132
UINT8 SMC_KEY_ATTRIBUTES
Definition AppleSmc.h:336
UINT8 SMC_RESET_MODE
Definition AppleSmc.h:126
UINT8 SMC_LOG_SIZE
Definition AppleSmc.h:432
UINT8 SMC_DATA
Definition AppleSmc.h:342
UINT8 SMC_STATUS
Definition AppleSmc.h:180
UINT8 SMC_DATA_SIZE
Definition AppleSmc.h:343
UINT8 SMC_RESULT
Definition AppleSmc.h:242
UINT8 SMC_LOG
Definition AppleSmc.h:431
UINT8 SMC_COMMAND
Definition AppleSmc.h:166
@ SmcKeyTypeAla
Definition AppleSmc.h:295
@ SmcKeyTypeFpa6
Definition AppleSmc.h:262
@ SmcKeyTypeSp1e
Definition AppleSmc.h:274
@ SmcKeyTypeFp88
Definition AppleSmc.h:260
@ SmcKeyTypeSint32
Definition AppleSmc.h:272
@ SmcKeyTypeSint64
Definition AppleSmc.h:273
@ SmcKeyTypeFp97
Definition AppleSmc.h:261
@ SmcKeyTypeSpa5
Definition AppleSmc.h:283
@ SmcKeyTypeFpf1
Definition AppleSmc.h:267
@ SmcKeyTypeLia
Definition AppleSmc.h:307
@ SmcKeyTypeAlp
Definition AppleSmc.h:298
@ SmcKeyTypeUint32
Definition AppleSmc.h:293
@ SmcKeyTypeAlv
Definition AppleSmc.h:301
@ SmcKeyTypeMss
Definition AppleSmc.h:316
@ SmcKeyTypeFpb5
Definition AppleSmc.h:263
@ SmcKeyTypeChar
Definition AppleSmc.h:250
@ SmcKeyTypeFp79
Definition AppleSmc.h:259
@ SmcKeyTypeClh
Definition AppleSmc.h:303
@ SmcKeyTypeFpe2
Definition AppleSmc.h:266
@ SmcKeyTypeFpd3
Definition AppleSmc.h:265
@ SmcKeyTypeFpc4
Definition AppleSmc.h:264
@ SmcKeyTypeLkb
Definition AppleSmc.h:310
@ SmcKeyTypeUint8s
Definition AppleSmc.h:291
@ SmcKeyTypeFp4c
Definition AppleSmc.h:256
@ SmcKeyTypeLim
Definition AppleSmc.h:309
@ SmcKeyTypeLsf
Definition AppleSmc.h:314
@ SmcKeyTypeLso
Definition AppleSmc.h:315
@ SmcKeyTypeFds
Definition AppleSmc.h:304
@ SmcKeyTypeSint8
Definition AppleSmc.h:270
@ SmcKeyTypeFloat
Definition AppleSmc.h:251
@ SmcKeyTypeSpe1
Definition AppleSmc.h:287
@ SmcKeyTypeSp5a
Definition AppleSmc.h:278
@ SmcKeyTypeLks
Definition AppleSmc.h:311
@ SmcKeyTypeSp69
Definition AppleSmc.h:279
@ SmcKeyTypeSpb4
Definition AppleSmc.h:284
@ SmcKeyTypeFp3d
Definition AppleSmc.h:255
@ SmcKeyTypeSp87
Definition AppleSmc.h:281
@ SmcKeyTypeAlt
Definition AppleSmc.h:300
@ SmcKeyTypePwm
Definition AppleSmc.h:317
@ SmcKeyTypeFlag
Definition AppleSmc.h:252
@ SmcKeyTypeLsc
Definition AppleSmc.h:312
@ SmcKeyTypeLic
Definition AppleSmc.h:308
@ SmcKeyTypeUint64
Definition AppleSmc.h:294
@ SmcKeyTypeAlc
Definition AppleSmc.h:296
@ SmcKeyTypeSpd2
Definition AppleSmc.h:286
@ SmcKeyTypeUint8z
Definition AppleSmc.h:289
@ SmcKeyTypeSp2d
Definition AppleSmc.h:275
@ SmcKeyTypeRev
Definition AppleSmc.h:318
@ SmcKeyTypeSpf0
Definition AppleSmc.h:288
@ SmcKeyTypeAlr
Definition AppleSmc.h:299
@ SmcKeyTypeSp78
Definition AppleSmc.h:280
@ SmcKeyTypeLsd
Definition AppleSmc.h:313
@ SmcKeyTypeSint16
Definition AppleSmc.h:271
@ SmcKeyTypeFp1f
Definition AppleSmc.h:253
@ SmcKeyTypeCh8s
Definition AppleSmc.h:249
@ SmcKeyTypeIoft
Definition AppleSmc.h:269
@ SmcKeyTypeSp96
Definition AppleSmc.h:282
@ SmcKeyTypeSp3c
Definition AppleSmc.h:276
@ SmcKeyTypeJst
Definition AppleSmc.h:306
@ SmcKeyTypeUint8
Definition AppleSmc.h:290
@ SmcKeyTypeSpc3
Definition AppleSmc.h:285
@ SmcKeyTypeAli
Definition AppleSmc.h:297
@ SmcKeyTypeFp5b
Definition AppleSmc.h:257
@ SmcKeyTypeHex
Definition AppleSmc.h:268
@ SmcKeyTypeUint16
Definition AppleSmc.h:292
@ SmcKeyTypeHdi
Definition AppleSmc.h:305
@ SmcKeyTypeFp2e
Definition AppleSmc.h:254
@ SmcKeyTypeSp4b
Definition AppleSmc.h:277
@ SmcKeyTypeFp6a
Definition AppleSmc.h:258
@ SmcKeyTypeClc
Definition AppleSmc.h:302
#define SMC_MAKE_KEY_TYPE(A, B, C, D)
Definition AppleSmc.h:246
UINT16 SMC_FLASH_SIZE
Definition AppleSmc.h:375
UINT8 SMC_DEVICE_INDEX
Definition AppleSmc.h:367
UINT32 SMC_KEY
Definition AppleSmc.h:364
CHAR8 * SMC_MODE
Definition AppleSmc.h:117
@ SmcFlashModeUpdate
Definition AppleSmc.h:139
@ SmcFlashModeAppCode
Definition AppleSmc.h:138
@ SmcFlashModeEpm
Definition AppleSmc.h:141
@ SmcFlashModeBase
Definition AppleSmc.h:140
UINT8 SMC_FLASH_TYPE
Definition AppleSmc.h:135
UINT8 SMC_EVENT_CODE
Definition AppleSmc.h:425
UINT32 SMC_KEY_INDEX
Definition AppleSmc.h:365
UINT8 SMC_FLASH_MODE
Definition AppleSmc.h:144
@ SmcSystemStateNotifyPrepareForS0
Definition AppleSmc.h:403
@ SmcSystemStateNotifyMacOsPanicCause
Definition AppleSmc.h:402
@ SmcSystemStateNotifyMacOsPanicDone
Definition AppleSmc.h:404
@ SmcSystemStateNotifyMacEfiFirmwareUpdated
Definition AppleSmc.h:406
@ SmcSystemStateNotifyRestart
Definition AppleSmc.h:405
@ SmcSystemStateNotifyResumeDevices
Definition AppleSmc.h:408
@ SmcSystemStateNotifyQuiesceDevices
Definition AppleSmc.h:407
@ SmcSystemStateNotifyGPUPanelPowerOn
Definition AppleSmc.h:409
@ SmcEventCallPlatformFunction
Definition AppleSmc.h:386
@ SmcEventPCIeReady
Definition AppleSmc.h:395
@ SmcEventKeyDone
Definition AppleSmc.h:384
@ SmcEventHidEventNotify
Definition AppleSmc.h:393
@ SmcEventSMSOrientation
Definition AppleSmc.h:389
@ SmcEventBridgeOSPanic
Definition AppleSmc.h:382
@ SmcEventSMSShock
Definition AppleSmc.h:390
@ SmcEventPowerStateNotify
Definition AppleSmc.h:392
@ SmcEventUnknown6A
Definition AppleSmc.h:388
@ SmcEventALSChange
Definition AppleSmc.h:380
@ SmcEventPLimitChange
Definition AppleSmc.h:394
@ SmcEventShutdownImminent
Definition AppleSmc.h:381
@ SmcEventSystemStateNotify
Definition AppleSmc.h:391
@ SmcEventPThermalLevelChanged
Definition AppleSmc.h:385
@ SmcEventLogMessage
Definition AppleSmc.h:383
@ SmcEventSMSDrop
Definition AppleSmc.h:387
@ SmcSystemStateNotifyPanicMacOSWatchdog
Definition AppleSmc.h:416
@ SmcSystemStateNotifyPanicACPIPanic
Definition AppleSmc.h:420
@ SmcSystemStateNotifyPanicX86CpuCATERR
Definition AppleSmc.h:419
@ SmcSystemStateNotifyPanicMacOSPanic
Definition AppleSmc.h:415
@ SmcSystemStateNotifyPanicX86StraightS5Shutdown
Definition AppleSmc.h:417
@ SmcSystemStateNotifyPanicUnknown
Definition AppleSmc.h:414
@ SmcSystemStateNotifyPanicX86GlobalReset
Definition AppleSmc.h:418
@ SmcSystemStateNotifyPanicMacEFI
Definition AppleSmc.h:421
@ SmcResetModeAppCode
Definition AppleSmc.h:121
@ SmcResetModeMaster
Definition AppleSmc.h:120
@ SmcResetModeBase
Definition AppleSmc.h:123
@ SmcResetModeUpdate
Definition AppleSmc.h:122