From 11424633a139e0389afd38dadb62ca227cbc9cfa Mon Sep 17 00:00:00 2001 From: Stefan Roese Date: Thu, 7 Apr 2022 09:11:48 +0200 Subject: mips: octeon: octeon_common.h: Move init SP because of increased image size This patch moves CONFIG_SYS_INIT_SP_OFFSET to a higher address so that it does not interfere with larger U-Boot images. This was noticed, while adding network support to the EBB7304 board. Signed-off-by: Stefan Roese --- include/configs/octeon_common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/configs/octeon_common.h b/include/configs/octeon_common.h index 2e4bfd03516..7e71c83887f 100644 --- a/include/configs/octeon_common.h +++ b/include/configs/octeon_common.h @@ -8,7 +8,7 @@ #define __OCTEON_COMMON_H__ #if defined(CONFIG_RAM_OCTEON) -#define CONFIG_SYS_INIT_SP_OFFSET 0x20100000 +#define CONFIG_SYS_INIT_SP_OFFSET 0x20180000 #else /* No DDR init -> run in L2 cache with limited resources */ #define CONFIG_SYS_INIT_SP_OFFSET 0x00180000 -- cgit v1.3.1 From 78c01757f07022543c8583112f999450eba579b5 Mon Sep 17 00:00:00 2001 From: Stefan Roese Date: Thu, 7 Apr 2022 09:11:53 +0200 Subject: mips: octeon: ebb7304: Enable ethernet support This patch enables the Kconfig symbols needed for full ethernet support on the EBB7304. Also the PHY autonegotiation timeout is increased, as the default 5 seconds are sometime a bit short. With this, ethernet can be used on this board. Here an example of a tftp load: => tftp ffffffff81000000 big ethernet-mac-nexus@11800e0000000 Waiting for PHY auto negotiation to complete....... done Using ethernet-mac-nexus@11800e0000000 device TFTP from server 192.168.1.5; our IP address is 192.168.1.243 Filename 'big'. Load address: 0xffffffff81000000 Loading: ################################################## 10 MiB 13.2 MiB/s done Bytes transferred = 10485760 (a00000 hex) Signed-off-by: Stefan Roese --- configs/octeon_ebb7304_defconfig | 7 +++++++ include/configs/octeon_ebb7304.h | 2 ++ 2 files changed, 9 insertions(+) (limited to 'include') diff --git a/configs/octeon_ebb7304_defconfig b/configs/octeon_ebb7304_defconfig index e907144cf77..f70f0d214cf 100644 --- a/configs/octeon_ebb7304_defconfig +++ b/configs/octeon_ebb7304_defconfig @@ -26,6 +26,7 @@ CONFIG_CMD_PART=y CONFIG_CMD_PCI=y CONFIG_CMD_USB=y CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_RTC=y CONFIG_CMD_TIME=y @@ -36,6 +37,7 @@ CONFIG_AMIGA_PARTITION=y CONFIG_EFI_PARTITION=y CONFIG_PARTITION_TYPE_GUID=y CONFIG_ENV_IS_IN_FLASH=y +CONFIG_TFTP_TSIZE=y CONFIG_CLK=y # CONFIG_INPUT is not set CONFIG_MISC=y @@ -53,7 +55,12 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH_ATMEL=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_STMICRO=y +CONFIG_PHYLIB=y +CONFIG_PHY_MARVELL=y +CONFIG_DM_MDIO=y +CONFIG_DM_ETH_PHY=y CONFIG_E1000=y +CONFIG_NET_OCTEON=y CONFIG_PCI=y CONFIG_PCIE_OCTEON=y CONFIG_DM_REGULATOR=y diff --git a/include/configs/octeon_ebb7304.h b/include/configs/octeon_ebb7304.h index 358db69a05b..8c6c57bd546 100644 --- a/include/configs/octeon_ebb7304.h +++ b/include/configs/octeon_ebb7304.h @@ -16,4 +16,6 @@ #define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_8BIT #define CONFIG_SYS_FLASH_EMPTY_INFO /* flinfo indicates empty blocks */ +#define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer aneg time */ + #endif /* __CONFIG_H__ */ -- cgit v1.3.1 From 00b1bad961fff51db71573f5fc6e4e35b47381b2 Mon Sep 17 00:00:00 2001 From: Marek BehĂșn Date: Wed, 27 Apr 2022 12:41:49 +0200 Subject: net: mdio-uclass: add dm_phy_find_by_ofnode() helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add helper to resolve PHY node from it's ofnode via DM MDIO subsystem. Signed-off-by: Marek BehĂșn Reviewed-by: Ramon Fried Reviewed-by: Stefan Roese --- include/miiphy.h | 9 +++++++++ net/mdio-uclass.c | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'include') diff --git a/include/miiphy.h b/include/miiphy.h index 110921f20d2..c66a1845b58 100644 --- a/include/miiphy.h +++ b/include/miiphy.h @@ -188,6 +188,15 @@ int dm_mdio_write(struct udevice *mdio_dev, int addr, int devad, int reg, u16 va */ int dm_mdio_reset(struct udevice *mdio_dev); +/** + * dm_phy_find_by_ofnode - Find PHY device by ofnode + * + * @phynode: PHY's ofnode + * + * Return: pointer to phy_device, or NULL on error + */ +struct phy_device *dm_phy_find_by_ofnode(ofnode phynode); + /** * dm_mdio_phy_connect - Wrapper over phy_connect for DM MDIO * diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c index 7593618d9ad..4401492ca01 100644 --- a/net/mdio-uclass.c +++ b/net/mdio-uclass.c @@ -129,6 +129,28 @@ static int dm_mdio_pre_remove(struct udevice *dev) return 0; } +struct phy_device *dm_phy_find_by_ofnode(ofnode phynode) +{ + struct mdio_perdev_priv *pdata; + struct udevice *mdiodev; + u32 phy_addr; + + if (ofnode_read_u32(phynode, "reg", &phy_addr)) + return NULL; + + if (uclass_get_device_by_ofnode(UCLASS_MDIO, + ofnode_get_parent(phynode), + &mdiodev)) + return NULL; + + if (device_probe(mdiodev)) + return NULL; + + pdata = dev_get_uclass_priv(mdiodev); + + return phy_find_by_mask(pdata->mii_bus, BIT(phy_addr)); +} + struct phy_device *dm_mdio_phy_connect(struct udevice *mdiodev, int phyaddr, struct udevice *ethdev, phy_interface_t interface) -- cgit v1.3.1