[v3,6/8] baseband/la12xx: add documentation support

Message ID 20210413051715.26430-7-hemant.agrawal@nxp.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series baseband: add NXP LA12xx driver |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Hemant Agrawal April 13, 2021, 5:17 a.m. UTC
  This patch add documentation for LA12xx PMD.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 MAINTAINERS                            |   9 ++
 doc/guides/bbdevs/features/la12xx.ini  |  14 +++
 doc/guides/bbdevs/index.rst            |   1 +
 doc/guides/bbdevs/la12xx.rst           | 139 +++++++++++++++++++++++++
 doc/guides/rel_notes/release_21_05.rst |   5 +
 5 files changed, 168 insertions(+)
 create mode 100644 doc/guides/bbdevs/features/la12xx.ini
 create mode 100644 doc/guides/bbdevs/la12xx.rst
  

Comments

Chautru, Nicolas April 14, 2021, 12:57 a.m. UTC | #1
Documentation should be ideally embedded within the related commits to go hand in hand when feature are being added, not as a separate commit. Other comments below

> -----Original Message-----
> From: Hemant Agrawal <hemant.agrawal@nxp.com>
> Sent: Monday, April 12, 2021 10:17 PM
> To: dev@dpdk.org; gakhil@marvell.com; Chautru, Nicolas
> <nicolas.chautru@intel.com>
> Cc: david.marchand@redhat.com; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>
> Subject: [PATCH v3 6/8] baseband/la12xx: add documentation support
> 
> This patch add documentation for LA12xx PMD.
> 
> Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  MAINTAINERS                            |   9 ++
>  doc/guides/bbdevs/features/la12xx.ini  |  14 +++
>  doc/guides/bbdevs/index.rst            |   1 +
>  doc/guides/bbdevs/la12xx.rst           | 139 +++++++++++++++++++++++++
>  doc/guides/rel_notes/release_21_05.rst |   5 +
>  5 files changed, 168 insertions(+)
>  create mode 100644 doc/guides/bbdevs/features/la12xx.ini
>  create mode 100644 doc/guides/bbdevs/la12xx.rst
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e746ef1d32..24081fceb3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1289,6 +1289,15 @@ F: doc/guides/rawdevs/ntb.rst
>  F: examples/ntb/
>  F: doc/guides/sample_app_ug/ntb.rst
> 
> +Baseband Drivers
> +-------------------
> +
> +NXP LA12xx
> +M: Hemant Agrawal <hemant.agrawal@nxp.com>
> +M: Nipun Gupta <nipun.gupta@nxp.com>
> +F: drivers/baseband/la12xx/
> +F: doc/guides/bbdevs/la12xx.rst
> +F: doc/guides/bbdevs/features/la12xx.ini
> 
>  Packet processing
>  -----------------
> diff --git a/doc/guides/bbdevs/features/la12xx.ini
> b/doc/guides/bbdevs/features/la12xx.ini
> new file mode 100644
> index 0000000000..979d9dd224
> --- /dev/null
> +++ b/doc/guides/bbdevs/features/la12xx.ini
> @@ -0,0 +1,14 @@
> +;
> +; Supported features of the 'la12xx' bbdev driver.
> +;
> +; Refer to default.ini for the full list of available PMD features.
> +;
> +[Features]
> +Turbo Decoder (4G)     = N
> +Turbo Encoder (4G)     = N
> +LDPC Decoder (5G)      = Y
> +LDPC Encoder (5G)      = Y
> +LLR/HARQ Compression   = N
> +External DDR Access    = Y

What is the external DDR access capability here? This was not exposed in BBDEV. 

