summaryrefslogtreecommitdiff
path: root/recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch')
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch b/recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch
new file mode 100644
index 0000000..723e903
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex/0001-colibri-imx7-Call-fdt_increase_size.patch
@@ -0,0 +1,66 @@
+From 92be5e4f74130f704357b8f96d62ae92eb79a2f2 Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@denx.de>
+Date: Tue, 4 Jul 2023 14:09:45 -0300
+Subject: [PATCH] colibri-imx7: Call fdt_increase_size()
+
+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.
+
+Upstream-Status: Backport [92be5e4f74130f704357b8f96d62ae92eb79a2f2]
+
+Reported-by: Francesco Dolcini <francesco.dolcini@toradex.com>
+Signed-off-by: Fabio Estevam <festevam@denx.de>
+Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
+Tested-by: Francesco Dolcini <francesco.dolcini@toradex.com> # Toradex Colibri iMX7S
+---
+ board/toradex/colibri_imx7/colibri_imx7.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
+index 3e79ab93a9..119e67b47f 100644
+--- a/board/toradex/colibri_imx7/colibri_imx7.c
++++ b/board/toradex/colibri_imx7/colibri_imx7.c
+@@ -311,10 +311,23 @@ 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@30800000/usb@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;
++ }
++
+ return fdt_status_disabled(rw_fdt_blob, offset);
+ }
+
+--
+2.42.0
+