]>
Commit | Line | Data |
---|---|---|
0ead1118 DW |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | /* | |
3 | * Copyright(c) 2018 Intel Corporation. All rights reserved. | |
4 | * Intel specific definitions for NVDIMM Firmware Interface Table - NFIT | |
5 | */ | |
6 | #ifndef _NFIT_INTEL_H_ | |
7 | #define _NFIT_INTEL_H_ | |
8 | ||
9 | #define ND_INTEL_SMART 1 | |
10 | ||
11 | #define ND_INTEL_SMART_SHUTDOWN_COUNT_VALID (1 << 5) | |
12 | #define ND_INTEL_SMART_SHUTDOWN_VALID (1 << 10) | |
13 | ||
14 | struct nd_intel_smart { | |
15 | u32 status; | |
16 | union { | |
17 | struct { | |
18 | u32 flags; | |
19 | u8 reserved0[4]; | |
20 | u8 health; | |
21 | u8 spares; | |
22 | u8 life_used; | |
23 | u8 alarm_flags; | |
24 | u16 media_temperature; | |
25 | u16 ctrl_temperature; | |
26 | u32 shutdown_count; | |
27 | u8 ait_status; | |
28 | u16 pmic_temperature; | |
29 | u8 reserved1[8]; | |
30 | u8 shutdown_state; | |
31 | u32 vendor_size; | |
32 | u8 vendor_data[92]; | |
33 | } __packed; | |
34 | u8 data[128]; | |
35 | }; | |
36 | } __packed; | |
37 | ||
b3ed2ce0 DJ |
38 | #define ND_INTEL_STATUS_SIZE 4 |
39 | #define ND_INTEL_PASSPHRASE_SIZE 32 | |
40 | ||
41 | #define ND_INTEL_STATUS_NOT_SUPPORTED 1 | |
42 | #define ND_INTEL_STATUS_RETRY 5 | |
43 | #define ND_INTEL_STATUS_NOT_READY 9 | |
44 | #define ND_INTEL_STATUS_INVALID_STATE 10 | |
45 | #define ND_INTEL_STATUS_INVALID_PASS 11 | |
46 | #define ND_INTEL_STATUS_OVERWRITE_UNSUPPORTED 0x10007 | |
47 | #define ND_INTEL_STATUS_OQUERY_INPROGRESS 0x10007 | |
48 | #define ND_INTEL_STATUS_OQUERY_SEQUENCE_ERR 0x20007 | |
49 | ||
50 | #define ND_INTEL_SEC_STATE_ENABLED 0x02 | |
51 | #define ND_INTEL_SEC_STATE_LOCKED 0x04 | |
52 | #define ND_INTEL_SEC_STATE_FROZEN 0x08 | |
53 | #define ND_INTEL_SEC_STATE_PLIMIT 0x10 | |
54 | #define ND_INTEL_SEC_STATE_UNSUPPORTED 0x20 | |
55 | #define ND_INTEL_SEC_STATE_OVERWRITE 0x40 | |
56 | ||
57 | #define ND_INTEL_SEC_ESTATE_ENABLED 0x01 | |
58 | #define ND_INTEL_SEC_ESTATE_PLIMIT 0x02 | |
59 | ||
60 | struct nd_intel_get_security_state { | |
61 | u32 status; | |
62 | u8 extended_state; | |
63 | u8 reserved[3]; | |
64 | u8 state; | |
65 | u8 reserved1[3]; | |
66 | } __packed; | |
67 | ||
68 | struct nd_intel_set_passphrase { | |
69 | u8 old_pass[ND_INTEL_PASSPHRASE_SIZE]; | |
70 | u8 new_pass[ND_INTEL_PASSPHRASE_SIZE]; | |
71 | u32 status; | |
72 | } __packed; | |
73 | ||
74 | struct nd_intel_unlock_unit { | |
75 | u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; | |
76 | u32 status; | |
77 | } __packed; | |
78 | ||
79 | struct nd_intel_disable_passphrase { | |
80 | u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; | |
81 | u32 status; | |
82 | } __packed; | |
83 | ||
84 | struct nd_intel_freeze_lock { | |
85 | u32 status; | |
86 | } __packed; | |
87 | ||
88 | struct nd_intel_secure_erase { | |
89 | u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; | |
90 | u32 status; | |
91 | } __packed; | |
92 | ||
93 | struct nd_intel_overwrite { | |
94 | u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; | |
95 | u32 status; | |
96 | } __packed; | |
97 | ||
98 | struct nd_intel_query_overwrite { | |
99 | u32 status; | |
100 | } __packed; | |
101 | ||
102 | struct nd_intel_set_master_passphrase { | |
103 | u8 old_pass[ND_INTEL_PASSPHRASE_SIZE]; | |
104 | u8 new_pass[ND_INTEL_PASSPHRASE_SIZE]; | |
105 | u32 status; | |
106 | } __packed; | |
107 | ||
108 | struct nd_intel_master_secure_erase { | |
109 | u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; | |
110 | u32 status; | |
111 | } __packed; | |
0ead1118 | 112 | #endif |