- Jul 08, 2020
-
-
Murali Karicheri authored
Now that driver lists the firmware names, remove this from the dts. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Use functions to initialize the fdb table and to free the memory and move the code to prueth_switch.c. While at it place the fdb init function ahead of booting the PRUs as this memory is used by PRU. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Now that firmware filenames are listed in the driver as a static table, remove this from DTS. So update the documentation accordingly. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Remove firmware filename usage in dts and use compatibility private data to specify firmware files names in the driver as driver is expected to support run time change of Ethernet type in which case file name has to be determined dynamically when network device is opened as Ethernet type can be other than Dual EMAC. As file names are dependent on the platform and Ethernet type, introduce an array to hold these names and use in the driver. While at it move the macros to check Ethernet type to common header file prueth.h as it this is common across all Ethernet types Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Many functions such as prueth_hostconfig(), prueth_hostinit() doesn't return any error code and can be void. Fix the return type to void in such cases. Also check for return type of prueth_sw_emac_config() since the function has a return value. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
if driver is in single emac mode, then nsp code will crash because there is no check for emac ptr. So fix it by adding a check for null ptr. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
tx irq is optional in the driver. So remove the same from dts to get a better egress performance for small size frames. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
tx irq is optional in the driver. So remove the same from dts to get a better egress performance for small size frames. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
tx irq is optional in the driver. So remove the same from dts to get a better egress performance for small size frames. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
tx irq is optional in the driver. So remove the same from dts to get a better egress performance for small size frames. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Egress throughput with small size packet is better with tx irq removed along with reduction in CPU usage. With DUT-DUT test, a reduction in CPU usage of 7% is seen with iperf3 UDP test using payload size of 76 bytes. 41% before change vs 34% after the change on a RT kernel. CPU usage measured using mpstat -P ALL 3 50 command. iperf command used Server iperf3 -s -i5 Client iperf3 -c <server IP> -u -b18M -l76 -i5 -t60& DUT to PC test gives a higher throughput of 26-27 Mbits/sec at this payload size of 76 bytes. client side command is iperf3 -c <server IP> -u -b30M -l76 -i5 -t60& All tested on AM57x with ksoftirqd/0 & ksoftirqd/1 priority raised as chrt -f -p 40 9 chrt -f -p 40 20 With DUT to PC test, an improvement in effective throughput of 1.5Mbits/sec along with a reduction in CPU usage of ~1%. The offered traffic is at 30Mbits/sec. However with MTU size frames, a degradation in performance of about 7% seen based on testing with Tx IRQ removed. For industrial networks, it is important to have higher performance at small size packets since majority of the traffic is small sized. So make Tx IRQ use in the driver optional for Dual EMAC firmware so that users can add Tx IRQ entry in the DTS as needed if a specific application uses predominantly MTU or near MTU sized frames and thus get the benefit of higher throughput at that size. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Test has shown that at MTU size frames, PRUETH Driver gives better performance numbers when using Tx IRQ. However performance is batter for small size frames when not using Tx IRQ. So make the tx irq use in the driver optional so that users can add it to DTS for a specific case as needed. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
- Jul 07, 2020
-
-
Murali Karicheri authored
IRQF_ONESHOT is used by request_threaded_irq() API and is not to be used with request_irq(). Remove its use in the driver. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Use existing NUM_QUEUES constant to declare the size of queue context arrays in the driver instead of hardcoded value. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Remove the redundant constant EMAC_MIN_PKTLEN in driver with existing constant ETH_ZLEN. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Replace skb_padto() with eth_skb_pad() and avoid checks for min packet length as it is already part of eth_skb_pad() Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Add rx Supervision (SV) frame count for Link A and B to debug stats. This is needed as the LRE rx stats is inclusive of SV frames and user may want to count how many rx non SV frames received for debug purpose. So add these counters to the lre_info debugfs and update it in the packet processing code. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
Murali Karicheri authored
Currently when hsr/prp interface is deleted, hsr_del_port() doesn't check if device is not offloaded before calling dev_set_promiscuity(). This patch fixes that by calling dev_set_promiscuity() only when not offloaded Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com>
-
LCPD Auto Merger authored
TI-Feature: connectivity TI-Branch: connectivity-ti-linux-5.4.y * 'connectivity-ti-linux-5.4.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity : ti_config_fragments/connectivity.cfg: Drop duplicate CONFIG_USB_USBNET=m ti_config_fragments: Drop omap5_soc.cfg net: ti: prueth_core: Fix initialization of iep timer net: ti: prueth_switch: Ignore FDB table update when interface is down net: ti: prueth_core: Fix packet reception on second port in switch mode Signed-off-by:
LCPD Auto Merger <lcpd_integration@list.ti.com>
-
- Jul 06, 2020
-
-
Vignesh Raghavendra authored
Drop duplicate CONFIG_USB_USBNET=m entry Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
Vignesh Raghavendra authored
There is no reference to this file in the ti_config_fragments/defconfig_map.txt file. So drop the unused file Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
IEP is initialized during the probe of prueth driver. When switching to different firmware(from dual emac to HSR) IEP counter is not reset and current timer is used. Also when both the ports are down, IEP need not be running as there are no users. So, move icss_iep_init/exit() calls to emac_ndo_open/stop() respectively. Fixes: 5ed1a006 ("net: ti: prueth_core: Add support for initializing IEP") Signed-off-by:
Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
Vignesh Raghavendra authored
When switch interfaces are down, PRUs are down and FDB table does not exist. Therefore avoid accessing FDB table when interfaces are down. Fixes: f3142191 ("net: ti: prueth_core: Add support for RSTP switch") Reported-by:
Murali Karicheri <m-karicheri2@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
Vignesh Raghavendra authored
prueth->emac[0] represents port 1 and prueth->emac[1] represents port 2. Therefore fix indexing of prueth->emac array by subtracting one from port_id. Without this driver would be doing out of bound access and therefore packets received on port 2 (for host) is not forwarded correctly to the Linux networking stack. Fixes: f3142191 ("net: ti: prueth_core: Add support for RSTP switch") Reported-by:
Murali Karicheri <m-karicheri2@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
- Jul 02, 2020
-
-
LCPD Auto Merger authored
TI-Feature: connectivity TI-Branch: connectivity-ti-linux-5.4.y * 'connectivity-ti-linux-5.4.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity : serial: 8250: pruss: fix overflow in conversion build warning net: hsr/prp: fix cppcheck 'warning: Clarify calculation precedence' Signed-off-by:
LCPD Auto Merger <lcpd_integration@list.ti.com>
-
Fix the build warning in arm64 build: drivers/tty/serial/8250/8250_pruss.c: In function 'pruss8250_set_divisor': drivers/tty/serial/8250/8250_pruss.c:131:41: warning: overflow in conversion from 'long unsigned int' to 'int' changes value from '18446744073709551614' to '-2' [-Woverflow] Fixes: 57fe8746 ("serial: 8250: add pruss uart driver") Signed-off-by:
Bin Liu <b-liu@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
- Jul 01, 2020
-
-
kernel test robot reported following warning:- In file included from net/hsr/hsr_device.c: net/hsr/hsr_device.c:465:21: warning: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] IFF_ALLMULTI ? 1 : -1); ^ This patch fixes the issue by adding parenthesis around the expression. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com>
-
- Jun 30, 2020
-
-
LCPD Auto Merger authored
TI-Feature: connectivity TI-Branch: connectivity-ti-linux-5.4.y * 'connectivity-ti-linux-5.4.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity : dmaengine: ti: k3-udma: Add support for second resource range from sysfw soc: ti: ti_sci_inta_msi: Add support for second range in resource ranges firmware: ti_sci: rm: Add support for second resource range firmware: ti_sci: Use struct ti_sci_resource_desc in get_range ops Signed-off-by:
LCPD Auto Merger <lcpd_integration@list.ti.com>
-
Peter Ujfalusi authored
Resource allocation via sysfw can use up to two ranges per resource subtype to support more complex resource assignment, mainly for DMA channels. Take the second range also into consideration when setting up the maps for available resources. Signed-off-by:
Peter Ujfalusi <peter.ujfalusi@ti.com>
-
Peter Ujfalusi authored
Allocate MSI entries for both first and second range if they are valid Signed-off-by:
Peter Ujfalusi <peter.ujfalusi@ti.com>
-
Peter Ujfalusi authored
Sysfw added support for a second range in the resource range API to be able to describe complex allocations mainly for DMA channels. Update the ti_sci part to consider the second range as well. Signed-off-by:
Peter Ujfalusi <peter.ujfalusi@ti.com>
-
Peter Ujfalusi authored
Use the ti_sci_resource_desc directly and update it's start and num members directly instead of requiring individual parameters for them. This will allow easy extension of the RM parameters without changing API. Signed-off-by:
Peter Ujfalusi <peter.ujfalusi@ti.com>
-
- Jun 26, 2020
-
-
LCPD Auto Merger authored
TI-Feature: connectivity TI-Branch: connectivity-ti-linux-5.4.y * 'connectivity-ti-linux-5.4.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity : net: ti: prueth_core: Add support for initializing IEP net: hsr/prp: Support VLAN tagged supervision frames net: hsr/prp: add procfs interface for snmp agent interface net: hsr/prp: introduce rx offload support for HSR/PRP net: hsr/prp: add vlan ctag filter support net: hsr/prp: add support for mc filtering at the slave device net: hsr/prp: add vlan support net: hsr/prp: add lre stats and debugfs display for the same Signed-off-by:
LCPD Auto Merger <lcpd_integration@list.ti.com>
-
IEP inside ICSS is used as PTP clock. Add support for initializing IEP clock when prueth is enabled on ICSS. Signed-off-by:
Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com> Acked-by:
Roger Quadros <rogerq@ti.com>
-
- Jun 24, 2020
-
-
Murali Karicheri authored
In hsr/prp networks, user may choose to use vlan tagged Supervision (SV) frames in the network which is defined as an optional feature in the iec-62439 standard. User would then require to configure the VLAN ID, PCP and DEI values to be used in the SV frames. This patch update the driver to accept these values optionally from user as part of the ip link add command and use VLAN info to format the VLAN tag in the SV frame. Also pass the VLAN ID to the lower device so that it may be added to the VLAN filter in h/w. Update the procfs interface to allow user to enable/disable SV frame generation logic for debug purpose. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-
Murali Karicheri authored
implement a simple procfs interface to support snmpd agent set/get command to implement iec62439 mibs for LRE. This is done similar to ip/udp/tcp mibs of mibii for stats and such. procfs files are created under the /proc/<interface-name> folder. This patch also add some missing hsr/prp modes so that same can be set through SNMP interface. The format of print to console is kept same as the current debugfs output format expected by snmpd so that same text parser can be re-used at snmpd even after this migration. Note that this is a temporary interface and is not accepted by netdev community at LKML and may change in the future. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-
Murali Karicheri authored
This patch introduces the HSR/PRP rx offload flag to allow offload of LRE rx side processing such as duplicate detect/drop, node_table, etc to h/w. Lower level Ethernet drivers that support h/w with these protocol handling list this feature in the feature flag of the net_device. If lower device feature flag indicates RX Offload support, then the same function is disabled in this driver. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-
Murali Karicheri authored
This patch adds support for vlan ctag based filtering at slave devices. The slave Ethenet device may be capable of filtering Ethernet packets based on VLAN ID. This requires that when the VLAN interface is created over an hsr/prp interface, it passes the vid information to the associated slave Ethernet devices so that it updates the hardware filters to filter Ethernet frames based on VID. This patch adds the required functions to propagate the vid information to the slave devices. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-
Murali Karicheri authored
When MC list is updated by the networking layer due to a user command and as well as when allmulti flag is set, it needs to be passed to the enslaved Ethernet devices. This patch allows this to happen by implementing ndo_change_rx_flags() and ndo_set_rx_mode() API calls that in turns pass it to the slave devices using existing API calls. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-
WingMan Kwok authored
This patch add support for creating vlan interfaces over hsr/prp interface. Signed-off-by:
Murali Karicheri <m-karicheri2@ti.com> Signed-off-by:
WingMan Kwok <w-kwok2@ti.com> Reviewed-by:
Grygorii Strashko <grygorii.strashko@ti.com>
-