[RESEND PATCH] fdt: Use phandle to distinguish DT nodes with same name
Simon Glass
sjg at chromium.org
Wed Nov 18 15:37:21 CET 2020
Hi Aswath,
On Mon, 16 Nov 2020 at 07:29, Aswath Govindraju <a-govindraju at ti.com> wrote:
>
> While assigning the sequence number to subsystem instances by reading the
> aliases property, only DT nodes names are compared and not the complete
> path. This causes a problem when there are two DT nodes with same name but
> have different paths.
>
> Fix it by comparing the phandles of DT nodes after the node names match.
>
> Signed-off-by: Aswath Govindraju <a-govindraju at ti.com>
> ---
>
> Resending this patch as it was held awaiting for moderator approval because
> patch was sent by non-member.
>
> lib/fdtdec.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index 2015907dee7d..9e1bfe0b519e 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -478,6 +478,11 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset,
> slash = strrchr(prop, '/');
> if (strcmp(slash + 1, find_name))
> continue;
> +
> + if (fdt_get_phandle(blob, offset) !=
> + fdt_get_phandle(blob, fdt_path_offset(blob, prop)))
> + continue;
The call to fdt_path_offset() is very slow. Perhaps we can do this
check only with livetree? What situation is causing a problem for you?
What are the node / alias names?
> +
> val = trailing_strtol(name);
> if (val != -1) {
> *seqp = val;
> --
> 2.17.1
>
Regards,
Simon
More information about the U-Boot
mailing list