Re: smokey arm64 gdb tests

2019-10-03 Thread steven.seeger flightsystems.net via Xenomai
On Thursday, October 3, 2019 4:23:00 AM EDT Jan Kiszka wrote:
> Nope,
> 
> https://gitlab.denx.de/Xenomai/ipipe-arm/commit/5720abf5df213d0eb392bc4f5620
> f5f4bf5f3a23
> 
> or
> 
> https://gitlab.denx.de/Xenomai/ipipe-x86/commit/69e53186060197af91b2056b0da0
> c3032d7ec0d8
> 
> to make use of
> 
> https://gitlab.denx.de/Xenomai/ipipe-x86/commit/c5b7844523ef572e4096262df2e2
> cd503b84e539

Thanks for the info. This doesn't look too complicated but PPC defintely 
doesn't have this. I probably won't have time for quite a while to work on 
this, but I will get to it when I can. (or accept a patch from anyone! ;) )

Steven





Controlling DMA priority between GPU and CPU on x86

2019-10-03 Thread Rossier Daniel via Xenomai
Hi all,

We are currently working on a project called OpenCN which is a framework deeply 
inspired from LinuxCNC, but with a revisited architecture.
Hence, OpenCN is related to machine control.

Our framework mainly use a AMP approach and runs the Xenomai/Cobalt kernel on a 
dedicated CPU with no I-pipe (reworked out).
(We plan to release the framework by first of November).
Our framework works well on a x86 PC, but we have to face an issue regarding 
DMA priority between the GPU and CPU; when the user plays with the GUI,
some small latencies (O(10ms)) raise up.
Although the question is not directly related to Xenomai, I would be very 
interested if somebody knows if it possible to give CPU priority against the 
GPU,
and how to manage the related DMA controller? Is it possible to configure it ? 
Or any other hint to avoid this latency ?

Many thanks in advance for any inputs.

Daniel



RTnet vnic0 non-rt traffic bug

2019-10-03 Thread Laurentiu-Cristian Duca via Xenomai
Hello rtnet dev,

  I think I found a bug in RTnet:
