Ryzen/AmiModulePkg/HddSecurity/SmmHddSecurity.h
2022-12-23 15:14:44 +08:00

92 lines
2.7 KiB
C

//***********************************************************************
//* *
//* Copyright (c) 1985-2021, American Megatrends International LLC. *
//* *
//* All rights reserved. Subject to AMI licensing agreement. *
//* *
//***********************************************************************
/** @file SmmHddSecurity.h
This file contains the Includes, Definitions, typedefs,
Variable and External Declarations, Structure and
function prototypes needed for the IDESMM Component
**/
#ifndef _HDD_SECURITY_SMM_H_
#define _HDD_SECURITY_SMM_H_
#include <Token.h>
#include <HddSecurityCommon.h>
#include <Library/SmmServicesTableLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/LockBoxLib.h>
#include <Library/PciLib.h>
#include <Library/TimerLib.h>
#include <Library/AmiBufferValidationLib.h>
#include <Library/S3BootScriptLib.h>
#include <Library/SmmConfidentialMemLib.h>
#include <Library/IoLib.h>
#include <Protocol/SmmBase2.h>
#include <Protocol/SmmSwDispatch2.h>
#if (defined(AHCI_SUPPORT) && (AHCI_SUPPORT == 1))
#ifndef DLINK
typedef struct _AMI_LINK DLINK;
typedef struct _AMI_LIST DLIST;
#endif
#include <Protocol/AhciSmmProtocol.h>
#include <AhciController.h>
#endif
#if (defined(NVMe_SUPPORT) && (NVMe_SUPPORT != 0))
#include <Nvme/NvmeController.h>
#include <Protocol/AmiNvmeController.h>
#include <Protocol/AmiNvmePassThru.h>
#endif
#define COMMAND_LIST_SIZE_PORT 0x800
#ifndef DMA_ATAPI_COMMAND_COMPLETE_TIMEOUT
#define DMA_ATAPI_COMMAND_COMPLETE_TIMEOUT 30000 // 30Sec
#endif
#ifndef S3_BUSY_CLEAR_TIMEOUT
#define S3_BUSY_CLEAR_TIMEOUT 30000 // 30Sec
#endif
#ifndef BUSY_CLEAR_TIMEOUT
#define BUSY_CLEAR_TIMEOUT 1000 // 1Sec
#endif
#ifndef DRDY_TIMEOUT
#define DRDY_TIMEOUT 1000 // 1Sec
#endif
#ifndef DRQ_TIMEOUT
#define DRQ_TIMEOUT 10 // 10msec
#endif
#ifndef HBA_CAP
#define HBA_CAP 0x0000
#endif
#ifndef HBA_CAP_NP_MASK
#define HBA_CAP_NP_MASK 0x1F
#endif
#ifndef HBA_PORTS_START
#define HBA_PORTS_START 0x0100
#endif
#ifndef HBA_PORTS_REG_WIDTH
#define HBA_PORTS_REG_WIDTH 0x0080
#endif
#define AHCI_BAR 0x24
#define PCI_SCC 0x000A // Sub Class Code Register
#endif