> +HW Accelerated         = Y
> +BBDEV API              = Y
> diff --git a/doc/guides/bbdevs/index.rst b/doc/guides/bbdevs/index.rst index
> 4445cbd1b0..cedd706fa6 100644
> --- a/doc/guides/bbdevs/index.rst
> +++ b/doc/guides/bbdevs/index.rst
> @@ -14,3 +14,4 @@ Baseband Device Drivers
>      fpga_lte_fec
>      fpga_5gnr_fec
>      acc100
> +    la12xx
> diff --git a/doc/guides/bbdevs/la12xx.rst b/doc/guides/bbdevs/la12xx.rst
> new file mode 100644 index 0000000000..1cadd6f337
> --- /dev/null
> +++ b/doc/guides/bbdevs/la12xx.rst
> @@ -0,0 +1,139 @@
> +..  SPDX-License-Identifier: BSD-3-Clause
> +    Copyright 2021 NXP
> +
> +NXP LA12xx Poll Mode Driver
> +=======================================
> +
> +The BBDEV LA12xx poll mode driver (PMD) supports an implementation for
> +offloading High Phy processing functions like LDPC Encode / Decode 5GNR
> +wireless acceleration function, using PCI based LA12xx Software defined
> radio.
> +
> +More information can be found at `NXP Official Website
> +<https://www.nxp.com/products/processors-and-microcontrollers/arm-
> processors/layerscape-processors/layerscape-access-la1200-programmable-
> baseband-processor:LA1200>`_.
> +
> +Features
> +--------
> +
> +LA12xx PMD supports the following features:
> +
> +- LDPC Encode in the DL
> +- LDPC Decode in the UL
> +- Maximum of 8 UL queues
> +- Maximum of 8 DL queues
> +- PCIe Gen-3 x8 Interface
> +- MSI-X

Capability was not exposed in the commit

> +
> +LA12xx PMD supports the following BBDEV capabilities:
> +
> +* For the LDPC encode operation:
> +   - ``RTE_BBDEV_LDPC_CRC_24B_ATTACH`` :  set to attach CRC24B to CB(s)
> +   - ``RTE_BBDEV_LDPC_RATE_MATCH`` :  if set then do not do Rate Match
> +bypass

mismatch with the code

> +
> +* For the LDPC decode operation:
> +   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK`` :  check CRC24B from CB(s)
> +   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP`` :  drops CRC24B bits
> appended while decoding
> +   - ``RTE_BBDEV_LDPC_DEC_SCATTER_GATHER`` :  supports scatter-gather
> +for input/output data
> +
> +Installation
> +------------
> +
> +Section 3 of the DPDK manual provides instructions on installing and
> compiling DPDK.
> +
> +DPDK requires hugepages to be configured as detailed in section 2 of the
> DPDK manual.
> +
> +Initialization
> +--------------
> +
> +The device can be listed on the host console with:
> +
> +
> +Use the following lspci command to get the multiple LA12xx processor
> +ids. The device ID of the LA12xx baseband processor is "1c30".
> +

There is no SRIOV? Single device id? 