ping and non-rt applications (e.g. dropbear) send non-rt traffic via vnic0,
but the ethernet type is 0x9021 (real-time media access control type):
xenomai-3.0.9/kernel/drivers/net/stack/rtmac/rtmac_vnic.c:156:res
= rtmac_add_header(rtdev, ethernet->h_dest, rtskb,
xenomai-3.0.9/kernel/drivers/net/stack/include/rtmac/rtmac_proto.h:32:#define
ETH_RTMAC   0x9021
xenomai-3.0.9/kernel/drivers/net/stack/include/rtmac/rtmac_proto.h:59:
   (rtdev->hard_header(skb, rtdev, ETH_RTMAC, daddr,
I have caught the traffic through wireshark which confirmed this info.

  I succesfully can ping and ssh between qemu rtnet virtual machines on vnic0
but I can not ping a non-rtnet machine from a rtnet machine via vnic0
and I can not connect using ssh from a non-rtnet machine to a rtnet machine.

  In order to reproduce the bug I have posted a qemu rtnet virtual
machine and instructions to this link:
https://github.com/laurentiuduca/rtnet-geek

  I mention that rtping works ok.

Kind regards,
L-C. Duca



Re: smokey arm64 gdb tests

2019-10-03 Thread Jan Kiszka via Xenomai

On 02.10.19 14:36, steven.seeger flightsystems.net wrote:

On Wednesday, October 2, 2019 5:38:09 AM EDT Jan Kiszka wrote:

Still, I suspect we need to deal with missing support, also because ppc
shouldn't have that yet, Steven, am I right? It's "just" a debugging
feature, nothing otherwise problematic or relevant for applications. So I'm
unsure if that deserves an ABI flag, but that would be needed to detect the
issue smoothly in the testsuite.


I'm not sure what this is. Do you mean the WARNSW option? PPC supports that.



Nope,

https://gitlab.denx.de/Xenomai/ipipe-arm/commit/5720abf5df213d0eb392bc4f5620f5f4bf5f3a23

or

https://gitlab.denx.de/Xenomai/ipipe-x86/commit/69e53186060197af91b2056b0da0c3032d7ec0d8

to make use of

https://gitlab.denx.de/Xenomai/ipipe-x86/commit/c5b7844523ef572e4096262df2e2cd503b84e539

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux



[PATCH] Allow RTNet to be builtin kernel

2019-10-03 Thread François Legal via Xenomai
Subject: [PATCH] Allow RTNet to be builtin kernel

Makefile is changed because when builtin, the modules
get loaded in the link order. In the previous version
protocols would get loaded before stackmgr which
obviously fails.

Signed-off-by: François LEGAL 

---

This has been tested on Zynq 7000 Hardware (microzed
board) with MACB/GEM RTNet driver, with linux 4.4.189
vanilla. Kernel boots up correctly, and the following
messages get printed on the console during the boot :

[   13.875451] sdhci-pltfm: SDHCI platform and OF driver helper
[   13.881627] sdhci-arasan e010.sdhci: No vmmc regulator found
[   13.887581] sdhci-arasan e010.sdhci: No vqmmc regulator found
[   13.927585] mmc0: SDHCI controller on e010.sdhci [e010.sdhci] using 
ADMA
[   13.945085] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[   13.951896]
[   13.951896] *** RTnet for Xenomai v3.0.9 ***
[   13.951896]
[   13.959156] RTnet: initialising real-time networking
[   13.964928] RTmac/TDMA: init time division multiple access control mechanism
[   13.972074] RTmac: init realtime media access control
[   13.977064] RTcfg: init real-time configuration distribution protocol
[   13.983752] initializing loopback...
[   13.987295] RTnet: registered rtlo
[   13.993238] RTnet: registered rteth0
[   13.996832] libphy: MACB_mii_bus: probed
[   14.001140] rt_macb: rteth0: Cadence GEM at 0xe000b000 irq 26 
(00:0a:35:00:01:22)
[   14.008630] rt_macb: rteth0: attached PHY driver [Marvell 88E1510] 
(mii_bus:phy_addr=e000b000.ethernet-:00, irq=-1)
[   14.019845] RTcap: real-time capturing interface
[   14.026562] RTproxy attached to rteth0
[   14.031129] rtnetproxy installed as "rtproxy"
[   14.035693] NET: Registered protocol family 26
[   14.040309] NET: Registered protocol family 17
[   14.044686] can: controller area network core (rev 20120528 abi 9)
[   14.050957] NET: Registered protocol family 29
[   14.055329] can: raw protocol (rev 20120528)
[   14.059683] can: broadcast manager protocol (rev 20120528 t)

 kernel/drivers/net/Kconfig|  1 -
 kernel/drivers/net/addons/Kconfig |  4 ++--
 kernel/drivers/net/stack/Makefile | 16 
 utils/net/rtnet.in | 144 +++--
 4 files changed, 105 insertions(+), 60 deletions(-)

diff --git a/kernel/drivers/net/Kconfig b/kernel/drivers/net/Kconfig
index ac3bced..49d2402 100644
--- a/kernel/drivers/net/Kconfig
+++ b/kernel/drivers/net/Kconfig
@@ -1,7 +1,6 @@
 menu "RTnet"

 config XENO_DRIVERS_NET
-depends on m
 select NET
 tristate "RTnet, TCP/IP socket interface"

diff --git a/kernel/drivers/net/addons/Kconfig 
b/kernel/drivers/net/addons/Kconfig
index baa6cbc..616ed40 100644
--- a/kernel/drivers/net/addons/Kconfig
+++ b/kernel/drivers/net/addons/Kconfig
@@ -2,7 +2,7 @@ menu "Add-Ons"
 depends on XENO_DRIVERS_NET

 config XENO_DRIVERS_NET_ADDON_RTCAP
-depends on XENO_DRIVERS_NET && m
+depends on XENO_DRIVERS_NET
 select ETHERNET
 tristate "Real-Time Capturing Support"
 default n
@@ -18,7 +18,7 @@ config XENO_DRIVERS_NET_ADDON_RTCAP
 For further information see Documentation/README.rtcap.

 config XENO_DRIVERS_NET_ADDON_PROXY
-depends on XENO_DRIVERS_NET_RTIPV4 && m
+depends on XENO_DRIVERS_NET_RTIPV4
 select ETHERNET
 tristate "IP protocol proxy for Linux"
 default n
diff --git a/kernel/drivers/net/stack/Makefile 
b/kernel/drivers/net/stack/Makefile
index d055dc2..f8db6fa 100644
--- a/kernel/drivers/net/stack/Makefile
+++ b/kernel/drivers/net/stack/Makefile
@@ -1,13 +1,5 @@
 ccflags-y += -Idrivers/xenomai/net/stack/include -Ikernel/

-obj-$(CONFIG_XENO_DRIVERS_NET_RTIPV4) += ipv4/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTPACKET) += packet/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTMAC) += rtmac/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTCFG) += rtcfg/
-
 obj-$(CONFIG_XENO_DRIVERS_NET) += rtnet.o

 rtnet-y :=  \
