DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v1 0/1] baseband/acc: remove ACC101 variant
@ 2024-01-12 20:36 Hernan Vargas
  2024-01-12 20:36 ` [PATCH v1 1/1] baseband/acc: remove acc101 Hernan Vargas
  2024-02-07  9:20 ` [PATCH v1 0/1] baseband/acc: remove ACC101 variant Maxime Coquelin
  0 siblings, 2 replies; 4+ messages in thread
From: Hernan Vargas @ 2024-01-12 20:36 UTC (permalink / raw)
  To: dev, gakhil, trix, maxime.coquelin
  Cc: nicolas.chautru, qi.z.zhang, Hernan Vargas

Removing obsolete code for ACC101 variant which will not be productized.

Hernan Vargas (1):
  baseband/acc: remove acc101

 doc/guides/bbdevs/acc100.rst           |  18 +-
 doc/guides/rel_notes/release_24_03.rst |   1 +
 drivers/baseband/acc/acc100_pmd.h      |   5 +-
 drivers/baseband/acc/acc101_pmd.h      |  40 ---
 drivers/baseband/acc/rte_acc100_pmd.c  | 425 -------------------------
 5 files changed, 6 insertions(+), 483 deletions(-)
 delete mode 100644 drivers/baseband/acc/acc101_pmd.h

-- 
2.37.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v1 1/1] baseband/acc: remove acc101
  2024-01-12 20:36 [PATCH v1 0/1] baseband/acc: remove ACC101 variant Hernan Vargas
