Training courses
Kernel and Embedded Linux
Bootlin training courses
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
// SPDX-License-Identifier: GPL-2.0 /* * Copyright(c) 2018 Intel Corporation. All rights reserved. * Intel specific definitions for NVDIMM Firmware Interface Table - NFIT */ #ifndef _NFIT_INTEL_H_ #define _NFIT_INTEL_H_ #define ND_INTEL_SMART 1 #define ND_INTEL_SMART_SHUTDOWN_COUNT_VALID (1 << 5) #define ND_INTEL_SMART_SHUTDOWN_VALID (1 << 10) struct nd_intel_smart { u32 status; union { struct { u32 flags; u8 reserved0[4]; u8 health; u8 spares; u8 life_used; u8 alarm_flags; u16 media_temperature; u16 ctrl_temperature; u32 shutdown_count; u8 ait_status; u16 pmic_temperature; u8 reserved1[8]; u8 shutdown_state; u32 vendor_size; u8 vendor_data[92]; } __packed; u8 data[128]; }; } __packed; extern const struct nvdimm_security_ops *intel_security_ops; #define ND_INTEL_STATUS_SIZE 4 #define ND_INTEL_PASSPHRASE_SIZE 32 #define ND_INTEL_STATUS_NOT_SUPPORTED 1 #define ND_INTEL_STATUS_RETRY 5 #define ND_INTEL_STATUS_NOT_READY 9 #define ND_INTEL_STATUS_INVALID_STATE 10 #define ND_INTEL_STATUS_INVALID_PASS 11 #define ND_INTEL_STATUS_OVERWRITE_UNSUPPORTED 0x10007 #define ND_INTEL_STATUS_OQUERY_INPROGRESS 0x10007 #define ND_INTEL_STATUS_OQUERY_SEQUENCE_ERR 0x20007 #define ND_INTEL_SEC_STATE_ENABLED 0x02 #define ND_INTEL_SEC_STATE_LOCKED 0x04 #define ND_INTEL_SEC_STATE_FROZEN 0x08 #define ND_INTEL_SEC_STATE_PLIMIT 0x10 #define ND_INTEL_SEC_STATE_UNSUPPORTED 0x20 #define ND_INTEL_SEC_STATE_OVERWRITE 0x40 #define ND_INTEL_SEC_ESTATE_ENABLED 0x01 #define ND_INTEL_SEC_ESTATE_PLIMIT 0x02 struct nd_intel_get_security_state { u32 status; u8 extended_state; u8 reserved[3]; u8 state; u8 reserved1[3]; } __packed; struct nd_intel_set_passphrase { u8 old_pass[ND_INTEL_PASSPHRASE_SIZE]; u8 new_pass[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_unlock_unit { u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_disable_passphrase { u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_freeze_lock { u32 status; } __packed; struct nd_intel_secure_erase { u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_overwrite { u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_query_overwrite { u32 status; } __packed; struct nd_intel_set_master_passphrase { u8 old_pass[ND_INTEL_PASSPHRASE_SIZE]; u8 new_pass[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; struct nd_intel_master_secure_erase { u8 passphrase[ND_INTEL_PASSPHRASE_SIZE]; u32 status; } __packed; #endif