1*b61a5730SWarner Losh /* SPDX-License-Identifier: BSD-2-Clause AND BSD-3-Clause */ 2f4f56ff4SMark Johnston /* $NetBSD: qat_hw15var.h,v 1.1 2019/11/20 09:37:46 hikaru Exp $ */ 3f4f56ff4SMark Johnston 4f4f56ff4SMark Johnston /* 5f4f56ff4SMark Johnston * Copyright (c) 2019 Internet Initiative Japan, Inc. 6f4f56ff4SMark Johnston * All rights reserved. 7f4f56ff4SMark Johnston * 8f4f56ff4SMark Johnston * Redistribution and use in source and binary forms, with or without 9f4f56ff4SMark Johnston * modification, are permitted provided that the following conditions 10f4f56ff4SMark Johnston * are met: 11f4f56ff4SMark Johnston * 1. Redistributions of source code must retain the above copyright 12f4f56ff4SMark Johnston * notice, this list of conditions and the following disclaimer. 13f4f56ff4SMark Johnston * 2. Redistributions in binary form must reproduce the above copyright 14f4f56ff4SMark Johnston * notice, this list of conditions and the following disclaimer in the 15f4f56ff4SMark Johnston * documentation and/or other materials provided with the distribution. 16f4f56ff4SMark Johnston * 17f4f56ff4SMark Johnston * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18f4f56ff4SMark Johnston * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19f4f56ff4SMark Johnston * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20f4f56ff4SMark Johnston * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21f4f56ff4SMark Johnston * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22f4f56ff4SMark Johnston * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23f4f56ff4SMark Johnston * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24f4f56ff4SMark Johnston * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25f4f56ff4SMark Johnston * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26f4f56ff4SMark Johnston * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27f4f56ff4SMark Johnston * POSSIBILITY OF SUCH DAMAGE. 28f4f56ff4SMark Johnston */ 29f4f56ff4SMark Johnston 30f4f56ff4SMark Johnston /* 31f4f56ff4SMark Johnston * Copyright(c) 2007-2013 Intel Corporation. All rights reserved. 32f4f56ff4SMark Johnston * 33f4f56ff4SMark Johnston * Redistribution and use in source and binary forms, with or without 34f4f56ff4SMark Johnston * modification, are permitted provided that the following conditions 35f4f56ff4SMark Johnston * are met: 36f4f56ff4SMark Johnston * 37f4f56ff4SMark Johnston * * Redistributions of source code must retain the above copyright 38f4f56ff4SMark Johnston * notice, this list of conditions and the following disclaimer. 39f4f56ff4SMark Johnston * * Redistributions in binary form must reproduce the above copyright 40f4f56ff4SMark Johnston * notice, this list of conditions and the following disclaimer in 41f4f56ff4SMark Johnston * the documentation and/or other materials provided with the 42f4f56ff4SMark Johnston * distribution. 43f4f56ff4SMark Johnston * * Neither the name of Intel Corporation nor the names of its 44f4f56ff4SMark Johnston * contributors may be used to endorse or promote products derived 45f4f56ff4SMark Johnston * from this software without specific prior written permission. 46f4f56ff4SMark Johnston * 47f4f56ff4SMark Johnston * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 48f4f56ff4SMark Johnston * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 49f4f56ff4SMark Johnston * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 50f4f56ff4SMark Johnston * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 51f4f56ff4SMark Johnston * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 52f4f56ff4SMark Johnston * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 53f4f56ff4SMark Johnston * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 54f4f56ff4SMark Johnston * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 55f4f56ff4SMark Johnston * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 56f4f56ff4SMark Johnston * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 57f4f56ff4SMark Johnston * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 58f4f56ff4SMark Johnston */ 59f4f56ff4SMark Johnston 60f4f56ff4SMark Johnston 61f4f56ff4SMark Johnston #ifndef _DEV_PCI_QAT_HW15VAR_H_ 62f4f56ff4SMark Johnston #define _DEV_PCI_QAT_HW15VAR_H_ 63f4f56ff4SMark Johnston 64f4f56ff4SMark Johnston CTASSERT(HASH_CONTENT_DESC_SIZE >= 65f4f56ff4SMark Johnston sizeof(struct fw_auth_hdr) + MAX_HASH_SETUP_BLK_SZ); 66f4f56ff4SMark Johnston CTASSERT(CIPHER_CONTENT_DESC_SIZE >= 67f4f56ff4SMark Johnston sizeof(struct fw_cipher_hdr) + MAX_CIPHER_SETUP_BLK_SZ); 68f4f56ff4SMark Johnston CTASSERT(CONTENT_DESC_MAX_SIZE >= 69f4f56ff4SMark Johnston roundup(HASH_CONTENT_DESC_SIZE + CIPHER_CONTENT_DESC_SIZE, 70f4f56ff4SMark Johnston QAT_OPTIMAL_ALIGN)); 71f4f56ff4SMark Johnston CTASSERT(QAT_SYM_REQ_PARAMS_SIZE_PADDED >= 72f4f56ff4SMark Johnston roundup(sizeof(struct fw_la_cipher_req_params) + 73f4f56ff4SMark Johnston sizeof(struct fw_la_auth_req_params), QAT_OPTIMAL_ALIGN)); 74f4f56ff4SMark Johnston 75f4f56ff4SMark Johnston /* length of the 5 long words of the request that are stored in the session 76f4f56ff4SMark Johnston * This is rounded up to 32 in order to use the fast memcopy function */ 77f4f56ff4SMark Johnston #define QAT_HW15_SESSION_REQ_CACHE_SIZE (32) 78f4f56ff4SMark Johnston 79f4f56ff4SMark Johnston void qat_msg_req_type_populate(struct arch_if_req_hdr *, 80f4f56ff4SMark Johnston enum arch_if_req, uint32_t); 81f4f56ff4SMark Johnston void qat_msg_cmn_hdr_populate(struct fw_la_bulk_req *, bus_addr_t, 82f4f56ff4SMark Johnston uint8_t, uint8_t, uint16_t, uint32_t); 83f4f56ff4SMark Johnston void qat_msg_service_cmd_populate(struct fw_la_bulk_req *, 84f4f56ff4SMark Johnston enum fw_la_cmd_id, uint16_t); 85f4f56ff4SMark Johnston void qat_msg_cmn_mid_populate(struct fw_comn_req_mid *, void *, 86f4f56ff4SMark Johnston uint64_t , uint64_t); 87f4f56ff4SMark Johnston void qat_msg_req_params_populate(struct fw_la_bulk_req *, bus_addr_t, 88f4f56ff4SMark Johnston uint8_t); 89f4f56ff4SMark Johnston void qat_msg_cmn_footer_populate(union fw_comn_req_ftr *, uint64_t); 90f4f56ff4SMark Johnston void qat_msg_params_populate(struct fw_la_bulk_req *, 91f4f56ff4SMark Johnston struct qat_crypto_desc *, uint8_t, uint16_t, 92f4f56ff4SMark Johnston uint16_t); 93f4f56ff4SMark Johnston 94f4f56ff4SMark Johnston 95f4f56ff4SMark Johnston int qat_adm_ring_init(struct qat_softc *); 96f4f56ff4SMark Johnston int qat_adm_ring_send_init(struct qat_softc *); 97f4f56ff4SMark Johnston 98f4f56ff4SMark Johnston void qat_hw15_crypto_setup_desc(struct qat_crypto *, 99f4f56ff4SMark Johnston struct qat_session *, struct qat_crypto_desc *); 100f4f56ff4SMark Johnston void qat_hw15_crypto_setup_req_params(struct qat_crypto_bank *, 101f4f56ff4SMark Johnston struct qat_session *, struct qat_crypto_desc const *, 102f4f56ff4SMark Johnston struct qat_sym_cookie *, struct cryptop *); 103f4f56ff4SMark Johnston 104f4f56ff4SMark Johnston #endif 105