[PATCH] arm: mvebu: turris_omnia: Remove hardcoded spi-nor device tree path
Stefan Roese
sr at denx.de
Tue Aug 2 08:51:52 CEST 2022
On 01.08.22 23:58, Pali Rohár wrote:
> Linux kernel DTS files renamed spi-nor at 0 node to flash at 0 which effectively
> broke U-Boot to boot new Linux kernel versions correctly.
>
> So remove hardcoded spi-nor device tree path from Turris Omnia board code
> and replace it by searching for mtd node by compatible string.
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> board/CZ.NIC/turris_omnia/turris_omnia.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index 108d160f486d..9d7e63865f14 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -32,8 +32,6 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -#define OMNIA_SPI_NOR_PATH "/soc/spi at 10600/spi-nor at 0"
> -
> #define OMNIA_I2C_BUS_NAME "i2c at 11000->i2cmux at 70->i2c at 0"
>
> #define OMNIA_I2C_MCU_CHIP_ADDR 0x2a
> @@ -1030,14 +1028,22 @@ static bool fixup_mtd_partitions(void *blob, int offset, struct mtd_info *mtd)
>
> static void fixup_spi_nor_partitions(void *blob)
> {
> - struct mtd_info *mtd;
> + struct mtd_info *mtd = NULL;
> + char mtd_path[64];
> int node;
>
> - mtd = get_mtd_device_nm(OMNIA_SPI_NOR_PATH);
> + node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "jedec,spi-nor");
> + if (node < 0)
> + goto fail;
> +
> + if (fdt_get_path(gd->fdt_blob, node, mtd_path, sizeof(mtd_path)) < 0)
> + goto fail;
> +
> + mtd = get_mtd_device_nm(mtd_path);
> if (IS_ERR_OR_NULL(mtd))
> goto fail;
>
> - node = fdt_path_offset(blob, OMNIA_SPI_NOR_PATH);
> + node = fdt_node_offset_by_compatible(blob, -1, "jedec,spi-nor");
> if (node < 0)
> goto fail;
>
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