From: Romain Naour <romain.naour@openwide.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] Openpowerlink: new package
Date: Sat, 21 Sep 2013 12:19:13 +0200 [thread overview]
Message-ID: <523D72A1.5060701@openwide.fr> (raw)
In-Reply-To: <CAAXf6LViY2cutV0xCQApXPQveDFNai1_=gWe01-+TNT_5j84gQ@mail.gmail.com>
Hi Thomas,
Le 21/09/2013 09:16, Thomas De Schampheleire a ?crit :
> Hi Romain,
>
> Thanks for contributing! A few comments below.
You're welcome.
>
> Op 21-sep.-2013 02:48 schreef "Romain Naour" <romain.naour at openwide.fr <mailto:romain.naour@openwide.fr>> het volgende:
>>
>>
>> Signed-off-by: Romain Naour <romain.naour at openwide.fr <mailto:romain.naour@openwide.fr>>
>> ---
>> package/Config.in | 1 +
>> package/openpowerlink/Config.in | 92 +++++++++++++++++++++
>> .../openpowerlink-FIX-demo_mn_qt.patch | 27 +++++++
>> package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk> | 93 ++++++++++++++++++++++
>> 4 files changed, 213 insertions(+)
>> create mode 100644 package/openpowerlink/Config.in
>> create mode 100644 package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>> create mode 100644 package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index e1dfd5d..fdf9b55 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -912,6 +912,7 @@ endmenu
>> menu "Real-Time"
>> source "package/xenomai/Config.in"
>> source "package/rtai/Config.in"
>> +source "package/openpowerlink/Config.in"
>
> Is real-time the right menu for openpowerlink? The current packages in that menu provide real time capabilities, not packages you use in a real time
> environment. There is an other menu 'hardware handling' that at first sight seems also fitting.
I wasn't sure about that...
It is because openpowerlink is mainly used when you're running a preempt-rt kernel.
>
> Note that entries should be in alphabetical order, but apparently xenomai and rtai weren't yet.
I will fix that.
>
>> endmenu
>>
>> menu "Shell and utilities"
>> diff --git a/package/openpowerlink/Config.in b/package/openpowerlink/Config.in
>> new file mode 100644
>> index 0000000..42a6099
>> --- /dev/null
>> +++ b/package/openpowerlink/Config.in
>> @@ -0,0 +1,92 @@
>> +comment "openpowerlink requires thread support in toolchain"
>> + depends on !BR2_TOOLCHAIN_HAS_THREADS
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK
>> + bool "Openpowerlink"
>
> We typically write such entries in all-lowercase.
>
>> + depends on BR2_TOOLCHAIN_HAS_THREADS
>> + depends on BR2_i386 || BR2_x86_64
>> + help
>> + openPOWERLINK is an Open Source Industrial Ethernet
>> + stack implementing the POWERLINK protocol for Managing Node
>> + (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
>> +
>> + It is provided by SYSTEC electronic (http://www.systec-electronic.com),
>> + B&R (http://www.br-automation.com) and
>> + Kalycito (http://www.kalycito.com).
>
> It's there a url specifically for this package? This should be mentioned as the last line of the entry.
yes, the sources are available at sourceforge.
>
>> +
>> +if BR2_PACKAGE_OPENPOWERLINK
>> +
>> +choice
>> + prompt "Openpowerlink mode"
>
> Is it necessary to repeat the package name here?
>
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
>> + bool "userspace stack"
>> + select BR2_PACKAGE_LIBPCAP
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> + bool "kernel stack"
>> + depends on BR2_LINUX_KERNEL
>> + help
>> + You may select BR2_PACKAGE_PCIUTILS for lscpi, and BR2_PACKAGE_PROCPS for ps command.
>> + These commands are used in EplLoad and EplUndload scripts.
>> +
>> +endchoice
>
> Is there more help that can be given for both options? Are there benefits/advantages on either? Or limitations in functionality?
I will add some help from openpowerlink documentation.
>
>> +
>> +if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> +
>> +choice
>> + prompt "Select Ethernet Powerlink Driver"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_82573
>> + bool "Intel 82573"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_8255x
>> + bool "Intel 8255x"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_RTL8139
>> + bool "Realteck RTL-8139"
>
> This should be Realtek
thanks
>
>> +
>> +endchoice
>> +
>> +endif
>> +
>> +choice
>> + prompt "Select MN/CN mode"
>> +
>> + config BR2_PACKAGE_OPENPOWERLINK_MN
>> + bool "MN"
>> + help
>> + Enable Managing Node mode
>> +
>> + config BR2_PACKAGE_OPENPOWERLINK_CN
>> + bool "CN"
>> + help
>> + Enable Controlled Node mode
>> +
>> +endchoice
>> +
>> +# Powerlink Demos
>
> It would make sense to group the demos under a suboption, don't you think?
Why not, ok.
>
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
>> + bool "Console MN demo"
>> + depends on BR2_PACKAGE_OPENPOWERLINK_MN
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
>> + bool "QT MN demo"
>> + depends on BR2_PACKAGE_OPENPOWERLINK_MN
>> + select BR2_PACKAGE_QT
>> + select BR2_PACKAGE_QT_STL
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
>> + bool "Console CN demo"
>> + depends on !BR2_PACKAGE_OPENPOWERLINK_MN
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
>> + bool "Kernel demo"
>> + depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
>> + string "Debug level for EPL"
>> + help
>> + default value: 0xEC000000L
>> +
>> +endif
>> diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>
> Patches should be named openpowerlink-0001-description.patch, and we typically use lowercase and dashes for the description.
ok
>
>> new file mode 100644
>> index 0000000..a71298d
>> --- /dev/null
>> +++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>> @@ -0,0 +1,27 @@
>> +From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
>> +From: Romain Naour <romain.naour at openwide.fr <mailto:romain.naour@openwide.fr>>
>> +Date: Wed, 18 Sep 2013 23:33:04 +0200
>> +Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources list
>> +
>> +demo_mn_qt use EplGetEmergErrCodeStr()
>> +
>> +Signed-off-by: Romain Naour <romain.naour at openwide.fr <mailto:romain.naour@openwide.fr>>
>> +---
>> + Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
>> + 1 file changed, 1 insertion(+)
>> +
>> +diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> +index 9db2f7f..48ae9eb 100644
>> +--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> ++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> +@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
>> + src/MainWindow.cpp
>> + src/NodeState.cpp
>> + ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
>> ++ ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
>> + )
>> +
>> + # The TRACE macros need trace.c on the Windows platform
>> +--
>> +1.8.4
>> +
>
> Is this patch something that can be upstreamed?
Definitely, my patches for openpowerlink are available in my sourceforge account.
Openpowerlink's developers can get them for the next release.
>
>> diff --git a/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk> b/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>> new file mode 100644
>> index 0000000..ac28de9
>> --- /dev/null
>> +++ b/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>> @@ -0,0 +1,93 @@
>> +################################################################################
>> +#
>> +# openPOWERLINK
>> +#
>> +################################################################################
>> +
>> +OPENPOWERLINK_VERSION = V1.08.3
>> +OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
>> +OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
>> +
>> +OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
>> +OPENPOWERLINK_LICENSE_FILES = license.txt
>> +OPENPOWERLINK_INSTALL_STAGING = YES
>> +
>> +ifeq ($(BR2_i386),y)
>> +OPENPOWERLINK_ARCH = x86
>> +endif
>> +
>> +ifeq ($(BR2_x86_64),y)
>> +OPENPOWERLINK_ARCH = x86_64
>> +endif
>> +
>> +OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
>> +
>> +OPENPOWERLINK_DEBUG_LEVEL = $(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
>> +
>> +ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
>
> What about moving this as default to Config.in, then you don't need a if-else here?
Ok
>
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
>> +# use the user space stack (libpcap)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
>> +OPENPOWERLINK_DEPENDENCIES = libpcap
>> +else
>> +# use the kernel stack
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
>> +OPENPOWERLINK_DEPENDENCIES = linux
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
>> +OPENPOWERLINK_DEPENDENCIES += qt
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
>> +endif
>> +
>> +define OPENPOWERLINK_EXTRACT_CMDS
>> + $(RM) -rf $(OPENPOWERLINK_DIR)
>> + unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
>> + test -d $(OPENPOWERLINK_DIR) || \
>> + mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE)) $(OPENPOWERLINK_DIR)
>> +endef
>> +
>> +$(eval $(cmake-package))
>> --
>> 1.8.4
>
> Best regards,
> Thomas
>
Thank you Thomas for your review.
Best regards,
--
Romain Naour
OPEN WIDE Ing?nierie - Paris
23/25, rue Daviel 75013 PARIS
http://ingenierie.openwide.fr
Le blog des technologies libres et embarqu?es :
http://www.linuxembedded.fr
next prev parent reply other threads:[~2013-09-21 10:19 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1165322922.7308619.1379724109699.JavaMail.root@openwide.fr>
2013-09-21 0:48 ` [Buildroot] [PATCH 1/1] Openpowerlink: new package Romain Naour
2013-09-21 7:16 ` Thomas De Schampheleire
2013-09-21 7:42 ` Thomas Petazzoni
2013-09-21 10:19 ` Romain Naour [this message]
2013-09-21 8:15 ` Thomas De Schampheleire
2013-09-22 13:43 ` Thomas Petazzoni
2013-09-23 11:34 ` Thomas De Schampheleire
2013-09-23 12:13 ` Thomas Petazzoni
2013-09-21 8:17 ` Thomas De Schampheleire
2013-09-22 8:20 ` Thomas Petazzoni
2013-09-21 9:38 ` Thomas De Schampheleire
2013-09-21 9:41 ` Thomas De Schampheleire
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=523D72A1.5060701@openwide.fr \
--to=romain.naour@openwide.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox