diff mbox

[v2,2/3] package/openpowerlink2: add drivers packages

Message ID 1430494560-5196-2-git-send-email-romain.naour@openwide.fr
State Superseded
Headers show

Commit Message

Romain Naour May 1, 2015, 3:35 p.m. UTC
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
v2: s/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS/
    The kernel module wasn't build due to a typo in the kconfig variable.
    rename openpowerlink2-pcap-drivers to openpowerlink2-pcap-daemon.
---
 package/openpowerlink2/Config.in                   |  1 +
 .../openpowerlink2-drivers/Config.in               |  3 ++
 .../openpowerlink2-drivers.mk                      |  2 +
 .../openpowerlink2-kernel-drivers/Config.in        | 33 +++++++++++++++
 .../openpowerlink2-kernel-drivers.mk               | 48 ++++++++++++++++++++++
 .../openpowerlink2-pcap-daemon/Config.in           | 12 ++++++
 .../openpowerlink2-pcap-daemon.mk                  | 34 +++++++++++++++
 .../openpowerlink2/openpowerlink2-stack/Config.in  |  2 +
 package/openpowerlink2/openpowerlink2.mk           |  1 +
 9 files changed, 136 insertions(+)
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/Config.in
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
 create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk

Comments

Arnout Vandecappelle May 2, 2015, 3:12 p.m. UTC | #1
On 01/05/15 17:35, Romain Naour wrote:
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
> v2: s/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS/
>     The kernel module wasn't build due to a typo in the kconfig variable.
>     rename openpowerlink2-pcap-drivers to openpowerlink2-pcap-daemon.
> ---
>  package/openpowerlink2/Config.in                   |  1 +
>  .../openpowerlink2-drivers/Config.in               |  3 ++
>  .../openpowerlink2-drivers.mk                      |  2 +
>  .../openpowerlink2-kernel-drivers/Config.in        | 33 +++++++++++++++
>  .../openpowerlink2-kernel-drivers.mk               | 48 ++++++++++++++++++++++
>  .../openpowerlink2-pcap-daemon/Config.in           | 12 ++++++
>  .../openpowerlink2-pcap-daemon.mk                  | 34 +++++++++++++++
>  .../openpowerlink2/openpowerlink2-stack/Config.in  |  2 +
>  package/openpowerlink2/openpowerlink2.mk           |  1 +

 Again, this should be split into one patch per package, and without subdirectory.

>  9 files changed, 136 insertions(+)
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/Config.in
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
> 
> diff --git a/package/openpowerlink2/Config.in b/package/openpowerlink2/Config.in
> index 8e61a7d..c651031 100644
> --- a/package/openpowerlink2/Config.in
> +++ b/package/openpowerlink2/Config.in
> @@ -35,6 +35,7 @@ choice
>  
>  endchoice
>  
> +source "package/openpowerlink2/openpowerlink2-drivers/Config.in"
>  source "package/openpowerlink2/openpowerlink2-stack/Config.in"

 It doesn't make sense to put the drivers before the stack, if you first have to
go to the stack to select the option that makes it possible to select drivers...
So IMHO this is a case were we can break alphabetical ordering.

>  
>  config BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL
> diff --git a/package/openpowerlink2/openpowerlink2-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/Config.in
> new file mode 100644
> index 0000000..b9239ae
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/Config.in
> @@ -0,0 +1,3 @@
> +
> +source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in"
> +source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in"

 This extra config file and non-package package isn't needed. So just make one
patch to add -kernel-drivers, and another patch to add -pcap-daemon.

> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
> new file mode 100644
> index 0000000..ab5cd1c
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
> @@ -0,0 +1,2 @@
> +
> +include $(sort $(wildcard package/openpowerlink2/openpowerlink2-drivers/*/*.mk))
> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
> new file mode 100644
> index 0000000..461504c
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
> @@ -0,0 +1,33 @@
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
> +	bool "openpowerlink kernel stack"
> +	depends on BR2_LINUX_KERNEL
> +	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB

 That can't be right, you have both a depends here and a select in
BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB. Kconfig should error on that.

> +	help
> +	  The openPOWERLINK stack is implemented as Linux kernel module.
> +	  This solution provides the best performance, but is limited to
> +	  the available openPOWERLINK network drivers.

 This sentence should go to the choice in the stack.

 Perhaps the help text should also mention that the user is responsible for
making sure that the 'normal' driver for the ethernet chip isn't enabled or loaded.

> +
> +if BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
> +
> +choice
> +	prompt "select Ethernet Powerlink Driver"

 Are they really mutually exclusive?

> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_82573
> +	bool "Intel 82573"
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_8255x
> +	bool "Intel 8255x"
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_I210
> +	bool "Intel I210"
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8111
> +	bool "Realtek RTL-8111/8168"
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8139
> +	bool "Realtek RTL-8139"
> +
> +endchoice
> +
> +endif # BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
> new file mode 100644
> index 0000000..a4470d8
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
> @@ -0,0 +1,48 @@
> +################################################################################
> +#
> +# openpowerlink2-kernel-drivers
> +#
> +################################################################################
> +
> +OPENPOWERLINK2_KERNEL_DRIVERS_VERSION = $(OPENPOWERLINK2_VERSION)
> +
> +OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE = $(OPENPOWERLINK2_LICENSE)
> +OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
> +
> +# We want to use the same archive for all sub-packages.
> +OPENPOWERLINK2_KERNEL_DRIVERS_SOURCE =
> +OPENPOWERLINK2_KERNEL_DRIVERS_DEPENDENCIES = linux openpowerlink2-stack
> +
> +define OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK
> +	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_KERNEL_DRIVERS_DIR)/src
> +endef
> +
> +OPENPOWERLINK2_KERNEL_DRIVERS_POST_EXTRACT_HOOKS += \
> +	OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK

 Same here for extracting instead of symlinking, but I guess here you need just
src/drivers/linux/drv_kernelmod_edrv.

> +
> +OPENPOWERLINK2_KERNEL_DRIVERS_SUBDIR = src/drivers/linux/drv_kernelmod_edrv
> +
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS = \
> +	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL)) \
> +	-DCFG_KERNEL_DIR=$(LINUX_DIR) \
> +	-DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=ON
> +else
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=OFF

 For consistency, it would be better to use the same $(if ...) construct that
you use in -stack.

 BTW, is there no corresponding option for CN?

> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_82573),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=82573
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_8255x),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8255x
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_I210),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=I210
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8139),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8139
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8111),y)
> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8111
> +endif
> +
> +$(eval $(cmake-package))
> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
> new file mode 100644
> index 0000000..896152e
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
> @@ -0,0 +1,12 @@
> +
> +config BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
> +	bool "openpowerlink userspace (PCAP) stack"
> +	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
> +	select BR2_PACKAGE_LIBPCAP
> +	help
> +	  The Linux userspace implementation of the openPOWERLINK stack
> +	  provides all functions for a software based POWERLINK solution
> +	  running as Linux userspace application. The stack uses the
> +	  libpcap library for accessing the network interface and is
> +	  therefore totally independant of the used network card and
                            independent

> +	  driver.
> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
> new file mode 100644
> index 0000000..cc28d66
> --- /dev/null
> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
> @@ -0,0 +1,34 @@
> +################################################################################
> +#
> +# openpowerlink2-pcap-daemon
> +#
> +################################################################################
> +
> +OPENPOWERLINK2_PCAP_DAEMON_VERSION = $(OPENPOWERLINK2_VERSION)
> +
> +OPENPOWERLINK2_PCAP_DAEMON_LICENSE = $(OPENPOWERLINK2_LICENSE)
> +OPENPOWERLINK2_PCAP_DAEMON_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
> +
> +# We want to use the same archive for all sub-packages.
> +OPENPOWERLINK2_PCAP_DAEMON_SOURCE =
> +OPENPOWERLINK2_PCAP_DAEMON_DEPENDENCIES = libpcap openpowerlink2-stack
> +
> +define OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
> +	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_PCAP_DAEMON_DIR)/src
> +endef
> +
> +OPENPOWERLINK2_PCAP_DAEMON_POST_EXTRACT_HOOKS += \
> +	OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
> +
> +OPENPOWERLINK2_PCAP_DAEMON_SUBDIR = src/drivers/linux/drv_daemon_pcap
> +
> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS = \
> +	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL))
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=ON
> +else
> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=OFF
> +endif

 Same here about the $(if).

 Since it's used so often, perhaps it's better to define a global

OPENPOWERLINK2_MN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK2_MN),ON,OFF)
OPENPOWERLINK2_CN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK2_CN),ON,OFF)

> +
> +$(eval $(cmake-package))
> diff --git a/package/openpowerlink2/openpowerlink2-stack/Config.in b/package/openpowerlink2/openpowerlink2-stack/Config.in
> index c3ddf47..f73d8c8 100644
> --- a/package/openpowerlink2/openpowerlink2-stack/Config.in
> +++ b/package/openpowerlink2/openpowerlink2-stack/Config.in
> @@ -13,6 +13,7 @@ config BR2_PACKAGE_OPENPOWERLINK2_STACK_MONOLITHIC_USER_STACK_LIB
>  config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
>  	bool "build EPL stack as linux userspace pcap daemon."
>  	select BR2_PACKAGE_LIBPCAP

 Does the -stack use LIBPCAP directly in this case? If not, this select
shouldn't be there.

 Regards,
 Arnout

> +	select BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
>  	help
>  	  Compile openPOWERLINK application library which contains the
>  	  interface to a Linux user space driver, and the Linux user space
> @@ -23,6 +24,7 @@ config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
>  config BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB
>  	bool "build EPL stack as linux kernelspace module."
>  	depends on BR2_LINUX_KERNEL # openpowerlink-kernel-driver
> +	select BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
>  	help
>  	  Compile openPOWERLINK application library which contains the
>  	  interface to a Linux kernel space driver. It is used together
> diff --git a/package/openpowerlink2/openpowerlink2.mk b/package/openpowerlink2/openpowerlink2.mk
> index 82c4277..144fa98 100644
> --- a/package/openpowerlink2/openpowerlink2.mk
> +++ b/package/openpowerlink2/openpowerlink2.mk
> @@ -14,4 +14,5 @@ OPENPOWERLINK2_LICENSE_FILES = license.md
>  
>  $(eval $(generic-package))
>  
> +include package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>  include package/openpowerlink2/openpowerlink2-stack/openpowerlink2-stack.mk
>
Romain Naour May 7, 2015, 2:46 p.m. UTC | #2
Hi Arnout,

Le 02/05/2015 17:12, Arnout Vandecappelle a écrit :
> On 01/05/15 17:35, Romain Naour wrote:
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>> ---
>> v2: s/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER/BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS/
>>     The kernel module wasn't build due to a typo in the kconfig variable.
>>     rename openpowerlink2-pcap-drivers to openpowerlink2-pcap-daemon.
>> ---
>>  package/openpowerlink2/Config.in                   |  1 +
>>  .../openpowerlink2-drivers/Config.in               |  3 ++
>>  .../openpowerlink2-drivers.mk                      |  2 +
>>  .../openpowerlink2-kernel-drivers/Config.in        | 33 +++++++++++++++
>>  .../openpowerlink2-kernel-drivers.mk               | 48 ++++++++++++++++++++++
>>  .../openpowerlink2-pcap-daemon/Config.in           | 12 ++++++
>>  .../openpowerlink2-pcap-daemon.mk                  | 34 +++++++++++++++
>>  .../openpowerlink2/openpowerlink2-stack/Config.in  |  2 +
>>  package/openpowerlink2/openpowerlink2.mk           |  1 +
> 
>  Again, this should be split into one patch per package, and without subdirectory.
> 
>>  9 files changed, 136 insertions(+)
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/Config.in
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
>>  create mode 100644 package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
>>
>> diff --git a/package/openpowerlink2/Config.in b/package/openpowerlink2/Config.in
>> index 8e61a7d..c651031 100644
>> --- a/package/openpowerlink2/Config.in
>> +++ b/package/openpowerlink2/Config.in
>> @@ -35,6 +35,7 @@ choice
>>  
>>  endchoice
>>  
>> +source "package/openpowerlink2/openpowerlink2-drivers/Config.in"
>>  source "package/openpowerlink2/openpowerlink2-stack/Config.in"
> 
>  It doesn't make sense to put the drivers before the stack, if you first have to
> go to the stack to select the option that makes it possible to select drivers...
> So IMHO this is a case were we can break alphabetical ordering.

ok

> 
>>  
>>  config BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/Config.in
>> new file mode 100644
>> index 0000000..b9239ae
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/Config.in
>> @@ -0,0 +1,3 @@
>> +
>> +source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in"
>> +source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in"
> 
>  This extra config file and non-package package isn't needed. So just make one
> patch to add -kernel-drivers, and another patch to add -pcap-daemon.

ok

> 
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>> new file mode 100644
>> index 0000000..ab5cd1c
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>> @@ -0,0 +1,2 @@
>> +
>> +include $(sort $(wildcard package/openpowerlink2/openpowerlink2-drivers/*/*.mk))
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
>> new file mode 100644
>> index 0000000..461504c
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
>> @@ -0,0 +1,33 @@
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
>> +	bool "openpowerlink kernel stack"
>> +	depends on BR2_LINUX_KERNEL
>> +	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB
> 
>  That can't be right, you have both a depends here and a select in
> BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB. Kconfig should error on that.

BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB already depends on
BR2_LINUX_KERNEL. In fact, I anticipated the fact that it will select
BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS and added BR2_LINUX_KERNEL as a
reverse dependency.

> 
>> +	help
>> +	  The openPOWERLINK stack is implemented as Linux kernel module.
>> +	  This solution provides the best performance, but is limited to
>> +	  the available openPOWERLINK network drivers.
> 
>  This sentence should go to the choice in the stack.
ok

> 
>  Perhaps the help text should also mention that the user is responsible for
> making sure that the 'normal' driver for the ethernet chip isn't enabled or loaded.

The openpowerlink's kernel modules should be loaded by using a little script
plkload which unbind the 'normal' kernel's modules.

> 
>> +
>> +if BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
>> +
>> +choice
>> +	prompt "select Ethernet Powerlink Driver"
> 
>  Are they really mutually exclusive?

Yes, cmake set a string to select one by one the module to be build.

SET(CFG_POWERLINK_EDRV "82573" CACHE STRING
        "Valid drivers are 8139, 82573, 8255x, i210, 8111, emacps")
SET_PROPERTY(CACHE CFG_POWERLINK_EDRV PROPERTY STRINGS 8139 82573 8255x i210
8111 emacps)

So, I can't build several openpowerlink driver without modify the config...
Actually, you can't run several instance of the openpowerlink stack on the same
machine.
> 
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_82573
>> +	bool "Intel 82573"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_8255x
>> +	bool "Intel 8255x"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_I210
>> +	bool "Intel I210"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8111
>> +	bool "Realtek RTL-8111/8168"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8139
>> +	bool "Realtek RTL-8139"
>> +
>> +endchoice
>> +
>> +endif # BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
>> new file mode 100644
>> index 0000000..a4470d8
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
>> @@ -0,0 +1,48 @@
>> +################################################################################
>> +#
>> +# openpowerlink2-kernel-drivers
>> +#
>> +################################################################################
>> +
>> +OPENPOWERLINK2_KERNEL_DRIVERS_VERSION = $(OPENPOWERLINK2_VERSION)
>> +
>> +OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE = $(OPENPOWERLINK2_LICENSE)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
>> +
>> +# We want to use the same archive for all sub-packages.
>> +OPENPOWERLINK2_KERNEL_DRIVERS_SOURCE =
>> +OPENPOWERLINK2_KERNEL_DRIVERS_DEPENDENCIES = linux openpowerlink2-stack
>> +
>> +define OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK
>> +	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_KERNEL_DRIVERS_DIR)/src
>> +endef
>> +
>> +OPENPOWERLINK2_KERNEL_DRIVERS_POST_EXTRACT_HOOKS += \
>> +	OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK
> 
>  Same here for extracting instead of symlinking, but I guess here you need just
> src/drivers/linux/drv_kernelmod_edrv.

