/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2019 - 2021 * * Richard van Schagen <vschagen@icloud.com> * Christian Marangi <ansuelsmth@gmail.com
*/ #ifndef REG_EIP93_H #define REG_EIP93_H
#define EIP93_REG_PE_CTRL_STAT 0x0 #define EIP93_PE_CTRL_PE_PAD_CTRL_STAT GENMASK(31, 24) #define EIP93_PE_CTRL_PE_EXT_ERR_CODE GENMASK(23, 20) #define EIP93_PE_CTRL_PE_EXT_ERR_PROCESSING 0x8 #define EIP93_PE_CTRL_PE_EXT_ERR_BLOCK_SIZE_ERR 0x7 #define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_PK_LENGTH 0x6 #define EIP93_PE_CTRL_PE_EXT_ERR_ZERO_LENGTH 0x5 #define EIP93_PE_CTRL_PE_EXT_ERR_SPI 0x4 #define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_CRYPTO_ALGO 0x3 #define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_CRYPTO_OP 0x2 #define EIP93_PE_CTRL_PE_EXT_ERR_DESC_OWNER 0x1 #define EIP93_PE_CTRL_PE_EXT_ERR_BUS 0x0 #define EIP93_PE_CTRL_PE_EXT_ERR BIT(19) #define EIP93_PE_CTRL_PE_SEQNUM_ERR BIT(18) #define EIP93_PE_CTRL_PE_PAD_ERR BIT(17) #define EIP93_PE_CTRL_PE_AUTH_ERR BIT(16) #define EIP93_PE_CTRL_PE_PAD_VALUE GENMASK(15, 8) #define EIP93_PE_CTRL_PE_PRNG_MODE GENMASK(7, 6) #define EIP93_PE_CTRL_PE_HASH_FINAL BIT(4) #define EIP93_PE_CTRL_PE_INIT_ARC4 BIT(3) #define EIP93_PE_CTRL_PE_READY_DES_TRING_OWN GENMASK(1, 0) #define EIP93_PE_CTRL_PE_READY 0x2 #define EIP93_PE_CTRL_HOST_READY 0x1 #define EIP93_REG_PE_SOURCE_ADDR 0x4 #define EIP93_REG_PE_DEST_ADDR 0x8 #define EIP93_REG_PE_SA_ADDR 0xc #define EIP93_REG_PE_ADDR 0x10 /* STATE_ADDR */ /* * Special implementation for user ID * user_id in eip93_descriptor is used to identify the * descriptor and is opaque and can be used by the driver * in custom way. * * The usage of this should be to put an address to the crypto * request struct from the kernel but this can't work in 64bit * world. * * Also it's required to put some flags to identify the last * descriptor. * * To handle this, split the u32 in 2 part: * - 31:16 descriptor flags * - 15:0 IDR to connect the crypto request address
*/ #define EIP93_REG_PE_USER_ID 0x18 #define EIP93_PE_USER_ID_DESC_FLAGS GENMASK(31, 16) #define EIP93_PE_USER_ID_CRYPTO_IDR GENMASK(15, 0) #define EIP93_REG_PE_LENGTH 0x1c #define EIP93_PE_LENGTH_BYPASS GENMASK(31, 24) #define EIP93_PE_LENGTH_HOST_PE_READY GENMASK(23, 22) #define EIP93_PE_LENGTH_PE_READY 0x2 #define EIP93_PE_LENGTH_HOST_READY 0x1 #define EIP93_PE_LENGTH_LENGTH GENMASK(19, 0)
/* PACKET ENGINE RING configuration registers */ #define EIP93_REG_PE_CDR_BASE 0x80 #define EIP93_REG_PE_RDR_BASE 0x84 #define EIP93_REG_PE_RING_CONFIG 0x88 #define EIP93_PE_EN_EXT_TRIG BIT(31) /* Absent in later revision of eip93 */ /* #define EIP93_PE_RING_OFFSET GENMASK(23, 15) */ #define EIP93_PE_RING_SIZE GENMASK(9, 0) #define EIP93_REG_PE_RING_THRESH 0x8c #define EIPR93_PE_TIMEROUT_EN BIT(31) #define EIPR93_PE_RD_TIMEOUT GENMASK(29, 26) #define EIPR93_PE_RDR_THRESH GENMASK(25, 16) #define EIPR93_PE_CDR_THRESH GENMASK(9, 0) #define EIP93_REG_PE_CD_COUNT 0x90 #define EIP93_PE_CD_COUNT GENMASK(10, 0) /* * In the same register, writing a value in GENMASK(7, 0) will * increment the descriptor count and start DMA action.
*/ #define EIP93_PE_CD_COUNT_INCR GENMASK(7, 0) #define EIP93_REG_PE_RD_COUNT 0x94 #define EIP93_PE_RD_COUNT GENMASK(10, 0) /* * In the same register, writing a value in GENMASK(7, 0) will * increment the descriptor count and start DMA action.
*/ #define EIP93_PE_RD_COUNT_INCR GENMASK(7, 0) #define EIP93_REG_PE_RING_RW_PNTR 0x98 /* RING_PNTR */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.