[PATCH u-boot-marvell 11/11] fdt_support: Add fdt_delete_disabled_nodes() and use in Turris MOX
Stefan Roese
sr at denx.de
Fri Nov 12 14:31:45 CET 2021
On 11/3/21 03:02, Marek Behún wrote:
> From: Marek Behún <marek.behun at nic.cz>
>
> Move Turris MOX specific remove_disabled_nodes() to fdt_support with
> name fdt_delete_disabled_nodes(), so that others can potentially use it.
>
> Signed-off-by: Marek Behún <marek.behun at nic.cz>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> board/CZ.NIC/turris_mox/turris_mox.c | 20 +-------------------
> common/fdt_support.c | 23 +++++++++++++++++++++++
> include/fdt_support.h | 2 ++
> 3 files changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_mox/turris_mox.c b/board/CZ.NIC/turris_mox/turris_mox.c
> index 809ce82d20..b61c5b1cb6 100644
> --- a/board/CZ.NIC/turris_mox/turris_mox.c
> +++ b/board/CZ.NIC/turris_mox/turris_mox.c
> @@ -749,24 +749,6 @@ static int setup_switch(void *blob, int id)
> return 0;
> }
>
> -static int remove_disabled_nodes(void *blob)
> -{
> - while (1) {
> - int res, offset;
> -
> - offset = fdt_node_offset_by_prop_value(blob, -1, "status",
> - "disabled", 9);
> - if (offset < 0)
> - break;
> -
> - res = fdt_del_node(blob, offset);
> - if (res < 0)
> - return res;
> - }
> -
> - return 0;
> -}
> -
> int ft_board_setup(void *blob, struct bd_info *bd)
> {
> int res;
> @@ -872,7 +854,7 @@ int ft_board_setup(void *blob, struct bd_info *bd)
> fdt_fixup_ethernet(blob);
>
> /* Finally remove disabled nodes, as per Rob Herring's request. */
> - remove_disabled_nodes(blob);
> + fdt_delete_disabled_nodes(blob);
>
> return 0;
> }
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index c2e16727e1..b2ba0825df 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -695,6 +695,29 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
> return actualsize;
> }
>
> +/**
> + * fdt_delete_disabled_nodes: Delete all nodes with status == "disabled"
> + *
> + * @blob: ptr to device tree
> + */
> +int fdt_delete_disabled_nodes(void *blob)
> +{
> + while (1) {
> + int ret, offset;
> +
> + offset = fdt_node_offset_by_prop_value(blob, -1, "status",
> + "disabled", 9);
> + if (offset < 0)
> + break;
> +
> + ret = fdt_del_node(blob, offset);
> + if (ret < 0)
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> #ifdef CONFIG_PCI
> #define CONFIG_SYS_PCI_NR_INBOUND_WIN 4
>
> diff --git a/include/fdt_support.h b/include/fdt_support.h
> index d40586725b..8ec461af6c 100644
> --- a/include/fdt_support.h
> +++ b/include/fdt_support.h
> @@ -228,6 +228,8 @@ void set_working_fdt_addr(ulong addr);
> int fdt_shrink_to_minimum(void *blob, uint extrasize);
> int fdt_increase_size(void *fdt, int add_len);
>
> +int fdt_delete_disabled_nodes(void *blob);
> +
> int fdt_fixup_nor_flash_size(void *blob);
>
> struct node_info;
>
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list