> +.. code-block:: console
> +
> +  sudo lspci -nn
> +
> +...
> +0001:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device
> +[1957:1c30] ( rev 10) ...
> +0002:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device
> +[1957:1c30] ( rev 10)
> +
> +
> +Prerequisites
> +-------------
> +
> +Currently supported by DPDK:
> +
> +- NXP LA1224 BSP **1.0+**.
> +- NXP LA1224 PCIe Modem card connected to ARM host.
> +
> +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to
> setup the basic DPDK environment.
> +
> +* Use dev arg option ``modem=0`` to identify the modem instance for a
> +given
> +  device. This is required only if more than 1 modem cards are attached to
> host.
> +  this is optional and the default value is 0.
> +  e.g. ``--vdev=baseband_la12xx,modem=0``
> +
> +* Use dev arg option ``max_nb_queues=x`` to specify the maximum
> number
> +of queues
> +  to be used for communication with offload device i.e. modem. default is
> 16.
> +  e.g. ``--vdev=baseband_la12xx,max_nb_queues=4``
> +
> +Enabling logs
> +-------------
> +
> +For enabling logs, use the following EAL parameter:
> +
> +.. code-block:: console
> +
> +   ./your_bbdev_application <EAL args> --log-level=la12xx:<level>
> +
> +Using ``bb.la12xx`` as log matching criteria, all Baseband PMD logs can
> +be enabled which are lower than logging ``level``.
> +
> +
> +Test Application
> +----------------
> +
> +BBDEV provides a test application, ``test-bbdev.py`` and range of test
> +data for testing the functionality of LA12xx for FEC encode and decode,
> +depending on the device capabilities. The test application is located
> +under app->test-bbdev folder and has the following options:
> +
> +.. code-block:: console
> +
> +  "-p", "--testapp-path": specifies path to the bbdev test app.
> +  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
> +  "-t", "--timeout"	: Timeout in seconds (default=300).
> +  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
> +  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-
> bbdev/test_vectors/bbdev_null.data).
> +  "-n", "--num-ops"	: Number of operations to process on device
> (default=32).
> +  "-b", "--burst-size"	: Operations enqueue/dequeue burst size
> (default=32).
> +  "-s", "--snr"		: SNR in dB used when generating LLRs for bler tests.
> +  "-s", "--iter_max"	: Number of iterations for LDPC decoder.
> +  "-l", "--num-lcores"	: Number of lcores to run (default=16).
> +  "-i", "--init-device" : Initialise PF device with default values.
> +
> +
> +To execute the test application tool using simple decode or encode
> +data, type one of the following:
> +
> +.. code-block:: console
> +
> +  ./test-bbdev.py
> + -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation
> + -n 64 -b 1 -v ./ldpc_dec_default.data  ./test-bbdev.py
> + -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation
> + -n 64 -b 1 -v ./ldpc_enc_default.data
> +
> +The test application ``test-bbdev.py``, supports the ability to
> +configure the PF device with a default set of values, if the "-i" or "-
> +-init-device" option is included. The default values are defined in
> test_bbdev_perf.c.
> +
> +
> +Test Vectors
> +~~~~~~~~~~~~
> +
> +In addition to the simple LDPC decoder and LDPC encoder tests, bbdev
> +also provides a range of additional tests under the test_vectors
> +folder, which may be useful. The results of these tests will depend on
> +the LA12xx FEC capabilities which may cause some testcases to be skipped,
> but no failure should be reported.
> diff --git a/doc/guides/rel_notes/release_21_05.rst
> b/doc/guides/rel_notes/release_21_05.rst
> index 6f5858c8f6..61797e2a43 100644
> --- a/doc/guides/rel_notes/release_21_05.rst
> +++ b/doc/guides/rel_notes/release_21_05.rst
> @@ -130,6 +130,11 @@ New Features
>    * Added command to display Rx queue used descriptor count.
>      ``show port (port_id) rxq (queue_id) desc used count``
> 
> +* **Added NXP LA12xx baseband PMD.**
> +
> +  Added a new baseband PMD driver for NXP LA12xx Software defined
> radio.
> +
> +  See the :doc:`../bbdevs/la12xx` for more details.
> 
>  Removed Items
>  -------------
> --
> 2.17.1
  