@@ -23,4 +15,12 @@ rtnet-y :=  \
stack_mgr.o \
eth.o

+obj-$(CONFIG_XENO_DRIVERS_NET_RTIPV4) += ipv4/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTPACKET) += packet/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTMAC) += rtmac/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTCFG) += rtcfg/
+
 rtnet-$(CONFIG_XENO_DRIVERS_NET_RTWLAN) += rtwlan.o
diff --git a/utils/net/rtnet.in b/utils/net/rtnet.in
index f81a7bb..fa12a03 100644
--- a/utils/net/rtnet.in
+++ b/utils/net/rtnet.in
@@ -31,44 +31,68 @@ EOF
 }

 init_rtnet() {
-modprobe rtnet >/dev/null || exit 1
-modprobe rtipv4 >/dev/null || exit 1
-modprobe $RT_DRIVER $RT_DRIVER_OPTIONS >/dev/null || exit 1
-
-for dev in $REBIND_RT_NICS; do
-   if [ -d /sys/bus/pci/devices/$dev/driver ]; then
-   echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
-   fi
-   echo $dev > /sys/bus/pci/drivers/$RT_DRIVER/bind
-done
+if [ ! -d /proc/rtnet ]; then
+modprobe rtnet >/dev/null || exit 1
+fi

+if [ ! -d /proc/rtnet/ipv4 ]; then
+modprobe rtipv4 >/dev/null || exit 1
+fi
 for 

Re: [PATCH] Allow RTNet to be builtin kernel

2019-10-03 Thread François Legal via Xenomai
Subject: [PATCH] Allow RTNet to be builtin kernel

Makefile is changed because when builtin, the modules
get loaded in the link order. In the previous version
protocols would get loaded before stackmgr which
obviously fails.

Signed-off-by: François LEGAL 

---

This has been tested on Zynq 7000 Hardware (microzed
board) with MACB/GEM RTNet driver, with linux 4.4.189
vanilla. Kernel boots up correctly, and the following
messages get printed on the console during the boot :

[   13.875451] sdhci-pltfm: SDHCI platform and OF driver helper
[   13.881627] sdhci-arasan e010.sdhci: No vmmc regulator found
[   13.887581] sdhci-arasan e010.sdhci: No vqmmc regulator found
[   13.927585] mmc0: SDHCI controller on e010.sdhci [e010.sdhci] using 
ADMA
[   13.945085] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[   13.951896]
[   13.951896] *** RTnet for Xenomai v3.0.9 ***
[   13.951896]
[   13.959156] RTnet: initialising real-time networking
[   13.964928] RTmac/TDMA: init time division multiple access control mechanism
[   13.972074] RTmac: init realtime media access control
[   13.977064] RTcfg: init real-time configuration distribution protocol
[   13.983752] initializing loopback...
[   13.987295] RTnet: registered rtlo
[   13.993238] RTnet: registered rteth0
[   13.996832] libphy: MACB_mii_bus: probed
[   14.001140] rt_macb: rteth0: Cadence GEM at 0xe000b000 irq 26 
(00:0a:35:00:01:22)
[   14.008630] rt_macb: rteth0: attached PHY driver [Marvell 88E1510] 
(mii_bus:phy_addr=e000b000.ethernet-:00, irq=-1)
[   14.019845] RTcap: real-time capturing interface
[   14.026562] RTproxy attached to rteth0
[   14.031129] rtnetproxy installed as "rtproxy"
[   14.035693] NET: Registered protocol family 26
[   14.040309] NET: Registered protocol family 17
[   14.044686] can: controller area network core (rev 20120528 abi 9)
[   14.050957] NET: Registered protocol family 29
[   14.055329] can: raw protocol (rev 20120528)
[   14.059683] can: broadcast manager protocol (rev 20120528 t)

 kernel/drivers/net/Kconfig|  1 -
 kernel/drivers/net/addons/Kconfig |  4 ++--
 kernel/drivers/net/stack/Makefile | 16 
 utils/net/rtnet.in | 144 +++--
 4 files changed, 105 insertions(+), 60 deletions(-)

diff --git a/kernel/drivers/net/Kconfig b/kernel/drivers/net/Kconfig
index ac3bced..49d2402 100644
--- a/kernel/drivers/net/Kconfig
+++ b/kernel/drivers/net/Kconfig
@@ -1,7 +1,6 @@
 menu "RTnet"

 config XENO_DRIVERS_NET
-depends on m
 select NET
 tristate "RTnet, TCP/IP socket interface"

diff --git a/kernel/drivers/net/addons/Kconfig 
b/kernel/drivers/net/addons/Kconfig
index baa6cbc..616ed40 100644
--- a/kernel/drivers/net/addons/Kconfig
+++ b/kernel/drivers/net/addons/Kconfig
@@ -2,7 +2,7 @@ menu "Add-Ons"
 depends on XENO_DRIVERS_NET

 config XENO_DRIVERS_NET_ADDON_RTCAP
-depends on XENO_DRIVERS_NET && m
+depends on XENO_DRIVERS_NET
 select ETHERNET
 tristate "Real-Time Capturing Support"
 default n
@@ -18,7 +18,7 @@ config XENO_DRIVERS_NET_ADDON_RTCAP
 For further information see Documentation/README.rtcap.

 config XENO_DRIVERS_NET_ADDON_PROXY
-depends on XENO_DRIVERS_NET_RTIPV4 && m
+depends on XENO_DRIVERS_NET_RTIPV4
 select ETHERNET
 tristate "IP protocol proxy for Linux"
 default n
diff --git a/kernel/drivers/net/stack/Makefile 
b/kernel/drivers/net/stack/Makefile
index d055dc2..f8db6fa 100644
--- a/kernel/drivers/net/stack/Makefile
+++ b/kernel/drivers/net/stack/Makefile
@@ -1,13 +1,5 @@
 ccflags-y += -Idrivers/xenomai/net/stack/include -Ikernel/

-obj-$(CONFIG_XENO_DRIVERS_NET_RTIPV4) += ipv4/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTPACKET) += packet/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTMAC) += rtmac/
-
-obj-$(CONFIG_XENO_DRIVERS_NET_RTCFG) += rtcfg/
-
 obj-$(CONFIG_XENO_DRIVERS_NET) += rtnet.o

 rtnet-y :=  \
