From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1943C432BE for ; Mon, 2 Aug 2021 07:55:40 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0874A60FC1 for ; Mon, 2 Aug 2021 07:55:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0874A60FC1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EBCA4833B6; Mon, 2 Aug 2021 09:55:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JhZT/9jv"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F0500833A6; Mon, 2 Aug 2021 09:55:34 +0200 (CEST) Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4A0A883394 for ; Mon, 2 Aug 2021 09:55:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=mibodhi@gmail.com Received: by mail-yb1-xb36.google.com with SMTP id f26so6498360ybj.5 for ; Mon, 02 Aug 2021 00:55:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ghk9lSSdHX+NtAJPF81bhnOgNEnRuoBb2keYtgNhals=; b=JhZT/9jve10Xy0D6029TtSG0+KWyfM6z7u1vyBdGiNR9L5rhymkaLSdQbwEO+wrs9L julvb/hfrT5jbeyiczsWjQ9nLMfiU4dV5y9Xl8WTRDxX3+zExG5kdWSVwfzD11xYWiuZ 8bqdDlUfRKWrswFaIX3MTgSgxK272EjAhl/YtFd3HRW4SMATyjAp/OEZ2Xg/Y9FBQSOm k8YdzDaUI9H0HQFxSLjnWQatzdH7No8Lz0SbHn4fjCk/lm0cA132eJBh2o4o6g5+0LJh A27MGCo/6fE/JUjpyg/4oNoDBK6e8v+TmKrjVjpzQoEPesYCKzx9F/jHF0JFO0z6TElq GIBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ghk9lSSdHX+NtAJPF81bhnOgNEnRuoBb2keYtgNhals=; b=HYMV+6psZLaN7YUZlUBidwrqNicOq6ILS/1WH5CcrP5Zw646LXJRCSMOHrxyZ7O3vv 0oalcLhGAPWXF0XLN5Ffg3dXMv5cZbg/I1eIYh9trGlCtdHTVaw1YVppJJVx8zsKxCUt 3eIh6fknnW0LfCVRR4SCgKCLJ010w3ojuCcK7QfluE4PJamvUWZvIlA32OH7HWwXC9BT 8Ply6mjLxnfhAL7Xcw9TXzL90dt7YnYRW6pLhHvFxv+lhgkG/vHLj0exD9ScrvX+a4g+ wcJK1IXTz88slrnpmss9i4Ip2KYAhQREuZ9/YZVa7pvExS+Ya/OcBpjzT/Q2Za2szQHM thIg== X-Gm-Message-State: AOAM533CWvgLveWdxC6uqHDPifqQpOSTHAwgG1/d8saTtVJEALYlSBOk 5G+pwBS++b3jdkGKXYVjvQ+W9KH00gxRqS+k2FQ= X-Google-Smtp-Source: ABdhPJwBHXzxt76h3/Q7vSDUfbGP/7pxIOgcHUq7lgHIA4xS3NdyoExG2DwuDEuTZ5XhzLdVVkA6/MQK5fQmQnrF5IY= X-Received: by 2002:a25:384:: with SMTP id 126mr18584381ybd.351.1627890901975; Mon, 02 Aug 2021 00:55:01 -0700 (PDT) MIME-Version: 1.0 References: <20210726060121.7253-1-mibodhi@gmail.com> <20210726060121.7253-3-mibodhi@gmail.com> <64fd303b-ca30-b2b3-92ef-d31e99299fed@denx.de> <0d146635-817f-182f-d04d-c8c890279c6b@denx.de> <27c3d195-f9d7-0fa8-aad5-67ecd03a0c61@denx.de> In-Reply-To: <27c3d195-f9d7-0fa8-aad5-67ecd03a0c61@denx.de> From: Tony Dinh Date: Mon, 2 Aug 2021 00:54:50 -0700 Message-ID: Subject: Re: [PATCH 2/3] arm: kirkwood: Dreamplug: Use Ethernet PHY name and address from device tree To: Stefan Roese Cc: U-Boot Mailing List , Jason Cooper , Chris Packham , Tom Rini , Simon Glass , Ramon Fried , Joe Hershberger Content-Type: text/plain; charset="UTF-8" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Hi Stefan, On Sun, Aug 1, 2021 at 11:39 PM Stefan Roese wrote: > > Hi Tony, > > On 01.08.21 00:37, Tony Dinh wrote: > > Hi Stefan, > > > > On Sat, Jul 31, 2021 at 4:50 AM Stefan Roese wrote: > >> > >> On 31.07.21 12:27, Stefan Roese wrote: > >>> Hi Tony, > >>> > >>> (added Joe & Ramon as network custodians) > >>> > >>> On 31.07.21 11:55, Tony Dinh wrote: > >>>> Hi Stefan, > >>>> > >>>> On Sat, Jul 31, 2021 at 12:41 AM Stefan Roese wrote: > >>>>> > >>>>> On 26.07.21 08:01, Tony Dinh wrote: > >>>>>> In DM Ethernet, the old "egiga0" and 'egiga1" names are no longer > >>>>>> valid, > >>>>>> so replace these with Ethernet PHY names from device tree. Also, read > >>>>>> Ethernet PHY address for each port from device tree. > >>>>>> > >>>>>> Signed-off-by: Tony Dinh > >>>>>> --- > >>>>>> > >>>>>> board/Marvell/dreamplug/dreamplug.c | 62 > >>>>>> ++++++++++++++++++++++------- > >>>>>> 1 file changed, 48 insertions(+), 14 deletions(-) > >>>>>> > >>>>>> diff --git a/board/Marvell/dreamplug/dreamplug.c > >>>>>> b/board/Marvell/dreamplug/dreamplug.c > >>>>>> index e1c64b5224..d5b6b22ddf 100644 > >>>>>> --- a/board/Marvell/dreamplug/dreamplug.c > >>>>>> +++ b/board/Marvell/dreamplug/dreamplug.c > >>>>>> @@ -1,5 +1,6 @@ > >>>>>> // SPDX-License-Identifier: GPL-2.0+ > >>>>>> /* > >>>>>> + * Copyright (C) 2021 Tony Dinh > >>>>>> * (C) Copyright 2011 > >>>>>> * Jason Cooper > >>>>>> * > >>>>>> @@ -97,42 +98,75 @@ int board_init(void) > >>>>>> return 0; > >>>>>> } > >>>>>> > >>>>>> +static int fdt_get_phy_addr(const char *path) > >>>>>> +{ > >>>>>> + const void *fdt = gd->fdt_blob; > >>>>>> + const u32 *reg; > >>>>>> + const u32 *val; > >>>>>> + int node, phandle, addr; > >>>>>> + > >>>>>> + /* Find the node by its full path */ > >>>>>> + node = fdt_path_offset(fdt, path); > >>>>>> + if (node >= 0) { > >>>>>> + /* Look up phy-handle */ > >>>>>> + val = fdt_getprop(fdt, node, "phy-handle", NULL); > >>>>>> + if (val) { > >>>>>> + phandle = fdt32_to_cpu(*val); > >>>>>> + if (!phandle) > >>>>>> + return -1; > >>>>>> + /* Follow it to its node */ > >>>>>> + node = fdt_node_offset_by_phandle(fdt, phandle); > >>>>>> + if (node) { > >>>>>> + /* Look up reg */ > >>>>>> + reg = fdt_getprop(fdt, node, "reg", > >>>>>> NULL); > >>>>>> + if (reg) { > >>>>>> + addr = fdt32_to_cpu(*reg); > >>>>>> + return addr; > >>>>>> + } > >>>>>> + } > >>>>>> + } > >>>>>> + } > >>>>>> + return -1; > >>>>>> +} > >>>>> > >>>>> You've added this exact some function now for the 3rd time IIRC. Could > >>>>> please please consolidate this function into one of the fdt / dt common > >>>>> functions instead? Perhaps there is already something similar for > >>>>> reading PHY addresses? > >>>>> > >>>>> Please do this in a follow-up patch, after I've pulled this one. > >>>> > >>>> Yes, I realized this function needs consolidation too, and mentioned > >>>> it in the patch for the Sheevaplug. Currently, it is hard to find a > >>>> home for this. ./common/fdt_support.c is one level of abstraction > >>>> below this fdt_get_phy_addr(). So it is not appropriate for this > >>>> function to be in that file. > >>> > >>> Joe, Ramon, do you know of any DT / FDT helper function already > >>> available to read the PHY address from the device-tree? > >> > >> It just now came to my mind that the "normal" functions for base address > >> reading like dev_read_addr(), fdt_get_base_address() and friends can > >> most likely be used for PHY MDIO address reading as well. > > > > Thanks for the suggestion. I agree that would work, too. I did > > consider going down the MDIO path and looking up "reg" a bit quicker > > because we know what the PHY Base address is. But in the scenario that > > we have 2 or more active Ethernet ports (eg. Dreamplug board has 2), > > the lookup function is not as elegant. It seems more straightforward > > if we go down the Eth0 or Eth1 path from the DTSI and then follow the > > "phy-handle" to the MDIO ethernet-phy node. > > ... and also "phy" to make this compatible with this deprecated property > as well? > > But you could still use the already available functions to read the > "reg" property instead of coding it once again in this new function? > > > Regarding your previous question about "phy" vs. "phy-handle", > > according to the current device tree guideline, "phy" is deprecated > > and "phy-handle" is the one we should use. And there are some Armada > > 37x/38x boards that use the deprecated name "phy" currently. > > Thanks. Please see my comment above. Thanks for your review! I'll send in a patch to propose a new home (in /common) for this function, and also update it to look up for the deprecated "phy" also. Once we have that done, I'll go back and submit patches for the Kirkwood boards that have this function hardcoded in. Thanks, Tony > > Thanks, > Stefan