Hemant Agrawal April 14, 2021, 11:59 a.m. UTC | #2
On 4/14/2021 6:27 AM, Chautru, Nicolas wrote:
> Documentation should be ideally embedded within the related commits to go hand in hand when feature are being added, not as a separate commit. Other comments below
ok
>
>> -----Original Message-----
>> From: Hemant Agrawal <hemant.agrawal@nxp.com>
>> Sent: Monday, April 12, 2021 10:17 PM
>> To: dev@dpdk.org; gakhil@marvell.com; Chautru, Nicolas
>> <nicolas.chautru@intel.com>
>> Cc: david.marchand@redhat.com; Hemant Agrawal
>> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>
>> Subject: [PATCH v3 6/8] baseband/la12xx: add documentation support
>>
>> This patch add documentation for LA12xx PMD.
>>
>> Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
>> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
>> ---
>>   MAINTAINERS                            |   9 ++
>>   doc/guides/bbdevs/features/la12xx.ini  |  14 +++
>>   doc/guides/bbdevs/index.rst            |   1 +
>>   doc/guides/bbdevs/la12xx.rst           | 139 +++++++++++++++++++++++++
>>   doc/guides/rel_notes/release_21_05.rst |   5 +
>>   5 files changed, 168 insertions(+)
>>   create mode 100644 doc/guides/bbdevs/features/la12xx.ini
>>   create mode 100644 doc/guides/bbdevs/la12xx.rst
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index e746ef1d32..24081fceb3 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -1289,6 +1289,15 @@ F: doc/guides/rawdevs/ntb.rst
>>   F: examples/ntb/
>>   F: doc/guides/sample_app_ug/ntb.rst
>>
>> +Baseband Drivers
>> +-------------------
>> +
>> +NXP LA12xx
>> +M: Hemant Agrawal <hemant.agrawal@nxp.com>
>> +M: Nipun Gupta <nipun.gupta@nxp.com>
>> +F: drivers/baseband/la12xx/
>> +F: doc/guides/bbdevs/la12xx.rst
>> +F: doc/guides/bbdevs/features/la12xx.ini
>>
>>   Packet processing
>>   -----------------
>> diff --git a/doc/guides/bbdevs/features/la12xx.ini
>> b/doc/guides/bbdevs/features/la12xx.ini
>> new file mode 100644
>> index 0000000000..979d9dd224
>> --- /dev/null
>> +++ b/doc/guides/bbdevs/features/la12xx.ini
>> @@ -0,0 +1,14 @@
>> +;
>> +; Supported features of the 'la12xx' bbdev driver.
>> +;
>> +; Refer to default.ini for the full list of available PMD features.
>> +;
>> +[Features]
>> +Turbo Decoder (4G)     = N
>> +Turbo Encoder (4G)     = N
>> +LDPC Decoder (5G)      = Y
>> +LDPC Encoder (5G)      = Y
>> +LLR/HARQ Compression   = N
>> +External DDR Access    = Y
> What is the external DDR access capability here? This was not exposed in BBDEV.
ok. we will remove it
>
>> +HW Accelerated         = Y
>> +BBDEV API              = Y
>> diff --git a/doc/guides/bbdevs/index.rst b/doc/guides/bbdevs/index.rst index
>> 4445cbd1b0..cedd706fa6 100644
>> --- a/doc/guides/bbdevs/index.rst
>> +++ b/doc/guides/bbdevs/index.rst
>> @@ -14,3 +14,4 @@ Baseband Device Drivers
>>       fpga_lte_fec
>>       fpga_5gnr_fec
>>       acc100
>> +    la12xx
>> diff --git a/doc/guides/bbdevs/la12xx.rst b/doc/guides/bbdevs/la12xx.rst
>> new file mode 100644 index 0000000000..1cadd6f337
>> --- /dev/null
>> +++ b/doc/guides/bbdevs/la12xx.rst
>> @@ -0,0 +1,139 @@
>> +..  SPDX-License-Identifier: BSD-3-Clause
>> +    Copyright 2021 NXP
>> +
>> +NXP LA12xx Poll Mode Driver
>> +=======================================
>> +
>> +The BBDEV LA12xx poll mode driver (PMD) supports an implementation for
>> +offloading High Phy processing functions like LDPC Encode / Decode 5GNR
>> +wireless acceleration function, using PCI based LA12xx Software defined
>> radio.
>> +
>> +More information can be found at `NXP Official Website
>> +<https://www.nxp.com/products/processors-and-microcontrollers/arm-
>> processors/layerscape-processors/layerscape-access-la1200-programmable-
>> baseband-processor:LA1200>`_.
>> +
>> +Features
>> +--------
>> +
>> +LA12xx PMD supports the following features:
>> +
>> +- LDPC Encode in the DL
>> +- LDPC Decode in the UL
>> +- Maximum of 8 UL queues
>> +- Maximum of 8 DL queues
>> +- PCIe Gen-3 x8 Interface
>> +- MSI-X
> Capability was not exposed in the commit
>
>> +
>> +LA12xx PMD supports the following BBDEV capabilities:
>> +
>> +* For the LDPC encode operation:
>> +   - ``RTE_BBDEV_LDPC_CRC_24B_ATTACH`` :  set to attach CRC24B to CB(s)
>> +   - ``RTE_BBDEV_LDPC_RATE_MATCH`` :  if set then do not do Rate Match
>> +bypass
> mismatch with the code
ok
>
>> +
>> +* For the LDPC decode operation:
>> +   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK`` :  check CRC24B from CB(s)
>> +   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP`` :  drops CRC24B bits
>> appended while decoding
>> +   - ``RTE_BBDEV_LDPC_DEC_SCATTER_GATHER`` :  supports scatter-gather
>> +for input/output data
>> +
>> +Installation
>> +------------
>> +
>> +Section 3 of the DPDK manual provides instructions on installing and
>> compiling DPDK.
>> +
>> +DPDK requires hugepages to be configured as detailed in section 2 of the
>> DPDK manual.
>> +
>> +Initialization
>> +--------------
>> +
>> +The device can be listed on the host console with:
>> +
>> +
>> +Use the following lspci command to get the multiple LA12xx processor
>> +ids. The device ID of the LA12xx baseband processor is "1c30".
>> +
> There is no SRIOV? Single device id?
yes, we don't support SRIOV.
>
>> +.. code-block:: console
>> +
>> +  sudo lspci -nn
>> +
>> +...
>> +0001:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device
>> +[1957:1c30] ( rev 10) ...
>> +0002:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device
>> +[1957:1c30] ( rev 10)
>> +
>> +
>> +Prerequisites
>> +-------------
>> +
>> +Currently supported by DPDK:
>> +
>> +- NXP LA1224 BSP **1.0+**.
>> +- NXP LA1224 PCIe Modem card connected to ARM host.
>> +
>> +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to
>> setup the basic DPDK environment.
>> +
>> +* Use dev arg option ``modem=0`` to identify the modem instance for a
>> +given
>> +  device. This is required only if more than 1 modem cards are attached to
>> host.
>> +  this is optional and the default value is 0.
>> +  e.g. ``--vdev=baseband_la12xx,modem=0``
>> +
>> +* Use dev arg option ``max_nb_queues=x`` to specify the maximum
>> number
>> +of queues
>> +  to be used for communication with offload device i.e. modem. default is
>> 16.
>> +  e.g. ``--vdev=baseband_la12xx,max_nb_queues=4``
>> +
>> +Enabling logs
>> +-------------
>> +
>> +For enabling logs, use the following EAL parameter:
>> +
>> +.. code-block:: console
>> +
>> +   ./your_bbdev_application <EAL args> --log-level=la12xx:<level>
>> +
>> +Using ``bb.la12xx`` as log matching criteria, all Baseband PMD logs can
>> +be enabled which are lower than logging ``level``.
>> +
>> +
>> +Test Application
>> +----------------
>> +
>> +BBDEV provides a test application, ``test-bbdev.py`` and range of test
>> +data for testing the functionality of LA12xx for FEC encode and decode,
>> +depending on the device capabilities. The test application is located
>> +under app->test-bbdev folder and has the following options:
>> +
>> +.. code-block:: console
>> +
>> +  "-p", "--testapp-path": specifies path to the bbdev test app.
>> +  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
>> +  "-t", "--timeout"	: Timeout in seconds (default=300).
>> +  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
>> +  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-
>> bbdev/test_vectors/bbdev_null.data).
>> +  "-n", "--num-ops"	: Number of operations to process on device
>> (default=32).
>> +  "-b", "--burst-size"	: Operations enqueue/dequeue burst size
>> (default=32).
>> +  "-s", "--snr"		: SNR in dB used when generating LLRs for bler tests.
>> +  "-s", "--iter_max"	: Number of iterations for LDPC decoder.
>> +  "-l", "--num-lcores"	: Number of lcores to run (default=16).
>> +  "-i", "--init-device" : Initialise PF device with default values.
>> +
>> +
>> +To execute the test application tool using simple decode or encode
>> +data, type one of the following:
>> +
>> +.. code-block:: console
>> +
>> +  ./test-bbdev.py
>> + -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation
>> + -n 64 -b 1 -v ./ldpc_dec_default.data  ./test-bbdev.py
>> + -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation
>> + -n 64 -b 1 -v ./ldpc_enc_default.data
>> +
>> +The test application ``test-bbdev.py``, supports the ability to
>> +configure the PF device with a default set of values, if the "-i" or "-
>> +-init-device" option is included. The default values are defined in
>> test_bbdev_perf.c.
>> +
>> +
>> +Test Vectors
>> +~~~~~~~~~~~~
>> +
>> +In addition to the simple LDPC decoder and LDPC encoder tests, bbdev
>> +also provides a range of additional tests under the test_vectors
>> +folder, which may be useful. The results of these tests will depend on
>> +the LA12xx FEC capabilities which may cause some testcases to be skipped,
>> but no failure should be reported.
>> diff --git a/doc/guides/rel_notes/release_21_05.rst
>> b/doc/guides/rel_notes/release_21_05.rst
>> index 6f5858c8f6..61797e2a43 100644
>> --- a/doc/guides/rel_notes/release_21_05.rst
>> +++ b/doc/guides/rel_notes/release_21_05.rst
>> @@ -130,6 +130,11 @@ New Features
>>     * Added command to display Rx queue used descriptor count.
>>       ``show port (port_id) rxq (queue_id) desc used count``
>>
>> +* **Added NXP LA12xx baseband PMD.**
>> +
>> +  Added a new baseband PMD driver for NXP LA12xx Software defined
>> radio.
>> +
>> +  See the :doc:`../bbdevs/la12xx` for more details.
>>
>>   Removed Items
>>   -------------
>> --
>> 2.17.1
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index e746ef1d32..24081fceb3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1289,6 +1289,15 @@  F: doc/guides/rawdevs/ntb.rst
 F: examples/ntb/
 F: doc/guides/sample_app_ug/ntb.rst
 
