Re: smokey arm64 gdb tests
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
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
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
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
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
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