linux_dsm_epyc7002/arch/arm
Martin Blumenstingl 29f0023d01 ARM: dts: meson8b: fix the Ethernet data line signals in eth_rgmii_pins
According to the Odroid-C1+ schematics the Ethernet TXD1 signal is
routed to GPIOH_5 and the TXD0 signal is routed to GPIOH_6.
The public S805 datasheet shows that TXD0 can be routed to DIF_2_P and
TXD1 can be routed to DIF_2_N instead.

The pin groups eth_txd0_0 (GPIOH_6) and eth_txd0_1 (DIF_2_P) are both
configured as Ethernet TXD0 and TXD1 data lines in meson8b.dtsi. At the
same time eth_txd1_0 (GPIOH_5) and eth_txd1_1 (DIF_2_N) are configured
as TXD0 and TXD1 data lines as well.
This results in a bad Ethernet receive performance. Presumably this is
due to the eth_txd0 and eth_txd1 signal being routed to the wrong pins.
As a result of that data can only be transmitted on eth_txd2 and
eth_txd3. However, I have no scope to fully confirm this assumption.

The vendor u-boot sources for Odroid-C1 use the following Ethernet
pinmux configuration:
  SET_CBUS_REG_MASK(PERIPHS_PIN_MUX_6, 0x3f4f);
  SET_CBUS_REG_MASK(PERIPHS_PIN_MUX_7, 0xf00000);
This translates to the following pin groups in the mainline kernel:
- register 6 bit  0: eth_rxd1 (DIF_0_P)
- register 6 bit  1: eth_rxd0 (DIF_0_N)
- register 6 bit  2: eth_rx_dv (DIF_1_P)
- register 6 bit  3: eth_rx_clk (DIF_1_N)
- register 6 bit  6: eth_tx_en (DIF_3_P)
- register 6 bit  8: eth_ref_clk (DIF_3_N)
- register 6 bit  9: eth_mdc (DIF_4_P)
- register 6 bit 10: eth_mdio_en (DIF_4_N)
- register 6 bit 11: eth_tx_clk (GPIOH_9)
- register 6 bit 12: eth_txd2 (GPIOH_8)
- register 6 bit 13: eth_txd3 (GPIOH_7)
- register 7 bit 20: eth_txd0_0 (GPIOH_6)
- register 7 bit 21: eth_txd1_0 (GPIOH_5)
- register 7 bit 22: eth_rxd3 (DIF_2_P)
- register 7 bit 23: eth_rxd2 (DIF_2_N)

Drop the eth_txd0_1 and eth_txd1_1 groups from eth_rgmii_pins to fix the
Ethernet transmit performance on Odroid-C1. Also add the eth_rxd2 and
eth_rxd3 groups so we don't rely on the bootloader to set them up.

iperf3 statistics before this change:
- transmitting from Odroid-C1: 741 Mbits/sec (0 retries)
- receiving on Odroid-C1: 199 Mbits/sec (1713 retries)

iperf3 statistics after this change:
- transmitting from Odroid-C1: 667 Mbits/sec (0 retries)
- receiving on Odroid-C1: 750 Mbits/sec (0 retries)

Fixes: b96446541d ("ARM: dts: meson8b: extend ethernet controller description")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Emiliano Ingrassia <ingrassia@epigenesys.com>
Cc: Linus Lüssing <linus.luessing@c0d3.blue>
Tested-by: Emiliano Ingrassia <ingrassia@epigenesys.com>
Reviewed-by: Emiliano Ingrassia <ingrassia@epigenesys.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:25 -08:00
..
boot ARM: dts: meson8b: fix the Ethernet data line signals in eth_rgmii_pins 2019-02-11 12:52:25 -08:00
common Included in this update: 2019-01-05 11:23:17 -08:00
configs ARM: SoC: late updates 2019-01-05 11:30:37 -08:00
crypto Kbuild updates for v4.21 2018-12-29 12:03:17 -08:00
firmware
include arch: remove redundant UAPI generic-y defines 2019-01-06 10:22:15 +09:00
kernel jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
kvm Kconfig updates for v4.21 2018-12-29 13:03:29 -08:00
lib
mach-actions
mach-alpine PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 treewide: add intermediate .s files to targets 2018-12-23 10:12:08 +09:00
mach-axxia
mach-bcm ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx mmc: spi: Convert to use GPIO descriptors 2018-12-17 08:26:24 +01:00
mach-exynos ARM: exynos: Remove secondary startup initialization from smp_prepare_cpus 2018-11-18 15:12:50 +01:00
mach-footbridge PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-keystone
mach-ks8695 ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: select HAVE_ARM_TWD and ARM_GLOBAL_TIMER 2018-12-10 12:43:40 -08:00
mach-mmp ARM: Device-tree updates 2018-12-31 17:36:02 -08:00
mach-moxart
mach-mv78xx0 PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-mvebu PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-omap2 Included in this update: 2019-01-05 11:23:17 -08:00
mach-orion5x PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa Included in this update: 2019-01-05 11:23:17 -08:00
mach-qcom
mach-rda ARM: Prepare RDA8810PL SoC 2018-12-31 13:09:39 -08:00
mach-realview ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
mach-rockchip
mach-rpc
mach-s3c24xx mmc: s3cmci: Use the slot GPIO descriptor 2018-12-17 08:26:24 +01:00
mach-s3c64xx
mach-s5pv210
mach-sa1100 Included in this update: 2019-01-05 11:23:17 -08:00
mach-shmobile ARM: shmobile: R-Mobile: Move pm-rmobile to drivers/soc/renesas/ 2018-11-30 11:29:11 +01:00
mach-socfpga ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-spear
mach-sti ARM: sti: remove pen_release and boot_lock 2018-12-20 14:32:15 +01:00
mach-stm32
mach-sunxi ARM: sunxi: add Allwinner ARMv5 SoCs 2018-12-03 09:57:59 +01:00
mach-tango
mach-tegra ARM: tegra: avoid section mismatch warning 2018-12-12 13:57:55 -08:00
mach-u300
mach-uniphier
mach-ux500
mach-versatile
mach-vexpress ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm Included in this update: 2019-01-05 11:23:17 -08:00
net
nwfpe
oprofile Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung ARM: samsung: Limit SAMSUNG_PM_DEBUG config option to non-Exynos platforms 2018-11-18 15:11:27 +01:00
plat-versatile ARM: versatile: rename and comment SMP implementation 2018-12-14 14:44:59 +00:00
probes
tools kbuild: remove redundant target cleaning on failure 2019-01-06 09:46:51 +09:00
vdso
vfp Merge branches 'misc', 'sa1100-for-next' and 'spectre' into for-linus 2019-01-02 10:37:05 +00:00
xen
Kconfig ARM: SoC: late updates 2019-01-05 11:30:37 -08:00
Kconfig-nommu
Kconfig.debug i.MX SoC changes for 4.21: 2018-12-12 13:52:48 -08:00
Makefile ARM: SoC: late updates 2019-01-05 11:30:37 -08:00