[dpdk-dev,5/5] net/szedata2: add more supported firmwares

Message ID 1495821956-5050-5-git-send-email-vido@cesnet.cz (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Matej Vido May 26, 2017, 6:05 p.m. UTC
  Add IBUF and OBUF offsets definitions for new firmwares.

Signed-off-by: Matej Vido <vido@cesnet.cz>
---
 config/common_base                    |    8 +--
 doc/guides/nics/szedata2.rst          |   32 ++++++--
 drivers/net/szedata2/szedata2_iobuf.c |  148 +++++++++++++++++++++++++++++++--
 3 files changed, 168 insertions(+), 20 deletions(-)
  

Comments

Ferruh Yigit May 29, 2017, 12:42 p.m. UTC | #1
On 5/26/2017 7:05 PM, Matej Vido wrote:
> Add IBUF and OBUF offsets definitions for new firmwares.

just to double check, is it required to add new pci device ids to
support these new cards?

Is dpdk supported nics (http://dpdk.org/doc/nics) needs to be updated?

Can you please update release notes to announce new cards support?

> 
> Signed-off-by: Matej Vido <vido@cesnet.cz>

<...>

> +#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 5
> +
> +const uint32_t szedata2_ibuf_base_table[] = {
> +	0x8000,
> +	0x8200,
> +	0x8400,
> +	0x8600,
> +	0x8800
> +};
> +const uint32_t szedata2_obuf_base_table[] = {
> +	0x9000,
> +	0x9200,
> +	0x9400,
> +	0x9600,
> +	0x9800
> +};

AS = 5 is not documented in both documentation and source code comment,
can you please add this one too?

> +
>  #else
>  #error "RTE_LIBRTE_PMD_SZEDATA2_AS has wrong value, see comments in config file"
>  #endif
>
  
Matej Vido May 31, 2017, 8:34 a.m. UTC | #2
On 29.05.2017 14:42, Ferruh Yigit wrote:
> On 5/26/2017 7:05 PM, Matej Vido wrote:
>> Add IBUF and OBUF offsets definitions for new firmwares.
> just to double check, is it required to add new pci device ids to
> support these new cards?
>
> Is dpdk supported nics (http://dpdk.org/doc/nics) needs to be updated?
>
> Can you please update release notes to announce new cards support?
Hi Ferruh,

This patch set adds mainly the support of new firmwares for the cards 
that are already supported.
But you are right, there is also one new card which would need to add 
new pci device id. We have to check if we want to add the card in this 
patch set and I will update v2 accordingly.

>
>> Signed-off-by: Matej Vido <vido@cesnet.cz>
> <...>
>
>> +#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 5
>> +
>> +const uint32_t szedata2_ibuf_base_table[] = {
>> +	0x8000,
>> +	0x8200,
>> +	0x8400,
>> +	0x8600,
>> +	0x8800
>> +};
>> +const uint32_t szedata2_obuf_base_table[] = {
>> +	0x9000,
>> +	0x9200,
>> +	0x9400,
>> +	0x9600,
>> +	0x9800
>> +};
> AS = 5 is not documented in both documentation and source code comment,
> can you please add this one too?
5 is for future use and experimental firmwares. Would it make sense to 
write this note in the comments but not in the documentation to avoid 
confusion or should it be mentioned in the documentation too?

Thanks,
Matej
>> +
>>   #else
>>   #error "RTE_LIBRTE_PMD_SZEDATA2_AS has wrong value, see comments in config file"
>>   #endif
>>
  
Ferruh Yigit May 31, 2017, 9:11 a.m. UTC | #3
On 5/31/2017 9:34 AM, Matej Vido wrote:
> On 29.05.2017 14:42, Ferruh Yigit wrote:
>> On 5/26/2017 7:05 PM, Matej Vido wrote:
>>> Add IBUF and OBUF offsets definitions for new firmwares.
>> just to double check, is it required to add new pci device ids to
>> support these new cards?
>>
>> Is dpdk supported nics (http://dpdk.org/doc/nics) needs to be updated?
>>
>> Can you please update release notes to announce new cards support?
> Hi Ferruh,
> 
> This patch set adds mainly the support of new firmwares for the cards 
> that are already supported.
> But you are right, there is also one new card which would need to add 
> new pci device id. We have to check if we want to add the card in this 
> patch set and I will update v2 accordingly.
> 
>>
>>> Signed-off-by: Matej Vido <vido@cesnet.cz>
>> <...>
>>
>>> +#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 5
>>> +
>>> +const uint32_t szedata2_ibuf_base_table[] = {
>>> +	0x8000,
>>> +	0x8200,
>>> +	0x8400,
>>> +	0x8600,
>>> +	0x8800
>>> +};
>>> +const uint32_t szedata2_obuf_base_table[] = {
>>> +	0x9000,
>>> +	0x9200,
>>> +	0x9400,
>>> +	0x9600,
>>> +	0x9800
>>> +};
>> AS = 5 is not documented in both documentation and source code comment,
>> can you please add this one too?
> 5 is for future use and experimental firmwares. Would it make sense to 
> write this note in the comments but not in the documentation to avoid 
> confusion or should it be mentioned in the documentation too?

I think it is good to mention in documentation, since this will be part
of released code, but this can be brief.

> 
> Thanks,
> Matej
>>> +
>>>   #else
>>>   #error "RTE_LIBRTE_PMD_SZEDATA2_AS has wrong value, see comments in config file"
>>>   #endif
>>>
>
  

Patch

diff --git a/config/common_base b/config/common_base
index 67ef2ec..25df77a 100644
--- a/config/common_base
+++ b/config/common_base
@@ -279,12 +279,8 @@  CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
 CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
 #
 # Defines firmware type address space.
-# RTE_LIBRTE_PMD_SZEDATA2_AS can be:
-# 0 - for firmwares:
-#         NIC_100G1_LR4
-#         HANIC_100G1_LR4
-#         HANIC_100G1_SR10
-# Other values raise compile time error
+# See documentation for supported values.
+# Other values raise compile time error.
 CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS=0
 
 #
diff --git a/doc/guides/nics/szedata2.rst b/doc/guides/nics/szedata2.rst
index 60080a9..cb4d965 100644
--- a/doc/guides/nics/szedata2.rst
+++ b/doc/guides/nics/szedata2.rst
@@ -91,14 +91,34 @@  These configuration options can be modified before compilation in the
 
 *  ``CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS`` default value: **0**
 
-   This option defines type of firmware address space.
-   Currently supported value is:
+   This option defines type of firmware address space and must be set
+   according to the used card and mode.
+   Currently supported values are:
 
-   * **0** for firmwares:
+   * **0** - for cards (modes):
 
-      * NIC_100G1_LR4
-      * HANIC_100G1_LR4
-      * HANIC_100G1_SR10
+      * NFB-100G1 (100G1)
+
+   * **1** - for cards (modes):
+
+      * NFB-100G2Q (100G1)
+
+   * **2** - for cards (modes):
+
+      * NFB-40G2 (40G2)
+      * NFB-100G2C (100G2)
+      * NFB-100G2Q (40G2)
+      * NFB-200G2QL (100G2, 40G2)
+
+   * **3** - for cards (modes):
+
+      * NFB-40G2 (10G8)
+      * NFB-100G2Q (10G8)
+      * NFB-200G2QL (10G8)
+
+   * **4** - for cards (modes):
+
+      * NFB-100G1 (10G10)
 
 Using the SZEDATA2 PMD
 ----------------------
diff --git a/drivers/net/szedata2/szedata2_iobuf.c b/drivers/net/szedata2/szedata2_iobuf.c
index 2d25e65..821fe78 100644
--- a/drivers/net/szedata2/szedata2_iobuf.c
+++ b/drivers/net/szedata2/szedata2_iobuf.c
@@ -39,21 +39,41 @@ 
 
 /*
  * IBUFs and OBUFs can generally be located at different offsets in different
- * firmwares.
- * This part defines base offsets of IBUFs and OBUFs through various firmwares.
- * Currently one firmware type is supported.
- * Type of firmware is set through configuration option
+ * firmwares (modes).
+ * This part defines base offsets of IBUFs and OBUFs for various cards
+ * and firmwares (modes).
+ * Type of firmware (mode) is set through configuration option
  * CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS.
  * Possible values are:
- * 0 - for firmwares:
- *     NIC_100G1_LR4
- *     HANIC_100G1_LR4
- *     HANIC_100G1_SR10
+ * 0 - for cards (modes):
+ *     NFB-100G1 (100G1)
+ *
+ * 1 - for cards (modes):
+ *     NFB-100G2Q (100G1)
+ *
+ * 2 - for cards (modes):
+ *     NFB-40G2 (40G2)
+ *     NFB-100G2C (100G2)
+ *     NFB-100G2Q (40G2)
+ *     NFB-200G2QL (100G2, 40G2)
+ *
+ * 3 - for cards (modes):
+ *     NFB-40G2 (10G8)
+ *     NFB-100G2Q (10G8)
+ *     NFB-200G2QL (10G8)
+ *
+ * 4 - for cards (modes):
+ *     NFB-100G1 (10G10)
  */
 #if !defined(RTE_LIBRTE_PMD_SZEDATA2_AS)
 #error "RTE_LIBRTE_PMD_SZEDATA2_AS has to be defined"
 #elif RTE_LIBRTE_PMD_SZEDATA2_AS == 0
 
+/*
+ * Cards (modes):
+ *     NFB-100G1 (100G1)
+ */
+
 const uint32_t szedata2_ibuf_base_table[] = {
 	0x8000
 };
@@ -61,6 +81,118 @@ 
 	0x9000
 };
 
+#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 1
+
+/*
+ * Cards (modes):
+ *     NFB-100G2Q (100G1)
+ */
+
+const uint32_t szedata2_ibuf_base_table[] = {
+	0x8800
+};
+const uint32_t szedata2_obuf_base_table[] = {
+	0x9800
+};
+
+#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 2
+
+/*
+ * Cards (modes):
+ *     NFB-40G2 (40G2)
+ *     NFB-100G2C (100G2)
+ *     NFB-100G2Q (40G2)
+ *     NFB-200G2QL (100G2, 40G2)
+ */
+
+const uint32_t szedata2_ibuf_base_table[] = {
+	0x8000,
+	0x8800
+};
+const uint32_t szedata2_obuf_base_table[] = {
+	0x9000,
+	0x9800
+};
+
+#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 3
+
+/*
+ * Cards (modes):
+ *     NFB-40G2 (10G8)
+ *     NFB-100G2Q (10G8)
+ *     NFB-200G2QL (10G8)
+ */
+
+const uint32_t szedata2_ibuf_base_table[] = {
+	0x8000,
+	0x8200,
+	0x8400,
+	0x8600,
+	0x8800,
+	0x8A00,
+	0x8C00,
+	0x8E00
+};
+const uint32_t szedata2_obuf_base_table[] = {
+	0x9000,
+	0x9200,
+	0x9400,
+	0x9600,
+	0x9800,
+	0x9A00,
+	0x9C00,
+	0x9E00
+};
+
+#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 4
+
+/*
+ * Cards (modes):
+ *     NFB-100G1 (10G10)
+ */
+
+const uint32_t szedata2_ibuf_base_table[] = {
+	0x8000,
+	0x8200,
+	0x8400,
+	0x8600,
+	0x8800,
+	0x8A00,
+	0x8C00,
+	0x8E00,
+	0x9000,
+	0x9200
+};
+const uint32_t szedata2_obuf_base_table[] = {
+	0xA000,
+	0xA200,
+	0xA400,
+	0xA600,
+	0xA800,
+	0xAA00,
+	0xAC00,
+	0xAE00,
+	0xB000,
+	0xB200
+};
+
+#elif RTE_LIBRTE_PMD_SZEDATA2_AS == 5
+
+const uint32_t szedata2_ibuf_base_table[] = {
+	0x8000,
+	0x8200,
+	0x8400,
+	0x8600,
+	0x8800
+};
+const uint32_t szedata2_obuf_base_table[] = {
+	0x9000,
+	0x9200,
+	0x9400,
+	0x9600,
+	0x9800
+};
+
 #else
 #error "RTE_LIBRTE_PMD_SZEDATA2_AS has wrong value, see comments in config file"
 #endif