+Baseband Drivers
+-------------------
+
+NXP LA12xx
+M: Hemant Agrawal <hemant.agrawal@nxp.com>
+M: Nipun Gupta <nipun.gupta@nxp.com>
+F: drivers/baseband/la12xx/
+F: doc/guides/bbdevs/la12xx.rst
+F: doc/guides/bbdevs/features/la12xx.ini
 
 Packet processing
 -----------------
diff --git a/doc/guides/bbdevs/features/la12xx.ini b/doc/guides/bbdevs/features/la12xx.ini
new file mode 100644
index 0000000000..979d9dd224
--- /dev/null
+++ b/doc/guides/bbdevs/features/la12xx.ini
@@ -0,0 +1,14 @@ 
+;
+; Supported features of the 'la12xx' bbdev driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Turbo Decoder (4G)     = N
+Turbo Encoder (4G)     = N
+LDPC Decoder (5G)      = Y
+LDPC Encoder (5G)      = Y
+LLR/HARQ Compression   = N
+External DDR Access    = Y
+HW Accelerated         = Y
+BBDEV API              = Y
diff --git a/doc/guides/bbdevs/index.rst b/doc/guides/bbdevs/index.rst
index 4445cbd1b0..cedd706fa6 100644
--- a/doc/guides/bbdevs/index.rst
+++ b/doc/guides/bbdevs/index.rst
@@ -14,3 +14,4 @@  Baseband Device Drivers
     fpga_lte_fec
     fpga_5gnr_fec
     acc100
