u-boot/drivers
Stefan Roese 5a834c1f9e net: cpsw: am335x: Drop constant link checking from rx/tx path's
We noticed on the DXR2 platform (AM335x with a SMSC LAN9303 switch connected
to the CPSW MAC) that the network performance in U-Boot is quite poor. Only
when the transfer is started without a cable connected, and the cable is
plugged after the first timeout "T" occured, an increased in performance
can be seen. Debugging has revealed, that the cpsw driver has constant
link checking builtin into the rx and tx functions. This results in the
bad performance and seems to be unnecessary. The link has already been
checked in the init function, before the transfer is started. This usually
is sufficient.

BTW: I have seen no other network driver in U-Boot so far, that constantly
checks for link in the rx / tx functions.

The performance numbers on the DXR2 board are:

0.56 MiB/s	cpsw_check_link() in rx and tx path
0.87 MiB/s	cpsw_check_link() only in tx path
1.0  MiB/s	cpsw_check_link() only in rx path
2.7  MiB/s	no cpsw_check_link() in rx and tx path

So with this patch the network performance on DXR2 increases from 0.56
to 2.7 MiB/s (nearly 5 times as fast).

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Samuel Egli <samuel.egli@siemens.com>
Tested-by: Heiko Schocher <hs@denx.de>
Cc: Vladimir Koutny <vladimir.koutny@streamunlimited.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Tom Rini <trini@ti.com>
2014-08-28 17:18:49 -04:00
..
bios_emulator kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
block ahci: provide sunxi SATA driver using AHCI platform framework 2014-07-31 15:37:22 +02:00
bootcount qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
core dm: Add dm_scan_other() to locate board-specific devices 2014-07-23 14:08:37 +01:00
crypto includes: move openssl headers to include/u-boot 2014-06-19 11:19:04 -04:00
ddr/fsl driver/ddr: Fix DDR register timing_cfg_8 2014-07-22 16:25:55 -07:00
demo dm: Give the demo uclass a name 2014-07-23 14:08:37 +01:00
dfu dfu: fix readback buffer overflow test 2014-08-09 11:17:01 -04:00
dma omap: clean-up dead configs 2014-08-09 11:17:04 -04:00
fpga m68k: Fix warnings with gcc 4.6 2014-06-11 16:27:05 -04:00
gpio Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master' 2014-07-28 10:12:45 +02:00
hwmon kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
i2c Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master' 2014-07-28 10:12:45 +02:00
input stdio: Pass device pointer to stdio methods 2014-07-23 14:07:23 +01:00
memory ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00
misc cros_ec: Fix two bugs in the SPI implementation 2014-08-06 00:18:01 +05:30
mmc MMC: atmel_mci: enable high speed mode support 2014-08-01 20:01:33 +03:00
mtd mtd,ubi,ubifs: sync with linux v3.15 2014-08-25 19:25:56 -04:00
net net: cpsw: am335x: Drop constant link checking from rx/tx path's 2014-08-28 17:18:49 -04:00
pci pci: fix overflow in __pci_hose_bus_to_phys w/ large RAM 2014-08-14 11:38:47 +02:00
pcmcia powerpc: mpc8xx: remove svm_sc8xx board 2014-08-21 12:01:12 -04:00
power Merge branch 'u-boot-ti/master' into 'u-boot-arm/master' 2014-07-28 12:26:21 +02:00
qe driver/qe: update status of QE microcode 2014-08-20 10:44:16 -07:00
rtc RTC: add support for DS1339 (using DS1307 driver) 2014-08-14 14:45:58 +02:00
serial omap: clean-up dead configs 2014-08-09 11:17:04 -04:00
sound build: define CPU only when arch/${ARCH}/cpu/${CPU} exists 2014-07-07 19:42:34 -04:00
spi spi, spi_mxc: do not hang in spi_xchg_single 2014-08-06 00:18:01 +05:30
tpm tpm: don't use unneeded double brackets 2014-07-07 19:43:01 -04:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb Merge branch 'master' of git://git.denx.de/u-boot-arm 2014-08-28 13:03:25 -04:00
video lib, linux: move linux specific defines to linux/compat.h 2014-08-25 19:25:03 -04:00
watchdog blackfin: Fix warning about undefined function 2014-07-07 19:47:09 -04:00
Makefile ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00