summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2018-04-04net: sun8i-emac: add support for new EMAC DT bindingAndre Przywara
The Ethernet MAC used in newer Allwinner SoCs (H3, A64, H5) got an upstream Linux driver in v4.15. This one uses a slightly different binding from the original one used by the U-Boot driver. The differences to the old binding are: - The "syscon" address is held in a separate node, referenced via a phandle in the "syscon" property. - The reference to the PHY is held in a property called "phy-handle", not "phy". - The PHY register is at offset 0x30 in the syscon device, not at 0. - The internal PHY is activated when the node, which phy-handle points to, is a child node of an "allwinner,sun8i-h3-mdio-internal" node. Teach the U-Boot driver how to find its resources in a "new-style" DT, so that we can use a Linux kernel compatible DT for U-Boot as well. This keeps support for the old binding for now, to allow a smooth transition. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2018-04-04net: sun8i-emac: support new pinctrl DT bindingsAndre Przywara
The Linux kernel driver for the Allwinner pin controller gained support for generic properties, which are now also used in the DTs. The sun8i-emac Ethernet driver for new Allwinner MACs reads the pins from the DT, but so far only supported the old binding. Update the parsing routine to cope with both the old and new bindings, so that the newer DTs can be used with U-Boot and its Ethernet driver. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2018-03-23net: zynq_gem: Dont run any phy detection logic for GMII caseSiva Durga Prasad Paladugu
This patch bypasses phy detection logic for GMII interface and just depend on phy address received from DT. This patch is required as phy detection logic is different for some phys like xilinx phy which can be connected over SGMII and GMII interface. This fixes the issue of ethernet failures when xilinx phy is connected over GMII interface. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net: Drop CONFIG_ENC28J60Tuomas Tynkkynen
Last user of this driver went away in October 2014 in commit d58a9451e7339ed4 ("ppc/arm: zap EMK boards"). Signed-off-by: Tuomas Tynkkynen <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net: macb: remove superfluous logical constraintHeinrich Schuchardt
In if (a > =0) {...} else (a < 0) {...} the second logical constraint is superfluous. Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22drivers: net: cpsw: remove superfluous assignment.Heinrich Schuchardt
In int ret = A; ret = B; the first assignment has not effect. Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net/phy/cortina: Add No firmware upload optionPriyanka Jain
Current Cortina phy driver assumes that firmware upload is required during initialization and is dependent on presence of corresponding macros like CONFIG_CORTINA_FW_ADDR for compilation. But Cortina phy has provision to store phy firmware in attached dedicated EEPROM. And boards designed with such EEPROM does not require firmware upload. Add CORTINA_NO_FW_UPLOAD option in cortina.c to support such boards. Signed-off-by: Priyanka Jain <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net/phy/cortina.c: Update get_phy_id implementationPriyanka Jain
Update get_phy_id() implementation in cortina.c to check for Cortina_phy by comparing device phy_id with cortina phy_id instead of relying on presence of CORTINA macros. This will allow get_phy_id to work with non-cortina phy devices which might have same phy address as Cortina device but on different bus. Signed-off-by: Priyanka Jain <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22configs: ls1012a: add pfe configuration for LS1012ACalvin Johnson
Add configurations for PFE. Signed-off-by: Calvin Johnson <[email protected]> Signed-off-by: Anjaneyulu Jagarlmudi <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22drivers: net: pfe_eth: provide pfe commandsCalvin Johnson
pfe_command provides command line support for several features that support pfe, like starting or stopping the pfe, checking the health of the processor engines and checking status of different units inside pfe. Signed-off-by: Calvin Johnson <[email protected]> Signed-off-by: Anjaneyulu Jagarlmudi <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22drivers: net: pfe_eth: LS1012A PFE driver introductionCalvin Johnson
This patch adds PFE driver to U-Boot Following are the main driver files:- pfe_hw.c: provides low level helper functions to initialize PFE internal processor engines and other hardware blocks pfe_driver.c: provides initialization functions and packet send and receive functions pfe_eth.c: provides high level gemac initialization functions pfe_firmware.c: provides functions to load firmware into PFE internal processor engines. pfe_mdio.c: provides functions to initialize phy and mdio. Signed-off-by: Calvin Johnson <[email protected]> Signed-off-by: Anjaneyulu Jagarlmudi <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22drivers: net: phy: Fix aquantia compilation with DMCalvin Johnson
With CONFIG_DM_ETH enabled, aquantia driver compilation fails with below error. This patch fixes the issue by including dm.h. drivers/net/phy/aquantia.c: In function ‘aquantia_startup’: drivers/net/phy/aquantia.c:73:21: error: dereferencing pointer to incomplete type ‘struct udevice’ phydev->dev->name); ^~ Signed-off-by: Calvin Johnson <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net: mvpp2x: add check after callocHeinrich Schuchardt
After allocating plat the pointer is checked. Afterwards name is allocated and not checked. Add the missing check to avoid a possible NULL dereference. Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-22net: phy: Add PHY_RTL8211E_PINE64_GIGABIT_FIX for realtek phys[email protected]
Setting PHY_RTL8211E_PINE64_GIGABIT_FIX forces internal rx/tx delays off on the PHY, as well as flipping some magical undocumented bits. The magic number comes from the Pine64 engineering team, presumably as a proxy from Realtek. This configuration fixes the throughput on some Pine64 models. Packet loss of up to 60-70% has been observed without this. Signed-off-by: Kyle Evans <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-03-13Move CONFIG_PHY_ADDR to KconfigStefan Mavrodiev
CONFIG_PHY_ADDR is used for old-style configuration. This makes impossible changing the PHY address, if multiple boards share a same config header file (for example include/configs/sunxi-common.h). Moving this to Kconfig helps overcoming this issue. It's defined as entry inside PHYLIB section. After the implemention, moveconfig was run. The issues are: - edb9315a - CONFIG_PHYLIB is not enabled. Entry is deleted. - ds414 - CONFIG_PHYLIB is in incompatible format: { 0x1, 0x0 }. This entry is also deleted. - devkit3250 - The PHY_ADDR is in hex format (0x1F). Manually CONFIG_PHY_ADDR=31 is added in the defconfig. After the changes the suspicious defconfigs passes building. Signed-off-by: Stefan Mavrodiev <[email protected]> Acked-by: Maxime Ripard <[email protected]> [jagan: rebased on master] Signed-off-by: Jagan Teki <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2018-03-13net: sun8i_emac: Fix PHY initializationSamuel Holland
The previous code tried to update the PHY parameters without waiting for autonegotiation to complete. This caused wrong values to be written to the EMAC in sun8i_adjust_link(). As a result, any commands that called eth_start() before autonegotiation completed would find the network nonfunctional. Fix this by using the correct function to start up the PHY. Signed-off-by: Samuel Holland <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2018-03-05Merge git://git.denx.de/u-boot-shTom Rini
2018-03-05libfdt: move headers to <linux/libfdt.h> and <linux/libfdt_env.h>Masahiro Yamada
Thomas reported U-Boot failed to build host tools if libfdt-devel package is installed because tools include libfdt headers from /usr/include/ instead of using internal ones. This commit moves the header code: include/libfdt.h -> include/linux/libfdt.h include/libfdt_env.h -> include/linux/libfdt_env.h and replaces include directives: #include <libfdt.h> -> #include <linux/libfdt.h> #include <libfdt_env.h> -> #include <linux/libfdt_env.h> Reported-by: Thomas Petazzoni <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
2018-03-05net: ravb: Add R8A77965 M3N entriesMarek Vasut
Add entries for the R8A77965 M3N SoC. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-26net: phy: smsc: Add SMSC LAN8741 supportArno Steffens
Signed-off-by: Arno Steffens <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-26net: e1000: Fix e1000_igb semaphore handlingBernhard Messerklinger
Fix commit f1bcad22dd19 ("net: e1000: add support for writing to EEPROM"). Signed-off-by: Bernhard Messerklinger <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-26NET: designware: fix clock enableEugeniy Paltsev
After commit ba1f966725223 ("net: designware: add clock support") we got NET broken on axs101 and axs103 platforms. Some clock don't support gating so their clock drivers don't implement .enable/.disable callbacks. In such case clk_enable returns -ENOSYS. Also some clock drivers implement .enable/.disable callbacks not for all clock IDs and return -ENOSYS (or -ENOTSUPP) for others. If we have such clock in 'clocks' list of designware ethernet controller node we fail to probe designware ethernet. Fix it. Signed-off-by: Eugeniy Paltsev <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]>
2018-02-26phy: Fix style violationsMario Six
Fix some style violations in the generic PHY management code. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Mario Six <[email protected]>
2018-02-26net: phy: marvell 88e151x: Fix handling of bare RGMII interface typeMario Six
Commit 68e6ecadc551 ("net: phy: marvell 88e151x: Fix handling of RGMII interface types") fixed the initialization of 88e151x phys, but made it so that interfaces of type PHY_INTERFACE_MODE_RGMII had both RX and TX delay bits cleared. The default (like in m88e1111s_config) is to have both bits set. Hence, this patch changes the behavior in the PHY_INTERFACE_MODE_RGMII case so that both bits are set. Signed-off-by: Mario Six <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-26net: phy: marvell: Fix style violationsMario Six
Fix some style violations (mostly wrong indentions) in the Marvell PHY driver. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Mario Six <[email protected]>
2018-02-26net: tsec: Make live-tree compatibleMario Six
Make the tsec ethernet driver compatible with a live device tree. Reviewed-by: Simon Glass <[email protected]> Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Mario Six <[email protected]>
2018-02-26net: tsec: Fix memory leak in error pathMario Six
tsec_initialize allocates a private driver structure using malloc. Should the memory allocation of this private structure fail, the function execution is aborted with a return 0, but the previously allocated device structure is never freed, hence leaked. Free the device structure in the error case. Signed-off-by: Mario Six <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-26net: tsec: Fix style violationsMario Six
Signed-off-by: Mario Six <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-23net: Remove Xilinx ll_temac driverMichal Simek
ll_temac driver was used by Xilinx Microblaze big endian and Xilinx ppc405/ppc440 SoCs. ppc support was removed by: "powerpc: remove 4xx support" (sha1: 98f705c9cefdfdba62c069821bbba10273a0a8ed) and Microblaze BE is not tested for a long time that's why this driver can be removed because none is going to updated it to DM anyway. Signed-off-by: Michal Simek <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-18net: sh_eth: Fix DT base address fetchingMarek Vasut
Drop the whole map/unmap_physmem stuff and just use the address already obtained from DT in ofdata_to_platdata(), instead of repeating that, wrongly, in probe. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-18net: sh_eth: Fix checkpatch warningMarek Vasut
Fix minor checkpatch warning about udelay(3000) being too long and should be replaced by mdelay(3). Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-18net: sh_eth: Return directly from sh_eth_recv_startMarek Vasut
Drop the len variable, it's useless. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-18net: sh_eth: Zap port variableMarek Vasut
Inline this variable which is quite useless. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-16net: ravb: Initialize PHY in probe() onceMarek Vasut
Reset and initialize the PHY once in the probe() function rather than doing it over and over again is start() function. This requires us to keep the clock enabled while the driver is in use. This significantly reduces the time between transfers as the PHY doesn't have to restart autonegotiation between transfers, which takes forever. Signed-off-by: Marek Vasut <[email protected]> Cc: Geert Uytterhoeven <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-02-08Kconfig: net: phylib: Phylib should depends on NETMichal Simek
There is no value to enable phylib without networking support. Signed-off-by: Michal Simek <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2018-02-04net: e1000: implement eth_write_hwaddrHannu Lounento
Implement programming MAC address to the hardware, i.e. external flash seen as EEPROM. MAC address is only written if it differs from what is already stored in flash or if reading the current MAC address fails. Signed-off-by: Hannu Lounento <[email protected]> CC: Joe Hershberger <[email protected]> Signed-off-by: Martyn Welch <[email protected]> Signed-off-by: Sebastian Reichel <[email protected]>
2018-02-04net: e1000: split e1000_read_mac_addrHannu Lounento
Split the implementation of e1000_read_mac_addr into eeprom and register versions called by e1000_read_mac_addr. This allows for calling e1000_read_mac_addr when MAC address is needed with no constraints where it is read from, and for calling the register and, especially, the eeprom version directly in order to specify where to read the address from. Signed-off-by: Hannu Lounento <[email protected]> CC: Joe Hershberger <[email protected]> Signed-off-by: Martyn Welch <[email protected]> Signed-off-by: Sebastian Reichel <[email protected]>
2018-02-04net: e1000: add support for writing to EEPROMHannu Lounento
Port functions for writing to EEPROM, updating the checksum and committing data to flash from the Linux kernel igb driver. Functions were ported from Linux 4.8-rc2 (694d0d0bb20). Signed-off-by: Hannu Lounento <[email protected]> CC: Joe Hershberger <[email protected]> Signed-off-by: Martyn Welch <[email protected]> Reviewed-by: Stefano Babic <[email protected]> Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Sebastian Reichel <[email protected]>
2018-02-04net: fec: fix build warnings for 64bits supportYe Li
When building for 64bits system, we get some warnings about type cast between pointer and integer. This patch eliminates the warnings by using ulong/long type which is 32bits on 32bits system or 64bits on 64bits system. Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Stefano Babic <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2018-02-04net: fec: do not access reserved register for i.MX8MPeng Fan
The MIB RAM and FIFO receive start register does not exist on i.MX8M. Accessing these register will cause system hang. Signed-off-by: Peng Fan <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Stefano Babic <[email protected]> Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Stefano Babic <[email protected]>
2018-01-31Merge git://git.denx.de/u-boot-fsl-qoriqTom Rini
2018-01-30driver: fsl-mc: Perform fsl-mc fdt fixup for lazyapply dplYogesh Gaur
For for case of lazyapply method, API fdt_fixup_board_enet() gets invoked before DPL being deployed. This leads to an issue that fsl-mc fdt fixup status marked as fail and dprc driver didn't get registered in linux boot. Fixes this issue by calling fdt_fixup_board_enet() for case when DPL is deployed successfully in lazyapply method. Signed-off-by: Yogesh Gaur <[email protected]> Reviewed-by: York Sun <[email protected]>
2018-01-29mvpp2: Fix warning over 32bit vs 64bit targetsTom Rini
When we have a driver that is used on both 32bit and 64bit targets and we are talking about address space we cannot use u64 nor u32 and instead need to use phys_addr_t. Fixes: 377883f16d36 ("net: mvpp2x: fix phy connected to wrong mdio issue") Cc: Stefan Chulski <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Joe Hershberger <[email protected]>
2018-01-28net: gmac_rockchip: Add support for the RK3228 GMACDavid Wu
The GMAC in the RK3228 once again is identical to the incarnation in the RK3288 and the RK3399, except for where some of the configuration and control registers are located in the GRF. This adds the RK3368-specific logic necessary to reuse this driver. Signed-off-by: David Wu <[email protected]> Acked-by: Philipp Tomsich <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]>
2018-01-28net: gmac_rockchip: Add rk3328 gmac supportDavid Wu
The GMAC2IO in the RK3328 once again is identical to the incarnation in the RK3288 and the RK3399, except for where some of the configuration and control registers are located in the GRF. This adds the RK3328-specific logic necessary to reuse this driver. Signed-off-by: David Wu <[email protected]> Acked-by: Philipp Tomsich <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]>
2018-01-28net: gmac_rockchip: Add support for the RV1108 GMACDavid Wu
The rv1108 GMAC only support rmii interface, so need to add the set_rmii() ops. Use the phy current interface to set rmii or rgmii ops. At the same time, need to set the mac clock rate of rmii with 50M, the clock rate of rgmii with 125M. Signed-off-by: David Wu <[email protected]> Acked-by: Philipp Tomsich <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]>
2018-01-27Merge branch 'rmobile-mx' of git://git.denx.de/u-boot-shTom Rini
2018-01-27net: sh_eth: Add DM and DT supportMarek Vasut
Add DM capable code into the SH ethernet driver and support probing both from DT and pdata. The legacy non-DM, non-DT support is retained as there are still systems in the tree which are not DM or DT capable. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-01-27net: sh_eth: Clump legacy functions togetherMarek Vasut
Move the legacy functions around, so that they can be wrapped in a massive ifdef CONFIG_DM_ETH once DM support is added. No functional change. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>
2018-01-27net: sh_eth: Split sh_eth_initMarek Vasut
Split sh_eth_init() function into smaller chunks, which can be called from both DM and non-DM code while handling the specifics of both configurations. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]> Cc: Joe Hershberger <[email protected]>