All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] bnxt patchset
@ 2018-03-21 18:06 Ajit Khaparde
  2018-03-21 18:06 ` [PATCH 1/4] introduce Broadcom Stingray Ajit Khaparde
                   ` (3 more replies)
  0 siblings, 4 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-21 18:06 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit

Patchset adding support for Broadcom® NetXtreme® S-Series BCM58800
family of data center System-on-Chip (SoC) devices.

Please apply.

----
Darren Edamura (1):
  igb_uio: bind error if pcie bridge

Scott Branden (3):
  introduce Broadcom Stingray
  net/bnxt: add support for Stingray PF devices ids
  mk: allow kernel artifacts to be located in output directory

 config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++
 drivers/net/bnxt/bnxt_ethdev.c               |  6 ++++++
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c    |  3 +++
 mk/machine/stingray/rte.vars.mk              | 31 ++++++++++++++++++++++++++++
 mk/rte.module.mk                             |  9 +++++---
 5 files changed, 62 insertions(+), 3 deletions(-)
 create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
 create mode 100644 mk/machine/stingray/rte.vars.mk

-- 
2.14.3 (Apple Git-98)

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

* [PATCH 1/4] introduce Broadcom Stingray
  2018-03-21 18:06 [PATCH 0/4] bnxt patchset Ajit Khaparde
@ 2018-03-21 18:06 ` Ajit Khaparde
  2018-03-30 10:34   ` Ferruh Yigit
  2018-03-21 18:06 ` [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-21 18:06 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add Broadcom Stingray machine support based on armv8.

For product brief see:
https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++
 mk/machine/stingray/rte.vars.mk              | 31 ++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
 create mode 100644 mk/machine/stingray/rte.vars.mk

diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
new file mode 100644
index 000000000..247e53eaa
--- /dev/null
+++ b/config/defconfig_arm64-stingray-linuxapp-gcc
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (C) Broadcom 2017-2018. All rights reserved.
+#
+
+#include "defconfig_arm64-armv8a-linuxapp-gcc"
+
+# Broadcom - Stingray
+CONFIG_RTE_MACHINE="stingray"
+CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
+
+# Doesn't support NUMA
+CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
+CONFIG_RTE_LIBRTE_VHOST_NUMA=n
+
+CONFIG_RTE_EAL_IGB_UIO=y
+CONFIG_RTE_KNI_KMOD=n
diff --git a/mk/machine/stingray/rte.vars.mk b/mk/machine/stingray/rte.vars.mk
new file mode 100644
index 000000000..bc3b7dc95
--- /dev/null
+++ b/mk/machine/stingray/rte.vars.mk
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (C) Broadcom 2017-2018. All rights reserved.
+#
+
+#
+# machine:
+#
+#   - can define ARCH variable (overridden by cmdline value)
+#   - can define CROSS variable (overridden by cmdline value)
+#   - define MACHINE_CFLAGS variable (overridden by cmdline value)
+#   - define MACHINE_LDFLAGS variable (overridden by cmdline value)
+#   - define MACHINE_ASFLAGS variable (overridden by cmdline value)
+#   - can define CPU_CFLAGS variable (overridden by cmdline value) that
+#     overrides the one defined in arch.
+#   - can define CPU_LDFLAGS variable (overridden by cmdline value) that
+#     overrides the one defined in arch.
+#   - can define CPU_ASFLAGS variable (overridden by cmdline value) that
+#     overrides the one defined in arch.
+#   - may override any previously defined variable
+#
+
+# ARCH =
+# CROSS =
+# MACHINE_CFLAGS =
+# MACHINE_LDFLAGS =
+# MACHINE_ASFLAGS =
+# CPU_CFLAGS =
+# CPU_LDFLAGS =
+# CPU_ASFLAGS =
+
+MACHINE_CFLAGS += -march=armv8-a+crc+crypto
-- 
2.14.3 (Apple Git-98)

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

* [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids
  2018-03-21 18:06 [PATCH 0/4] bnxt patchset Ajit Khaparde
  2018-03-21 18:06 ` [PATCH 1/4] introduce Broadcom Stingray Ajit Khaparde
@ 2018-03-21 18:06 ` Ajit Khaparde
  2018-03-30 10:35   ` Ferruh Yigit
  2018-03-21 18:06 ` [PATCH 3/4] mk: allow kernel artifacts to be located in output directory Ajit Khaparde
  2018-03-21 18:06 ` [PATCH 4/4] igb_uio: bind error if pcie bridge Ajit Khaparde
  3 siblings, 1 reply; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-21 18:06 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add support for Stingray PF devices ids:
BCM58802 = 0xd802
BCM58804 = 0xd804
BCM58808 = 0x16f0

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 21c46f833..a4042420c 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -97,6 +97,9 @@ int bnxt_logtype_driver;
 #define BROADCOM_DEV_ID_57407_MF 0x16ea
 #define BROADCOM_DEV_ID_57414_MF 0x16ec
 #define BROADCOM_DEV_ID_57416_MF 0x16ee
+#define BROADCOM_DEV_ID_58802 0xd802
+#define BROADCOM_DEV_ID_58804 0xd804
+#define BROADCOM_DEV_ID_58808 0x16f0
 
 static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,
@@ -135,6 +138,9 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57317_SFP) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57414_MF) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57416_MF) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58802) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58804) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58808) },
 	{ .vendor_id = 0, /* sentinel */ },
 };
 
-- 
2.14.3 (Apple Git-98)

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

