123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- /*
- This file is provided under a dual BSD/GPLv2 license. When using or
- redistributing this file, you may do so under either license.
- GPL LICENSE SUMMARY
- Copyright(c) 2014 Intel Corporation.
- This program is free software; you can redistribute it and/or modify
- it under the terms of version 2 of the GNU General Public License as
- published by the Free Software Foundation.
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
- Contact Information:
- [email protected]
- BSD LICENSE
- Copyright(c) 2014 Intel Corporation.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- #ifndef __ICP_QAT_HAL_H
- #define __ICP_QAT_HAL_H
- #include "icp_qat_fw_loader_handle.h"
- enum hal_global_csr {
- MISC_CONTROL = 0x04,
- ICP_RESET = 0x0c,
- ICP_GLOBAL_CLK_ENABLE = 0x50
- };
- enum hal_ae_csr {
- USTORE_ADDRESS = 0x000,
- USTORE_DATA_LOWER = 0x004,
- USTORE_DATA_UPPER = 0x008,
- ALU_OUT = 0x010,
- CTX_ARB_CNTL = 0x014,
- CTX_ENABLES = 0x018,
- CC_ENABLE = 0x01c,
- CSR_CTX_POINTER = 0x020,
- CTX_STS_INDIRECT = 0x040,
- ACTIVE_CTX_STATUS = 0x044,
- CTX_SIG_EVENTS_INDIRECT = 0x048,
- CTX_SIG_EVENTS_ACTIVE = 0x04c,
- CTX_WAKEUP_EVENTS_INDIRECT = 0x050,
- LM_ADDR_0_INDIRECT = 0x060,
- LM_ADDR_1_INDIRECT = 0x068,
- INDIRECT_LM_ADDR_0_BYTE_INDEX = 0x0e0,
- INDIRECT_LM_ADDR_1_BYTE_INDEX = 0x0e8,
- FUTURE_COUNT_SIGNAL_INDIRECT = 0x078,
- TIMESTAMP_LOW = 0x0c0,
- TIMESTAMP_HIGH = 0x0c4,
- PROFILE_COUNT = 0x144,
- SIGNATURE_ENABLE = 0x150,
- AE_MISC_CONTROL = 0x160,
- LOCAL_CSR_STATUS = 0x180,
- };
- enum fcu_csr {
- FCU_CONTROL = 0x8c0,
- FCU_STATUS = 0x8c4,
- FCU_STATUS1 = 0x8c8,
- FCU_DRAM_ADDR_LO = 0x8cc,
- FCU_DRAM_ADDR_HI = 0x8d0,
- FCU_RAMBASE_ADDR_HI = 0x8d4,
- FCU_RAMBASE_ADDR_LO = 0x8d8
- };
- 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 UA_ECS (0x1 << 31)
- #define ACS_ABO_BITPOS 31
- #define ACS_ACNO 0x7
- #define CE_ENABLE_BITPOS 0x8
- #define CE_LMADDR_0_GLOBAL_BITPOS 16
- #define CE_LMADDR_1_GLOBAL_BITPOS 17
- #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 (0x1 << CE_NN_MODE_BITPOS)
- #define CE_INUSE_CONTEXTS (0x1 << CE_INUSE_CONTEXTS_BITPOS)
- #define XCWE_VOLUNTARY (0x1)
- #define LCS_STATUS (0x1)
- #define MMC_SHARE_CS_BITPOS 2
- #define GLOBAL_CSR 0xA00
- #define FCU_CTRL_AE_POS 0x8
- #define FCU_AUTH_STS_MASK 0x7
- #define FCU_STS_DONE_POS 0x9
- #define FCU_STS_AUTHFWLD_POS 0X8
- #define FCU_LOADED_AE_POS 0x16
- #define FW_AUTH_WAIT_PERIOD 10
- #define FW_AUTH_MAX_RETRY 300
- #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 SET_GLB_CSR(handle, csr, val) SET_CAP_CSR(handle, csr + GLOBAL_CSR, val)
- #define GET_GLB_CSR(handle, csr) GET_CAP_CSR(handle, GLOBAL_CSR + csr)
- #define AE_CSR(handle, ae) \
- ((char __iomem *)handle->hal_cap_ae_local_csr_addr_v + \
- ((ae & handle->hal_handle->ae_mask) << 12))
- #define AE_CSR_ADDR(handle, ae, csr) (AE_CSR(handle, ae) + (0x3ff & 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 & handle->hal_handle->ae_mask) << 12))
- #define AE_XFER_ADDR(handle, ae, reg) (AE_XFER(handle, ae) + \
- ((reg & 0xff) << 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
|