Hey @bruno.tx,
thank you very much for your help and your suggestion. I’ve tried to add the mentioned device tree nodes, but the error message remains:
Apalis iMX8 # usb start
starting USB...
Bus usb@5b0d0000: USB EHCI 1.00
Bus usb@5b0e0000: "Synchronous Abort" handler, esr 0x96000007
elr: 0000000080075df4 lr : 0000000080075de4 (reloc)
elr: 00000000ffededf4 lr : 00000000ffedede4
x0 : 0000000000000090 x1 : 0000000000000001
x2 : 0000000000000001 x3 : 0000000000000020
x4 : 00000000fd673ef0 x5 : 0000000000000020
x6 : 00000000ffecd568 x7 : 00000000fd673d90
x8 : 00000000fd674310 x9 : 0000000000000008
x10: 000000000000d1f4 x11: 00000000fd673dac
x12: 000000000000a55c x13: 0000000000000000
x14: 00000000fd674310 x15: 0000000000000021
x16: 00000000ffecd568 x17: 0000000000000000
x18: 00000000fd686d90 x19: 000000005b0e0000
x20: 0000000000000000 x21: 00000000fd6b2630
x22: 000000005b0e0000 x23: 00000000fff0ae54
x24: 00000000fd6b2550 x25: 0000000000000000
x26: 00000000fd674310 x27: 000000000000b4c4
x28: 00000000fd693930 x29: 00000000fd673f30
Code: 530c7c00 121c0c00 7102401f 54000281 (b940a280)
Resetting CPU ...
resetting ...
The u-boot version is U-Boot 2022.04-6.1.0-devel+git.d262075124dc (Mar 08 2024 - 14:27:40 +0000)
. The complete patch for the u-boot device tree looks like this at the moment:
diff --git a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi
index 22b34c8febe..a125884b4da 100644
--- a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi
+++ b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+ OR X11
+
/*
* Copyright 2019 Toradex AG
*/
@@ -6,6 +7,8 @@
aliases {
usbhost1 = &usbh3;
usbgadget0 = &usbg1;
+ lsiosubsys = &lsio_subsys;
+ usbh1 = &usbh1;
};
usbh3: usbh3 {
@@ -22,6 +25,48 @@
status = "okay";
u-boot,dm-pre-proper;
};
+
+ lsio_subsys: bus@5d000000 {
+
+ lsio_gpio0: gpio@5d080000 {
+ u-boot,dm-pre-proper;
+ compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+ reg = <0x5d080000 0x10000>;
+ interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ power-domains = <&pd_lsio_gpio0>;
+ status = "okay";
+ };
+
+ lsio_gpio1: gpio@5d090000 {
+ u-boot,dm-pre-proper;
+ compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+ reg = <0x5d090000 0x10000>;
+ interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ power-domains = <&pd_lsio_gpio1>;
+ status = "okay";
+ };
+ };
+
+ reg_usb_hsic: regulator-usb-hsic {
+ compatible = "regulator-fixed";
+ regulator-name = "usb-hsic-dummy";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ };
+ reg_usb_phy: regulator-usb-hsic1 {
+ compatible = "regulator-fixed";
+ regulator-name = "usb-phy-dummy";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ };
};
&{/imx8qm-pm} {
@@ -208,3 +253,75 @@
&usdhc3 {
u-boot,dm-pre-proper;
};
+
+&iomuxc {
+ /* On-module USB HSIC HUB (active) */
+ pinctrl_usb_hsic_active: usbh1activegrp {
+ fsl,pins =
+ <SC_P_USB_HSIC0_DATA_CONN_USB_HSIC0_DATA 0x000000cf>,
+ <SC_P_USB_HSIC0_STROBE_CONN_USB_HSIC0_STROBE 0x000000ff>;
+ };
+
+ /* On-module USB HSIC HUB (idle) */
+ pinctrl_usb_hsic_idle: usbh1idlegrp {
+ fsl,pins =
+ <SC_P_USB_HSIC0_DATA_CONN_USB_HSIC0_DATA 0x000000cf>,
+ <SC_P_USB_HSIC0_STROBE_CONN_USB_HSIC0_STROBE 0x000000cf>;
+ };
+
+ /* On-module USB HSIC HUB */
+ pinctrl_usb3503a: usb3503agrp {
+ fsl,pins =
+ /* On-module HSIC_HUB_CONNECT */
+ <SC_P_SCU_GPIO0_03_LSIO_GPIO0_IO31 0x00000041>,
+ /* On-module HSIC_INT_N */
+ <SC_P_SCU_GPIO0_05_LSIO_GPIO1_IO01 0x00000021>,
+ /* On-module HSIC_RESET_N */
+ <SC_P_SCU_GPIO0_06_LSIO_GPIO1_IO02 0x00000041>;
+ };
+
+ /* Apalis USBH_EN */
+ pinctrl_usbh_en: usbhengrp {
+ fsl,pins =
+ <SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04 0x00000021>;
+ };
+};
+
+/* On-module I2C */
+&i2c1 {
+ /* USB3503A */
+ usb3503@8 {
+ u-boot,dm-pre-proper;
+ compatible = "smsc,usb3503a";
+ connect-gpios = <&lsio_gpio0 31 GPIO_ACTIVE_LOW>;
+ initial-mode = <1>;
+ intn-gpios = <&lsio_gpio1 1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb3503a>;
+ refclk-frequency = <25000000>;
+ reg = <0x08>;
+ reset-gpios = <&lsio_gpio1 2 GPIO_ACTIVE_LOW>;
+ status = "okay";
+ };
+};
+
+/* Apalis USBH2, Apalis USBH3 and on-module Wi-Fi via on-module HSIC Hub */
+&usbh1 {
+ u-boot,dm-pre-proper;
+ adp-disable;
+ disable-over-current;
+ hnp-disable;
+ pinctrl-names = "idle", "active";
+ pinctrl-0 = <&pinctrl_usb_hsic_idle>;
+ pinctrl-1 = <&pinctrl_usb_hsic_active>;
+ srp-disable;
+ status = "okay";
+ vbus-supply = <®_usb_host_vbus>;
+};
+
+&usbphynop2 {
+ vcc-supply = <®_usb_phy>;
+ vbus-supply = <®_usb_hsic>;
+ status = "okay";
+};
+
I have also added the u-boot,drm-pre-proper
property to some nodes and set the status
to okay
, but it is frustrating that it still does not work. I am running the Apalis with the Ixora Evaluation Board V1.3A. I will try to measure the voltage of the corresponding USB port to see if this is still the problem.
I’m unfortunately not a device tree expert either, so I apologize in advance for any obvious errors. Fortunately, the dtsi already compiles once after my changes ^^
Do you have any additional idea what we can try next?
Many thanks in advance.
Best regards
Andreas