Exactly.

> 
>> +
>> +OPENPOWERLINK2_KERNEL_DRIVERS_SUBDIR = src/drivers/linux/drv_kernelmod_edrv
>> +
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS = \
>> +	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL)) \
>> +	-DCFG_KERNEL_DIR=$(LINUX_DIR) \
>> +	-DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=ON
>> +else
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=OFF
> 
>  For consistency, it would be better to use the same $(if ...) construct that
> you use in -stack.

Ha yes, thanks I forgot to made the change here.

> 
>  BTW, is there no corresponding option for CN?

No, because the MN capacities is a superset of CN capacities, so if MN is
disabled it mean that the CN mode is enabled.

> 
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_82573),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=82573
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_8255x),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8255x
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_I210),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=I210
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8139),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8139
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8111),y)
>> +OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8111
>> +endif
>> +
>> +$(eval $(cmake-package))
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
>> new file mode 100644
>> index 0000000..896152e
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
>> @@ -0,0 +1,12 @@
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
>> +	bool "openpowerlink userspace (PCAP) stack"
>> +	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
>> +	select BR2_PACKAGE_LIBPCAP
>> +	help
>> +	  The Linux userspace implementation of the openPOWERLINK stack
>> +	  provides all functions for a software based POWERLINK solution
>> +	  running as Linux userspace application. The stack uses the
>> +	  libpcap library for accessing the network interface and is
>> +	  therefore totally independant of the used network card and
>                             independent
> 
>> +	  driver.
>> diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
>> new file mode 100644
>> index 0000000..cc28d66
>> --- /dev/null
>> +++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
>> @@ -0,0 +1,34 @@
>> +################################################################################
>> +#
>> +# openpowerlink2-pcap-daemon
>> +#
>> +################################################################################
>> +
>> +OPENPOWERLINK2_PCAP_DAEMON_VERSION = $(OPENPOWERLINK2_VERSION)
>> +
>> +OPENPOWERLINK2_PCAP_DAEMON_LICENSE = $(OPENPOWERLINK2_LICENSE)
>> +OPENPOWERLINK2_PCAP_DAEMON_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
>> +
>> +# We want to use the same archive for all sub-packages.
>> +OPENPOWERLINK2_PCAP_DAEMON_SOURCE =
>> +OPENPOWERLINK2_PCAP_DAEMON_DEPENDENCIES = libpcap openpowerlink2-stack
>> +
>> +define OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
>> +	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_PCAP_DAEMON_DIR)/src
>> +endef
>> +
>> +OPENPOWERLINK2_PCAP_DAEMON_POST_EXTRACT_HOOKS += \
>> +	OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
>> +
>> +OPENPOWERLINK2_PCAP_DAEMON_SUBDIR = src/drivers/linux/drv_daemon_pcap
>> +
>> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS = \
>> +	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL))
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
>> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=ON
>> +else
>> +OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=OFF
>> +endif
> 
>  Same here about the $(if).
> 
>  Since it's used so often, perhaps it's better to define a global
> 
> OPENPOWERLINK2_MN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK2_MN),ON,OFF)
> OPENPOWERLINK2_CN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK2_CN),ON,OFF)

