/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
/* Copyright(c) 2014 - 2020 Intel Corporation */
#ifndef __ICP_QAT_HAL_H
#define __ICP_QAT_HAL_H
#include "icp_qat_fw_loader_handle.h"
enum hal_global_csr {
MISC_CONTROL = 0 xA04,
ICP_RESET = 0 xA0c,
ICP_GLOBAL_CLK_ENABLE = 0 xA50
};
enum {
MISC_CONTROL_C4XXX = 0 xAA0,
ICP_RESET_CPP0 = 0 x938,
ICP_RESET_CPP1 = 0 x93c,
ICP_GLOBAL_CLK_ENABLE_CPP0 = 0 x964,
ICP_GLOBAL_CLK_ENABLE_CPP1 = 0 x968
};
enum hal_ae_csr {
USTORE_ADDRESS = 0 x000,
USTORE_DATA_LOWER = 0 x004,
USTORE_DATA_UPPER = 0 x008,
ALU_OUT = 0 x010,
CTX_ARB_CNTL = 0 x014,
CTX_ENABLES = 0 x018,
CC_ENABLE = 0 x01c,
CSR_CTX_POINTER = 0 x020,
CTX_STS_INDIRECT = 0 x040,
ACTIVE_CTX_STATUS = 0 x044,
CTX_SIG_EVENTS_INDIRECT = 0 x048,
CTX_SIG_EVENTS_ACTIVE = 0 x04c,
CTX_WAKEUP_EVENTS_INDIRECT = 0 x050,
LM_ADDR_0_INDIRECT = 0 x060,
LM_ADDR_1_INDIRECT = 0 x068,
LM_ADDR_2_INDIRECT = 0 x0cc,
LM_ADDR_3_INDIRECT = 0 x0d4,
INDIRECT_LM_ADDR_0_BYTE_INDEX = 0 x0e0,
INDIRECT_LM_ADDR_1_BYTE_INDEX = 0 x0e8,
INDIRECT_LM_ADDR_2_BYTE_INDEX = 0 x10c,
INDIRECT_LM_ADDR_3_BYTE_INDEX = 0 x114,
INDIRECT_T_INDEX = 0 x0f8,
INDIRECT_T_INDEX_BYTE_INDEX = 0 x0fc,
FUTURE_COUNT_SIGNAL_INDIRECT = 0 x078,
TIMESTAMP_LOW = 0 x0c0,
TIMESTAMP_HIGH = 0 x0c4,
PROFILE_COUNT = 0 x144,
SIGNATURE_ENABLE = 0 x150,
AE_MISC_CONTROL = 0 x160,
LOCAL_CSR_STATUS = 0 x180,
};
enum fcu_csr {
FCU_CONTROL = 0 x8c0,
FCU_STATUS = 0 x8c4,
FCU_STATUS1 = 0 x8c8,
FCU_DRAM_ADDR_LO = 0 x8cc,
FCU_DRAM_ADDR_HI = 0 x8d0,
FCU_RAMBASE_ADDR_HI = 0 x8d4,
FCU_RAMBASE_ADDR_LO = 0 x8d8
};
enum fcu_csr_4xxx {
FCU_CONTROL_4XXX = 0 x1000,
FCU_STATUS_4XXX = 0 x1004,
FCU_ME_BROADCAST_MASK_TYPE = 0 x1008,
FCU_AE_LOADED_4XXX = 0 x1010,
FCU_DRAM_ADDR_LO_4XXX = 0 x1014,
FCU_DRAM_ADDR_HI_4XXX = 0 x1018,
};
enum fcu_cmd {
FCU_CTRL_CMD_NOOP = 0 ,
FCU_CTRL_CMD_AUTH = 1 ,
FCU_CTRL_CMD_LOAD = 2 ,
FCU_CTRL_CMD_START = 3
};
enum fcu_sts {
FCU_STS_NO_STS = 0 ,
FCU_STS_VERI_DONE = 1 ,
FCU_STS_LOAD_DONE = 2 ,
FCU_STS_VERI_FAIL = 3 ,
FCU_STS_LOAD_FAIL = 4 ,
FCU_STS_BUSY = 5
};
#define ALL_AE_MASK 0 xFFFFFFFF
#define UA_ECS (0 x1 << 31 )
#define ACS_ABO_BITPOS 31
#define ACS_ACNO 0 x7
#define CE_ENABLE_BITPOS 0 x8
#define CE_LMADDR_0_GLOBAL_BITPOS 16
#define CE_LMADDR_1_GLOBAL_BITPOS 17
#define CE_LMADDR_2_GLOBAL_BITPOS 22
#define CE_LMADDR_3_GLOBAL_BITPOS 23
#define CE_T_INDEX_GLOBAL_BITPOS 21
#define CE_NN_MODE_BITPOS 20
#define CE_REG_PAR_ERR_BITPOS 25
#define CE_BREAKPOINT_BITPOS 27
#define CE_CNTL_STORE_PARITY_ERROR_BITPOS 29
#define CE_INUSE_CONTEXTS_BITPOS 31
#define CE_NN_MODE (0 x1 << CE_NN_MODE_BITPOS)
#define CE_INUSE_CONTEXTS (0 x1 << CE_INUSE_CONTEXTS_BITPOS)
#define XCWE_VOLUNTARY (0 x1)
#define LCS_STATUS (0 x1)
#define MMC_SHARE_CS_BITPOS 2
#define WAKEUP_EVENT 0 x10000
#define FCU_CTRL_BROADCAST_POS 0 x4
#define FCU_CTRL_AE_POS 0 x8
#define FCU_AUTH_STS_MASK 0 x7
#define FCU_STS_DONE_POS 0 x9
#define FCU_STS_AUTHFWLD_POS 0 X8
#define FCU_LOADED_AE_POS 0 x16
#define FW_AUTH_WAIT_PERIOD 10
#define FW_AUTH_MAX_RETRY 300
#define ICP_QAT_AE_OFFSET 0 x20000
#define ICP_QAT_CAP_OFFSET (ICP_QAT_AE_OFFSET + 0 x10000)
#define LOCAL_TO_XFER_REG_OFFSET 0 x800
#define ICP_QAT_EP_OFFSET 0 x3a000
#define ICP_QAT_EP_OFFSET_4XXX 0 x200000 /* HI MMIO CSRs */
#define ICP_QAT_AE_OFFSET_4XXX 0 x600000
#define ICP_QAT_CAP_OFFSET_4XXX 0 x640000
#define SET_CAP_CSR(handle, csr, val) \
ADF_CSR_WR((handle)->hal_cap_g_ctl_csr_addr_v, csr, val)
#define GET_CAP_CSR(handle, csr) \
ADF_CSR_RD((handle)->hal_cap_g_ctl_csr_addr_v, csr)
#define AE_CSR(handle, ae) \
((char __iomem *)(handle)->hal_cap_ae_local_csr_addr_v + ((ae) << 12 ))
#define AE_CSR_ADDR(handle, ae, csr) (AE_CSR(handle, ae) + (0 x3ff & (csr)))
#define SET_AE_CSR(handle, ae, csr, val) \
ADF_CSR_WR(AE_CSR_ADDR(handle, ae, csr), 0 , val)
#define GET_AE_CSR(handle, ae, csr) ADF_CSR_RD(AE_CSR_ADDR(handle, ae, csr), 0 )
#define AE_XFER(handle, ae) \
((char __iomem *)(handle)->hal_cap_ae_xfer_csr_addr_v + ((ae) << 12 ))
#define AE_XFER_ADDR(handle, ae, reg) (AE_XFER(handle, ae) + \
(((reg) & 0 xff) << 2 ))
#define SET_AE_XFER(handle, ae, reg, val) \
ADF_CSR_WR(AE_XFER_ADDR(handle, ae, reg), 0 , val)
#define SRAM_WRITE(handle, addr, val) \
ADF_CSR_WR((handle)->hal_sram_addr_v, addr, val)
#endif
Messung V0.5 in Prozent C=98 H=96 G=96
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland