u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Sean Anderson <sean.anderson@seco.com>
To: Tim Harvey <tharvey@gateworks.com>
Cc: Simon Glass <sjg@chromium.org>,
	U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: [PATCH] fdtdec: fdtdec_get_aliases_highest_id: skip aliases to disabled nodes
Date: Fri, 11 Jun 2021 13:23:43 -0400	[thread overview]
Message-ID: <deb85bde-d6de-9313-db24-97edf1072a20@seco.com> (raw)
In-Reply-To: <CAJ+vNU0tvWYpK8BH_kLgoCvVjzvKswP06pjdQJfhE4POLzMbRA@mail.gmail.com>



On 6/11/21 1:16 PM, Tim Harvey wrote:
 > On Fri, Jun 11, 2021 at 10:09 AM Sean Anderson <sean.anderson@seco.com> wrote:
 >>
 >>
 >>
 >> On 6/11/21 12:32 PM, Tim Harvey wrote:
 >>   > On Thu, Apr 29, 2021 at 9:48 AM Tim Harvey <tharvey@gateworks.com> wrote:
 >>   >>
 >>   >> On Thu, Apr 29, 2021 at 9:10 AM Simon Glass <sjg@chromium.org> wrote:
 >>   >>>
 >>   >>> Hi Tim,
 >>   >>>
 >>   >>> On Fri, 16 Apr 2021 at 14:30, Tim Harvey <tharvey@gateworks.com> wrote:
 >>   >>>>
 >>   >>>> When looking for an alias with the highest id skip aliases for nodes
 >>   >>>> that are disabled.
 >>   >>>>
 >>   >>>> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 >>   >>>> ---
 >>   >>>>   lib/fdtdec.c | 2 ++
 >>   >>>>   1 file changed, 2 insertions(+)
 >>   >>>>
 >>   >>>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
 >>   >>>> index 864589193b..d47195525a 100644
 >>   >>>> --- a/lib/fdtdec.c
 >>   >>>> +++ b/lib/fdtdec.c
 >>   >>>> @@ -546,6 +546,8 @@ int fdtdec_get_alias_highest_id(const void *blob, const char *base)
 >>   >>>>                  if (*prop != '/' || prop[len - 1] ||
 >>   >>>>                      strncmp(name, base, base_len))
 >>   >>>>                          continue;
 >>   >>>> +               if (!fdtdec_get_is_enabled(blob, fdt_path_offset(blob, prop)))
 >>   >>>> +                       continue;
 >>   >>>
 >>   >>> We really can't do this here. It is quite an expensive operation to
 >>   >>> locate the node for a path.
 >>   >>>
 >>   >>> Why is this needed? It seems odd to have an alias pointing to a disabled device.
 >>   >>>
 >>   >>
 >>   >> Simon,
 >>   >>
 >>   >> The issue I ran into here was with an imx6 based board that does not
 >>   >> use the FEC ethernet on the SoC. In this case imx6qdl.dtsi delcares an
 >>   >> alias 'thernet0 = &fec' yet the fec node is not enabled. However
 >>   >> because fdtdec_get_alias_highest_id does not skip this alias to a
 >>   >> disabled device any enumerated ethernet devices get an index of 1
 >>   >> instead of 0 which is incorrect and causes the mac addresses to be
 >>   >> misaligned.
 >>
 >> Is this due getting mac address from the OTP? As I understand it, the
 >> OTP mac addresses are for fec0/fec1, and not for whatever ethernet0
 >> happens to be.
 >>
 >
 > Sean,
 >
 > No, the issue is that U-Boot thinks there is an fec device simply
 > because an alias points to it even though the fec node pointed to is
 > disabled so when U-Boot finds an ethernet device that is enumerated at
 > runtime (think pcie or usb based mac) those start at index 1 instead
 > of index 0 and end up wanting to be assigned mac's from eth1addr
 > instead of ethaddr.

Ok, and this behavior was different in the past? E.g. it used to be that
these interfaces were assigned to ethernet0, and so their mac address
was stored in ethaddr. And then something changed and now they are
ethernet1 and are trying to get the incorrect mac address?

Do you know whether it would be possible to remove the alias at the same
time you mark the fec as disabled?

--Sean

  reply	other threads:[~2021-06-11 17:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-16 21:30 [PATCH] fdtdec: fdtdec_get_aliases_highest_id: skip aliases to disabled nodes Tim Harvey
2021-04-29 16:09 ` Simon Glass
2021-04-29 16:48   ` Tim Harvey
2021-06-11 16:32     ` Tim Harvey
2021-06-11 17:09       ` Sean Anderson
2021-06-11 17:16         ` Tim Harvey
2021-06-11 17:23           ` Sean Anderson [this message]
2021-06-11 17:30             ` Tim Harvey
2021-07-04 19:24               ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=deb85bde-d6de-9313-db24-97edf1072a20@seco.com \
    --to=sean.anderson@seco.com \
    --cc=sjg@chromium.org \
    --cc=tharvey@gateworks.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).