+    la12xx
diff --git a/doc/guides/bbdevs/la12xx.rst b/doc/guides/bbdevs/la12xx.rst
new file mode 100644
index 0000000000..1cadd6f337
--- /dev/null
+++ b/doc/guides/bbdevs/la12xx.rst
@@ -0,0 +1,139 @@ 
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright 2021 NXP
+
+NXP LA12xx Poll Mode Driver
+=======================================
+
+The BBDEV LA12xx poll mode driver (PMD) supports an implementation for
+offloading High Phy processing functions like LDPC Encode / Decode 5GNR wireless
+acceleration function, using PCI based LA12xx Software defined radio.
+
+More information can be found at `NXP Official Website
+<https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-access-la1200-programmable-baseband-processor:LA1200>`_.
+
+Features
+--------
+
+LA12xx PMD supports the following features:
+
+- LDPC Encode in the DL
+- LDPC Decode in the UL
+- Maximum of 8 UL queues
+- Maximum of 8 DL queues
+- PCIe Gen-3 x8 Interface
+- MSI-X
+
+LA12xx PMD supports the following BBDEV capabilities:
+
+* For the LDPC encode operation:
+   - ``RTE_BBDEV_LDPC_CRC_24B_ATTACH`` :  set to attach CRC24B to CB(s)
+   - ``RTE_BBDEV_LDPC_RATE_MATCH`` :  if set then do not do Rate Match bypass
+
+* For the LDPC decode operation:
+   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK`` :  check CRC24B from CB(s)
+   - ``RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP`` :  drops CRC24B bits appended while decoding
+   - ``RTE_BBDEV_LDPC_DEC_SCATTER_GATHER`` :  supports scatter-gather for input/output data
+
+Installation
+------------
+
+Section 3 of the DPDK manual provides instructions on installing and compiling DPDK.
+
+DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual.
+
+Initialization
+--------------
+
+The device can be listed on the host console with:
+
+
+Use the following lspci command to get the multiple LA12xx processor ids. The
+device ID of the LA12xx baseband processor is "1c30".
+
+.. code-block:: console
+
+  sudo lspci -nn
+
+...
+0001:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device [1957:1c30] (
+rev 10)
+...
+0002:01:00.0 Power PC [0b20]: Freescale Semiconductor Inc Device [1957:1c30] (
+rev 10)
+
+
+Prerequisites
+-------------
+
+Currently supported by DPDK:
+
+- NXP LA1224 BSP **1.0+**.
+- NXP LA1224 PCIe Modem card connected to ARM host.
+
+- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
+
+* Use dev arg option ``modem=0`` to identify the modem instance for a given
+  device. This is required only if more than 1 modem cards are attached to host.
+  this is optional and the default value is 0.
+  e.g. ``--vdev=baseband_la12xx,modem=0``
+
+* Use dev arg option ``max_nb_queues=x`` to specify the maximum number of queues
+  to be used for communication with offload device i.e. modem. default is 16.
+  e.g. ``--vdev=baseband_la12xx,max_nb_queues=4``
+
+Enabling logs
+-------------
+
+For enabling logs, use the following EAL parameter:
+
+.. code-block:: console
+
+   ./your_bbdev_application <EAL args> --log-level=la12xx:<level>
+
+Using ``bb.la12xx`` as log matching criteria, all Baseband PMD logs can be
+enabled which are lower than logging ``level``.
+
+
+Test Application
+----------------
+
+BBDEV provides a test application, ``test-bbdev.py`` and range of test data for testing
+the functionality of LA12xx for FEC encode and decode, depending on the device
+capabilities. The test application is located under app->test-bbdev folder and has the
+following options:
+
+.. code-block:: console
+
+  "-p", "--testapp-path": specifies path to the bbdev test app.
+  "-e", "--eal-params"	: EAL arguments which are passed to the test app.
+  "-t", "--timeout"	: Timeout in seconds (default=300).
+  "-c", "--test-cases"	: Defines test cases to run. Run all if not specified.
+  "-v", "--test-vector"	: Test vector path (default=dpdk_path+/app/test-bbdev/test_vectors/bbdev_null.data).
+  "-n", "--num-ops"	: Number of operations to process on device (default=32).
+  "-b", "--burst-size"	: Operations enqueue/dequeue burst size (default=32).
+  "-s", "--snr"		: SNR in dB used when generating LLRs for bler tests.
+  "-s", "--iter_max"	: Number of iterations for LDPC decoder.
+  "-l", "--num-lcores"	: Number of lcores to run (default=16).
+  "-i", "--init-device" : Initialise PF device with default values.
+
+
+To execute the test application tool using simple decode or encode data,
+type one of the following:
+
+.. code-block:: console
+
+  ./test-bbdev.py -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation -n 64 -b 1 -v ./ldpc_dec_default.data
+  ./test-bbdev.py -e="--vdev=baseband_la12xx,socket_id=0,max_nb_queues=8" -c validation -n 64 -b 1 -v ./ldpc_enc_default.data
+
+The test application ``test-bbdev.py``, supports the ability to configure the PF device with
+a default set of values, if the "-i" or "- -init-device" option is included. The default values
+are defined in test_bbdev_perf.c.
+
+
+Test Vectors
+~~~~~~~~~~~~
+
+In addition to the simple LDPC decoder and LDPC encoder tests, bbdev also provides
+a range of additional tests under the test_vectors folder, which may be useful. The results
+of these tests will depend on the LA12xx FEC capabilities which may cause some
+testcases to be skipped, but no failure should be reported.
diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst
index 6f5858c8f6..61797e2a43 100644
--- a/doc/guides/rel_notes/release_21_05.rst
+++ b/doc/guides/rel_notes/release_21_05.rst
@@ -130,6 +130,11 @@  New Features
   * Added command to display Rx queue used descriptor count.
     ``show port (port_id) rxq (queue_id) desc used count``
 
+* **Added NXP LA12xx baseband PMD.**
+
+  Added a new baseband PMD driver for NXP LA12xx Software defined radio.
+
+  See the :doc:`../bbdevs/la12xx` for more details.
 
 Removed Items
 -------------