[PATCH] colibri-imx7: Call fdt_increase_size()

Francesco Dolcini francesco at dolcini.it
Tue Jul 4 19:02:25 CEST 2023


On Tue, Jul 04, 2023 at 01:10:03PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam at denx.de>
> 
> For changing the USB OTG node status from "okay" to "disabled" more
> space is needed, so call fdt_increase_size() to avoid the following
> error:
> 
> ```
>  U-Boot 2023.07-rc5-0.0.0-devel+git.580eb31199be (Jun 27 2023 - 13:39:58 +0000)
>  CPU:   Freescale i.MX7S rev1.2 800 MHz (running at 792 MHz)
>  CPU:   Extended Commercial temperature grade (-20C to 105C) at 30C
>  Reset cause: POR
>  DRAM:  initcall sequence 8786eafc failed at call 8781b351 (err=-3)
>  ### ERROR ### Please RESET the board ###
> ```
> 
> Ideally, fdt_status_disabled() should call fdt_increase_size() internally,
> so that there would be no need for manually calling it in board code.
> 
> Do it manually for now to fix the regression.
> 
> Based on the code from board/CZ.NIC/turris_omnia/turris_omnia.c.
> 
> Reported-by: Francesco Dolcini <francesco.dolcini at toradex.com>
> Signed-off-by: Fabio Estevam <festevam at denx.de>
> ---
>  board/toradex/colibri_imx7/colibri_imx7.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
> index 3e79ab93a982..78be17c3b550 100644
> --- a/board/toradex/colibri_imx7/colibri_imx7.c
> +++ b/board/toradex/colibri_imx7/colibri_imx7.c
> @@ -311,10 +311,22 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>  #ifdef CONFIG_USB_EHCI_MX7
>  int board_fix_fdt(void *rw_fdt_blob)
>  {
> +	int ret;
> +
>  	/* i.MX 7Solo has only one single USB OTG1 but no USB host port */
>  	if (is_cpu_type(MXC_CPU_MX7S)) {
>  		int offset = fdt_path_offset(rw_fdt_blob, "/soc/bus at 30800000/usb at 30b20000");
>  
> +	/*
> +	 * We're changing from status = "okay" to status = "disabled".
> +	 * In this case we'll need more space, so increase the size
> +	 * a little bit.
> +	 */
> +	ret = fdt_increase_size(rw_fdt_blob, 32);
> +	if (ret < 0) {
> +		printf("Cannot increase FDT size: %d\n", ret);
> +		return ret;
> +	}

Thanks for the patch!

You miss one level of indentation here, with this fixed
Reviewed-by: Francesco Dolcini <francesco.dolcini at toradex.com>

And, in any case,
Tested-by: Francesco Dolcini <francesco.dolcini at toradex.com> # Toradex Colibri iMX7S

Francesco



More information about the U-Boot mailing list