Ok, I'll try that.

> 
>> +
>> +$(eval $(cmake-package))
>> diff --git a/package/openpowerlink2/openpowerlink2-stack/Config.in b/package/openpowerlink2/openpowerlink2-stack/Config.in
>> index c3ddf47..f73d8c8 100644
>> --- a/package/openpowerlink2/openpowerlink2-stack/Config.in
>> +++ b/package/openpowerlink2/openpowerlink2-stack/Config.in
>> @@ -13,6 +13,7 @@ config BR2_PACKAGE_OPENPOWERLINK2_STACK_MONOLITHIC_USER_STACK_LIB
>>  config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
>>  	bool "build EPL stack as linux userspace pcap daemon."
>>  	select BR2_PACKAGE_LIBPCAP
> 
>  Does the -stack use LIBPCAP directly in this case? If not, this select
> shouldn't be there.

libpcap is needed here since src/kernel/edrv/edrv-pcap_linux.c which is used to
build the library is included.

Thanks you for your review.

Best regards,
Romain

> 
>  Regards,
>  Arnout
> 
>> +	select BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
>>  	help
>>  	  Compile openPOWERLINK application library which contains the
>>  	  interface to a Linux user space driver, and the Linux user space
>> @@ -23,6 +24,7 @@ config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
>>  config BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB
>>  	bool "build EPL stack as linux kernelspace module."
>>  	depends on BR2_LINUX_KERNEL # openpowerlink-kernel-driver
>> +	select BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
>>  	help
>>  	  Compile openPOWERLINK application library which contains the
>>  	  interface to a Linux kernel space driver. It is used together
>> diff --git a/package/openpowerlink2/openpowerlink2.mk b/package/openpowerlink2/openpowerlink2.mk
>> index 82c4277..144fa98 100644
>> --- a/package/openpowerlink2/openpowerlink2.mk
>> +++ b/package/openpowerlink2/openpowerlink2.mk
>> @@ -14,4 +14,5 @@ OPENPOWERLINK2_LICENSE_FILES = license.md
>>  
>>  $(eval $(generic-package))
>>  
>> +include package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
>>  include package/openpowerlink2/openpowerlink2-stack/openpowerlink2-stack.mk
>>
> 
>
diff mbox