@@ -23,4 +15,12 @@ rtnet-y :=  \
stack_mgr.o \
eth.o

+obj-$(CONFIG_XENO_DRIVERS_NET_RTIPV4) += ipv4/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTPACKET) += packet/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTMAC) += rtmac/
+
+obj-$(CONFIG_XENO_DRIVERS_NET_RTCFG) += rtcfg/
+
 rtnet-$(CONFIG_XENO_DRIVERS_NET_RTWLAN) += rtwlan.o
diff --git a/utils/net/rtnet.in b/utils/net/rtnet.in
index f81a7bb..fa12a03 100644
--- a/utils/net/rtnet.in
+++ b/utils/net/rtnet.in
@@ -31,44 +31,68 @@ EOF
 }

 init_rtnet() {
-modprobe rtnet >/dev/null || exit 1
-modprobe rtipv4 >/dev/null || exit 1
-modprobe $RT_DRIVER $RT_DRIVER_OPTIONS >/dev/null || exit 1
-
-for dev in $REBIND_RT_NICS; do
-   if [ -d /sys/bus/pci/devices/$dev/driver ]; then
-   echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
-   fi
-   echo $dev > /sys/bus/pci/drivers/$RT_DRIVER/bind
-done
+if [ ! -d /proc/rtnet ]; then
+modprobe rtnet >/dev/null || exit 1
+fi

+if [ ! -d /proc/rtnet/ipv4 ]; then
+modprobe rtipv4 >/dev/null || exit 1
+fi
 for