@ 2024-01-12 20:36 ` Hernan Vargas
  2024-02-05  9:49   ` Maxime Coquelin
  2024-02-07  9:20 ` [PATCH v1 0/1] baseband/acc: remove ACC101 variant Maxime Coquelin
  1 sibling, 1 reply; 4+ messages in thread
From: Hernan Vargas @ 2024-01-12 20:36 UTC (permalink / raw)
  To: dev, gakhil, trix, maxime.coquelin
  Cc: nicolas.chautru, qi.z.zhang, Hernan Vargas

The ACC101 HW variant is not productized, the relevant code is removed
as obsolete.

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
---
 doc/guides/bbdevs/acc100.rst           |  18 +-
 doc/guides/rel_notes/release_24_03.rst |   1 +
 drivers/baseband/acc/acc100_pmd.h      |   5 +-
 drivers/baseband/acc/acc101_pmd.h      |  40 ---
 drivers/baseband/acc/rte_acc100_pmd.c  | 425 -------------------------
 5 files changed, 6 insertions(+), 483 deletions(-)
 delete mode 100644 drivers/baseband/acc/acc101_pmd.h

diff --git a/doc/guides/bbdevs/acc100.rst b/doc/guides/bbdevs/acc100.rst
index de51101e54d5..38a7a11d4ebd 100644
--- a/doc/guides/bbdevs/acc100.rst
+++ b/doc/guides/bbdevs/acc100.rst
@@ -1,19 +1,17 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2020 Intel Corporation
 
-Intel(R) ACC100 and ACC101 5G/4G FEC Poll Mode Drivers
+Intel(R) ACC100 5G/4G FEC Poll Mode Drivers
 ======================================================
 
 The BBDEV ACC100 5G/4G FEC poll mode driver (PMD) supports an
 implementation of a VRAN FEC wireless acceleration function.
 This device is also known as Mount Bryce.
-The BBDEV ACC101, also known as Mount Cirrus, is a derivative device from Mount Bryce
-with functional and capacity improvements but still with the same exposed BBDEV capabilities.
 
 Features
 --------
 
-ACC100 and ACC101 5G/4G FEC PMDs support the following features:
+ACC100 5G/4G FEC PMDs support the following features:
 
 - LDPC Encode in the DL (5GNR)
 - LDPC Decode in the UL (5GNR)
@@ -25,7 +23,7 @@ ACC100 and ACC101 5G/4G FEC PMDs support the following features:
 - MSI
 - SR-IOV
 
-ACC100 and ACC101 5G/4G FEC PMDs support the following BBDEV capabilities:
+ACC100 5G/4G FEC PMDs support the following BBDEV capabilities:
 
 * For the LDPC encode operation:
    - ``RTE_BBDEV_LDPC_CRC_24B_ATTACH`` :  set to attach CRC24B to CB(s)
@@ -94,12 +92,11 @@ Initialization
 --------------
 
 When the device first powers up, its PCI Physical Functions (PF) can be listed through these
-commands for ACC100 (device id ``0d5c``) and ACC101 (device id ``57c4``) respectively:
+commands for ACC100:
 
 .. code-block:: console
 
   sudo lspci -vd8086:0d5c
-  sudo lspci -vd8086:57c4
 
 The physical and virtual functions are compatible with Linux UIO drivers:
 ``vfio_pci`` and ``igb_uio``. However, in order to work the 5G/4G
@@ -157,10 +154,3 @@ Specifically for the BBDEV ACC100 PMD, the command below can be used:
 
   ./pf_bb_config ACC100 -c acc100/acc100_config_vf_5g.cfg
   ./test-bbdev.py -e="-c 0xff0 -a${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
-
-Specifically for the BBDEV ACC101 PMD, the command below can be used:
-
-.. code-block:: console
-
-  ./pf_bb_config ACC101 -c acc101/acc101_config_2vf_4g5g.cfg
-  ./test-bbdev.py -e="-c 0xff0 -a${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
diff --git a/doc/guides/rel_notes/release_24_03.rst b/doc/guides/rel_notes/release_24_03.rst
index e9c9717706a0..a964dcf16745 100644
--- a/doc/guides/rel_notes/release_24_03.rst
+++ b/doc/guides/rel_notes/release_24_03.rst
@@ -68,6 +68,7 @@ Removed Items
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* acc101: Removed obsolete code for non productized HW variant.
 
 API Changes
 -----------
diff --git a/drivers/baseband/acc/acc100_pmd.h b/drivers/baseband/acc/acc100_pmd.h
index 5a8965fa539b..aff1ef89f231 100644
--- a/drivers/baseband/acc/acc100_pmd.h
+++ b/drivers/baseband/acc/acc100_pmd.h
@@ -23,14 +23,11 @@
 #define rte_bbdev_log_debug(fmt, ...)
 #endif
 
-#define ACC100_VARIANT 0
-#define ACC101_VARIANT 1
-
 /* ACC100 PF and VF driver names */
 #define ACC100PF_DRIVER_NAME           intel_acc100_pf
 #define ACC100VF_DRIVER_NAME           intel_acc100_vf
 
-/* ACC100 PCI vendor & device IDs */
+/* ACC PCI vendor & device IDs */
 #define ACC100_VENDOR_ID           (0x8086)
 #define ACC100_PF_DEVICE_ID        (0x0d5c)
 #define ACC100_VF_DEVICE_ID        (0x0d5d)
diff --git a/drivers/baseband/acc/acc101_pmd.h b/drivers/baseband/acc/acc101_pmd.h
deleted file mode 100644
index 37df0083306b..000000000000
--- a/drivers/baseband/acc/acc101_pmd.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2022 Intel Corporation
- */
-
-/* ACC101 PCI vendor & device IDs */
-#define ACC101_VENDOR_ID           (0x8086)
-#define ACC101_PF_DEVICE_ID        (0x57c4)
-#define ACC101_VF_DEVICE_ID        (0x57c5)
-
-/* Number of Virtual Functions ACC101 supports */
-#define ACC101_NUM_VFS                  16
-#define ACC101_NUM_QGRPS                8
-#define ACC101_NUM_AQS                  16
-
-#define ACC101_WORDS_IN_ARAM_SIZE (128 * 1024 / 4)
-
-/* Mapping of signals for the available engines */
-#define ACC101_SIG_UL_5G      0
-#define ACC101_SIG_UL_5G_LAST 8
-#define ACC101_SIG_DL_5G      13
-#define ACC101_SIG_DL_5G_LAST 15
-#define ACC101_SIG_UL_4G      16
-#define ACC101_SIG_UL_4G_LAST 19
-#define ACC101_SIG_DL_4G      27
-#define ACC101_SIG_DL_4G_LAST 31
-#define ACC101_NUM_ACCS       5
-
-/* ACC101 Configuration */
-#define ACC101_CFG_DMA_ERROR    0x3D7
-#define ACC101_CFG_AXI_CACHE    0x11
-#define ACC101_CFG_QMGR_HI_P    0x0F0F
-#define ACC101_CFG_PCI_AXI      0xC003
-#define ACC101_CFG_PCI_BRIDGE   0x40006033
-#define ACC101_GPEX_AXIMAP_NUM  17
-#define ACC101_CLOCK_GATING_EN  0x30000
-#define ACC101_DMA_INBOUND      0x104
-/* DDR Size per VF - 512MB by default
- * Can be increased up to 4 GB with single PF/VF
- */
-#define ACC101_HARQ_DDR         (512 * 1)
diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
index 292537e24dc9..a957338b5ffb 100644
--- a/drivers/baseband/acc/rte_acc100_pmd.c
+++ b/drivers/baseband/acc/rte_acc100_pmd.c
@@ -19,7 +19,6 @@
 #include <rte_bbdev.h>
 #include <rte_bbdev_pmd.h>
 #include "acc100_pmd.h"
-#include "acc101_pmd.h"
 #include "vrb_cfg.h"
 
 #ifdef RTE_BBDEV_SDK_AVX512
@@ -1100,9 +1099,6 @@ static struct rte_pci_id pci_id_acc100_pf_map[] = {
 	{
 		RTE_PCI_DEVICE(ACC100_VENDOR_ID, ACC100_PF_DEVICE_ID),
 	},
-	{
-		RTE_PCI_DEVICE(ACC101_VENDOR_ID, ACC101_PF_DEVICE_ID),
-	},
 	{.device_id = 0},
 };
 
@@ -1111,9 +1107,6 @@ static struct rte_pci_id pci_id_acc100_vf_map[] = {
 	{
 		RTE_PCI_DEVICE(ACC100_VENDOR_ID, ACC100_VF_DEVICE_ID),
 	},
-	{
-		RTE_PCI_DEVICE(ACC101_VENDOR_ID, ACC101_VF_DEVICE_ID),
-	},
 	{.device_id = 0},
 };
 
@@ -1329,126 +1322,6 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
 	}
 }
 
-/* Fill in a frame control word for LDPC decoding for ACC101 */
-static inline void
-acc101_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
-		union acc_harq_layout_data *harq_layout)
-{
-	uint16_t harq_out_length, harq_in_length, ncb_p, k0_p, parity_offset;
-	uint32_t harq_index;
-	uint32_t l;
-
-	fcw->qm = op->ldpc_dec.q_m;
-	fcw->nfiller = op->ldpc_dec.n_filler;
-	fcw->BG = (op->ldpc_dec.basegraph - 1);
-	fcw->Zc = op->ldpc_dec.z_c;
-	fcw->ncb = op->ldpc_dec.n_cb;
-	fcw->k0 = get_k0(fcw->ncb, fcw->Zc, op->ldpc_dec.basegraph,
-			op->ldpc_dec.rv_index);
-	if (op->ldpc_dec.code_block_mode == RTE_BBDEV_CODE_BLOCK)
-		fcw->rm_e = op->ldpc_dec.cb_params.e;
-	else
-		fcw->rm_e = (op->ldpc_dec.tb_params.r <
-				op->ldpc_dec.tb_params.cab) ?
-						op->ldpc_dec.tb_params.ea :
-						op->ldpc_dec.tb_params.eb;
-
-	if (unlikely(check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE) &&
-			(op->ldpc_dec.harq_combined_input.length == 0))) {
-		rte_bbdev_log(WARNING, "Null HARQ input size provided");
-		/* Disable HARQ input in that case to carry forward */
-		op->ldpc_dec.op_flags ^= RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE;
-	}
-	if (unlikely(fcw->rm_e == 0)) {
-		rte_bbdev_log(WARNING, "Null E input provided");
-		fcw->rm_e = 2;
-	}
-
-	fcw->hcin_en = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE);
-	fcw->hcout_en = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE);
-	fcw->crc_select = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK);
-	fcw->bypass_dec = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_DECODE_BYPASS);
-	fcw->bypass_intlv = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS);
-	if (op->ldpc_dec.q_m == 1) {
-		fcw->bypass_intlv = 1;
-		fcw->qm = 2;
-	}
-	fcw->hcin_decomp_mode = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION);
-	fcw->hcout_comp_mode = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION);
-	fcw->llr_pack_mode = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_LLR_COMPRESSION);
-	harq_index = hq_index(op->ldpc_dec.harq_combined_output.offset);
-	if (fcw->hcin_en > 0) {
-		harq_in_length = op->ldpc_dec.harq_combined_input.length;
-		if (fcw->hcin_decomp_mode > 0)
-			harq_in_length = harq_in_length * 8 / 6;
-		harq_in_length = RTE_MIN(harq_in_length, op->ldpc_dec.n_cb
-				- op->ldpc_dec.n_filler);
-		/* Alignment on next 64B - Already enforced from HC output */
-		harq_in_length = RTE_ALIGN_FLOOR(harq_in_length, ACC_HARQ_ALIGN_64B);
-		fcw->hcin_size0 = harq_in_length;
-		fcw->hcin_offset = 0;
-		fcw->hcin_size1 = 0;
-	} else {
-		fcw->hcin_size0 = 0;
-		fcw->hcin_offset = 0;
-		fcw->hcin_size1 = 0;
-	}
-
-	fcw->itmax = op->ldpc_dec.iter_max;
-	fcw->itstop = check_bit(op->ldpc_dec.op_flags,
-			RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE);
-	fcw->synd_precoder = fcw->itstop;
-	/*
-	 * These are all implicitly set
-	 * fcw->synd_post = 0;
-	 * fcw->so_en = 0;
-	 * fcw->so_bypass_rm = 0;
-	 * fcw->so_bypass_intlv = 0;
-	 * fcw->dec_convllr = 0;
-	 * fcw->hcout_convllr = 0;
-	 * fcw->hcout_size1 = 0;
-	 * fcw->so_it = 0;
-	 * fcw->hcout_offset = 0;
-	 * fcw->negstop_th = 0;
-	 * fcw->negstop_it = 0;
-	 * fcw->negstop_en = 0;
-	 * fcw->gain_i = 1;
-	 * fcw->gain_h = 1;
-	 */
-	if (fcw->hcout_en > 0) {
-		parity_offset = (op->ldpc_dec.basegraph == 1 ? 20 : 8)
-			* op->ldpc_dec.z_c - op->ldpc_dec.n_filler;
-		k0_p = (fcw->k0 > parity_offset) ?
-				fcw->k0 - op->ldpc_dec.n_filler : fcw->k0;
-		ncb_p = fcw->ncb - op->ldpc_dec.n_filler;
-		l = RTE_MIN(k0_p + fcw->rm_e, INT16_MAX);
-		harq_out_length = (uint16_t) fcw->hcin_size0;
-		harq_out_length = RTE_MAX(harq_out_length, l);
-		/* Cannot exceed the pruned Ncb circular buffer */
-		harq_out_length = RTE_MIN(harq_out_length, ncb_p);
-		/* Alignment on next 64B */
-		harq_out_length = RTE_ALIGN_CEIL(harq_out_length, ACC_HARQ_ALIGN_64B);
-		fcw->hcout_size0 = harq_out_length;
-		fcw->hcout_size1 = 0;
-		fcw->hcout_offset = 0;
-		harq_layout[harq_index].offset = fcw->hcout_offset;
-		harq_layout[harq_index].size0 = fcw->hcout_size0;
-	} else {
-		fcw->hcout_size0 = 0;
-		fcw->hcout_size1 = 0;
-		fcw->hcout_offset = 0;
-	}
-}
-
 /* May need to pad LDPC Encoder input to avoid small beat for ACC100. */
 static inline uint16_t
 pad_le_in(uint16_t blen, struct acc_queue *q)
@@ -4302,9 +4175,6 @@ acc100_bbdev_init(struct rte_bbdev *dev, struct rte_pci_driver *drv)
 			(pci_dev->id.device_id == ACC100_VF_DEVICE_ID)) {
 		((struct acc_device *) dev->data->dev_private)->device_variant = ACC100_VARIANT;
 		((struct acc_device *) dev->data->dev_private)->fcw_ld_fill = acc100_fcw_ld_fill;
-	} else {
-		((struct acc_device *) dev->data->dev_private)->device_variant = ACC101_VARIANT;
-		((struct acc_device *) dev->data->dev_private)->fcw_ld_fill = acc101_fcw_ld_fill;
 	}
 
 	((struct acc_device *) dev->data->dev_private)->pf_device =
@@ -4930,299 +4800,6 @@ acc100_configure(const char *dev_name, struct rte_acc_conf *conf)
 	return 0;
 }
 
-
-/* Initial configuration of a ACC101 device prior to running configure() */
-static int
-acc101_configure(const char *dev_name, struct rte_acc_conf *conf)
-{
-	rte_bbdev_log(INFO, "rte_acc101_configure");
-	uint32_t value, address, status;
-	int qg_idx, template_idx, vf_idx, acc, i;
-	struct rte_bbdev *bbdev = rte_bbdev_get_named_dev(dev_name);
-
-	/* Compile time checks */
-	RTE_BUILD_BUG_ON(sizeof(struct acc_dma_req_desc) != 256);
-	RTE_BUILD_BUG_ON(sizeof(union acc_dma_desc) != 256);
-	RTE_BUILD_BUG_ON(sizeof(struct acc_fcw_td) != 24);
-	RTE_BUILD_BUG_ON(sizeof(struct acc_fcw_te) != 32);
-
-	if (bbdev == NULL) {
-		rte_bbdev_log(ERR,
-		"Invalid dev_name (%s), or device is not yet initialised",
-		dev_name);
-		return -ENODEV;
-	}
-	struct acc_device *d = bbdev->data->dev_private;
-
-	/* Store configuration */
-	rte_memcpy(&d->acc_conf, conf, sizeof(d->acc_conf));
-
-	/* PCIe Bridge configuration */
-	acc_reg_write(d, HwPfPcieGpexBridgeControl, ACC101_CFG_PCI_BRIDGE);
-	for (i = 1; i < ACC101_GPEX_AXIMAP_NUM; i++)
-		acc_reg_write(d, HwPfPcieGpexAxiAddrMappingWindowPexBaseHigh + i * 16, 0);
-
-	/* Prevent blocking AXI read on BRESP for AXI Write */
-	address = HwPfPcieGpexAxiPioControl;
-	value = ACC101_CFG_PCI_AXI;
-	acc_reg_write(d, address, value);
-
-	/* Explicitly releasing AXI including a 2ms delay on ACC101 */
-	usleep(2000);
-	acc_reg_write(d, HWPfDmaAxiControl, 1);
-
-	/* Set the default 5GDL DMA configuration */
-	acc_reg_write(d, HWPfDmaInboundDrainDataSize, ACC101_DMA_INBOUND);
-
-	/* Enable granular dynamic clock gating */
-	address = HWPfHiClkGateHystReg;
-	value = ACC101_CLOCK_GATING_EN;
-	acc_reg_write(d, address, value);
-
-	/* Set default descriptor signature */
-	address = HWPfDmaDescriptorSignatuture;
-	value = 0;
-	acc_reg_write(d, address, value);
-
-	/* Enable the Error Detection in DMA */
-	value = ACC101_CFG_DMA_ERROR;
-	address = HWPfDmaErrorDetectionEn;
-	acc_reg_write(d, address, value);
-
-	/* AXI Cache configuration */
-	value = ACC101_CFG_AXI_CACHE;
-	address = HWPfDmaAxcacheReg;
-	acc_reg_write(d, address, value);
-
-	/* Default DMA Configuration (Qmgr Enabled) */
-	address = HWPfDmaConfig0Reg;
-	value = 0;
-	acc_reg_write(d, address, value);
-	address = HWPfDmaQmanen;
-	value = 0;
-	acc_reg_write(d, address, value);
-
-	/* Default RLIM/ALEN configuration */
-	address = HWPfDmaConfig1Reg;
-	int alen_r = 0xF;
-	int alen_w = 0x7;
-	value = (1 << 31) + (alen_w << 20)  + (1 << 6) + alen_r;
-	acc_reg_write(d, address, value);
-
-	/* Configure DMA Qmanager addresses */
-	address = HWPfDmaQmgrAddrReg;
-	value = HWPfQmgrEgressQueuesTemplate;
-	acc_reg_write(d, address, value);
-
-	/* ===== Qmgr Configuration ===== */
-	/* Configuration of the AQueue Depth QMGR_GRP_0_DEPTH_LOG2 for UL */
-	int totalQgs = conf->q_ul_4g.num_qgroups +
-			conf->q_ul_5g.num_qgroups +
-			conf->q_dl_4g.num_qgroups +
-			conf->q_dl_5g.num_qgroups;
-	for (qg_idx = 0; qg_idx < totalQgs; qg_idx++) {
-		address = HWPfQmgrDepthLog2Grp +
-		ACC_BYTES_IN_WORD * qg_idx;
-		value = aqDepth(qg_idx, conf);
-		acc_reg_write(d, address, value);
-		address = HWPfQmgrTholdGrp +
-		ACC_BYTES_IN_WORD * qg_idx;
-		value = (1 << 16) + (1 << (aqDepth(qg_idx, conf) - 1));
-		acc_reg_write(d, address, value);
-	}
-
-	/* Template Priority in incremental order */
-	for (template_idx = 0; template_idx < ACC_NUM_TMPL;
-			template_idx++) {
-		address = HWPfQmgrGrpTmplateReg0Indx + ACC_BYTES_IN_WORD * template_idx;
-		value = ACC_TMPL_PRI_0;
-		acc_reg_write(d, address, value);
-		address = HWPfQmgrGrpTmplateReg1Indx + ACC_BYTES_IN_WORD * template_idx;
-		value = ACC_TMPL_PRI_1;
-		acc_reg_write(d, address, value);
-		address = HWPfQmgrGrpTmplateReg2indx + ACC_BYTES_IN_WORD * template_idx;
-		value = ACC_TMPL_PRI_2;
-		acc_reg_write(d, address, value);
-		address = HWPfQmgrGrpTmplateReg3Indx + ACC_BYTES_IN_WORD * template_idx;
-		value = ACC_TMPL_PRI_3;
-		acc_reg_write(d, address, value);
-	}
-
-	address = HWPfQmgrGrpPriority;
-	value = ACC101_CFG_QMGR_HI_P;
-	acc_reg_write(d, address, value);
-
-	/* Template Configuration */
-	for (template_idx = 0; template_idx < ACC_NUM_TMPL;
-			template_idx++) {
-		value = 0;
-		address = HWPfQmgrGrpTmplateReg4Indx
-				+ ACC_BYTES_IN_WORD * template_idx;
-		acc_reg_write(d, address, value);
-	}
-	/* 4GUL */
-	int numQgs = conf->q_ul_4g.num_qgroups;
-	int numQqsAcc = 0;
-	value = 0;
-	for (qg_idx = numQqsAcc; qg_idx < (numQgs + numQqsAcc); qg_idx++)
-		value |= (1 << qg_idx);
-	for (template_idx = ACC101_SIG_UL_4G;
-			template_idx <= ACC101_SIG_UL_4G_LAST;
-			template_idx++) {
-		address = HWPfQmgrGrpTmplateReg4Indx
-				+ ACC_BYTES_IN_WORD * template_idx;
-		acc_reg_write(d, address, value);
-	}
-	/* 5GUL */
-	numQqsAcc += numQgs;
-	numQgs	= conf->q_ul_5g.num_qgroups;
-	value = 0;
-	int numEngines = 0;
-	for (qg_idx = numQqsAcc; qg_idx < (numQgs + numQqsAcc); qg_idx++)
-		value |= (1 << qg_idx);
-	for (template_idx = ACC101_SIG_UL_5G;
-			template_idx <= ACC101_SIG_UL_5G_LAST;
-			template_idx++) {
-		/* Check engine power-on status */
-		address = HwPfFecUl5gIbDebugReg +
-				ACC_ENGINE_OFFSET * template_idx;
-		status = (acc_reg_read(d, address) >> 4) & 0xF;
-		address = HWPfQmgrGrpTmplateReg4Indx
-				+ ACC_BYTES_IN_WORD * template_idx;
-		if (status == 1) {
-			acc_reg_write(d, address, value);
-			numEngines++;
-		} else
-			acc_reg_write(d, address, 0);
-	}
-	rte_bbdev_log(INFO, "Number of 5GUL engines %d", numEngines);
-	/* 4GDL */
-	numQqsAcc += numQgs;
-	numQgs	= conf->q_dl_4g.num_qgroups;
-	value = 0;
-	for (qg_idx = numQqsAcc; qg_idx < (numQgs + numQqsAcc); qg_idx++)
-		value |= (1 << qg_idx);
-	for (template_idx = ACC101_SIG_DL_4G;
-			template_idx <= ACC101_SIG_DL_4G_LAST;
-			template_idx++) {
-		address = HWPfQmgrGrpTmplateReg4Indx
-				+ ACC_BYTES_IN_WORD * template_idx;
-		acc_reg_write(d, address, value);
-	}
-	/* 5GDL */
-	numQqsAcc += numQgs;
-	numQgs	= conf->q_dl_5g.num_qgroups;
-	value = 0;
-	for (qg_idx = numQqsAcc; qg_idx < (numQgs + numQqsAcc); qg_idx++)
-		value |= (1 << qg_idx);
-	for (template_idx = ACC101_SIG_DL_5G;
-			template_idx <= ACC101_SIG_DL_5G_LAST;
-			template_idx++) {
-		address = HWPfQmgrGrpTmplateReg4Indx
-				+ ACC_BYTES_IN_WORD * template_idx;
-		acc_reg_write(d, address, value);
-	}
-
-	/* Queue Group Function mapping */
-	int qman_func_id[8] = {0, 2, 1, 3, 4, 0, 0, 0};
-	address = HWPfQmgrGrpFunction0;
-	value = 0;
-	for (qg_idx = 0; qg_idx < 8; qg_idx++) {
-		acc = accFromQgid(qg_idx, conf);
-		value |= qman_func_id[acc]<<(qg_idx * 4);
-	}
-	acc_reg_write(d, address, value);
-
-	/* Configuration of the Arbitration QGroup depth to 1 */
-	for (qg_idx = 0; qg_idx < totalQgs; qg_idx++) {
-		address = HWPfQmgrArbQDepthGrp +
-		ACC_BYTES_IN_WORD * qg_idx;
-		value = 0;
-		acc_reg_write(d, address, value);
-	}
-
-	/* Enabling AQueues through the Queue hierarchy*/
-	for (vf_idx = 0; vf_idx < ACC101_NUM_VFS; vf_idx++) {
-		for (qg_idx = 0; qg_idx < ACC101_NUM_QGRPS; qg_idx++) {
-			value = 0;
-			if (vf_idx < conf->num_vf_bundles &&
-					qg_idx < totalQgs)
-				value = (1 << aqNum(qg_idx, conf)) - 1;
-			address = HWPfQmgrAqEnableVf
-					+ vf_idx * ACC_BYTES_IN_WORD;
-			value += (qg_idx << 16);
-			acc_reg_write(d, address, value);
-		}
-	}
-
-	/* This pointer to ARAM (128kB) is shifted by 2 (4B per register) */
-	uint32_t aram_address = 0;
-	for (qg_idx = 0; qg_idx < totalQgs; qg_idx++) {
-		for (vf_idx = 0; vf_idx < conf->num_vf_bundles; vf_idx++) {
-			address = HWPfQmgrVfBaseAddr + vf_idx
-					* ACC_BYTES_IN_WORD + qg_idx
-					* ACC_BYTES_IN_WORD * 64;
-			value = aram_address;
-			acc_reg_write(d, address, value);
-			/* Offset ARAM Address for next memory bank
-			 * - increment of 4B
-			 */
-			aram_address += aqNum(qg_idx, conf) *
-					(1 << aqDepth(qg_idx, conf));
-		}
-	}
-
-	if (aram_address > ACC101_WORDS_IN_ARAM_SIZE) {
-		rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d\n",
-				aram_address, ACC101_WORDS_IN_ARAM_SIZE);
-		return -EINVAL;
-	}
-
-	/* ==== HI Configuration ==== */
-
-	/* No Info Ring/MSI by default */
-	acc_reg_write(d, HWPfHiInfoRingIntWrEnRegPf, 0);
-	acc_reg_write(d, HWPfHiInfoRingVf2pfLoWrEnReg, 0);
-	acc_reg_write(d, HWPfHiCfgMsiIntWrEnRegPf, 0xFFFFFFFF);
-	acc_reg_write(d, HWPfHiCfgMsiVf2pfLoWrEnReg, 0xFFFFFFFF);
-	/* Prevent Block on Transmit Error */
-	address = HWPfHiBlockTransmitOnErrorEn;
-	value = 0;
-	acc_reg_write(d, address, value);
-	/* Prevents to drop MSI */
-	address = HWPfHiMsiDropEnableReg;
-	value = 0;
-	acc_reg_write(d, address, value);
-	/* Set the PF Mode register */
-	address = HWPfHiPfMode;
-	value = (conf->pf_mode_en) ? ACC_PF_VAL : 0;
-	acc_reg_write(d, address, value);
-	/* Explicitly releasing AXI after PF Mode and 2 ms */
-	usleep(2000);
-	acc_reg_write(d, HWPfDmaAxiControl, 1);
-
-	/* QoS overflow init */
-	value = 1;
-	address = HWPfQosmonAEvalOverflow0;
-	acc_reg_write(d, address, value);
-	address = HWPfQosmonBEvalOverflow0;
-	acc_reg_write(d, address, value);
-
-	/* HARQ DDR Configuration */
-	unsigned int ddrSizeInMb = ACC101_HARQ_DDR;
-	for (vf_idx = 0; vf_idx < conf->num_vf_bundles; vf_idx++) {
-		address = HWPfDmaVfDdrBaseRw + vf_idx
-				* 0x10;
-		value = ((vf_idx * (ddrSizeInMb / 64)) << 16) +
-				(ddrSizeInMb - 1);
-		acc_reg_write(d, address, value);
-	}
-	usleep(ACC_LONG_WAIT);
-
-	rte_bbdev_log_debug("PF TIP configuration complete for %s", dev_name);
-	return 0;
-}
-
 int
 rte_acc_configure(const char *dev_name, struct rte_acc_conf *conf)
 {
@@ -5236,8 +4813,6 @@ rte_acc_configure(const char *dev_name, struct rte_acc_conf *conf)
 	rte_bbdev_log(INFO, "Configure dev id %x", pci_dev->id.device_id);
 	if (pci_dev->id.device_id == ACC100_PF_DEVICE_ID)
 		return acc100_configure(dev_name, conf);
-	else if (pci_dev->id.device_id == ACC101_PF_DEVICE_ID)
-		return acc101_configure(dev_name, conf);
 	else if (pci_dev->id.device_id == VRB1_PF_DEVICE_ID)
 		return vrb1_configure(dev_name, conf);
 	else if (pci_dev->id.device_id == VRB2_PF_DEVICE_ID)
-- 
2.37.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 1/1] baseband/acc: remove acc101
  2024-01-12 20:36 ` [PATCH v1 1/1] baseband/acc: remove acc101 Hernan Vargas
@ 2024-02-05  9:49   ` Maxime Coquelin
  0 siblings, 0 replies; 4+ messages in thread
From: Maxime Coquelin @ 2024-02-05  9:49 UTC (permalink / raw)
  To: Hernan Vargas, dev, gakhil, trix; +Cc: nicolas.chautru, qi.z.zhang



On 1/12/24 21:36, Hernan Vargas wrote:
> The ACC101 HW variant is not productized, the relevant code is removed
> as obsolete.
> 
> Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
> ---
>   doc/guides/bbdevs/acc100.rst           |  18 +-
>   doc/guides/rel_notes/release_24_03.rst |   1 +
>   drivers/baseband/acc/acc100_pmd.h      |   5 +-
>   drivers/baseband/acc/acc101_pmd.h      |  40 ---
>   drivers/baseband/acc/rte_acc100_pmd.c  | 425 -------------------------
>   5 files changed, 6 insertions(+), 483 deletions(-)
>   delete mode 100644 drivers/baseband/acc/acc101_pmd.h
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 0/1] baseband/acc: remove ACC101 variant
  2024-01-12 20:36 [PATCH v1 0/1] baseband/acc: remove ACC101 variant Hernan Vargas
  2024-01-12 20:36 ` [PATCH v1 1/1] baseband/acc: remove acc101 Hernan Vargas
