mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-12 14:23:00 +00:00
a744a284e3
Ethernet phy like dp83867 is using strapping resistors to setup PHY address. On Xilinx boards strapping is setup on wires which are connected to SOC where internal pull ups/downs influnce phy address. That's why there is a need to setup pins properly (via pinctrl driver for example) and then perform phy reset. I can be workarounded by reset gpio done for mdio bus but this is not working properly when multiply phys sitting on the same bus. That's why it needs to be done via ethernet-phy-id driver where dt binding has gpio reset per phy. DT binding is available here: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/ethernet-phy.yaml The driver is are reading the vendor and device id from valid phy node using ofnode_read_eth_phy_id() and creating a phy device. Kconfig PHY_ETHERNET_ID symbol is used because not every platform has gpio support. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/70ab7d71c812b2c972d48c129e416c921af0d7f5.1645627539.git.michal.simek@xilinx.com
332 lines
9.1 KiB
Text
332 lines
9.1 KiB
Text
|
|
config BITBANGMII
|
|
bool "Bit-banged ethernet MII management channel support"
|
|
|
|
config MV88E6352_SWITCH
|
|
bool "Marvell 88E6352 switch support"
|
|
|
|
menuconfig PHYLIB
|
|
bool "Ethernet PHY (physical media interface) support"
|
|
depends on NET
|
|
help
|
|
Enable Ethernet PHY (physical media interface) support.
|
|
|
|
if PHYLIB
|
|
|
|
config PHY_ADDR_ENABLE
|
|
bool "Limit phy address"
|
|
default y if ARCH_SUNXI
|
|
help
|
|
Select this if you want to control which phy address is used
|
|
|
|
if PHY_ADDR_ENABLE
|
|
config PHY_ADDR
|
|
int "PHY address"
|
|
default 1 if ARCH_SUNXI
|
|
default 0
|
|
help
|
|
The address of PHY on MII bus. Usually in range of 0 to 31.
|
|
endif
|
|
|
|
config B53_SWITCH
|
|
bool "Broadcom BCM53xx (RoboSwitch) Ethernet switch PHY support."
|
|
help
|
|
Enable support for Broadcom BCM53xx (RoboSwitch) Ethernet switches.
|
|
This currently supports BCM53125 and similar models.
|
|
|
|
if B53_SWITCH
|
|
|
|
config B53_CPU_PORT
|
|
int "CPU port"
|
|
default 8
|
|
|
|
config B53_PHY_PORTS
|
|
hex "Bitmask of PHY ports"
|
|
|
|
endif # B53_SWITCH
|
|
|
|
config MV88E61XX_SWITCH
|
|
bool "Marvell MV88E61xx Ethernet switch PHY support."
|
|
|
|
if MV88E61XX_SWITCH
|
|
|
|
config MV88E61XX_CPU_PORT
|
|
int "CPU Port"
|
|
|
|
config MV88E61XX_PHY_PORTS
|
|
hex "Bitmask of PHY Ports"
|
|
|
|
config MV88E61XX_FIXED_PORTS
|
|
hex "Bitmask of PHYless serdes Ports"
|
|
|
|
endif # MV88E61XX_SWITCH
|
|
|
|
config PHYLIB_10G
|
|
bool "Generic 10G PHY support"
|
|
|
|
menuconfig PHY_AQUANTIA
|
|
bool "Aquantia Ethernet PHYs support"
|
|
select PHY_GIGE
|
|
select PHYLIB_10G
|
|
|
|
config PHY_AQUANTIA_UPLOAD_FW
|
|
bool "Aquantia firmware loading support"
|
|
depends on PHY_AQUANTIA
|
|
help
|
|
Aquantia PHYs use firmware which can be either loaded automatically
|
|
from storage directly attached to the phy or loaded by the boot loader
|
|
via MDIO commands. The firmware is loaded from a file, specified by
|
|
the PHY_AQUANTIA_FW_PART and PHY_AQUANTIA_FW_NAME options.
|
|
|
|
config PHY_AQUANTIA_FW_PART
|
|
string "Aquantia firmware partition"
|
|
depends on PHY_AQUANTIA_UPLOAD_FW
|
|
help
|
|
Partition containing the firmware file.
|
|
|
|
config PHY_AQUANTIA_FW_NAME
|
|
string "Aquantia firmware filename"
|
|
depends on PHY_AQUANTIA_UPLOAD_FW
|
|
help
|
|
Firmware filename.
|
|
|
|
config PHY_ATHEROS
|
|
bool "Atheros Ethernet PHYs support"
|
|
|
|
config PHY_BROADCOM
|
|
bool "Broadcom Ethernet PHYs support"
|
|
|
|
config PHY_CORTINA
|
|
bool "Cortina Ethernet PHYs support"
|
|
|
|
config SYS_CORTINA_NO_FW_UPLOAD
|
|
bool "Cortina firmware loading support"
|
|
depends on PHY_CORTINA
|
|
help
|
|
Cortina phy has provision to store phy firmware in attached dedicated
|
|
EEPROM. And boards designed with such EEPROM does not require firmware
|
|
upload.
|
|
|
|
choice
|
|
prompt "Location of the Cortina firmware"
|
|
default SYS_CORTINA_FW_IN_NOR
|
|
depends on PHY_CORTINA
|
|
|
|
config SYS_CORTINA_FW_IN_MMC
|
|
bool "Cortina firmware in MMC"
|
|
|
|
config SYS_CORTINA_FW_IN_NAND
|
|
bool "Cortina firmware in NAND flash"
|
|
|
|
config SYS_CORTINA_FW_IN_NOR
|
|
bool "Cortina firmware in NOR flash"
|
|
|
|
config SYS_CORTINA_FW_IN_REMOTE
|
|
bool "Cortina firmware in remote device"
|
|
|
|
config SYS_CORTINA_FW_IN_SPIFLASH
|
|
bool "Cortina firmware in SPI flash"
|
|
|
|
endchoice
|
|
|
|
config CORTINA_FW_ADDR
|
|
hex "Cortina Firmware Address"
|
|
depends on PHY_CORTINA && !SYS_CORTINA_NO_FW_UPLOAD
|
|
default 0x0
|
|
|
|
config CORTINA_FW_LENGTH
|
|
hex "Cortina Firmware Length"
|
|
depends on PHY_CORTINA && !SYS_CORTINA_NO_FW_UPLOAD
|
|
default 0x40000
|
|
|
|
config PHY_CORTINA_ACCESS
|
|
bool "Cortina Access Ethernet PHYs support"
|
|
default y
|
|
depends on CORTINA_NI_ENET
|
|
help
|
|
Cortina Access Ethernet PHYs init process
|
|
|
|
config PHY_DAVICOM
|
|
bool "Davicom Ethernet PHYs support"
|
|
|
|
config PHY_ET1011C
|
|
bool "LSI TruePHY ET1011C support"
|
|
|
|
config PHY_LXT
|
|
bool "LXT971 Ethernet PHY support"
|
|
|
|
config PHY_MARVELL
|
|
bool "Marvell Ethernet PHYs support"
|
|
|
|
config PHY_MESON_GXL
|
|
bool "Amlogic Meson GXL Internal PHY support"
|
|
|
|
config PHY_MICREL
|
|
bool "Micrel Ethernet PHYs support"
|
|
help
|
|
Enable support for the GbE PHYs manufactured by Micrel (now
|
|
a part of Microchip). This includes drivers for the KSZ804, KSZ8031,
|
|
KSZ8051, KSZ8081, KSZ8895, KSZ886x and KSZ8721 (if "Micrel KSZ8xxx
|
|
family support" is selected) and the KSZ9021 and KSZ9031 (if "Micrel
|
|
KSZ90x1 family support" is selected).
|
|
|
|
if PHY_MICREL
|
|
|
|
config PHY_MICREL_KSZ9021
|
|
bool
|
|
select PHY_MICREL_KSZ90X1
|
|
|
|
config PHY_MICREL_KSZ9031
|
|
bool
|
|
select PHY_MICREL_KSZ90X1
|
|
|
|
config PHY_MICREL_KSZ90X1
|
|
bool "Micrel KSZ90x1 family support"
|
|
select PHY_GIGE
|
|
help
|
|
Enable support for the Micrel KSZ9021 and KSZ9031 GbE PHYs. If
|
|
enabled, the extended register read/write for KSZ90x1 PHYs
|
|
is supported through the 'mdio' command and any RGMII signal
|
|
delays configured in the device tree will be applied to the
|
|
PHY during initialization.
|
|
|
|
config PHY_MICREL_KSZ8XXX
|
|
bool "Micrel KSZ8xxx family support"
|
|
help
|
|
Enable support for the 8000 series 10/100 PHYs manufactured by Micrel
|
|
(now a part of Microchip). This includes drivers for the KSZ804,
|
|
KSZ8031, KSZ8051, KSZ8081, KSZ8895, KSZ886x, and KSZ8721.
|
|
|
|
endif # PHY_MICREL
|
|
|
|
config PHY_MSCC
|
|
bool "Microsemi Corp Ethernet PHYs support"
|
|
|
|
config PHY_NATSEMI
|
|
bool "National Semiconductor Ethernet PHYs support"
|
|
|
|
config PHY_NXP_C45_TJA11XX
|
|
tristate "NXP C45 TJA11XX PHYs"
|
|
help
|
|
Enable support for NXP C45 TJA11XX PHYs.
|
|
Currently supports only the TJA1103 PHY.
|
|
|
|
config PHY_REALTEK
|
|
bool "Realtek Ethernet PHYs support"
|
|
|
|
config RTL8211X_PHY_FORCE_MASTER
|
|
bool "Ethernet PHY RTL8211x: force 1000BASE-T master mode"
|
|
depends on PHY_REALTEK
|
|
help
|
|
Force master mode for 1000BASE-T on RTl8211x PHYs (except for RTL8211F).
|
|
This can work around link stability and data corruption issues on gigabit
|
|
links which can occur in slave mode on certain PHYs, e.g. on the
|
|
RTL8211C(L).
|
|
|
|
Please note that two directly connected devices (i.e. via crossover cable)
|
|
will not be able to establish a link between each other if they both force
|
|
master mode. Multiple devices forcing master mode when connected by a
|
|
network switch do not pose a problem as the switch configures its affected
|
|
ports into slave mode.
|
|
|
|
This option only affects gigabit links. If you must establish a direct
|
|
connection between two devices which both force master mode, try forcing
|
|
the link speed to 100MBit/s.
|
|
|
|
If unsure, say N.
|
|
|
|
config RTL8211F_PHY_FORCE_EEE_RXC_ON
|
|
bool "Ethernet PHY RTL8211F: do not stop receiving the xMII clock during LPI"
|
|
depends on PHY_REALTEK
|
|
help
|
|
The IEEE 802.3az-2010 (EEE) standard provides a protocol to coordinate
|
|
transitions to/from a lower power consumption level (Low Power Idle
|
|
mode) based on link utilization. When no packets are being
|
|
transmitted, the system goes to Low Power Idle mode to save power.
|
|
|
|
Under particular circumstances this setting can cause issues where
|
|
the PHY is unable to transmit or receive any packet when in LPI mode.
|
|
The problem is caused when the PHY is configured to stop receiving
|
|
the xMII clock while it is signaling LPI. For some PHYs the bit
|
|
configuring this behavior is set by the Linux kernel, causing the
|
|
issue in U-Boot on reboot if the PHY retains the register value.
|
|
|
|
Default n, which means that the PHY state is not changed. To work
|
|
around the issues, change this setting to y.
|
|
|
|
config RTL8201F_PHY_S700_RMII_TIMINGS
|
|
bool "Ethernet PHY RTL8201F: adjust RMII Tx Interface timings"
|
|
depends on PHY_REALTEK
|
|
help
|
|
This provides an option to configure specific timing requirements (needed
|
|
for proper PHY operations) for the PHY module present on ACTION SEMI S700
|
|
based cubieboard7. Exact timing requiremnets seems to be SoC specific
|
|
(and it's undocumented) that comes from vendor code itself.
|
|
|
|
config PHY_SMSC
|
|
bool "Microchip(SMSC) Ethernet PHYs support"
|
|
|
|
config PHY_TERANETICS
|
|
bool "Teranetics Ethernet PHYs support"
|
|
|
|
config PHY_TI
|
|
bool "Texas Instruments Ethernet PHYs support"
|
|
---help---
|
|
Adds PHY registration support for TI PHYs.
|
|
|
|
config PHY_TI_DP83867
|
|
select PHY_TI
|
|
bool "Texas Instruments Ethernet DP83867 PHY support"
|
|
---help---
|
|
Adds support for the TI DP83867 1Gbit PHY.
|
|
|
|
config PHY_TI_DP83869
|
|
select PHY_TI
|
|
bool "Texas Instruments Ethernet DP83869 PHY support"
|
|
---help---
|
|
Adds support for the TI DP83869 1Gbit PHY.
|
|
|
|
config PHY_TI_GENERIC
|
|
select PHY_TI
|
|
bool "Texas Instruments Generic Ethernet PHYs support"
|
|
---help---
|
|
Adds support for Generic TI PHYs that don't need special handling but
|
|
the PHY name is associated with a PHY ID.
|
|
|
|
config PHY_VITESSE
|
|
bool "Vitesse Ethernet PHYs support"
|
|
|
|
config PHY_XILINX
|
|
bool "Xilinx Ethernet PHYs support"
|
|
|
|
config PHY_XILINX_GMII2RGMII
|
|
bool "Xilinx GMII to RGMII Ethernet PHYs support"
|
|
depends on DM_ETH
|
|
help
|
|
This adds support for Xilinx GMII to RGMII IP core. This IP acts
|
|
as bridge between MAC connected over GMII and external phy that
|
|
is connected over RGMII interface.
|
|
|
|
config PHY_ETHERNET_ID
|
|
bool "Read ethernet PHY id"
|
|
depends on DM_GPIO
|
|
default y if ZYNQ_GEM
|
|
help
|
|
Enable this config to read ethernet phy id from the phy node of DT
|
|
and create a phy device using id.
|
|
|
|
config PHY_FIXED
|
|
bool "Fixed-Link PHY"
|
|
depends on DM_ETH
|
|
help
|
|
Fixed PHY is used for having a 'fixed-link' to another MAC with a direct
|
|
connection (MII, RGMII, ...).
|
|
There is nothing like autoneogation and so
|
|
on, the link is always up with fixed speed and fixed duplex-setting.
|
|
More information: doc/device-tree-bindings/net/fixed-link.txt
|
|
|
|
config PHY_NCSI
|
|
bool "NC-SI based PHY"
|
|
depends on DM_ETH
|
|
|
|
endif #PHYLIB
|