* [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-03-21 18:06 [PATCH 0/4] bnxt patchset Ajit Khaparde
  2018-03-21 18:06 ` [PATCH 1/4] introduce Broadcom Stingray Ajit Khaparde
  2018-03-21 18:06 ` [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
@ 2018-03-21 18:06 ` Ajit Khaparde
  2018-03-30 10:35   ` Ferruh Yigit
  2018-03-21 18:06 ` [PATCH 4/4] igb_uio: bind error if pcie bridge Ajit Khaparde
  3 siblings, 1 reply; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-21 18:06 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Allow kernel artifacts to be located in output directory specific
by RTE_KERNELDIR_OUT.  If RTE_KERNELDIR_OUT not specified than
source directory RTE_KERNEL is used.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 mk/rte.module.mk | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/mk/rte.module.mk b/mk/rte.module.mk
index 1ada528a0..e2e1af716 100644
--- a/mk/rte.module.mk
+++ b/mk/rte.module.mk
@@ -39,6 +39,9 @@ _postinstall: build
 .PHONY: build
 build: _postbuild
 
+# Allow kernel artifacts to be located in a different location that source
+RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
+
 # Link all sources in build directory
 %_link: FORCE
 	$(if $(call compare,$(notdir $*),$*),\
@@ -48,7 +51,7 @@ build: _postbuild
 # build module
 $(MODULE).ko: $(SRCS_LINKS)
 	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
-	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
+	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
 		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
 
 # install module in $(RTE_OUTPUT)/kmod
@@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
 
 # install module
 modules_install:
-	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
+	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
 		modules_install
 
 .PHONY: clean
@@ -69,7 +72,7 @@ clean: _postclean
 .PHONY: doclean
 doclean:
 	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
-	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
+	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
 	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
 		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
 	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
-- 
2.14.3 (Apple Git-98)

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

* [PATCH 4/4] igb_uio: bind error if pcie bridge
  2018-03-21 18:06 [PATCH 0/4] bnxt patchset Ajit Khaparde
                   ` (2 preceding siblings ...)
  2018-03-21 18:06 ` [PATCH 3/4] mk: allow kernel artifacts to be located in output directory Ajit Khaparde
@ 2018-03-21 18:06 ` Ajit Khaparde
  2018-03-26 17:24   ` Ferruh Yigit
  3 siblings, 1 reply; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-21 18:06 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Darren Edamura, Rahul Gupta, Scott Branden

From: Darren Edamura <darren.edamura@broadcom.com>

Probe function should exit immediately if pcie bridge detected

Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 4cae4dd27..3fabbfc4d 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -473,6 +473,9 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	void *map_addr;
 	int err;
 
+	if (pci_is_bridge(dev))
+		return -ENODEV;
+
 	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
 	if (!udev)
 		return -ENOMEM;
-- 
2.14.3 (Apple Git-98)

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

* Re: [PATCH 4/4] igb_uio: bind error if pcie bridge
  2018-03-21 18:06 ` [PATCH 4/4] igb_uio: bind error if pcie bridge Ajit Khaparde
@ 2018-03-26 17:24   ` Ferruh Yigit
  2018-03-26 18:05     ` Scott Branden
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-03-26 17:24 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Darren Edamura, Rahul Gupta, Scott Branden

On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
> From: Darren Edamura <darren.edamura@broadcom.com>
> 
> Probe function should exit immediately if pcie bridge detected
> 
> Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> index 4cae4dd27..3fabbfc4d 100644
> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> @@ -473,6 +473,9 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  	void *map_addr;
>  	int err;
>  
> +	if (pci_is_bridge(dev))
> +		return -ENODEV;

What do you think printing a log here?

> +
>  	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
>  	if (!udev)
>  		return -ENOMEM;
> 

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

* Re: [PATCH 4/4] igb_uio: bind error if pcie bridge
  2018-03-26 17:24   ` Ferruh Yigit
@ 2018-03-26 18:05     ` Scott Branden
  2018-03-26 18:20       ` Ferruh Yigit
  0 siblings, 1 reply; 31+ messages in thread
From: Scott Branden @ 2018-03-26 18:05 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev; +Cc: Darren Edamura, Rahul Gupta

Hi Ferruh,


On 18-03-26 10:24 AM, Ferruh Yigit wrote:
> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>> From: Darren Edamura <darren.edamura@broadcom.com>
>>
>> Probe function should exit immediately if pcie bridge detected
>>
>> Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
>> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>> ---
>>   lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>> index 4cae4dd27..3fabbfc4d 100644
>> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>> @@ -473,6 +473,9 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
>>   	void *map_addr;
>>   	int err;
>>   
>> +	if (pci_is_bridge(dev))
>> +		return -ENODEV;
> What do you think printing a log here?
I think it brings little value.  ENODEV is already returned?
>
>> +
>>   	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
>>   	if (!udev)
>>   		return -ENOMEM;
>>
Regards,
  Scott

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

* Re: [PATCH 4/4] igb_uio: bind error if pcie bridge
  2018-03-26 18:05     ` Scott Branden
@ 2018-03-26 18:20       ` Ferruh Yigit
  2018-03-26 19:13         ` Scott Branden
  2018-03-26 20:43         ` [PATCH v2] " Ajit Khaparde
  0 siblings, 2 replies; 31+ messages in thread
From: Ferruh Yigit @ 2018-03-26 18:20 UTC (permalink / raw)
  To: Scott Branden, Ajit Khaparde, dev; +Cc: Darren Edamura, Rahul Gupta

On 3/26/2018 7:05 PM, Scott Branden wrote:
> Hi Ferruh,
> 
> 
> On 18-03-26 10:24 AM, Ferruh Yigit wrote:
>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>> From: Darren Edamura <darren.edamura@broadcom.com>
>>>
>>> Probe function should exit immediately if pcie bridge detected
>>>
>>> Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
>>> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>>> ---
>>>   lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 3 +++
>>>   1 file changed, 3 insertions(+)
>>>
>>> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>> index 4cae4dd27..3fabbfc4d 100644
>>> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>> @@ -473,6 +473,9 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
>>>   	void *map_addr;
>>>   	int err;
>>>   
>>> +	if (pci_is_bridge(dev))
>>> +		return -ENODEV;
>> What do you think printing a log here?
> I think it brings little value.  ENODEV is already returned?

User should not provide bridge address at first place, I guess this is a
protection in case user provides bridge address by mistake.
In that case no device will be probed and user won't have any idea why.
I think a log in dmesg saying bridge device is provided may help to the user.

>>
>>> +
>>>   	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
>>>   	if (!udev)
>>>   		return -ENOMEM;
>>>
> Regards,
>   Scott
> 

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

* Re: [PATCH 4/4] igb_uio: bind error if pcie bridge
  2018-03-26 18:20       ` Ferruh Yigit
@ 2018-03-26 19:13         ` Scott Branden
  2018-03-26 20:43         ` [PATCH v2] " Ajit Khaparde
  1 sibling, 0 replies; 31+ messages in thread
From: Scott Branden @ 2018-03-26 19:13 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev; +Cc: Darren Edamura, Rahul Gupta



On 18-03-26 11:20 AM, Ferruh Yigit wrote:
> On 3/26/2018 7:05 PM, Scott Branden wrote:
>> Hi Ferruh,
>>
>>
>> On 18-03-26 10:24 AM, Ferruh Yigit wrote:
>>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>>> From: Darren Edamura <darren.edamura@broadcom.com>
>>>>
>>>> Probe function should exit immediately if pcie bridge detected
>>>>
>>>> Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
>>>> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
>>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>>>> ---
>>>>    lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 3 +++
>>>>    1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> index 4cae4dd27..3fabbfc4d 100644
>>>> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
>>>> @@ -473,6 +473,9 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
>>>>    	void *map_addr;
>>>>    	int err;
>>>>    
>>>> +	if (pci_is_bridge(dev))
>>>> +		return -ENODEV;
>>> What do you think printing a log here?
>> I think it brings little value.  ENODEV is already returned?
> User should not provide bridge address at first place, I guess this is a
> protection in case user provides bridge address by mistake.
> In that case no device will be probed and user won't have any idea why.
> I think a log in dmesg saying bridge device is provided may help to the user.
I'll add a dev_warn as we actually encounter this issue on old silicon 
revisions due to bridge address equaling a PF.
It's not a user error in such case and just needs to be ignored.  So 
adding this generic check allows such to occur.
For other use cases like you mentioned it would be a user mistake.
>>>> +
>>>>    	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
>>>>    	if (!udev)
>>>>    		return -ENOMEM;
>>>>
>> Regards,
>>    Scott
>>

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

* [PATCH v2] igb_uio: bind error if pcie bridge
  2018-03-26 18:20       ` Ferruh Yigit
  2018-03-26 19:13         ` Scott Branden
@ 2018-03-26 20:43         ` Ajit Khaparde
  1 sibling, 0 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-03-26 20:43 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Darren Edamura, Rahul Gupta, Scott Branden

From: Darren Edamura <darren.edamura@broadcom.com>

Probe function should exit immediately if pcie bridge detected

Signed-off-by: Darren Edamura <darren.edamura@broadcom.com>
Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
v1->v2: add a log message if the condition is true.
---
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 4cae4dd27..cbc5ab63a 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -473,6 +473,11 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	void *map_addr;
 	int err;
 
+	if (pci_is_bridge(dev)) {
+		dev_warn(&dev->dev, "Ignoring PCI bridge device\n");
+		return -ENODEV;
+	}
+
 	udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
 	if (!udev)
 		return -ENOMEM;
-- 
2.14.3 (Apple Git-98)

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

* Re: [PATCH 1/4] introduce Broadcom Stingray
  2018-03-21 18:06 ` [PATCH 1/4] introduce Broadcom Stingray Ajit Khaparde
@ 2018-03-30 10:34   ` Ferruh Yigit
  2018-03-30 18:54     ` Scott Branden
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-03-30 10:34 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Scott Branden

On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden@broadcom.com>
> 
> Add Broadcom Stingray machine support based on armv8.
> 
> For product brief see:
> https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800
> 
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++
>  mk/machine/stingray/rte.vars.mk              | 31 ++++++++++++++++++++++++++++
>  2 files changed, 47 insertions(+)
>  create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
>  create mode 100644 mk/machine/stingray/rte.vars.mk
> 
> diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
> new file mode 100644
> index 000000000..247e53eaa
> --- /dev/null
> +++ b/config/defconfig_arm64-stingray-linuxapp-gcc
> @@ -0,0 +1,16 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright (C) Broadcom 2017-2018. All rights reserved.
> +#
> +
> +#include "defconfig_arm64-armv8a-linuxapp-gcc"
> +
> +# Broadcom - Stingray
> +CONFIG_RTE_MACHINE="stingray"

This is same as armv8a machine type, is it required to add new "stingray"
machine type?

<...>

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

* Re: [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids
  2018-03-21 18:06 ` [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
@ 2018-03-30 10:35   ` Ferruh Yigit
  2018-03-30 18:24     ` Scott Branden
  2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
  0 siblings, 2 replies; 31+ messages in thread
From: Ferruh Yigit @ 2018-03-30 10:35 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Scott Branden

On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden@broadcom.com>
> 
> Add support for Stingray PF devices ids:
> BCM58802 = 0xd802
> BCM58804 = 0xd804
> BCM58808 = 0x16f0
> 
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++

Can you please update driver documentation (doc/guides/nics/bnxt.rst) with new
device information.

Also it can be good to update release notes to announce new device support.

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-03-21 18:06 ` [PATCH 3/4] mk: allow kernel artifacts to be located in output directory Ajit Khaparde
@ 2018-03-30 10:35   ` Ferruh Yigit
  2018-03-30 18:23     ` Scott Branden
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-03-30 10:35 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Scott Branden

On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden@broadcom.com>
> 
> Allow kernel artifacts to be located in output directory specific
> by RTE_KERNELDIR_OUT.  

How to use this variable, I tried following but kernel modules are still in same
place:

- make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
- make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
- make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install

/tmp/kmod not created.

And what we are fixing here, what was wrong with old code?

> If RTE_KERNELDIR_OUT not specified than
> source directory RTE_KERNEL is used.

${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are want
to put artifacts into kernel source?

> 
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  mk/rte.module.mk | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/mk/rte.module.mk b/mk/rte.module.mk
> index 1ada528a0..e2e1af716 100644
> --- a/mk/rte.module.mk
> +++ b/mk/rte.module.mk
> @@ -39,6 +39,9 @@ _postinstall: build
>  .PHONY: build
>  build: _postbuild
>  
> +# Allow kernel artifacts to be located in a different location that source
> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
> +
>  # Link all sources in build directory
>  %_link: FORCE
>  	$(if $(call compare,$(notdir $*),$*),\
> @@ -48,7 +51,7 @@ build: _postbuild
>  # build module
>  $(MODULE).ko: $(SRCS_LINKS)
>  	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>  		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>  
>  # install module in $(RTE_OUTPUT)/kmod
> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>  
>  # install module
>  modules_install:
> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>  		modules_install
>  
>  .PHONY: clean
> @@ -69,7 +72,7 @@ clean: _postclean
>  .PHONY: doclean
>  doclean:
>  	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
> -	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
> +	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>  	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>  		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>  	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
> 

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-03-30 10:35   ` Ferruh Yigit
@ 2018-03-30 18:23     ` Scott Branden
  2018-04-03 14:18       ` Ferruh Yigit
  0 siblings, 1 reply; 31+ messages in thread
From: Scott Branden @ 2018-03-30 18:23 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev

Hi Ferruh,


On 18-03-30 03:35 AM, Ferruh Yigit wrote:
> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>> From: Scott Branden <scott.branden@broadcom.com>
>>
>> Allow kernel artifacts to be located in output directory specific
>> by RTE_KERNELDIR_OUT.
> How to use this variable, I tried following but kernel modules are still in same
> place:
export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>
> /tmp/kmod not created.
>
> And what we are fixing here, what was wrong with old code?
Old code puts the intermediate object files in the kernel source 
directory.  This doesn't work when building an external module in 
openembedded recipes.  We need the Makefile change to be able to able to 
specify the kernel and output directories separately.
>
>> If RTE_KERNELDIR_OUT not specified than
>> source directory RTE_KERNEL is used.
> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are want
> to put artifacts into kernel source?
I just kept the default behaviour the same as what it does today.
>
>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>> ---
>>   mk/rte.module.mk | 9 ++++++---
>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/mk/rte.module.mk b/mk/rte.module.mk
>> index 1ada528a0..e2e1af716 100644
>> --- a/mk/rte.module.mk
>> +++ b/mk/rte.module.mk
>> @@ -39,6 +39,9 @@ _postinstall: build
>>   .PHONY: build
>>   build: _postbuild
>>   
>> +# Allow kernel artifacts to be located in a different location that source
>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>> +
>>   # Link all sources in build directory
>>   %_link: FORCE
>>   	$(if $(call compare,$(notdir $*),$*),\
>> @@ -48,7 +51,7 @@ build: _postbuild
>>   # build module
>>   $(MODULE).ko: $(SRCS_LINKS)
>>   	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>   		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>>   
>>   # install module in $(RTE_OUTPUT)/kmod
>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>>   
>>   # install module
>>   modules_install:
>> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>   		modules_install
>>   
>>   .PHONY: clean
>> @@ -69,7 +72,7 @@ clean: _postclean
>>   .PHONY: doclean
>>   doclean:
>>   	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>> -	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>> +	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>>   	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>>   		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>>   	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>>
Regards,
  Scott

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

* Re: [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids
  2018-03-30 10:35   ` Ferruh Yigit
@ 2018-03-30 18:24     ` Scott Branden
  2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
  1 sibling, 0 replies; 31+ messages in thread
From: Scott Branden @ 2018-03-30 18:24 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev



On 18-03-30 03:35 AM, Ferruh Yigit wrote:
> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>> From: Scott Branden <scott.branden@broadcom.com>
>>
>> Add support for Stingray PF devices ids:
>> BCM58802 = 0xd802
>> BCM58804 = 0xd804
>> BCM58808 = 0x16f0
>>
>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>> ---
>>   drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
> Can you please update driver documentation (doc/guides/nics/bnxt.rst) with new
> device information.
>
> Also it can be good to update release notes to announce new device support.
OK, will update.  I was not familiar with all the changes necessary.  
Thanks for pointing this out.

Thanks,
  Scott

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

* Re: [PATCH 1/4] introduce Broadcom Stingray
  2018-03-30 10:34   ` Ferruh Yigit
@ 2018-03-30 18:54     ` Scott Branden
  0 siblings, 0 replies; 31+ messages in thread
From: Scott Branden @ 2018-03-30 18:54 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev



On 18-03-30 03:34 AM, Ferruh Yigit wrote:
> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>> From: Scott Branden <scott.branden@broadcom.com>
>>
>> Add Broadcom Stingray machine support based on armv8.
>>
>> For product brief see:
>> https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800
>>
>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>> ---
>>   config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++
>>   mk/machine/stingray/rte.vars.mk              | 31 ++++++++++++++++++++++++++++
>>   2 files changed, 47 insertions(+)
>>   create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
>>   create mode 100644 mk/machine/stingray/rte.vars.mk
>>
>> diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
>> new file mode 100644
>> index 000000000..247e53eaa
>> --- /dev/null
>> +++ b/config/defconfig_arm64-stingray-linuxapp-gcc
>> @@ -0,0 +1,16 @@
>> +# SPDX-License-Identifier: BSD-3-Clause
>> +# Copyright (C) Broadcom 2017-2018. All rights reserved.
>> +#
>> +
>> +#include "defconfig_arm64-armv8a-linuxapp-gcc"
>> +
>> +# Broadcom - Stingray
>> +CONFIG_RTE_MACHINE="stingray"
> This is same as armv8a machine type, is it required to add new "stingray"
> machine type?
Good question.  We could have tuning or other differences in the future 
but it looks like we can use the armv8a machine.
I think we can get rid of rte.vars.mk for now.
>
> <...>

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-03-30 18:23     ` Scott Branden
@ 2018-04-03 14:18       ` Ferruh Yigit
       [not found]         ` <CACZ4nhuwOp99YiaD75TzQ1igPgnjsayqHLnXyaNmmpySVZefPA@mail.gmail.com>
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-04-03 14:18 UTC (permalink / raw)
  To: Scott Branden, Ajit Khaparde, dev

On 3/30/2018 7:23 PM, Scott Branden wrote:
> Hi Ferruh,
> 
> 
> On 18-03-30 03:35 AM, Ferruh Yigit wrote:
>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>> From: Scott Branden <scott.branden@broadcom.com>
>>>
>>> Allow kernel artifacts to be located in output directory specific
>>> by RTE_KERNELDIR_OUT.
>> How to use this variable, I tried following but kernel modules are still in same
>> place:
> export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
> RTE_KERNELDIR already exists in Makefile.  Are you able to override it?

Please help me a little more, can you please list your commands?

Before your patch, what I do:

export RTE_KERNELDIR=~/development/linux/linux
make defconfig
make    <--- After this kernel modules in ./build/kmod/*.ko
make DESTDIR=/tmp/for-scott install

kernel modules are installed into /tmp/for-scott/lib/modules/`uname
-r`/extra/dpdk/*.ko

Here `uname -r` is wrong but your patch is not related this.

I am using RTE_KERNELDIR a lot since I am compiling with various kernel
versions, not seen .ko files goes into source folder, what is your command line?



Or _after_ your patch:
export RTE_KERNELDIR=~/development/linux/linux
export RTE_KERNELDIR_OUT=/tmp/kmod
make defconfig
make    <--- After this kernel modules in ./build/kmod/*.ko

Getting following build error:
/bin/sh: scripts/mod/modpost: No such file or directory
make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
__modpost] Error 127
make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
make[5]: *** [Makefile:146: sub-make] Error 2
make[4]: *** [../mk/rte.module.mk:54: igb_uio.ko] Error 2

Can you please describe how this variable intended to be used?


>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>>
>> /tmp/kmod not created.
>>
>> And what we are fixing here, what was wrong with old code?
> Old code puts the intermediate object files in the kernel source 
> directory.  This doesn't work when building an external module in 
> openembedded recipes.  We need the Makefile change to be able to able to 
> specify the kernel and output directories separately.
>>
>>> If RTE_KERNELDIR_OUT not specified than
>>> source directory RTE_KERNEL is used.
>> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are want
>> to put artifacts into kernel source?
> I just kept the default behaviour the same as what it does today.
>>
>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>>> ---
>>>   mk/rte.module.mk | 9 ++++++---
>>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/mk/rte.module.mk b/mk/rte.module.mk
>>> index 1ada528a0..e2e1af716 100644
>>> --- a/mk/rte.module.mk
>>> +++ b/mk/rte.module.mk
>>> @@ -39,6 +39,9 @@ _postinstall: build
>>>   .PHONY: build
>>>   build: _postbuild
>>>   
>>> +# Allow kernel artifacts to be located in a different location that source
>>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>>> +
>>>   # Link all sources in build directory
>>>   %_link: FORCE
>>>   	$(if $(call compare,$(notdir $*),$*),\
>>> @@ -48,7 +51,7 @@ build: _postbuild
>>>   # build module
>>>   $(MODULE).ko: $(SRCS_LINKS)
>>>   	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>   		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>>>   
>>>   # install module in $(RTE_OUTPUT)/kmod
>>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>>>   
>>>   # install module
>>>   modules_install:
>>> -	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>> +	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>   		modules_install
>>>   
>>>   .PHONY: clean
>>> @@ -69,7 +72,7 @@ clean: _postclean
>>>   .PHONY: doclean
>>>   doclean:
>>>   	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>> -	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>>> +	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>>>   	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>>>   		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>>>   	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>>>
> Regards,
>   Scott
> 

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
       [not found]         ` <CACZ4nhuwOp99YiaD75TzQ1igPgnjsayqHLnXyaNmmpySVZefPA@mail.gmail.com>
@ 2018-04-06 18:10           ` Scott Branden
  2018-04-06 21:31             ` Ferruh Yigit
  0 siblings, 1 reply; 31+ messages in thread
From: Scott Branden @ 2018-04-06 18:10 UTC (permalink / raw)
  To: Ajit Khaparde, Ferruh Yigit, dev

Hi Ferruh,

Somehow I did not receive your other email so Ajit fowarded it to me.  
So I am responding to it here.

Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the 
location of the output of the kernel artifacts, not the output of the 
DPDK build artifacts.

Here is an example to use RTE_KERNELDIR_OUT:

export ARCH=arm64
export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS=aarch64-linux-gnu-

export RTE_KERNELDIR_OUT=~/test/linux-out
export RTE_KERNELDIR=~/test/linux
cd $RTE_KERNELDIR
make defconfig O=$RTE_KERNELDIR_OUT
make -j 8 O=$RTE_KERNELDIR_OUT

cd ~/test/dpdk
make config T=arm64-stingray-linuxapp-gcc
make

Note:

With this example you will likely hit a few compile errors as latest 
dpdk has compile bugs with unused variables/type mismatches in the code.

Regards,

  Scott


On 18-04-05 11:58 AM, Ajit Khaparde wrote:
> Scott, are you looking at this?
>
> ---------- Forwarded message ----------
> From: *Ferruh Yigit* <ferruh.yigit@intel.com 
> <mailto:ferruh.yigit@intel.com>>
> Date: Tue, Apr 3, 2018 at 7:18 AM
> Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in 
> output directory
> To: Scott Branden <scott.branden@broadcom.com 
> <mailto:scott.branden@broadcom.com>>, Ajit Khaparde 
> <ajit.khaparde@broadcom.com <mailto:ajit.khaparde@broadcom.com>>, 
> dev@dpdk.org <mailto:dev@dpdk.org>
>
>
> On 3/30/2018 7:23 PM, Scott Branden wrote:
> > Hi Ferruh,
> >
> >
> > On 18-03-30 03:35 AM, Ferruh Yigit wrote:
> >> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
> >>> From: Scott Branden <scott.branden@broadcom.com 
> <mailto:scott.branden@broadcom.com>>
> >>>
> >>> Allow kernel artifacts to be located in output directory specific
> >>> by RTE_KERNELDIR_OUT.
> >> How to use this variable, I tried following but kernel modules are 
> still in same
> >> place:
> > export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
> > RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
>
> Please help me a little more, can you please list your commands?
>
> Before your patch, what I do:
>
> export RTE_KERNELDIR=~/development/linux/linux
> make defconfig
> make    <--- After this kernel modules in ./build/kmod/*.ko
> make DESTDIR=/tmp/for-scott install
>
> kernel modules are installed into /tmp/for-scott/lib/modules/`uname
> -r`/extra/dpdk/*.ko
>
> Here `uname -r` is wrong but your patch is not related this.
>
> I am using RTE_KERNELDIR a lot since I am compiling with various kernel
> versions, not seen .ko files goes into source folder, what is your 
> command line?
>
>
>
> Or _after_ your patch:
> export RTE_KERNELDIR=~/development/linux/linux
> export RTE_KERNELDIR_OUT=/tmp/kmod
> make defconfig
> make    <--- After this kernel modules in ./build/kmod/*.ko
>
> Getting following build error:
> /bin/sh: scripts/mod/modpost: No such file or directory
> make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
> __modpost] Error 127
> make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
> make[5]: *** [Makefile:146: sub-make] Error 2
> make[4]: *** [../mk/rte.module.mk:54 <http://rte.module.mk:54>: 
> igb_uio.ko] Error 2
>
> Can you please describe how this variable intended to be used?
>
>
> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh 
> modules_install
> >>
> >> /tmp/kmod not created.
> >>
> >> And what we are fixing here, what was wrong with old code?
> > Old code puts the intermediate object files in the kernel source
> > directory.  This doesn't work when building an external module in
> > openembedded recipes.  We need the Makefile change to be able to able to
> > specify the kernel and output directories separately.
> >>
> >>> If RTE_KERNELDIR_OUT not specified than
> >>> source directory RTE_KERNEL is used.
> >> ${RTE_KERNELDIR} is used as external Linux kernel source folder, 
> why we are want
> >> to put artifacts into kernel source?
> > I just kept the default behaviour the same as what it does today.
> >>
> >>> Signed-off-by: Scott Branden <scott.branden@broadcom.com 
> <mailto:scott.branden@broadcom.com>>
> >>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com 
> <mailto:ajit.khaparde@broadcom.com>>
> >>> ---
> >>>   mk/rte.module.mk <http://rte.module.mk> | 9 ++++++---
> >>>   1 file changed, 6 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/mk/rte.module.mk <http://rte.module.mk> 
> b/mk/rte.module.mk <http://rte.module.mk>
> >>> index 1ada528a0..e2e1af716 100644
> >>> --- a/mk/rte.module.mk <http://rte.module.mk>
> >>> +++ b/mk/rte.module.mk <http://rte.module.mk>
> >>> @@ -39,6 +39,9 @@ _postinstall: build
> >>>   .PHONY: build
> >>>   build: _postbuild
> >>>
> >>> +# Allow kernel artifacts to be located in a different location 
> that source
> >>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
> >>> +
> >>>   # Link all sources in build directory
> >>>   %_link: FORCE
> >>>     $(if $(call compare,$(notdir $*),$*),\
> >>> @@ -48,7 +51,7 @@ build: _postbuild
> >>>   # build module
> >>>   $(MODULE).ko: $(SRCS_LINKS)
> >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs 
> $(SRCDIR)/Makefile . ; fi
> >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
> >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
> >>>             CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
> >>>
> >>>   # install module in $(RTE_OUTPUT)/kmod
> >>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
> >>>
> >>>   # install module
> >>>   modules_install:
> >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
> >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
> >>>             modules_install
> >>>
> >>>   .PHONY: clean
> >>> @@ -69,7 +72,7 @@ clean: _postclean
> >>>   .PHONY: doclean
> >>>   doclean:
> >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs 
> $(SRCDIR)/Makefile . ; fi
> >>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) 
> clean
> >>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) 
> O=$(RTE_KERNELDIR_OUT) clean
> >>>     @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
> >>>             if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir 
> $(FILE)) ; fi ;)
> >>>     @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
> >>>
> > Regards,
> >   Scott
> >
>
>

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-04-06 18:10           ` Scott Branden
@ 2018-04-06 21:31             ` Ferruh Yigit
  2018-04-06 22:32               ` Scott Branden
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-04-06 21:31 UTC (permalink / raw)
  To: Scott Branden, Ajit Khaparde, dev

On 4/6/2018 7:10 PM, Scott Branden wrote:
> Hi Ferruh,
> 
> Somehow I did not receive your other email so Ajit fowarded it to me.  So I am
> responding to it here.
> 
> Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the location of
> the output of the kernel artifacts, not the output of the DPDK build artifacts.

Ahh, this makes more sense now J Thanks.

> 
> Here is an example to use RTE_KERNELDIR_OUT:
> 
> export ARCH=arm64
> export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu-
> export CROSS=aarch64-linux-gnu-
> 
> export RTE_KERNELDIR_OUT=~/test/linux-out
> export RTE_KERNELDIR=~/test/linux
> cd $RTE_KERNELDIR
> make defconfig O=$RTE_KERNELDIR_OUT
> make -j 8 O=$RTE_KERNELDIR_OUT
> 
> cd ~/test/dpdk
> make config T=arm64-stingray-linuxapp-gcc
> make

I guess using "~/test/linux-out" as RTE_KERNELDIR also works (because of
"source" link), but your patch looks more proper way.

There are a few documents for build parameters, can you please update them too:
doc/guides/prog_guide/dev_kit_build_system.rst
doc/guides/linux_gsg/build_dpdk.rst <-- not sure about this one, please check
doc/build-sdk-quick.txt  <-- this is "make help" output


> 
> Note:
> 
> With this example you will likely hit a few compile errors as latest dpdk has
> compile bugs with unused variables/type mismatches in the code.

I didn't get the error, if you observe build error please report or better a
patch to fix is always welcome :)

> 
> Regards,
> 
>  Scott
> 
> 
> On 18-04-05 11:58 AM, Ajit Khaparde wrote:
>> Scott, are you looking at this?
>>
>> ---------- Forwarded message ----------
>> From: *Ferruh Yigit* <ferruh.yigit@intel.com <mailto:ferruh.yigit@intel.com>>
>> Date: Tue, Apr 3, 2018 at 7:18 AM
>> Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output
>> directory
>> To: Scott Branden <scott.branden@broadcom.com
>> <mailto:scott.branden@broadcom.com>>, Ajit Khaparde
>> <ajit.khaparde@broadcom.com <mailto:ajit.khaparde@broadcom.com>>, dev@dpdk.org
>> <mailto:dev@dpdk.org>
>>
>>
>> On 3/30/2018 7:23 PM, Scott Branden wrote:
>> > Hi Ferruh,
>> >
>> >
>> > On 18-03-30 03:35 AM, Ferruh Yigit wrote:
>> >> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>> >>> From: Scott Branden <scott.branden@broadcom.com
>> <mailto:scott.branden@broadcom.com>>
>> >>>
>> >>> Allow kernel artifacts to be located in output directory specific
>> >>> by RTE_KERNELDIR_OUT.
>> >> How to use this variable, I tried following but kernel modules are still in
>> same
>> >> place:
>> > export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
>> > RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
>>
>> Please help me a little more, can you please list your commands?
>>
>> Before your patch, what I do:
>>
>> export RTE_KERNELDIR=~/development/linux/linux
>> make defconfig
>> make    <--- After this kernel modules in ./build/kmod/*.ko
>> make DESTDIR=/tmp/for-scott install
>>
>> kernel modules are installed into /tmp/for-scott/lib/modules/`uname
>> -r`/extra/dpdk/*.ko
>>
>> Here `uname -r` is wrong but your patch is not related this.
>>
>> I am using RTE_KERNELDIR a lot since I am compiling with various kernel
>> versions, not seen .ko files goes into source folder, what is your command line?
>>
>>
>>
>> Or _after_ your patch:
>> export RTE_KERNELDIR=~/development/linux/linux
>> export RTE_KERNELDIR_OUT=/tmp/kmod
>> make defconfig
>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>
>> Getting following build error:
>> /bin/sh: scripts/mod/modpost: No such file or directory
>> make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
>> __modpost] Error 127
>> make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
>> make[5]: *** [Makefile:146: sub-make] Error 2
>> make[4]: *** [../mk/rte.module.mk:54 <http://rte.module.mk:54>: igb_uio.ko]
>> Error 2
>>
>> Can you please describe how this variable intended to be used?
>>
>>
>> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
>> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
>> >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>> >>
>> >> /tmp/kmod not created.
>> >>
>> >> And what we are fixing here, what was wrong with old code?
>> > Old code puts the intermediate object files in the kernel source
>> > directory.  This doesn't work when building an external module in
>> > openembedded recipes.  We need the Makefile change to be able to able to
>> > specify the kernel and output directories separately.
>> >>
>> >>> If RTE_KERNELDIR_OUT not specified than
>> >>> source directory RTE_KERNEL is used.
>> >> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are
>> want
>> >> to put artifacts into kernel source?
>> > I just kept the default behaviour the same as what it does today.
>> >>
>> >>> Signed-off-by: Scott Branden <scott.branden@broadcom.com
>> <mailto:scott.branden@broadcom.com>>
>> >>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com
>> <mailto:ajit.khaparde@broadcom.com>>
>> >>> ---
>> >>>   mk/rte.module.mk <http://rte.module.mk> | 9 ++++++---
>> >>>   1 file changed, 6 insertions(+), 3 deletions(-)
>> >>>
>> >>> diff --git a/mk/rte.module.mk <http://rte.module.mk> b/mk/rte.module.mk
>> <http://rte.module.mk>
>> >>> index 1ada528a0..e2e1af716 100644
>> >>> --- a/mk/rte.module.mk <http://rte.module.mk>
>> >>> +++ b/mk/rte.module.mk <http://rte.module.mk>
>> >>> @@ -39,6 +39,9 @@ _postinstall: build
>> >>>   .PHONY: build
>> >>>   build: _postbuild
>> >>>
>> >>> +# Allow kernel artifacts to be located in a different location that source
>> >>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>> >>> +
>> >>>   # Link all sources in build directory
>> >>>   %_link: FORCE
>> >>>     $(if $(call compare,$(notdir $*),$*),\
>> >>> @@ -48,7 +51,7 @@ build: _postbuild
>> >>>   # build module
>> >>>   $(MODULE).ko: $(SRCS_LINKS)
>> >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>> >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>> >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>> >>>             CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>> >>>
>> >>>   # install module in $(RTE_OUTPUT)/kmod
>> >>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>> >>>
>> >>>   # install module
>> >>>   modules_install:
>> >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>> >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>> >>>             modules_install
>> >>>
>> >>>   .PHONY: clean
>> >>> @@ -69,7 +72,7 @@ clean: _postclean
>> >>>   .PHONY: doclean
>> >>>   doclean:
>> >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>> >>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>> >>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>> >>>     @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>> >>>             if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>> >>>     @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>> >>>
>> > Regards,
>> >   Scott
>> >
>>
>>
> 

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-04-06 21:31             ` Ferruh Yigit
@ 2018-04-06 22:32               ` Scott Branden
  2018-04-10 14:59                 ` Ferruh Yigit
  0 siblings, 1 reply; 31+ messages in thread
From: Scott Branden @ 2018-04-06 22:32 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev



On 18-04-06 02:31 PM, Ferruh Yigit wrote:
> On 4/6/2018 7:10 PM, Scott Branden wrote:
>> Hi Ferruh,
>>
>> Somehow I did not receive your other email so Ajit fowarded it to me.  So I am
>> responding to it here.
>>
>> Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the location of
>> the output of the kernel artifacts, not the output of the DPDK build artifacts.
> Ahh, this makes more sense now J Thanks.
>
>> Here is an example to use RTE_KERNELDIR_OUT:
>>
>> export ARCH=arm64
>> export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu-
>> export CROSS=aarch64-linux-gnu-
>>
>> export RTE_KERNELDIR_OUT=~/test/linux-out
>> export RTE_KERNELDIR=~/test/linux
>> cd $RTE_KERNELDIR
>> make defconfig O=$RTE_KERNELDIR_OUT
>> make -j 8 O=$RTE_KERNELDIR_OUT
>>
>> cd ~/test/dpdk
>> make config T=arm64-stingray-linuxapp-gcc
>> make
> I guess using "~/test/linux-out" as RTE_KERNELDIR also works (because of
> "source" link), but your patch looks more proper way.
Actually, you may be correct.
Perhaps all this requires is a documentation change.
Does any of DPDK build system actually require to know where the kernel 
source directory is?
Or, does DPDK only require to know where the kernel artifacts exist (ie. 
generated headers)

Looking at the documentation it is a little confusing.  Each one 
describes something different.
guides/linux_gsg/build_dpdk.rst
99:    the ``RTE_KERNELDIR`` environment variable should be used to 
point the compilation at a copy of the kernel version to be used on the 
target machine.

guides/prog_guide/dev_kit_build_system.rst
297:*   RTE_KERNELDIR: This variable contains the absolute path to the 
kernel sources that will be used to compile the kernel modules.

build-sdk-quick.txt
24:    RTE_KERNELDIR    linux headers path

In guides/prog_guide/dev_kit_build_system.rst.  If "kernel sources" was 
changed to "linux headers" my change may not be needed.  I'm doing some 
more testing now with RTE_KERNELDIR set to linux-out in other DPDK builds.

> There are a few documents for build parameters, can you please update them too:
> doc/guides/prog_guide/dev_kit_build_system.rst
> doc/guides/linux_gsg/build_dpdk.rst <-- not sure about this one, please check
> doc/build-sdk-quick.txt  <-- this is "make help" output
>
>
>> Note:
>>
>> With this example you will likely hit a few compile errors as latest dpdk has
>> compile bugs with unused variables/type mismatches in the code.
> I didn't get the error, if you observe build error please report or better a
> patch to fix is always welcome :)
Yes - we have patches being created for 64-bit build warnings/errors 
that we will submit.
>
>> Regards,
>>
>>   Scott
>>
>>
>> On 18-04-05 11:58 AM, Ajit Khaparde wrote:
>>> Scott, are you looking at this?
>>>
>>> ---------- Forwarded message ----------
>>> From: *Ferruh Yigit* <ferruh.yigit@intel.com <mailto:ferruh.yigit@intel.com>>
>>> Date: Tue, Apr 3, 2018 at 7:18 AM
>>> Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output
>>> directory
>>> To: Scott Branden <scott.branden@broadcom.com
>>> <mailto:scott.branden@broadcom.com>>, Ajit Khaparde
>>> <ajit.khaparde@broadcom.com <mailto:ajit.khaparde@broadcom.com>>, dev@dpdk.org
>>> <mailto:dev@dpdk.org>
>>>
>>>
>>> On 3/30/2018 7:23 PM, Scott Branden wrote:
>>>> Hi Ferruh,
>>>>
>>>>
>>>> On 18-03-30 03:35 AM, Ferruh Yigit wrote:
>>>>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>>>>> From: Scott Branden <scott.branden@broadcom.com
>>> <mailto:scott.branden@broadcom.com>>
>>>>>> Allow kernel artifacts to be located in output directory specific
>>>>>> by RTE_KERNELDIR_OUT.
>>>>> How to use this variable, I tried following but kernel modules are still in
>>> same
>>>>> place:
>>>> export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
>>>> RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
>>> Please help me a little more, can you please list your commands?
>>>
>>> Before your patch, what I do:
>>>
>>> export RTE_KERNELDIR=~/development/linux/linux
>>> make defconfig
>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>> make DESTDIR=/tmp/for-scott install
>>>
>>> kernel modules are installed into /tmp/for-scott/lib/modules/`uname
>>> -r`/extra/dpdk/*.ko
>>>
>>> Here `uname -r` is wrong but your patch is not related this.
>>>
>>> I am using RTE_KERNELDIR a lot since I am compiling with various kernel
>>> versions, not seen .ko files goes into source folder, what is your command line?
>>>
>>>
>>>
>>> Or _after_ your patch:
>>> export RTE_KERNELDIR=~/development/linux/linux
>>> export RTE_KERNELDIR_OUT=/tmp/kmod
>>> make defconfig
>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>>
>>> Getting following build error:
>>> /bin/sh: scripts/mod/modpost: No such file or directory
>>> make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
>>> __modpost] Error 127
>>> make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
>>> make[5]: *** [Makefile:146: sub-make] Error 2
>>> make[4]: *** [../mk/rte.module.mk:54 <http://rte.module.mk:54>: igb_uio.ko]
>>> Error 2
>>>
>>> Can you please describe how this variable intended to be used?
>>>
>>>
>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>>>>>
>>>>> /tmp/kmod not created.
>>>>>
>>>>> And what we are fixing here, what was wrong with old code?
>>>> Old code puts the intermediate object files in the kernel source
>>>> directory.  This doesn't work when building an external module in
>>>> openembedded recipes.  We need the Makefile change to be able to able to
>>>> specify the kernel and output directories separately.
>>>>>> If RTE_KERNELDIR_OUT not specified than
>>>>>> source directory RTE_KERNEL is used.
>>>>> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are
>>> want
>>>>> to put artifacts into kernel source?
>>>> I just kept the default behaviour the same as what it does today.
>>>>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com
>>> <mailto:scott.branden@broadcom.com>>
>>>>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com
>>> <mailto:ajit.khaparde@broadcom.com>>
>>>>>> ---
>>>>>>     mk/rte.module.mk <http://rte.module.mk> | 9 ++++++---
>>>>>>     1 file changed, 6 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/mk/rte.module.mk <http://rte.module.mk> b/mk/rte.module.mk
>>> <http://rte.module.mk>
>>>>>> index 1ada528a0..e2e1af716 100644
>>>>>> --- a/mk/rte.module.mk <http://rte.module.mk>
>>>>>> +++ b/mk/rte.module.mk <http://rte.module.mk>
>>>>>> @@ -39,6 +39,9 @@ _postinstall: build
>>>>>>     .PHONY: build
>>>>>>     build: _postbuild
>>>>>>
>>>>>> +# Allow kernel artifacts to be located in a different location that source
>>>>>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>>>>>> +
>>>>>>     # Link all sources in build directory
>>>>>>     %_link: FORCE
>>>>>>       $(if $(call compare,$(notdir $*),$*),\
>>>>>> @@ -48,7 +51,7 @@ build: _postbuild
>>>>>>     # build module
>>>>>>     $(MODULE).ko: $(SRCS_LINKS)
>>>>>>       @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>               CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>>>>>>
>>>>>>     # install module in $(RTE_OUTPUT)/kmod
>>>>>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>>>>>>
>>>>>>     # install module
>>>>>>     modules_install:
>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>               modules_install
>>>>>>
>>>>>>     .PHONY: clean
>>>>>> @@ -69,7 +72,7 @@ clean: _postclean
>>>>>>     .PHONY: doclean
>>>>>>     doclean:
>>>>>>       @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>>>>>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>>>>>>       @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>>>>>>               if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>>>>>>       @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>>>>>>
>>>> Regards,
>>>>     Scott
>>>>
>>>

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

* [PATCH v4 0/3] bnxt patchset to support Stingray product family
  2018-03-30 10:35   ` Ferruh Yigit
  2018-03-30 18:24     ` Scott Branden
@ 2018-04-10  0:20     ` Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 1/3] introduce Broadcom Stingray Ajit Khaparde
                         ` (2 more replies)
  1 sibling, 3 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-10  0:20 UTC (permalink / raw)
  To: dev

Patchset adding support for Broadcom Stingray product family

Scott Branden (3):
  introduce Broadcom Stingray
  net/bnxt: add support for Stingray PF devices ids
  doc: add Broadcom Stingray SoC support to release notes

 config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++++
 doc/guides/nics/bnxt.rst                     |  6 +++---
 doc/guides/rel_notes/release_18_05.rst       | 15 ++++++++++++---
 drivers/net/bnxt/bnxt_ethdev.c               |  6 ++++++
 4 files changed, 37 insertions(+), 6 deletions(-)
 create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc

-- 
2.15.1 (Apple Git-101)

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

* [PATCH v4 1/3] introduce Broadcom Stingray
  2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
@ 2018-04-10  0:20       ` Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
  2 siblings, 0 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-10  0:20 UTC (permalink / raw)
  To: dev; +Cc: Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add Broadcom Stingray machine support based on armv8.

For product brief see:
https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++++
 doc/guides/nics/bnxt.rst                     |  6 +++---
 2 files changed, 19 insertions(+), 3 deletions(-)
 create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc

diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
new file mode 100644
index 000000000..999250723
--- /dev/null
+++ b/config/defconfig_arm64-stingray-linuxapp-gcc
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (C) Broadcom 2017-2018. All rights reserved.
+#
+
+#include "defconfig_arm64-armv8a-linuxapp-gcc"
+
+# Broadcom - Stingray
+CONFIG_RTE_MACHINE="armv8a"
+CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
+
+# Doesn't support NUMA
+CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
+CONFIG_RTE_LIBRTE_VHOST_NUMA=n
+
+CONFIG_RTE_EAL_IGB_UIO=y
+CONFIG_RTE_KNI_KMOD=n
diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
index 3ecd29dce..697b97e60 100644
--- a/doc/guides/nics/bnxt.rst
+++ b/doc/guides/nics/bnxt.rst
@@ -6,15 +6,15 @@ BNXT Poll Mode Driver
 
 The bnxt poll mode library (**librte_pmd_bnxt**) implements support for:
 
-  * **Broadcom NetXtreme-C®/NetXtreme-E® BCM5730X and BCM574XX family of
-    Ethernet Network Controllers**
+  * **Broadcom NetXtreme-C®/NetXtreme-E®/NetXtreme-S®
+    BCM5730X / BCM574XX / BCM58000 family of Ethernet Network Controllers**
 
     These adapters support Standards compliant 10/25/50/100Gbps 30MPPS
     full-duplex throughput.
 
     Information about the NetXtreme family of adapters can be found in the
     `NetXtreme® Brand section
-    <https://www.broadcom.com/products/ethernet-communication-and-switching?technology%5B%5D=88>`_
+    <https://www.broadcom.com/products/ethernet-connectivity/controllers/>`_
     of the `Broadcom website <http://www.broadcom.com/>`_.
 
   * **Broadcom StrataGX® BCM5871X Series of Communucations Processors**
-- 
2.15.1 (Apple Git-101)

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

* [PATCH v4 2/3] net/bnxt: add support for Stingray PF devices ids
  2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 1/3] introduce Broadcom Stingray Ajit Khaparde
@ 2018-04-10  0:20       ` Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
  2 siblings, 0 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-10  0:20 UTC (permalink / raw)
  To: dev; +Cc: Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add support for Stingray PF devices ids:
BCM58802 = 0xd802
BCM58804 = 0xd804
BCM58808 = 0x16f0

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 37585f319..deedd7119 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -69,6 +69,9 @@ int bnxt_logtype_driver;
 #define BROADCOM_DEV_ID_57407_MF 0x16ea
 #define BROADCOM_DEV_ID_57414_MF 0x16ec
 #define BROADCOM_DEV_ID_57416_MF 0x16ee
+#define BROADCOM_DEV_ID_58802 0xd802
+#define BROADCOM_DEV_ID_58804 0xd804
+#define BROADCOM_DEV_ID_58808 0x16f0
 
 static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,
@@ -107,6 +110,9 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57317_SFP) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57414_MF) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57416_MF) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58802) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58804) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58808) },
 	{ .vendor_id = 0, /* sentinel */ },
 };
 
-- 
2.15.1 (Apple Git-101)

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

* [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes
  2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 1/3] introduce Broadcom Stingray Ajit Khaparde
  2018-04-10  0:20       ` [PATCH v4 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
@ 2018-04-10  0:20       ` Ajit Khaparde
  2018-04-11 19:07         ` Ferruh Yigit
  2 siblings, 1 reply; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-10  0:20 UTC (permalink / raw)
  To: dev; +Cc: Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Update 18.05 release notes to indicate support for Broadcom Stingray
SoC support.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
---
 doc/guides/rel_notes/release_18_05.rst | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index 0f3d00972..88dcbca7e 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -41,6 +41,16 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray) **
+
+  The BCM58800 devices feature a NetXtreme E-Series advanced network controller, a high-performance
+  ARM CPU block, PCI Express (PCIe) Gen3 interfaces, key accelerators for compute offload and a high-
+  speed memory subsystem including L3 cache and DDR4 interfaces, all interconnected by a coherent
+  Network-on-chip (NOC) fabric.
+
+  The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster
+  configuration.
+
 * **Added RSS hash and key update to CXGBE PMD.**
 
   Support to update RSS hash and key has been added to CXGBE PMD.
@@ -158,11 +168,10 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_bus_vdev.so.1
      librte_cfgfile.so.2
      librte_cmdline.so.2
-   + librte_common_octeontx.so.1
      librte_cryptodev.so.4
      librte_distributor.so.1
-   + librte_eal.so.7
-   + librte_ethdev.so.9
+     librte_eal.so.6
+     librte_ethdev.so.8
      librte_eventdev.so.3
      librte_flow_classify.so.1
      librte_gro.so.1
-- 
2.15.1 (Apple Git-101)

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-04-06 22:32               ` Scott Branden
@ 2018-04-10 14:59                 ` Ferruh Yigit
  2018-04-10 20:30                   ` Scott Branden
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-04-10 14:59 UTC (permalink / raw)
  To: Scott Branden, Ajit Khaparde, dev

On 4/6/2018 11:32 PM, Scott Branden wrote:
> 
> 
> On 18-04-06 02:31 PM, Ferruh Yigit wrote:
>> On 4/6/2018 7:10 PM, Scott Branden wrote:
>>> Hi Ferruh,
>>>
>>> Somehow I did not receive your other email so Ajit fowarded it to me.  So I am
>>> responding to it here.
>>>
>>> Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the location of
>>> the output of the kernel artifacts, not the output of the DPDK build artifacts.
>> Ahh, this makes more sense now J Thanks.
>>
>>> Here is an example to use RTE_KERNELDIR_OUT:
>>>
>>> export ARCH=arm64
>>> export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu-
>>> export CROSS=aarch64-linux-gnu-
>>>
>>> export RTE_KERNELDIR_OUT=~/test/linux-out
>>> export RTE_KERNELDIR=~/test/linux
>>> cd $RTE_KERNELDIR
>>> make defconfig O=$RTE_KERNELDIR_OUT
>>> make -j 8 O=$RTE_KERNELDIR_OUT
>>>
>>> cd ~/test/dpdk
>>> make config T=arm64-stingray-linuxapp-gcc
>>> make
>> I guess using "~/test/linux-out" as RTE_KERNELDIR also works (because of
>> "source" link), but your patch looks more proper way.
> Actually, you may be correct.
> Perhaps all this requires is a documentation change.
> Does any of DPDK build system actually require to know where the kernel 
> source directory is?
> Or, does DPDK only require to know where the kernel artifacts exist (ie. 
> generated headers)

Both are required, kernel source is required because of some headers, there are
multiple components depends on kernel headers, also kernel artifacts are
required like kernel config mainly for building kernel modules.

> 
> Looking at the documentation it is a little confusing.  Each one 
> describes something different.
> guides/linux_gsg/build_dpdk.rst
> 99:    the ``RTE_KERNELDIR`` environment variable should be used to 
> point the compilation at a copy of the kernel version to be used on the 
> target machine.
> 
> guides/prog_guide/dev_kit_build_system.rst
> 297:*   RTE_KERNELDIR: This variable contains the absolute path to the 
> kernel sources that will be used to compile the kernel modules.
> 
> build-sdk-quick.txt
> 24:    RTE_KERNELDIR    linux headers path
> 
> In guides/prog_guide/dev_kit_build_system.rst.  If "kernel sources" was 
> changed to "linux headers" my change may not be needed.  I'm doing some 
> more testing now with RTE_KERNELDIR set to linux-out in other DPDK builds.

I believe it is not just "linux headers", it is more like "compiled kernel source"

> 
>> There are a few documents for build parameters, can you please update them too:
>> doc/guides/prog_guide/dev_kit_build_system.rst
>> doc/guides/linux_gsg/build_dpdk.rst <-- not sure about this one, please check
>> doc/build-sdk-quick.txt  <-- this is "make help" output
>>
>>
>>> Note:
>>>
>>> With this example you will likely hit a few compile errors as latest dpdk has
>>> compile bugs with unused variables/type mismatches in the code.
>> I didn't get the error, if you observe build error please report or better a
>> patch to fix is always welcome :)
> Yes - we have patches being created for 64-bit build warnings/errors 
> that we will submit.
>>
>>> Regards,
>>>
>>>   Scott
>>>
>>>
>>> On 18-04-05 11:58 AM, Ajit Khaparde wrote:
>>>> Scott, are you looking at this?
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: *Ferruh Yigit* <ferruh.yigit@intel.com <mailto:ferruh.yigit@intel.com>>
>>>> Date: Tue, Apr 3, 2018 at 7:18 AM
>>>> Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output
>>>> directory
>>>> To: Scott Branden <scott.branden@broadcom.com
>>>> <mailto:scott.branden@broadcom.com>>, Ajit Khaparde
>>>> <ajit.khaparde@broadcom.com <mailto:ajit.khaparde@broadcom.com>>, dev@dpdk.org
>>>> <mailto:dev@dpdk.org>
>>>>
>>>>
>>>> On 3/30/2018 7:23 PM, Scott Branden wrote:
>>>>> Hi Ferruh,
>>>>>
>>>>>
>>>>> On 18-03-30 03:35 AM, Ferruh Yigit wrote:
>>>>>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>>>>>> From: Scott Branden <scott.branden@broadcom.com
>>>> <mailto:scott.branden@broadcom.com>>
>>>>>>> Allow kernel artifacts to be located in output directory specific
>>>>>>> by RTE_KERNELDIR_OUT.
>>>>>> How to use this variable, I tried following but kernel modules are still in
>>>> same
>>>>>> place:
>>>>> export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
>>>>> RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
>>>> Please help me a little more, can you please list your commands?
>>>>
>>>> Before your patch, what I do:
>>>>
>>>> export RTE_KERNELDIR=~/development/linux/linux
>>>> make defconfig
>>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>>> make DESTDIR=/tmp/for-scott install
>>>>
>>>> kernel modules are installed into /tmp/for-scott/lib/modules/`uname
>>>> -r`/extra/dpdk/*.ko
>>>>
>>>> Here `uname -r` is wrong but your patch is not related this.
>>>>
>>>> I am using RTE_KERNELDIR a lot since I am compiling with various kernel
>>>> versions, not seen .ko files goes into source folder, what is your command line?
>>>>
>>>>
>>>>
>>>> Or _after_ your patch:
>>>> export RTE_KERNELDIR=~/development/linux/linux
>>>> export RTE_KERNELDIR_OUT=/tmp/kmod
>>>> make defconfig
>>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>>>
>>>> Getting following build error:
>>>> /bin/sh: scripts/mod/modpost: No such file or directory
>>>> make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
>>>> __modpost] Error 127
>>>> make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
>>>> make[5]: *** [Makefile:146: sub-make] Error 2
>>>> make[4]: *** [../mk/rte.module.mk:54 <http://rte.module.mk:54>: igb_uio.ko]
>>>> Error 2
>>>>
>>>> Can you please describe how this variable intended to be used?
>>>>
>>>>
>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>>>>>>
>>>>>> /tmp/kmod not created.
>>>>>>
>>>>>> And what we are fixing here, what was wrong with old code?
>>>>> Old code puts the intermediate object files in the kernel source
>>>>> directory.  This doesn't work when building an external module in
>>>>> openembedded recipes.  We need the Makefile change to be able to able to
>>>>> specify the kernel and output directories separately.
>>>>>>> If RTE_KERNELDIR_OUT not specified than
>>>>>>> source directory RTE_KERNEL is used.
>>>>>> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are
>>>> want
>>>>>> to put artifacts into kernel source?
>>>>> I just kept the default behaviour the same as what it does today.
>>>>>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com
>>>> <mailto:scott.branden@broadcom.com>>
>>>>>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com
>>>> <mailto:ajit.khaparde@broadcom.com>>
>>>>>>> ---
>>>>>>>     mk/rte.module.mk <http://rte.module.mk> | 9 ++++++---
>>>>>>>     1 file changed, 6 insertions(+), 3 deletions(-)
>>>>>>>
>>>>>>> diff --git a/mk/rte.module.mk <http://rte.module.mk> b/mk/rte.module.mk
>>>> <http://rte.module.mk>
>>>>>>> index 1ada528a0..e2e1af716 100644
>>>>>>> --- a/mk/rte.module.mk <http://rte.module.mk>
>>>>>>> +++ b/mk/rte.module.mk <http://rte.module.mk>
>>>>>>> @@ -39,6 +39,9 @@ _postinstall: build
>>>>>>>     .PHONY: build
>>>>>>>     build: _postbuild
>>>>>>>
>>>>>>> +# Allow kernel artifacts to be located in a different location that source
>>>>>>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>>>>>>> +
>>>>>>>     # Link all sources in build directory
>>>>>>>     %_link: FORCE
>>>>>>>       $(if $(call compare,$(notdir $*),$*),\
>>>>>>> @@ -48,7 +51,7 @@ build: _postbuild
>>>>>>>     # build module
>>>>>>>     $(MODULE).ko: $(SRCS_LINKS)
>>>>>>>       @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>>               CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>>>>>>>
>>>>>>>     # install module in $(RTE_OUTPUT)/kmod
>>>>>>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>>>>>>>
>>>>>>>     # install module
>>>>>>>     modules_install:
>>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>>               modules_install
>>>>>>>
>>>>>>>     .PHONY: clean
>>>>>>> @@ -69,7 +72,7 @@ clean: _postclean
>>>>>>>     .PHONY: doclean
>>>>>>>     doclean:
>>>>>>>       @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>>>>>>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>>>>>>>       @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>>>>>>>               if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>>>>>>>       @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>>>>>>>
>>>>> Regards,
>>>>>     Scott
>>>>>
>>>>
> 

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

* Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output directory
  2018-04-10 14:59                 ` Ferruh Yigit
@ 2018-04-10 20:30                   ` Scott Branden
  0 siblings, 0 replies; 31+ messages in thread
From: Scott Branden @ 2018-04-10 20:30 UTC (permalink / raw)
  To: Ferruh Yigit, Ajit Khaparde, dev

Hi Ferruh,

We dropped this patch from the series - comment inline.


On 18-04-10 07:59 AM, Ferruh Yigit wrote:
> On 4/6/2018 11:32 PM, Scott Branden wrote:
>>
>> On 18-04-06 02:31 PM, Ferruh Yigit wrote:
>>> On 4/6/2018 7:10 PM, Scott Branden wrote:
>>>> Hi Ferruh,
>>>>
>>>> Somehow I did not receive your other email so Ajit fowarded it to me.  So I am
>>>> responding to it here.
>>>>
>>>> Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the location of
>>>> the output of the kernel artifacts, not the output of the DPDK build artifacts.
>>> Ahh, this makes more sense now J Thanks.
>>>
>>>> Here is an example to use RTE_KERNELDIR_OUT:
>>>>
>>>> export ARCH=arm64
>>>> export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu-
>>>> export CROSS=aarch64-linux-gnu-
>>>>
>>>> export RTE_KERNELDIR_OUT=~/test/linux-out
>>>> export RTE_KERNELDIR=~/test/linux
>>>> cd $RTE_KERNELDIR
>>>> make defconfig O=$RTE_KERNELDIR_OUT
>>>> make -j 8 O=$RTE_KERNELDIR_OUT
>>>>
>>>> cd ~/test/dpdk
>>>> make config T=arm64-stingray-linuxapp-gcc
>>>> make
>>> I guess using "~/test/linux-out" as RTE_KERNELDIR also works (because of
>>> "source" link), but your patch looks more proper way.
>> Actually, you may be correct.
>> Perhaps all this requires is a documentation change.
>> Does any of DPDK build system actually require to know where the kernel
>> source directory is?
>> Or, does DPDK only require to know where the kernel artifacts exist (ie.
>> generated headers)
> Both are required, kernel source is required because of some headers, there are
> multiple components depends on kernel headers, also kernel artifacts are
> required like kernel config mainly for building kernel modules.
>> Looking at the documentation it is a little confusing.  Each one
>> describes something different.
>> guides/linux_gsg/build_dpdk.rst
>> 99:    the ``RTE_KERNELDIR`` environment variable should be used to
>> point the compilation at a copy of the kernel version to be used on the
>> target machine.
>>
>> guides/prog_guide/dev_kit_build_system.rst
>> 297:*   RTE_KERNELDIR: This variable contains the absolute path to the
>> kernel sources that will be used to compile the kernel modules.
>>
>> build-sdk-quick.txt
>> 24:    RTE_KERNELDIR    linux headers path
>>
>> In guides/prog_guide/dev_kit_build_system.rst.  If "kernel sources" was
>> changed to "linux headers" my change may not be needed.  I'm doing some
>> more testing now with RTE_KERNELDIR set to linux-out in other DPDK builds.
> I believe it is not just "linux headers", it is more like "compiled kernel source"
Yes - everything is provided in the linux-out directory.
I have no need for this patch and we have dropped it from the patch series.
Setting RTE_KERNELDIR to the linux-out directory allows DPDK to build.
>
>>> There are a few documents for build parameters, can you please update them too:
>>> doc/guides/prog_guide/dev_kit_build_system.rst
>>> doc/guides/linux_gsg/build_dpdk.rst <-- not sure about this one, please check
>>> doc/build-sdk-quick.txt  <-- this is "make help" output
>>>
>>>
>>>> Note:
>>>>
>>>> With this example you will likely hit a few compile errors as latest dpdk has
>>>> compile bugs with unused variables/type mismatches in the code.
>>> I didn't get the error, if you observe build error please report or better a
>>> patch to fix is always welcome :)
>> Yes - we have patches being created for 64-bit build warnings/errors
>> that we will submit.
>>>> Regards,
>>>>
>>>>    Scott
>>>>
>>>>
>>>> On 18-04-05 11:58 AM, Ajit Khaparde wrote:
>>>>> Scott, are you looking at this?
>>>>>
>>>>> ---------- Forwarded message ----------
>>>>> From: *Ferruh Yigit* <ferruh.yigit@intel.com <mailto:ferruh.yigit@intel.com>>
>>>>> Date: Tue, Apr 3, 2018 at 7:18 AM
>>>>> Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in output
>>>>> directory
>>>>> To: Scott Branden <scott.branden@broadcom.com
>>>>> <mailto:scott.branden@broadcom.com>>, Ajit Khaparde
>>>>> <ajit.khaparde@broadcom.com <mailto:ajit.khaparde@broadcom.com>>, dev@dpdk.org
>>>>> <mailto:dev@dpdk.org>
>>>>>
>>>>>
>>>>> On 3/30/2018 7:23 PM, Scott Branden wrote:
>>>>>> Hi Ferruh,
>>>>>>
>>>>>>
>>>>>> On 18-03-30 03:35 AM, Ferruh Yigit wrote:
>>>>>>> On 3/21/2018 6:06 PM, Ajit Khaparde wrote:
>>>>>>>> From: Scott Branden <scott.branden@broadcom.com
>>>>> <mailto:scott.branden@broadcom.com>>
>>>>>>>> Allow kernel artifacts to be located in output directory specific
>>>>>>>> by RTE_KERNELDIR_OUT.
>>>>>>> How to use this variable, I tried following but kernel modules are still in
>>>>> same
>>>>>>> place:
>>>>>> export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine.
>>>>>> RTE_KERNELDIR already exists in Makefile.  Are you able to override it?
>>>>> Please help me a little more, can you please list your commands?
>>>>>
>>>>> Before your patch, what I do:
>>>>>
>>>>> export RTE_KERNELDIR=~/development/linux/linux
>>>>> make defconfig
>>>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>>>> make DESTDIR=/tmp/for-scott install
>>>>>
>>>>> kernel modules are installed into /tmp/for-scott/lib/modules/`uname
>>>>> -r`/extra/dpdk/*.ko
>>>>>
>>>>> Here `uname -r` is wrong but your patch is not related this.
>>>>>
>>>>> I am using RTE_KERNELDIR a lot since I am compiling with various kernel
>>>>> versions, not seen .ko files goes into source folder, what is your command line?
>>>>>
>>>>>
>>>>>
>>>>> Or _after_ your patch:
>>>>> export RTE_KERNELDIR=~/development/linux/linux
>>>>> export RTE_KERNELDIR_OUT=/tmp/kmod
>>>>> make defconfig
>>>>> make    <--- After this kernel modules in ./build/kmod/*.ko
>>>>>
>>>>> Getting following build error:
>>>>> /bin/sh: scripts/mod/modpost: No such file or directory
>>>>> make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92:
>>>>> __modpost] Error 127
>>>>> make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2
>>>>> make[5]: *** [Makefile:146: sub-make] Error 2
>>>>> make[4]: *** [../mk/rte.module.mk:54 <http://rte.module.mk:54>: igb_uio.ko]
>>>>> Error 2
>>>>>
>>>>> Can you please describe how this variable intended to be used?
>>>>>
>>>>>
>>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh
>>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install
>>>>>>> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh modules_install
>>>>>>>
>>>>>>> /tmp/kmod not created.
>>>>>>>
>>>>>>> And what we are fixing here, what was wrong with old code?
>>>>>> Old code puts the intermediate object files in the kernel source
>>>>>> directory.  This doesn't work when building an external module in
>>>>>> openembedded recipes.  We need the Makefile change to be able to able to
>>>>>> specify the kernel and output directories separately.
>>>>>>>> If RTE_KERNELDIR_OUT not specified than
>>>>>>>> source directory RTE_KERNEL is used.
>>>>>>> ${RTE_KERNELDIR} is used as external Linux kernel source folder, why we are
>>>>> want
>>>>>>> to put artifacts into kernel source?
>>>>>> I just kept the default behaviour the same as what it does today.
>>>>>>>> Signed-off-by: Scott Branden <scott.branden@broadcom.com
>>>>> <mailto:scott.branden@broadcom.com>>
>>>>>>>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com
>>>>> <mailto:ajit.khaparde@broadcom.com>>
>>>>>>>> ---
>>>>>>>>      mk/rte.module.mk <http://rte.module.mk> | 9 ++++++---
>>>>>>>>      1 file changed, 6 insertions(+), 3 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/mk/rte.module.mk <http://rte.module.mk> b/mk/rte.module.mk
>>>>> <http://rte.module.mk>
>>>>>>>> index 1ada528a0..e2e1af716 100644
>>>>>>>> --- a/mk/rte.module.mk <http://rte.module.mk>
>>>>>>>> +++ b/mk/rte.module.mk <http://rte.module.mk>
>>>>>>>> @@ -39,6 +39,9 @@ _postinstall: build
>>>>>>>>      .PHONY: build
>>>>>>>>      build: _postbuild
>>>>>>>>
>>>>>>>> +# Allow kernel artifacts to be located in a different location that source
>>>>>>>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR}
>>>>>>>> +
>>>>>>>>      # Link all sources in build directory
>>>>>>>>      %_link: FORCE
>>>>>>>>        $(if $(call compare,$(notdir $*),$*),\
>>>>>>>> @@ -48,7 +51,7 @@ build: _postbuild
>>>>>>>>      # build module
>>>>>>>>      $(MODULE).ko: $(SRCS_LINKS)
>>>>>>>>        @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>>>                CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
>>>>>>>>
>>>>>>>>      # install module in $(RTE_OUTPUT)/kmod
>>>>>>>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
>>>>>>>>
>>>>>>>>      # install module
>>>>>>>>      modules_install:
>>>>>>>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
>>>>>>>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \
>>>>>>>>                modules_install
>>>>>>>>
>>>>>>>>      .PHONY: clean
>>>>>>>> @@ -69,7 +72,7 @@ clean: _postclean
>>>>>>>>      .PHONY: doclean
>>>>>>>>      doclean:
>>>>>>>>        @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
>>>>>>>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
>>>>>>>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean
>>>>>>>>        @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
>>>>>>>>                if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
>>>>>>>>        @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
>>>>>>>>
>>>>>> Regards,
>>>>>>      Scott
>>>>>>

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

* Re: [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes
  2018-04-10  0:20       ` [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
@ 2018-04-11 19:07         ` Ferruh Yigit
  2018-04-13 21:07           ` [PATCH v5 1/3] introduce Broadcom Stingray Ajit Khaparde
  0 siblings, 1 reply; 31+ messages in thread
From: Ferruh Yigit @ 2018-04-11 19:07 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Scott Branden

On 4/10/2018 1:20 AM, Ajit Khaparde wrote:
> @@ -158,11 +168,10 @@ The libraries prepended with a plus sign were incremented in this version.
>       librte_bus_vdev.so.1
>       librte_cfgfile.so.2
>       librte_cmdline.so.2
> -   + librte_common_octeontx.so.1
>       librte_cryptodev.so.4
>       librte_distributor.so.1
> -   + librte_eal.so.7
> -   + librte_ethdev.so.9
> +     librte_eal.so.6
> +     librte_ethdev.so.8
>       librte_eventdev.so.3
>       librte_flow_classify.so.1
>       librte_gro.so.1

I guess these changes are unintentional, looks like git artifacts, can you
please send a new version?

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

* [PATCH v5 1/3] introduce Broadcom Stingray
  2018-04-11 19:07         ` Ferruh Yigit
@ 2018-04-13 21:07           ` Ajit Khaparde
  2018-04-13 21:07             ` [PATCH v5 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
                               ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-13 21:07 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add Broadcom Stingray machine support based on armv8.

For product brief see:
https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 config/defconfig_arm64-stingray-linuxapp-gcc | 16 ++++++++++++++++
 doc/guides/nics/bnxt.rst                     |  6 +++---
 2 files changed, 19 insertions(+), 3 deletions(-)
 create mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc

diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
new file mode 100644
index 000000000..999250723
--- /dev/null
+++ b/config/defconfig_arm64-stingray-linuxapp-gcc
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (C) Broadcom 2017-2018. All rights reserved.
+#
+
+#include "defconfig_arm64-armv8a-linuxapp-gcc"
+
+# Broadcom - Stingray
+CONFIG_RTE_MACHINE="armv8a"
+CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
+
+# Doesn't support NUMA
+CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
+CONFIG_RTE_LIBRTE_VHOST_NUMA=n
+
+CONFIG_RTE_EAL_IGB_UIO=y
+CONFIG_RTE_KNI_KMOD=n
diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
index 3ecd29dce..697b97e60 100644
--- a/doc/guides/nics/bnxt.rst
+++ b/doc/guides/nics/bnxt.rst
@@ -6,15 +6,15 @@ BNXT Poll Mode Driver
 
 The bnxt poll mode library (**librte_pmd_bnxt**) implements support for:
 
-  * **Broadcom NetXtreme-C®/NetXtreme-E® BCM5730X and BCM574XX family of
-    Ethernet Network Controllers**
+  * **Broadcom NetXtreme-C®/NetXtreme-E®/NetXtreme-S®
+    BCM5730X / BCM574XX / BCM58000 family of Ethernet Network Controllers**
 
     These adapters support Standards compliant 10/25/50/100Gbps 30MPPS
     full-duplex throughput.
 
     Information about the NetXtreme family of adapters can be found in the
     `NetXtreme® Brand section
-    <https://www.broadcom.com/products/ethernet-communication-and-switching?technology%5B%5D=88>`_
+    <https://www.broadcom.com/products/ethernet-connectivity/controllers/>`_
     of the `Broadcom website <http://www.broadcom.com/>`_.
 
   * **Broadcom StrataGX® BCM5871X Series of Communucations Processors**
-- 
2.15.1 (Apple Git-101)

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

* [PATCH v5 2/3] net/bnxt: add support for Stingray PF devices ids
  2018-04-13 21:07           ` [PATCH v5 1/3] introduce Broadcom Stingray Ajit Khaparde
@ 2018-04-13 21:07             ` Ajit Khaparde
  2018-04-13 21:07             ` [PATCH v5 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
  2018-04-13 23:07             ` [PATCH v5 1/3] introduce Broadcom Stingray Ferruh Yigit
  2 siblings, 0 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-13 21:07 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

From: Scott Branden <scott.branden@broadcom.com>

Add support for Stingray PF devices ids:
BCM58802 = 0xd802
BCM58804 = 0xd804
BCM58808 = 0x16f0

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index a856c7e0e..1d4ff54b7 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -69,6 +69,9 @@ int bnxt_logtype_driver;
 #define BROADCOM_DEV_ID_57407_MF 0x16ea
 #define BROADCOM_DEV_ID_57414_MF 0x16ec
 #define BROADCOM_DEV_ID_57416_MF 0x16ee
+#define BROADCOM_DEV_ID_58802 0xd802
+#define BROADCOM_DEV_ID_58804 0xd804
+#define BROADCOM_DEV_ID_58808 0x16f0
 
 static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,
@@ -107,6 +110,9 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57317_SFP) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57414_MF) },
 	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_57416_MF) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58802) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58804) },
+	{ RTE_PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, BROADCOM_DEV_ID_58808) },
 	{ .vendor_id = 0, /* sentinel */ },
 };
 
