From: kernel test robot <yujie.liu@intel.com>
To: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>,
<herbert@gondor.apana.org.au>, <linux-crypto@vger.kernel.org>
Cc: <oe-kbuild-all@lists.linux.dev>,
<manjunath.hadli@vayavyalabs.com>,
Pavitrakumar M <pavitrakumarm@vayavyalabs.com>,
shwetar <shwetar@vayavyalabs.com>,
Ruud Derwig <Ruud.Derwig@synopsys.com>
Subject: Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
Date: Wed, 15 Nov 2023 10:00:17 +0800 [thread overview]
Message-ID: <202311142123.lwAnyUEZ-lkp@intel.com> (raw)
In-Reply-To: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311142123.lwAnyUEZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_fini':
drivers/crypto/dwc-spacc/spacc_core.c:2565:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
2565 | vfree(spacc->ctx);
| ^~~~~
| kvfree
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_init':
drivers/crypto/dwc-spacc/spacc_core.c:2744:22: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^~~~~~~
| kvmalloc
>> drivers/crypto/dwc-spacc/spacc_core.c:2744:20: warning: assignment to 'struct spacc_ctx *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^
>> drivers/crypto/dwc-spacc/spacc_core.c:2750:20: warning: assignment to 'struct spacc_job *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2750 | spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
| ^
drivers/crypto/dwc-spacc/spacc_core.c: At top level:
drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +2744 drivers/crypto/dwc-spacc/spacc_core.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 2568
188d801c0d4bbe Pavitrakumar M 2023-11-14 2569 int spacc_init(void *baseaddr, struct spacc_device *spacc,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2570 struct pdu_info *info)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2571 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2572 unsigned long id;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2573 char version_string[3][16] = { "SPACC", "SPACC-PDU" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2574 char idx_string[2][16] = { "(Normal Port)", "(Secure Port)" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2575 char dma_type_string[4][16] = {"Unknown", "Scattergather", "Linear",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2576 "Unknown"};
188d801c0d4bbe Pavitrakumar M 2023-11-14 2577
188d801c0d4bbe Pavitrakumar M 2023-11-14 2578 if (!baseaddr) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2579 pr_err("ERR: baseaddr is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2580 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2581 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2582 if (!spacc) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2583 pr_err("ERR: spacc is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2584 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2585 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2586
188d801c0d4bbe Pavitrakumar M 2023-11-14 2587 memset(spacc, 0, sizeof(*spacc));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2588 spin_lock_init(&spacc->lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2589 spin_lock_init(&spacc->ctx_lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2590
188d801c0d4bbe Pavitrakumar M 2023-11-14 2591 /* assign the baseaddr*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2592 spacc->regmap = baseaddr;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2593
188d801c0d4bbe Pavitrakumar M 2023-11-14 2594 /* version info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2595 spacc->config.version = info->spacc_version.version;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2596 spacc->config.pdu_version = (info->pdu_config.major << 4) |
188d801c0d4bbe Pavitrakumar M 2023-11-14 2597 info->pdu_config.minor;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2598 spacc->config.project = info->spacc_version.project;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2599 spacc->config.is_pdu = info->spacc_version.is_pdu;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2600 spacc->config.is_qos = info->spacc_version.qos;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2601
188d801c0d4bbe Pavitrakumar M 2023-11-14 2602 /* misc*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2603 spacc->config.is_partial = info->spacc_version.partial;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2604 spacc->config.num_ctx = info->spacc_config.num_ctx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2605 spacc->config.ciph_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2606 info->spacc_config.ciph_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2607 spacc->config.hash_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2608 info->spacc_config.hash_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2609 spacc->config.dma_type = info->spacc_config.dma_type;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2610 spacc->config.idx = info->spacc_version.vspacc_idx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2611 spacc->config.cmd0_fifo_depth = info->spacc_config.cmd0_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2612 spacc->config.cmd1_fifo_depth = info->spacc_config.cmd1_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2613 spacc->config.cmd2_fifo_depth = info->spacc_config.cmd2_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2614 spacc->config.stat_fifo_depth = info->spacc_config.stat_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2615 spacc->config.fifo_cnt = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2616
188d801c0d4bbe Pavitrakumar M 2023-11-14 2617 spacc->config.is_ivimport = info->spacc_version.ivimport;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2618
188d801c0d4bbe Pavitrakumar M 2023-11-14 2619 /* ctrl register map*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2620 if (spacc->config.version <= 0x4E)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2621 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_0];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2622 else if (spacc->config.version <= 0x60)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2623 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_1];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2624 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2625 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_2];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2626
188d801c0d4bbe Pavitrakumar M 2023-11-14 2627 spacc->job_next_swid = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2628 spacc->wdcnt = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2629 spacc->config.wd_timer = SPACC_WD_TIMER_INIT;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2630
188d801c0d4bbe Pavitrakumar M 2023-11-14 2631 /* version 4.10 uses IRQ,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2632 * above uses WD and we don't support below 4.00
188d801c0d4bbe Pavitrakumar M 2023-11-14 2633 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2634 if (spacc->config.version < 0x40) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2635 pr_err("ERR: Unsupported SPAcc version\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2636 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2637 } else if (spacc->config.version < 0x4B) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2638 spacc->op_mode = SPACC_OP_MODE_IRQ;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2639 } else {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2640 spacc->op_mode = SPACC_OP_MODE_WD;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2641 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2642
188d801c0d4bbe Pavitrakumar M 2023-11-14 2643 /* set threshold and enable irq
188d801c0d4bbe Pavitrakumar M 2023-11-14 2644 * on 4.11 and newer cores we can derive this
188d801c0d4bbe Pavitrakumar M 2023-11-14 2645 * from the HW reported depths.
188d801c0d4bbe Pavitrakumar M 2023-11-14 2646 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2647 if (spacc->config.stat_fifo_depth == 1)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2648 spacc->config.ideal_stat_level = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2649 else if (spacc->config.stat_fifo_depth <= 4)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2650 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2651 - 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2652 else if (spacc->config.stat_fifo_depth <= 8)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2653 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2654 - 2;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2655 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2656 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2657 - 4;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2658
188d801c0d4bbe Pavitrakumar M 2023-11-14 2659 /* determine max PROClen value */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2660 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2661 spacc->config.max_msg_size = readl(spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2662
188d801c0d4bbe Pavitrakumar M 2023-11-14 2663 /* read config info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2664 if (spacc->config.is_pdu) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2665 pr_debug("PDU:\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2666 pr_debug(" MAJOR : %u\n", info->pdu_config.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2667 pr_debug(" MINOR : %u\n", info->pdu_config.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2668 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2669 id = readl(spacc->regmap + SPACC_REG_ID);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2670 pr_debug("SPACC ID: (%08lx)\n", (unsigned long)id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2671 pr_debug(" MAJOR : %x\n", info->spacc_version.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2672 pr_debug(" MINOR : %x\n", info->spacc_version.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2673 pr_debug(" QOS : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2674 pr_debug(" IVIMPORT : %x\n", spacc->config.is_ivimport);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2675
188d801c0d4bbe Pavitrakumar M 2023-11-14 2676 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2677 pr_debug(" TYPE : %lx (%s)\n", SPACC_ID_TYPE(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2678 version_string[SPACC_ID_TYPE(id) & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2679
188d801c0d4bbe Pavitrakumar M 2023-11-14 2680 pr_debug(" AUX : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2681 pr_debug(" IDX : %lx %s\n", SPACC_ID_VIDX(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2682 spacc->config.is_secure ?
188d801c0d4bbe Pavitrakumar M 2023-11-14 2683 (idx_string[spacc->config.is_secure_port & 1]) : "");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2684 pr_debug(" PARTIAL : %x\n", info->spacc_version.partial);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2685 pr_debug(" PROJECT : %x\n", info->spacc_version.project);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2686 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2687 id = readl(spacc->regmap + SPACC_REG_CONFIG);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2688 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2689 id = 0xFFFFFFFF;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2690
188d801c0d4bbe Pavitrakumar M 2023-11-14 2691 pr_debug("SPACC CFG: (%08lx)\n", id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2692 pr_debug(" CTX CNT : %u\n", info->spacc_config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2693 pr_debug(" VSPACC CNT : %u\n", info->spacc_config.num_vspacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2694 pr_debug(" CIPH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2695 info->spacc_config.ciph_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2696 pr_debug(" HASH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2697 info->spacc_config.hash_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2698 pr_debug(" DMA TYPE : %u (%s)\n", info->spacc_config.dma_type,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2699 dma_type_string[info->spacc_config.dma_type & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2700 pr_debug(" MAX PROCLEN: %lu bytes\n", (unsigned
188d801c0d4bbe Pavitrakumar M 2023-11-14 2701 long)spacc->config.max_msg_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2702 pr_debug(" FIFO CONFIG :\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2703 pr_debug(" CMD0 DEPTH: %d\n", spacc->config.cmd0_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2704 if (spacc->config.is_qos) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2705 pr_debug(" CMD1 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2706 spacc->config.cmd1_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2707 pr_debug(" CMD2 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2708 spacc->config.cmd2_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2709 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2710 pr_debug(" STAT DEPTH: %d\n", spacc->config.stat_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2711
188d801c0d4bbe Pavitrakumar M 2023-11-14 2712 if (spacc->config.dma_type == SPACC_DMA_DDT) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2713 writel(0x1234567F, baseaddr + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2714 writel(0xDEADBEEF, baseaddr + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2715 if (((readl(baseaddr + SPACC_REG_DST_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2716 (0x1234567F & SPACC_DST_PTR_PTR)) ||
188d801c0d4bbe Pavitrakumar M 2023-11-14 2717 ((readl(baseaddr + SPACC_REG_SRC_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2718 (0xDEADBEEF & SPACC_SRC_PTR_PTR))) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2719 pr_err("ERR: Failed to set pointers\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2720 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2721 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2722 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2723
188d801c0d4bbe Pavitrakumar M 2023-11-14 2724 /* zero the IRQ CTRL/EN register
188d801c0d4bbe Pavitrakumar M 2023-11-14 2725 * (to make sure we're in a sane state)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2726 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2727 writel(0, spacc->regmap + SPACC_REG_IRQ_CTRL);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2728 writel(0, spacc->regmap + SPACC_REG_IRQ_EN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2729 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_IRQ_STAT);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2730
188d801c0d4bbe Pavitrakumar M 2023-11-14 2731 /* init cache*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2732 memset(&spacc->cache, 0, sizeof(spacc->cache));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2733 writel(0, spacc->regmap + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2734 writel(0, spacc->regmap + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2735 writel(0, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2736 writel(0, spacc->regmap + SPACC_REG_ICV_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2737 writel(0, spacc->regmap + SPACC_REG_ICV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2738 writel(0, spacc->regmap + SPACC_REG_PRE_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2739 writel(0, spacc->regmap + SPACC_REG_POST_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2740 writel(0, spacc->regmap + SPACC_REG_IV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2741 writel(0, spacc->regmap + SPACC_REG_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2742 writel(0, spacc->regmap + SPACC_REG_AUX_INFO);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2743
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2744 spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
188d801c0d4bbe Pavitrakumar M 2023-11-14 2745 spacc->config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2746 if (!spacc->ctx) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2747 pr_err("ERR: Out of memory for ctx\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2748 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2749 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2750 spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2751 if (!spacc->job) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2752 pr_err("ERR: Out of memory for job\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2753 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2754 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2755
188d801c0d4bbe Pavitrakumar M 2023-11-14 2756 /* initialize job_idx and lookup table */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2757 spacc_job_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2758
188d801c0d4bbe Pavitrakumar M 2023-11-14 2759 /* initialize contexts */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2760 spacc_ctx_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2761
188d801c0d4bbe Pavitrakumar M 2023-11-14 2762 /* autodetect and set string size setting*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2763 if (spacc->config.version == 0x61 || spacc->config.version >= 0x65)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2764 spacc_xof_stringsize_autodetect(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2765
188d801c0d4bbe Pavitrakumar M 2023-11-14 2766 return CRYPTO_OK;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2767 ERR:
188d801c0d4bbe Pavitrakumar M 2023-11-14 2768 spacc_fini(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2769 pr_err("ERR: Crypto Failed\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2770 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2771 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2772
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
Date: Tue, 14 Nov 2023 21:42:53 +0800 [thread overview]
Message-ID: <202311142123.lwAnyUEZ-lkp@intel.com> (raw)
::::::
:::::: Manual check reason: "has kconfig file changed"
:::::: Manual check reason: "has Makefile file changed"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
References: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
CC: shwetar <shwetar@vayavyalabs.com>
CC: Ruud Derwig <Ruud.Derwig@synopsys.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202311142123.lwAnyUEZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_fini':
drivers/crypto/dwc-spacc/spacc_core.c:2565:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
2565 | vfree(spacc->ctx);
| ^~~~~
| kvfree
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_init':
drivers/crypto/dwc-spacc/spacc_core.c:2744:22: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^~~~~~~
| kvmalloc
>> drivers/crypto/dwc-spacc/spacc_core.c:2744:20: warning: assignment to 'struct spacc_ctx *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^
>> drivers/crypto/dwc-spacc/spacc_core.c:2750:20: warning: assignment to 'struct spacc_job *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2750 | spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
| ^
drivers/crypto/dwc-spacc/spacc_core.c: At top level:
drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +2744 drivers/crypto/dwc-spacc/spacc_core.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 2568
188d801c0d4bbe Pavitrakumar M 2023-11-14 2569 int spacc_init(void *baseaddr, struct spacc_device *spacc,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2570 struct pdu_info *info)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2571 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2572 unsigned long id;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2573 char version_string[3][16] = { "SPACC", "SPACC-PDU" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2574 char idx_string[2][16] = { "(Normal Port)", "(Secure Port)" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2575 char dma_type_string[4][16] = {"Unknown", "Scattergather", "Linear",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2576 "Unknown"};
188d801c0d4bbe Pavitrakumar M 2023-11-14 2577
188d801c0d4bbe Pavitrakumar M 2023-11-14 2578 if (!baseaddr) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2579 pr_err("ERR: baseaddr is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2580 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2581 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2582 if (!spacc) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2583 pr_err("ERR: spacc is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2584 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2585 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2586
188d801c0d4bbe Pavitrakumar M 2023-11-14 2587 memset(spacc, 0, sizeof(*spacc));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2588 spin_lock_init(&spacc->lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2589 spin_lock_init(&spacc->ctx_lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2590
188d801c0d4bbe Pavitrakumar M 2023-11-14 2591 /* assign the baseaddr*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2592 spacc->regmap = baseaddr;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2593
188d801c0d4bbe Pavitrakumar M 2023-11-14 2594 /* version info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2595 spacc->config.version = info->spacc_version.version;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2596 spacc->config.pdu_version = (info->pdu_config.major << 4) |
188d801c0d4bbe Pavitrakumar M 2023-11-14 2597 info->pdu_config.minor;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2598 spacc->config.project = info->spacc_version.project;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2599 spacc->config.is_pdu = info->spacc_version.is_pdu;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2600 spacc->config.is_qos = info->spacc_version.qos;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2601
188d801c0d4bbe Pavitrakumar M 2023-11-14 2602 /* misc*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2603 spacc->config.is_partial = info->spacc_version.partial;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2604 spacc->config.num_ctx = info->spacc_config.num_ctx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2605 spacc->config.ciph_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2606 info->spacc_config.ciph_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2607 spacc->config.hash_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2608 info->spacc_config.hash_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2609 spacc->config.dma_type = info->spacc_config.dma_type;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2610 spacc->config.idx = info->spacc_version.vspacc_idx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2611 spacc->config.cmd0_fifo_depth = info->spacc_config.cmd0_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2612 spacc->config.cmd1_fifo_depth = info->spacc_config.cmd1_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2613 spacc->config.cmd2_fifo_depth = info->spacc_config.cmd2_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2614 spacc->config.stat_fifo_depth = info->spacc_config.stat_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2615 spacc->config.fifo_cnt = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2616
188d801c0d4bbe Pavitrakumar M 2023-11-14 2617 spacc->config.is_ivimport = info->spacc_version.ivimport;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2618
188d801c0d4bbe Pavitrakumar M 2023-11-14 2619 /* ctrl register map*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2620 if (spacc->config.version <= 0x4E)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2621 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_0];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2622 else if (spacc->config.version <= 0x60)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2623 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_1];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2624 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2625 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_2];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2626
188d801c0d4bbe Pavitrakumar M 2023-11-14 2627 spacc->job_next_swid = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2628 spacc->wdcnt = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2629 spacc->config.wd_timer = SPACC_WD_TIMER_INIT;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2630
188d801c0d4bbe Pavitrakumar M 2023-11-14 2631 /* version 4.10 uses IRQ,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2632 * above uses WD and we don't support below 4.00
188d801c0d4bbe Pavitrakumar M 2023-11-14 2633 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2634 if (spacc->config.version < 0x40) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2635 pr_err("ERR: Unsupported SPAcc version\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2636 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2637 } else if (spacc->config.version < 0x4B) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2638 spacc->op_mode = SPACC_OP_MODE_IRQ;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2639 } else {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2640 spacc->op_mode = SPACC_OP_MODE_WD;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2641 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2642
188d801c0d4bbe Pavitrakumar M 2023-11-14 2643 /* set threshold and enable irq
188d801c0d4bbe Pavitrakumar M 2023-11-14 2644 * on 4.11 and newer cores we can derive this
188d801c0d4bbe Pavitrakumar M 2023-11-14 2645 * from the HW reported depths.
188d801c0d4bbe Pavitrakumar M 2023-11-14 2646 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2647 if (spacc->config.stat_fifo_depth == 1)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2648 spacc->config.ideal_stat_level = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2649 else if (spacc->config.stat_fifo_depth <= 4)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2650 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2651 - 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2652 else if (spacc->config.stat_fifo_depth <= 8)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2653 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2654 - 2;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2655 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2656 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2657 - 4;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2658
188d801c0d4bbe Pavitrakumar M 2023-11-14 2659 /* determine max PROClen value */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2660 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2661 spacc->config.max_msg_size = readl(spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2662
188d801c0d4bbe Pavitrakumar M 2023-11-14 2663 /* read config info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2664 if (spacc->config.is_pdu) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2665 pr_debug("PDU:\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2666 pr_debug(" MAJOR : %u\n", info->pdu_config.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2667 pr_debug(" MINOR : %u\n", info->pdu_config.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2668 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2669 id = readl(spacc->regmap + SPACC_REG_ID);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2670 pr_debug("SPACC ID: (%08lx)\n", (unsigned long)id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2671 pr_debug(" MAJOR : %x\n", info->spacc_version.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2672 pr_debug(" MINOR : %x\n", info->spacc_version.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2673 pr_debug(" QOS : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2674 pr_debug(" IVIMPORT : %x\n", spacc->config.is_ivimport);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2675
188d801c0d4bbe Pavitrakumar M 2023-11-14 2676 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2677 pr_debug(" TYPE : %lx (%s)\n", SPACC_ID_TYPE(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2678 version_string[SPACC_ID_TYPE(id) & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2679
188d801c0d4bbe Pavitrakumar M 2023-11-14 2680 pr_debug(" AUX : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2681 pr_debug(" IDX : %lx %s\n", SPACC_ID_VIDX(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2682 spacc->config.is_secure ?
188d801c0d4bbe Pavitrakumar M 2023-11-14 2683 (idx_string[spacc->config.is_secure_port & 1]) : "");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2684 pr_debug(" PARTIAL : %x\n", info->spacc_version.partial);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2685 pr_debug(" PROJECT : %x\n", info->spacc_version.project);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2686 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2687 id = readl(spacc->regmap + SPACC_REG_CONFIG);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2688 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2689 id = 0xFFFFFFFF;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2690
188d801c0d4bbe Pavitrakumar M 2023-11-14 2691 pr_debug("SPACC CFG: (%08lx)\n", id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2692 pr_debug(" CTX CNT : %u\n", info->spacc_config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2693 pr_debug(" VSPACC CNT : %u\n", info->spacc_config.num_vspacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2694 pr_debug(" CIPH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2695 info->spacc_config.ciph_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2696 pr_debug(" HASH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2697 info->spacc_config.hash_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2698 pr_debug(" DMA TYPE : %u (%s)\n", info->spacc_config.dma_type,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2699 dma_type_string[info->spacc_config.dma_type & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2700 pr_debug(" MAX PROCLEN: %lu bytes\n", (unsigned
188d801c0d4bbe Pavitrakumar M 2023-11-14 2701 long)spacc->config.max_msg_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2702 pr_debug(" FIFO CONFIG :\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2703 pr_debug(" CMD0 DEPTH: %d\n", spacc->config.cmd0_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2704 if (spacc->config.is_qos) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2705 pr_debug(" CMD1 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2706 spacc->config.cmd1_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2707 pr_debug(" CMD2 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2708 spacc->config.cmd2_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2709 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2710 pr_debug(" STAT DEPTH: %d\n", spacc->config.stat_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2711
188d801c0d4bbe Pavitrakumar M 2023-11-14 2712 if (spacc->config.dma_type == SPACC_DMA_DDT) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2713 writel(0x1234567F, baseaddr + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2714 writel(0xDEADBEEF, baseaddr + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2715 if (((readl(baseaddr + SPACC_REG_DST_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2716 (0x1234567F & SPACC_DST_PTR_PTR)) ||
188d801c0d4bbe Pavitrakumar M 2023-11-14 2717 ((readl(baseaddr + SPACC_REG_SRC_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2718 (0xDEADBEEF & SPACC_SRC_PTR_PTR))) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2719 pr_err("ERR: Failed to set pointers\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2720 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2721 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2722 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2723
188d801c0d4bbe Pavitrakumar M 2023-11-14 2724 /* zero the IRQ CTRL/EN register
188d801c0d4bbe Pavitrakumar M 2023-11-14 2725 * (to make sure we're in a sane state)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2726 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2727 writel(0, spacc->regmap + SPACC_REG_IRQ_CTRL);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2728 writel(0, spacc->regmap + SPACC_REG_IRQ_EN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2729 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_IRQ_STAT);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2730
188d801c0d4bbe Pavitrakumar M 2023-11-14 2731 /* init cache*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2732 memset(&spacc->cache, 0, sizeof(spacc->cache));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2733 writel(0, spacc->regmap + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2734 writel(0, spacc->regmap + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2735 writel(0, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2736 writel(0, spacc->regmap + SPACC_REG_ICV_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2737 writel(0, spacc->regmap + SPACC_REG_ICV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2738 writel(0, spacc->regmap + SPACC_REG_PRE_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2739 writel(0, spacc->regmap + SPACC_REG_POST_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2740 writel(0, spacc->regmap + SPACC_REG_IV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2741 writel(0, spacc->regmap + SPACC_REG_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2742 writel(0, spacc->regmap + SPACC_REG_AUX_INFO);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2743
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2744 spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
188d801c0d4bbe Pavitrakumar M 2023-11-14 2745 spacc->config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2746 if (!spacc->ctx) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2747 pr_err("ERR: Out of memory for ctx\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2748 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2749 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2750 spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2751 if (!spacc->job) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2752 pr_err("ERR: Out of memory for job\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2753 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2754 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2755
188d801c0d4bbe Pavitrakumar M 2023-11-14 2756 /* initialize job_idx and lookup table */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2757 spacc_job_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2758
188d801c0d4bbe Pavitrakumar M 2023-11-14 2759 /* initialize contexts */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2760 spacc_ctx_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2761
188d801c0d4bbe Pavitrakumar M 2023-11-14 2762 /* autodetect and set string size setting*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2763 if (spacc->config.version == 0x61 || spacc->config.version >= 0x65)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2764 spacc_xof_stringsize_autodetect(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2765
188d801c0d4bbe Pavitrakumar M 2023-11-14 2766 return CRYPTO_OK;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2767 ERR:
188d801c0d4bbe Pavitrakumar M 2023-11-14 2768 spacc_fini(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2769 pr_err("ERR: Crypto Failed\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2770 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2771 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2772
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next parent reply other threads:[~2023-11-15 2:05 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-14 13:42 kernel test robot [this message]
2023-11-15 2:00 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-03-13 5:08 kernel test robot
2024-03-11 2:38 kernel test robot
2024-03-10 15:40 kernel test robot
2024-03-07 14:17 kernel test robot
2024-03-05 11:28 [PATCH 0/4] Add spacc crypto driver support Pavitrakumar M
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
2024-03-06 4:08 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
2024-03-06 7:26 ` kernel test robot
2024-03-07 14:24 ` Dan Carpenter
2024-03-11 7:40 ` Dan Carpenter
2024-03-13 10:43 ` kernel test robot
2023-11-14 11:45 kernel test robot
2023-11-15 1:58 ` kernel test robot
2023-11-14 10:40 kernel test robot
2023-11-15 1:57 ` kernel test robot
2023-11-14 5:05 [PATCH 0/4] Add crypto spacc driver to support cipher, hash and aead Pavitrakumar M
2023-11-14 5:05 ` [PATCH 1/4] Add SPACC driver to Linux kernel Pavitrakumar M
2023-11-24 5:24 ` Herbert Xu
2023-11-14 5:05 ` [PATCH 2/4] Add SPACC Kconfig and Makefile Pavitrakumar M
2023-11-14 5:05 ` [PATCH 3/4] Add SPAcc dts overlay Pavitrakumar M
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202311142123.lwAnyUEZ-lkp@intel.com \
--to=yujie.liu@intel.com \
--cc=Ruud.Derwig@synopsys.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=manjunath.hadli@vayavyalabs.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pavitrakumarm@vayavyalabs.com \
--cc=shwetar@vayavyalabs.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.