Driver for Beckhoff CX5020 EtherCAT master module.
Subsystems (2)
PATCH 1/1 Driver for Beckhoff CX5020 EtherCAT master module.
This simple driver adds support for EtherCAT master module located on CCAT FPGA found on Beckhoff CX series industrail PCs. The driver exposes EtherCAT master as a network interface.
EtherCAT is a filedbus protocol defined on top of ethernet and Beckhoff CX5020 PCs come with built-in EtherCAT master located on a FPGA which is connected to a PCI bus.
--- drivers/net/ethernet/Kconfig | 11 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/ec_bh.c | 769 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 781 insertions(+) create mode 100644 drivers/net/ethernet/ec_bh.c
drivers/net/ethernet/Kconfig +11 -0
@@ -35,6 +35,17 @@ source "drivers/net/ethernet/calxeda/Kconfig" source "drivers/net/ethernet/chelsio/Kconfig" source "drivers/net/ethernet/cirrus/Kconfig" source "drivers/net/ethernet/cisco/Kconfig" + +config CX_ECAT + tristate "Beckhoff CX5020 EtherCAT master support" + ---help--- + Driver for EtherCAT master module located on CCAT FPGA + that can be found on Beckhoff CX5020, and possibly other of CX + Beckhoff CX series industrial PCs. + + To compile this driver as a module, choose M here. The module + will be called ec_bh. + source "drivers/net/ethernet/davicom/Kconfig" config DNET
drivers/net/ethernet/Makefile +1 -0
@@ -21,6 +21,7 @@ obj-$(CONFIG_NET_CALXEDA_XGMAC) += calxeda/ obj-$(CONFIG_NET_VENDOR_CHELSIO) += chelsio/ obj-$(CONFIG_NET_VENDOR_CIRRUS) += cirrus/ obj-$(CONFIG_NET_VENDOR_CISCO) += cisco/ +obj-$(CONFIG_CX_ECAT) += ec_bh.o obj-$(CONFIG_DM9000) += davicom/ obj-$(CONFIG_DNET) += dnet.o obj-$(CONFIG_NET_VENDOR_DEC) += dec/
drivers/net/ethernet/ec_bh.c new file +769 -0
769 lines not on this page · raw message
Signature · 1 line
1.7.10.4
David Miller
maintainerFrom: Darek Marcinkiewicz <[email protected]>
Date: Thu, 24 Apr 2014 22:46:15 +0200
Quoted 20 lines
drivers/net/ethernet/ec_bh.c new file +20
-0+struct desc_header { +u32 next:24 ; +u32 reserved1:7 ; +u32 next_valid:1 ; +u32 recv:1 ; +u32 reserved2:31 ; +u16 len:12 ; +u16 reserved3:4 ; +u16 port; +u32 reserved4; +u64 timestamp; +}; + +struct rx_desc { +struct desc_header header; +#define RX_PAYLOAD_SIZE 0x7e8 +u8 data[RX_PAYLOAD_SIZE ]; +}; + +struct tx_header {
drivers/net/ethernet/ec_bh.c line 109
Quoted 10 lines
drivers/net/ethernet/ec_bh.c new file +10
-0+u16 length; + u8 port0:1; + u8 port1:1; + u8 reserved1:6; + u8 ts_enable:1; + u8 reserved2:7; + u32 sent:1; + u32 reserved3:31; +u64 timestamp; +};
All of these descriptor structures need to be properly annotated using endianness types, and their fields accessed using proper endian translating interfaces such as le32_to_cpu() et al.
PATCH v2 1/1 Driver for Beckhoff CX5020 EtherCAT master module.
Quoted 2 lines · David Miller
From: Darek Marcinkiewicz <[email protected]>
Date: Thu, 24 Apr 2014 22:46:15 +0200
....
Quoted 5 lines
All of these descriptor structures need to be properly annotated using endianness types, and their fields accessed using proper endian translating interfaces such as
le32_to_cpu()et al.
Thanks. Patch updated.
Changes since v1:
* added endianess annotation to descriptors' structures
* killed checkpath warnings about string literals being split into multiple lines
Quoted 1 line
8----------------------------------------8<
This driver adds support for EtherCAT master module located on CCAT FPGA found on Beckhoff CX series industrail PCs. The driver exposes EtherCAT master as an ethernet interface.
EtherCAT is a filedbus protocol defined on top of ethernet and Beckhoff CX5020 PCs come with built-in EtherCAT master module located on a FPGA, which in turn is connected to a PCI bus.
--- drivers/net/ethernet/Kconfig | 11 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/ec_bh.c | 768 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 780 insertions(+) create mode 100644 drivers/net/ethernet/ec_bh.c
drivers/net/ethernet/Kconfig +11 -0
@@ -35,6 +35,17 @@ source "drivers/net/ethernet/calxeda/Kconfig" source "drivers/net/ethernet/chelsio/Kconfig" source "drivers/net/ethernet/cirrus/Kconfig" source "drivers/net/ethernet/cisco/Kconfig" + +config CX_ECAT + tristate "Beckhoff CX5020 EtherCAT master support" + ---help--- + Driver for EtherCAT master module located on CCAT FPGA + that can be found on Beckhoff CX5020, and possibly other of CX + Beckhoff CX series industrial PCs. + + To compile this driver as a module, choose M here. The module + will be called ec_bh. + source "drivers/net/ethernet/davicom/Kconfig" config DNET
drivers/net/ethernet/Makefile +1 -0
@@ -21,6 +21,7 @@ obj-$(CONFIG_NET_CALXEDA_XGMAC) += calxeda/ obj-$(CONFIG_NET_VENDOR_CHELSIO) += chelsio/ obj-$(CONFIG_NET_VENDOR_CIRRUS) += cirrus/ obj-$(CONFIG_NET_VENDOR_CISCO) += cisco/ +obj-$(CONFIG_CX_ECAT) += ec_bh.o obj-$(CONFIG_DM9000) += davicom/ obj-$(CONFIG_DNET) += dnet.o obj-$(CONFIG_NET_VENDOR_DEC) += dec/
drivers/net/ethernet/ec_bh.c new file +768 -0
768 lines not on this page · raw message
Signature · 1 line
1.7.10.4
David Miller
maintainerPlease do not post new versions of patches as replies to existing email threads.
Instead, post the new version as a fresh list posting.
Thank you.
Quoted 6 lines · David Miller
Please do not post new versions of patches as replies to existing email threads.
Instead, post the new version as a fresh list posting.
Ok, thank you for the info. I've sent it in a new thread. I've also have just sent updated (v3) version of the patch.
Signature · 1 line
DM