u-boot/drivers
Vladimir Oltean 7c2d5d1642 net: freescale: replace usage of phy-mode = "sgmii-2500" with "2500base-x"
After the discussion here:
https://lore.kernel.org/netdev/20210603143453.if7hgifupx5k433b@pali/

which resulted in this patch:
https://patchwork.kernel.org/project/netdevbpf/patch/20210704134325.24842-1-pali@kernel.org/

and many other discussions before it, notably:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/1512016235-15909-1-git-send-email-Bhaskar.Upadhaya@nxp.com/

it became apparent that nobody really knows what "SGMII 2500" is.
Certainly, Freescale/NXP hardware engineers name this protocol
"SGMII 2500" in the reference manuals, but the PCS devices do not
support any "SGMII" specific features when operating at the speed of
2500 Mbps, no in-band autoneg and no speed change via symbol replication
. So that leaves a fixed speed of 2500 Mbps using a coding of 8b/10b
with a SERDES lane frequency of 3.125 GHz. In fact, "SGMII 2500 without
in-band autoneg and at a fixed speed" is indistinguishable from
"2500base-x without in-band autoneg", which is precisely what these NXP
devices support.

So it just appears that "SGMII 2500" is an unclear name with no clear
definition that stuck.

As such, in the Linux kernel, the drivers which use this SERDES protocol
use the 2500base-x phy-mode.

This patch converts U-Boot to use 2500base-x too, or at least, as much
as it can.

Note that I would have really liked to delete PHY_INTERFACE_MODE_SGMII_2500
completely, but the mvpp2 driver seems to even distinguish between SGMII
2500 and 2500base-X. Namely, it enables in-band autoneg for one but not
the other, and forces flow control for one but not the other. This goes
back to the idea that maybe 2500base-X is a fiber protocol and SGMII-2500
is an MII protocol (connects a MAC to a PHY such as Aquantia), but the
two are practically indistinguishable through everything except use case.

NXP devices can support both use cases through an identical configuration,
for example RX flow control can be unconditionally enabled in order to
support rate adaptation performed by an Aquantia PHY. At least I can
find no indication in online documents published by Cisco which would
point towards "SGMII-2500" being an actual standard with an actual
definition, so I cannot say "yes, NXP devices support it".

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2021-09-28 18:50:56 +03:00
..
adc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
ata pci: acpi: Drop DM_PCI check from ahci 2021-09-13 18:23:13 -04:00
axi dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
bios_emulator pci: Drop DM_PCI check from bios_emul 2021-08-05 19:46:35 -04:00
block blk: Support iteration 2021-07-21 10:27:35 -06:00
bootcount bootcount: add a new driver with syscon as backend 2021-08-22 11:04:52 +02:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
cache cache: add sifive composable cache driver 2021-09-07 10:34:29 +08:00
clk clk: ti: k3: Update driver to account for divider flags 2021-09-17 14:47:03 -04:00
core dm: core: Don't allow uclass use before ready 2021-08-08 11:27:27 -06:00
cpu dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
crypto image: Drop if/elseif hash selection in calculate_hash() 2021-09-08 16:12:09 -04:00
ddr ddr: altera: use KBUILD_BASENAME instead of __FILE__ 2021-09-28 18:50:55 +03:00
demo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
dfu global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
dma dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
fastboot Fix flashing of eMMC user area with Fastboot 2021-08-21 18:23:02 -04:00
firmware psci: Do not define do_poweroff() if CONFIG_SYSRESET_CMD_POWEROFF is enabled 2021-07-26 09:18:45 +02:00
fpga arm: socfpga: Move Stratix10 and Agilex to use TARGET_SOCFPGA_SOC64 2021-03-08 10:59:10 +08:00
gpio pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
hwspinlock dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
i2c pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
input dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
led dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
mailbox dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
memory memory: stm32-fmc2: migrate trace to dev and log macro 2021-01-13 09:52:58 +01:00
misc imx8ulp: move struct mu_type to common header 2021-08-09 14:46:51 +02:00
mmc sunxi: mmc: A20: Fix MMC optimisation 2021-09-14 00:02:10 +01:00
mtd mtd: remove SPEAr flash driver st_smi 2021-09-28 18:50:55 +03:00
mux dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
net net: freescale: replace usage of phy-mode = "sgmii-2500" with "2500base-x" 2021-09-28 18:50:56 +03:00
nvme dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
pch dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
pci pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: marvell: cp110: Support SATA invert polarity 2021-09-28 18:50:55 +03:00
pinctrl pinctrl: fix typo 2021-09-14 09:07:18 -04:00
power global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
pwm dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
qe global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
ram global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
reboot-mode reboot-mode: read the boot mode from RTC memory 2021-07-23 10:16:39 -04:00
remoteproc remoteproc: pru: Add support for various PRU cores on K3 AM65x SoCs 2021-07-15 17:56:04 +05:30
reset reset: zynqmp: Add reset controller for ZynqMP SoC 2021-08-06 09:32:03 +02:00
rng dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
rtc rtc: zynqmp: Add support for ZynqMP RTC 2021-08-06 09:32:02 +02:00
scsi pci: scsi: pci: Drop DM_PCI check from scsi 2021-08-05 19:46:35 -04:00
serial global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
smem dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
soc soc: xilinx: versal: Add soc_xilinx_versal driver 2021-08-26 08:08:11 +02:00
sound dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
spi pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
spmi dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
sysinfo sysinfo: rcar3: Add Renesas R-Car Gen3 sysinfo driver 2021-07-20 23:33:54 +02:00
sysreset sysreset: provide type of reset in do_reset cmd 2021-04-20 07:31:12 -04:00
tee tee: optee: sync cache on pre-reloc OP-TEE invocation 2021-07-23 07:13:25 -04:00
thermal dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
timer x86: tsc: Rename X86_TSC_TIMER_EARLY_FREQ to X86_TSC_TIMER_FREQ 2021-08-02 15:11:40 +08:00
tpm sandbox: tpm: Support extending a PCR multiple times 2021-08-01 09:05:24 -06:00
ufs dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
usb usb: xhci-dwc3: Add support for USB 3.1 controllers 2021-09-28 18:50:55 +03:00
video - add display driver for ST-Ericsson MCDE 2021-08-06 13:46:40 -04:00
virtio pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
w1 various minor sandbox improvements 2021-07-07 13:34:42 -04:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog wdt: dw: Fix passing NULL pointer to reset functions 2021-09-20 07:39:29 +02:00
xen dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
Kconfig reboot-mode: add support for reboot mode control 2021-07-23 10:16:39 -04:00
Makefile ddr: Add DDR driver for iMX8ULP 2021-08-09 14:46:51 +02:00