-- 
2.15.1 (Apple Git-101)

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

* [PATCH v5 3/3] doc: add Broadcom Stingray SoC support to release notes
  2018-04-13 21:07           ` [PATCH v5 1/3] introduce Broadcom Stingray Ajit Khaparde
  2018-04-13 21:07             ` [PATCH v5 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
@ 2018-04-13 21:07             ` Ajit Khaparde
  2018-04-13 23:07             ` [PATCH v5 1/3] introduce Broadcom Stingray Ferruh Yigit
  2 siblings, 0 replies; 31+ messages in thread
From: Ajit Khaparde @ 2018-04-13 21:07 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Scott Branden

Update 18.05 release notes to indicate support for Broadcom Stingray
SoC support.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 doc/guides/rel_notes/release_18_05.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index 6af711672..f6b4d67f1 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -46,6 +46,16 @@ New Features
   Applications can now query drivers for device-tuned values of
   ring sizes, burst sizes, and number of queues.
 
+* **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray) **
+
+  The BCM58800 devices feature a NetXtreme E-Series advanced network controller, a high-performance
+  ARM CPU block, PCI Express (PCIe) Gen3 interfaces, key accelerators for compute offload and a high-
+  speed memory subsystem including L3 cache and DDR4 interfaces, all interconnected by a coherent
+  Network-on-chip (NOC) fabric.
+
+  The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster
+  configuration.
+
 * **Added RSS hash and key update to CXGBE PMD.**
 
   Support to update RSS hash and key has been added to CXGBE PMD.
