| /** @file | |
| HDD Password common header file. | |
| Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef _HDD_PASSWORD_COMMON_H_ | |
| #define _HDD_PASSWORD_COMMON_H_ | |
| // | |
| // The payload length of HDD related ATA commands | |
| // | |
| #define HDD_PAYLOAD 512 | |
| #define ATA_SECURITY_SET_PASSWORD_CMD 0xF1 | |
| #define ATA_SECURITY_UNLOCK_CMD 0xF2 | |
| #define ATA_SECURITY_FREEZE_LOCK_CMD 0xF5 | |
| #define ATA_SECURITY_DIS_PASSWORD_CMD 0xF6 | |
| // | |
| // The max retry count specified in ATA 8 spec. | |
| // | |
| #define MAX_HDD_PASSWORD_RETRY_COUNT 5 | |
| // | |
| // According to ATA spec, the max length of hdd password is 32 bytes | |
| // | |
| #define HDD_PASSWORD_MAX_LENGTH 32 | |
| #define HDD_PASSWORD_DEVICE_INFO_GUID { 0x96d877ad, 0x48af, 0x4b39, { 0x9b, 0x27, 0x4d, 0x97, 0x43, 0x9, 0xae, 0x47 } } | |
| typedef struct { | |
| UINT8 Bus; | |
| UINT8 Device; | |
| UINT8 Function; | |
| UINT8 Reserved; | |
| UINT16 Port; | |
| UINT16 PortMultiplierPort; | |
| } HDD_PASSWORD_DEVICE; | |
| // | |
| // It will be used to unlock HDD password for S3. | |
| // | |
| typedef struct { | |
| HDD_PASSWORD_DEVICE Device; | |
| CHAR8 Password[HDD_PASSWORD_MAX_LENGTH]; | |
| UINT32 DevicePathLength; | |
| EFI_DEVICE_PATH_PROTOCOL DevicePath[]; | |
| } HDD_PASSWORD_DEVICE_INFO; | |
| #endif // _HDD_PASSWORD_COMMON_H_ |