aboutsummaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorFabio Estevam <festevam@denx.de>2023-07-04 14:09:45 -0300
committerTom Rini <trini@konsulko.com>2023-07-05 11:27:52 -0400
commit92be5e4f74130f704357b8f96d62ae92eb79a2f2 (patch)
treee7a7a6d987281edc8b0e513645f4661cf0aee719 /board
parent703bb926f939a4079828c00f686514f43c3c768b (diff)
downloadu-boot-92be5e4f74130f704357b8f96d62ae92eb79a2f2.zip
u-boot-92be5e4f74130f704357b8f96d62ae92eb79a2f2.tar.gz
u-boot-92be5e4f74130f704357b8f96d62ae92eb79a2f2.tar.bz2
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. 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
Diffstat (limited to 'board')
-rw-r--r--board/toradex/colibri_imx7/colibri_imx7.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
index 3e79ab9..119e67b 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);
}