-- 
2.15.1 (Apple Git-101)

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

* Re: [PATCH v5 1/3] introduce Broadcom Stingray
  2018-04-13 21:07           ` [PATCH v5 1/3] introduce Broadcom Stingray Ajit Khaparde
  2018-04-13 21:07             ` [PATCH v5 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
  2018-04-13 21:07             ` [PATCH v5 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
@ 2018-04-13 23:07             ` Ferruh Yigit
  2 siblings, 0 replies; 31+ messages in thread
From: Ferruh Yigit @ 2018-04-13 23:07 UTC (permalink / raw)
  To: Ajit Khaparde, dev; +Cc: Scott Branden

On 4/13/2018 10:07 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden@broadcom.com>
> 
> Add Broadcom Stingray machine support based on armv8.
> 
> For product brief see:
> https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm58800
> 
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>

Series applied to dpdk-next-net/master, thanks.

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

end of thread, other threads:[~2018-04-13 23:07 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-21 18:06 [PATCH 0/4] bnxt patchset Ajit Khaparde
2018-03-21 18:06 ` [PATCH 1/4] introduce Broadcom Stingray Ajit Khaparde
2018-03-30 10:34   ` Ferruh Yigit
2018-03-30 18:54     ` Scott Branden
2018-03-21 18:06 ` [PATCH 2/4] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
2018-03-30 10:35   ` Ferruh Yigit
2018-03-30 18:24     ` Scott Branden
2018-04-10  0:20     ` [PATCH v4 0/3] bnxt patchset to support Stingray product family Ajit Khaparde
2018-04-10  0:20       ` [PATCH v4 1/3] introduce Broadcom Stingray Ajit Khaparde
2018-04-10  0:20       ` [PATCH v4 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
2018-04-10  0:20       ` [PATCH v4 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
2018-04-11 19:07         ` Ferruh Yigit
2018-04-13 21:07           ` [PATCH v5 1/3] introduce Broadcom Stingray Ajit Khaparde
2018-04-13 21:07             ` [PATCH v5 2/3] net/bnxt: add support for Stingray PF devices ids Ajit Khaparde
2018-04-13 21:07             ` [PATCH v5 3/3] doc: add Broadcom Stingray SoC support to release notes Ajit Khaparde
2018-04-13 23:07             ` [PATCH v5 1/3] introduce Broadcom Stingray Ferruh Yigit
2018-03-21 18:06 ` [PATCH 3/4] mk: allow kernel artifacts to be located in output directory Ajit Khaparde
2018-03-30 10:35   ` Ferruh Yigit
2018-03-30 18:23     ` Scott Branden
2018-04-03 14:18       ` Ferruh Yigit
     [not found]         ` <CACZ4nhuwOp99YiaD75TzQ1igPgnjsayqHLnXyaNmmpySVZefPA@mail.gmail.com>
2018-04-06 18:10           ` Scott Branden
2018-04-06 21:31             ` Ferruh Yigit
2018-04-06 22:32               ` Scott Branden
2018-04-10 14:59                 ` Ferruh Yigit
2018-04-10 20:30                   ` Scott Branden
2018-03-21 18:06 ` [PATCH 4/4] igb_uio: bind error if pcie bridge Ajit Khaparde
2018-03-26 17:24   ` Ferruh Yigit
2018-03-26 18:05     ` Scott Branden
2018-03-26 18:20       ` Ferruh Yigit
2018-03-26 19:13         ` Scott Branden
2018-03-26 20:43         ` [PATCH v2] " Ajit Khaparde

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.