imx: imx8mm-beacon: Enable USB booting via SDP
authorAdam Ford <aford173@gmail.com>
Sat, 22 Oct 2022 14:28:23 +0000 (09:28 -0500)
committerStefano Babic <sbabic@denx.de>
Mon, 7 Nov 2022 21:45:05 +0000 (22:45 +0100)
In order to boot over USB, the device tree needs to enable
a few extra nodes in SPL.  Since the USB driver has the
ability to detect host/device, the dr_mode can be removed
from the device tree since it needs to act as a device when
booting and OTG is the default mode.  Add USB boot support
to spl_board_boot_device and enable the corresponding config
options.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
board/beacon/imx8mm/spl.c
configs/imx8mm_beacon_defconfig

index c94b4ff..00ac413 100644 (file)
        };
 };
 
+&aips4 {
+       u-boot,dm-spl;
+};
+
 &reg_usdhc2_vmmc {
        u-boot,off-on-delay-us = <20000>;
 };
        u-boot,dm-spl;
 };
 
+&reg_usbotg1 {
+
+};
+
 &uart2 {
        u-boot,dm-spl;
 };
 
+&usbmisc1 {
+       u-boot,dm-spl;
+};
+
 &usbotg1 {
-       dr_mode="host";
+       u-boot,dm-spl;
+};
+
+&usbphynop1 {
+       u-boot,dm-spl;
 };
 
 &usdhc2 {
index b0e9d91..a5f337a 100644 (file)
@@ -34,6 +34,8 @@ int spl_board_boot_device(enum boot_device boot_dev_spl)
        case SD3_BOOT:
        case MMC3_BOOT:
                return BOOT_DEVICE_MMC2;
+       case USB_BOOT:
+               return BOOT_DEVICE_BOARD;
        default:
                return BOOT_DEVICE_NONE;
        }
index 5bbaa29..cfb0eea 100644 (file)
@@ -39,6 +39,9 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
 CONFIG_SPL_I2C=y
 CONFIG_SPL_POWER=y
+CONFIG_SPL_USB_HOST=y
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_SPL_WATCHDOG=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_MAXARGS=64
@@ -56,6 +59,7 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_PART=y
 CONFIG_CMD_SPI=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
@@ -103,6 +107,8 @@ CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_GIGE=y
 CONFIG_FEC_MXC=y
 CONFIG_MII=y
+CONFIG_SPL_PHY=y
+CONFIG_SPL_NOP_PHY=y
 CONFIG_PINCTRL=y
 CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
@@ -127,12 +133,13 @@ CONFIG_SYSRESET_PSCI=y
 CONFIG_SYSRESET_WATCHDOG=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
-# CONFIG_SPL_DM_USB is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_MXC_USB_OTG_HACTIVE=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
+CONFIG_SDP_LOADADDR=0x40400000
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_IMX_WATCHDOG=y