/** @file Rst policy Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _RST_CONFIG_H_ #define _RST_CONFIG_H_ #include #include #define RST_CONFIG_REVISION 1 extern EFI_GUID gRstConfigGuid; #pragma pack (push,1) typedef enum { SataOromDelay2sec, SataOromDelay4sec, SataOromDelay6sec, SataOromDelay8sec } SATA_OROM_DELAY; /** This structure describes the details of Intel RST for PCIe Storage remapping Note: In order to use this feature, Intel RST Driver is required **/ typedef struct { /** This member describes whether or not the Intel RST for PCIe Storage remapping should be enabled. 0: Disable; 1: Enable. Note 1: If Sata Controller is disabled, PCIe Storage Remapping should be disabled as well Note 2: If PCIe Storage remapping is enabled, the PCH integrated AHCI controllers Class Code is configured as RAID **/ UINT32 Enable : 1; /** Intel RST for PCIe Storage remapping - PCIe Port Selection (1-based, 0 = autodetect) The supported ports for PCIe Storage remapping is different depend on the platform and cycle router **/ UINT32 RstPcieStoragePort : 5; /** PCIe Storage Device Reset Delay in milliseconds (ms), which it guarantees such delay gap is fulfilled before PCIe Storage Device configuration space is accessed after an reset caused by the link disable and enable step. Default value is 100ms. **/ UINT32 DeviceResetDelay : 8; UINT32 RsvdBits0 : 18; ///< Reserved bits } RST_HARDWARE_REMAPPED_STORAGE_CONFIG; /** Rapid Storage Technology settings. Revision 1: - Initial version. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header UINT32 Raid0 : 1; ///< 0 : Disable; 1 : Enable RAID0 UINT32 Raid1 : 1; ///< 0 : Disable; 1 : Enable RAID1 UINT32 Raid10 : 1; ///< 0 : Disable; 1 : Enable RAID10 UINT32 Raid5 : 1; ///< 0 : Disable; 1 : Enable RAID5 UINT32 Irrt : 1; ///< 0 : Disable; 1 : Enable Intel Rapid Recovery Technology UINT32 OromUiBanner : 1; ///< 0 : Disable; 1 : Enable OROM UI and BANNER UINT32 OromUiDelay : 2; ///< 00b : 2 secs; 01b : 4 secs; 10b : 6 secs; 11 : 8 secs (see : SATA_OROM_DELAY) UINT32 HddUnlock : 1; ///< 0 : Disable; 1 : Enable. Indicates that the HDD password unlock in the OS is enabled UINT32 LedLocate : 1; ///< 0 : Disable; 1 : Enable. Indicates that the LED/SGPIO hardware is attached and ping to locate feature is enabled on the OS UINT32 IrrtOnly : 1; ///< 0 : Disable; 1 : Enable. Allow only IRRT drives to span internal and external ports UINT32 SmartStorage : 1; ///< 0 : Disable; 1 : Enable RST Smart Storage caching Bit UINT32 LegacyOrom : 1; ///< 0 : Disable; 1 : Enable RST Legacy OROM UINT32 OptaneMemory : 1; ///< 0: Disable; 1: Enable RST Optane(TM) Memory UINT32 CpuAttachedStorage : 1; ///< 0: Disable; 1: Enable CPU Attached Storage UINT32 RsvdBits0 : 17; ///< Reserved Bits /** This member describes the details of implementation of Intel RST for PCIe Storage remapping (Intel RST Driver is required) Note: RST for PCIe Sorage remapping is supported only for first SATA controller if more controllers are available **/ RST_HARDWARE_REMAPPED_STORAGE_CONFIG HardwareRemappedStorageConfig[PCH_MAX_RST_PCIE_STORAGE_CR]; } RST_CONFIG; #pragma pack (pop) #endif