@ 2024-02-07  9:20 ` Maxime Coquelin
  1 sibling, 0 replies; 4+ messages in thread
From: Maxime Coquelin @ 2024-02-07  9:20 UTC (permalink / raw)
  To: Hernan Vargas, dev, gakhil, trix; +Cc: nicolas.chautru, qi.z.zhang



On 1/12/24 21:36, Hernan Vargas wrote:
> Removing obsolete code for ACC101 variant which will not be productized.
> 
> Hernan Vargas (1):
>    baseband/acc: remove acc101
> 
>   doc/guides/bbdevs/acc100.rst           |  18 +-
>   doc/guides/rel_notes/release_24_03.rst |   1 +
>   drivers/baseband/acc/acc100_pmd.h      |   5 +-
>   drivers/baseband/acc/acc101_pmd.h      |  40 ---
>   drivers/baseband/acc/rte_acc100_pmd.c  | 425 -------------------------
>   5 files changed, 6 insertions(+), 483 deletions(-)
>   delete mode 100644 drivers/baseband/acc/acc101_pmd.h
> 

Applied to next-baseband.

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-02-07  9:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-12 20:36 [PATCH v1 0/1] baseband/acc: remove ACC101 variant Hernan Vargas
2024-01-12 20:36 ` [PATCH v1 1/1] baseband/acc: remove acc101 Hernan Vargas
2024-02-05  9:49   ` Maxime Coquelin
2024-02-07  9:20 ` [PATCH v1 0/1] baseband/acc: remove ACC101 variant Maxime Coquelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).