Patch

diff --git a/package/openpowerlink2/Config.in b/package/openpowerlink2/Config.in
index 8e61a7d..c651031 100644
--- a/package/openpowerlink2/Config.in
+++ b/package/openpowerlink2/Config.in
@@ -35,6 +35,7 @@  choice
 
 endchoice
 
+source "package/openpowerlink2/openpowerlink2-drivers/Config.in"
 source "package/openpowerlink2/openpowerlink2-stack/Config.in"
 
 config BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL
diff --git a/package/openpowerlink2/openpowerlink2-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/Config.in
new file mode 100644
index 0000000..b9239ae
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/Config.in
@@ -0,0 +1,3 @@ 
+
+source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in"
+source "package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in"
diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
new file mode 100644
index 0000000..ab5cd1c
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
@@ -0,0 +1,2 @@ 
+
+include $(sort $(wildcard package/openpowerlink2/openpowerlink2-drivers/*/*.mk))
diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
new file mode 100644
index 0000000..461504c
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/Config.in
@@ -0,0 +1,33 @@ 
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
+	bool "openpowerlink kernel stack"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB
+	help
+	  The openPOWERLINK stack is implemented as Linux kernel module.
+	  This solution provides the best performance, but is limited to
+	  the available openPOWERLINK network drivers.
+
+if BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
+
+choice
+	prompt "select Ethernet Powerlink Driver"
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_82573
+	bool "Intel 82573"
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_8255x
+	bool "Intel 8255x"
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_I210
+	bool "Intel I210"
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8111
+	bool "Realtek RTL-8111/8168"
+
+config BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVER_RTL8139
+	bool "Realtek RTL-8139"
+
+endchoice
+
+endif # BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
new file mode 100644
index 0000000..a4470d8
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-kernel-drivers/openpowerlink2-kernel-drivers.mk
@@ -0,0 +1,48 @@ 
+################################################################################
+#
+# openpowerlink2-kernel-drivers
+#
+################################################################################
+
+OPENPOWERLINK2_KERNEL_DRIVERS_VERSION = $(OPENPOWERLINK2_VERSION)
+
+OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE = $(OPENPOWERLINK2_LICENSE)
+OPENPOWERLINK2_KERNEL_DRIVERS_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
+
+# We want to use the same archive for all sub-packages.
+OPENPOWERLINK2_KERNEL_DRIVERS_SOURCE =
+OPENPOWERLINK2_KERNEL_DRIVERS_DEPENDENCIES = linux openpowerlink2-stack
+
+define OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK
+	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_KERNEL_DRIVERS_DIR)/src
+endef
+
+OPENPOWERLINK2_KERNEL_DRIVERS_POST_EXTRACT_HOOKS += \
+	OPENPOWERLINK2_KERNEL_DRIVERS_SYMLINK_TO_SRC_HOOK
+
+OPENPOWERLINK2_KERNEL_DRIVERS_SUBDIR = src/drivers/linux/drv_kernelmod_edrv
+
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS = \
+	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL)) \
+	-DCFG_KERNEL_DIR=$(LINUX_DIR) \
+	-DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=ON
+else
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_OPLK_MN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_82573),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=82573
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_8255x),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8255x
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_I210),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=I210
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8139),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8139
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS_RTL8111),y)
+OPENPOWERLINK2_KERNEL_DRIVERS_CONF_OPTS += -DCFG_POWERLINK_EDRV=8111
+endif
+
+$(eval $(cmake-package))
diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
new file mode 100644
index 0000000..896152e
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/Config.in
@@ -0,0 +1,12 @@ 
+
+config BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
+	bool "openpowerlink userspace (PCAP) stack"
+	depends on BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
+	select BR2_PACKAGE_LIBPCAP
+	help
+	  The Linux userspace implementation of the openPOWERLINK stack
+	  provides all functions for a software based POWERLINK solution
+	  running as Linux userspace application. The stack uses the
+	  libpcap library for accessing the network interface and is
+	  therefore totally independant of the used network card and
+	  driver.
diff --git a/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
new file mode 100644
index 0000000..cc28d66
--- /dev/null
+++ b/package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-pcap-daemon/openpowerlink2-pcap-daemon.mk
@@ -0,0 +1,34 @@ 
+################################################################################
+#
+# openpowerlink2-pcap-daemon
+#
+################################################################################
+
+OPENPOWERLINK2_PCAP_DAEMON_VERSION = $(OPENPOWERLINK2_VERSION)
+
+OPENPOWERLINK2_PCAP_DAEMON_LICENSE = $(OPENPOWERLINK2_LICENSE)
+OPENPOWERLINK2_PCAP_DAEMON_LICENSE_FILES = $(OPENPOWERLINK2_LICENSE_FILES)
+
+# We want to use the same archive for all sub-packages.
+OPENPOWERLINK2_PCAP_DAEMON_SOURCE =
+OPENPOWERLINK2_PCAP_DAEMON_DEPENDENCIES = libpcap openpowerlink2-stack
+
+define OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
+	ln -s $(OPENPOWERLINK2_DIR) $(OPENPOWERLINK2_PCAP_DAEMON_DIR)/src
+endef
+
+OPENPOWERLINK2_PCAP_DAEMON_POST_EXTRACT_HOOKS += \
+	OPENPOWERLINK2_PCAP_DAEMON_SYMLINK_TO_SRC_HOOK
+
+OPENPOWERLINK2_PCAP_DAEMON_SUBDIR = src/drivers/linux/drv_daemon_pcap
+
+OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS = \
+	-DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK2_DEBUG_LEVEL))
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK2_MN),y)
+OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=ON
+else
+OPENPOWERLINK2_PCAP_DAEMON_CONF_OPTS += -DCFG_OPLK_MN=OFF
+endif
+
+$(eval $(cmake-package))
diff --git a/package/openpowerlink2/openpowerlink2-stack/Config.in b/package/openpowerlink2/openpowerlink2-stack/Config.in
index c3ddf47..f73d8c8 100644
--- a/package/openpowerlink2/openpowerlink2-stack/Config.in
+++ b/package/openpowerlink2/openpowerlink2-stack/Config.in
@@ -13,6 +13,7 @@  config BR2_PACKAGE_OPENPOWERLINK2_STACK_MONOLITHIC_USER_STACK_LIB
 config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
 	bool "build EPL stack as linux userspace pcap daemon."
 	select BR2_PACKAGE_LIBPCAP
+	select BR2_PACKAGE_OPENPOWERLINK2_PCAP_DAEMON
 	help
 	  Compile openPOWERLINK application library which contains the
 	  interface to a Linux user space driver, and the Linux user space
@@ -23,6 +24,7 @@  config BR2_PACKAGE_OPENPOWERLINK2_STACK_USERSPACE_DAEMON_LIB
 config BR2_PACKAGE_OPENPOWERLINK2_STACK_KERNEL_STACK_LIB
 	bool "build EPL stack as linux kernelspace module."
 	depends on BR2_LINUX_KERNEL # openpowerlink-kernel-driver
+	select BR2_PACKAGE_OPENPOWERLINK2_KERNEL_DRIVERS
 	help
 	  Compile openPOWERLINK application library which contains the
 	  interface to a Linux kernel space driver. It is used together
diff --git a/package/openpowerlink2/openpowerlink2.mk b/package/openpowerlink2/openpowerlink2.mk
index 82c4277..144fa98 100644
--- a/package/openpowerlink2/openpowerlink2.mk
+++ b/package/openpowerlink2/openpowerlink2.mk
@@ -14,4 +14,5 @@  OPENPOWERLINK2_LICENSE_FILES = license.md
 
 $(eval $(generic-package))
 
+include package/openpowerlink2/openpowerlink2-drivers/openpowerlink2-drivers.mk
 include package/openpowerlink2/openpowerlink2-stack/openpowerlink2-stack.mk