[dpdk-dev,5/5] net/szedata2: add more supported firmwares
Checks
Commit Message
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
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
>
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
>>
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
>>>
>
@@ -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
#
@@ -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
----------------------
@@ -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