[PATCH] config: imx: Add support for Phytec's phycore imx8mm running SDP gadget
Lukasz Majewski
lukma at denx.de
Mon Aug 19 16:36:00 CEST 2024
Hi Benjamin,
> Hi Lukasz,
> did you test this? It does not work for me. When I try it, the U-Boot
> hangs in SPL. Here is what I got:
> From Host:
>
> bhahn at llp-hahn:~/git-repos/u-boot$ sudo uuu -b spl
> build/mini/flash.bin uuu (Universal Update Utility) for nxp imx chips
> -- lib1.4.193
>
> Success 0 Failure 0
>
>
> 7:3 1/ 1 [=================100%=================] SDP: boot -f
> build/mini/flash.bin
>
Please test this branch:
https://github.com/lmajewski/u-boot/commits/phycore-imx8mm-qspi-nvme
On HOST:
uuu -v -b qspi ~/work/DENX/u-boot/flash.bin
Stop on u-boot prompt.
u-boot=> fastboot 0
QSPI is flashed via USB - however - I've noticed that there are some
flipped bits on USB transmission when I do compare it with tftp
transfer.
This needs to be investigated, however seems to be an orthogonal
problem from QSPI boot support.
>
> Log on target:
>
> U-Boot SPL 2024.10-rc2-00131-g0303f2240376 (Aug 19 2024 - 15:18:36
> +0200) WDT: Started watchdog at 30280000 with servicing every 1000ms
> (60s timeout) Trying to boot from USB SDP
>
> U-Boot SPL 2024.10-rc2-00131-g0303f2240376 (Aug 19 2024 - 15:18:36
> +0200) WDT: Started watchdog at 30280000 with servicing every 1000ms
> (60s timeout) Trying to boot from USB SDP
>
> To me it looks like there are some changes missing to get this
> feature to work.
> You can take a look at my commits where I added this feature for
> imx8mp. 199229e28b2b2da57c52ee46452f930785cf6002 ("phycore-imx8mp:
> add USB mass storage support")
> 8dcf1df48dff339b172d1bce2a38a965ee4aafca ("phycore-imx8mp: add
> support for booting and flashing emmc via UUU")
>
>
> Here are the changes I needed to do on top of your patch to get this
> feature to work for mini:
>
> diff --git a/arch/arm/dts/imx8mm-phyboard-polis-rdk-u-boot.dtsi
> b/arch/arm/dts/imx8mm-phyboard-polis-rdk-u-boot.dtsi
> index 516e52e1f5de..cdaff2f8da9b 100644
> --- a/arch/arm/dts/imx8mm-phyboard-polis-rdk-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mm-phyboard-polis-rdk-u-boot.dtsi
> @@ -69,3 +69,8 @@
> &wdog1 {
> bootph-pre-ram;
> };
> +
> +&usbotg1 {
> + dr_mode = "peripheral";
> + u-boot,dm-spl;
> +};
> diff --git a/board/phytec/phycore_imx8mm/phycore-imx8mm.c
> b/board/phytec/phycore_imx8mm/phycore-imx8mm.c
> index 06cffbca3a69..00fdd4edbe36 100644
> --- a/board/phytec/phycore_imx8mm/phycore-imx8mm.c
> +++ b/board/phytec/phycore_imx8mm/phycore-imx8mm.c
> @@ -45,6 +45,10 @@ int board_late_init(void)
> case MMC3_BOOT:
> env_set_ulong("mmcdev", 2);
> break;
> + case USB_BOOT:
> + printf("Detect USB boot. Will enter fastboot
> mode!\n");
> + env_set_ulong("dofastboot", 1);
> + break;
> default:
> break;
> }
> diff --git a/configs/phycore-imx8mm_defconfig
> b/configs/phycore-imx8mm_defconfig
> index beb2f1e9f031..e8d3ffe8c05d 100644
> --- a/configs/phycore-imx8mm_defconfig
> +++ b/configs/phycore-imx8mm_defconfig
> @@ -31,7 +31,7 @@ CONFIG_FIT_EXTERNAL_OFFSET=0x3000
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_USE_BOOTCOMMAND=y
> -CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run
> loadimage; then run mmcboot; else run netboot; fi; fi;"
> +CONFIG_BOOTCOMMAND="if test ${dofastboot} = 1; then fastboot 0; fi;
> mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run
> mmcboot; else run netboot; fi; fi;"
> CONFIG_DEFAULT_FDT_FILE="oftree"
> CONFIG_SYS_CBSIZE=2048
> CONFIG_SYS_PBSIZE=2074
> @@ -153,3 +153,11 @@ CONFIG_CI_UDC=y
> CONFIG_SDP_LOADADDR=0x40400000
> CONFIG_SPL_USB_SDP_SUPPORT=y
> CONFIG_IMX_WATCHDOG=y
> +CONFIG_CMD_USB_SDP=y
> +CONFIG_FASTBOOT_FLASH=y
> +CONFIG_FASTBOOT_FLASH_MMC_DEV=2
> +CONFIG_FASTBOOT_MMC_BOOT_SUPPORT=y
> +CONFIG_FASTBOOT_MMC_BOOT1_NAME="mmc2boot0"
> +CONFIG_FASTBOOT_MMC_BOOT2_NAME="mmc2boot1"
> +CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
> +CONFIG_FASTBOOT_MMC_USER_NAME="mmc2"
> diff --git a/include/configs/phycore_imx8mm.h
> b/include/configs/phycore_imx8mm.h
> index dd7cfdba52d2..f3a750089dd5 100644
> --- a/include/configs/phycore_imx8mm.h
> +++ b/include/configs/phycore_imx8mm.h
> @@ -26,6 +26,11 @@
> "fdt_addr=0x48000000\0" \
> "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
> "ip_dyn=yes\0" \
> + "dofastboot=0\0" \
> + "fastboot_raw_partition_bootloader=66 8128\0" \
> + "fastboot_raw_partition_all=0 4194304\0" \
> + "emmc_dev=2\0" \
> + "sd_dev=1\0" \
> "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> "mmcpart=1\0" \
> "mmcroot=2\0" \
>
>
> With these changes booting via SDP with uuu and flashing emmc with
> uuu should work. Sadly I did not find a way to be able to flash eMMC
> and SD-Card over uuu with the same bootloader because it was
> necessary for me to specify the device to flash in
> CONFIG_FASTBOOT_FLASH_MMC_DEV.
>
> with kind regards,
> Benjamin
>
> On 15.08.24 10:45, Lukasz Majewski wrote:
> > After this change it would be possible to boot SDP gadget when
> > Phytec's Phycore imx8mm module has USB ROM boot selected.
> >
> > With this change it shall be possible to flash eMMC/SD card content
> > with uuu program.
> >
> > Signed-off-by: Lukasz Majewski <lukma at denx.de>
> > ---
> > configs/phycore-imx8mm_defconfig | 18 +++++++++++++++++-
> > 1 file changed, 17 insertions(+), 1 deletion(-)
> >
> > diff --git a/configs/phycore-imx8mm_defconfig
> > b/configs/phycore-imx8mm_defconfig index 6748e6fafb..beb2f1e9f0
> > 100644 --- a/configs/phycore-imx8mm_defconfig
> > +++ b/configs/phycore-imx8mm_defconfig
> > @@ -25,6 +25,7 @@ CONFIG_SPL=y
> > CONFIG_ENV_OFFSET_REDUND=0x3E0000
> > CONFIG_SYS_LOAD_ADDR=0x40480000
> > CONFIG_PCI=y
> > +# CONFIG_ANDROID_BOOT_IMAGE is not set
> > CONFIG_FIT=y
> > CONFIG_FIT_EXTERNAL_OFFSET=0x3000
> > CONFIG_SPL_LOAD_FIT=y
> > @@ -57,6 +58,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
> > CONFIG_SYS_EEPROM_SIZE=4096
> > CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=5
> > CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=5
> > +# CONFIG_CMD_BIND is not set
> > CONFIG_CMD_CLK=y
> > CONFIG_CMD_FUSE=y
> > CONFIG_CMD_GPIO=y
> > @@ -86,6 +88,10 @@ CONFIG_SPL_CLK_COMPOSITE_CCF=y
> > CONFIG_CLK_COMPOSITE_CCF=y
> > CONFIG_SPL_CLK_IMX8MM=y
> > CONFIG_CLK_IMX8MM=y
> > +CONFIG_USB_FUNCTION_FASTBOOT=y
> > +CONFIG_FASTBOOT_BUF_ADDR=0x42800000
> > +CONFIG_FASTBOOT_BUF_SIZE=0x20000000
> > +CONFIG_FASTBOOT_UUU_SUPPORT=y
> > CONFIG_MXC_GPIO=y
> > CONFIG_DM_I2C=y
> > CONFIG_MISC=y
> > @@ -116,7 +122,6 @@ CONFIG_FEC_MXC=y
> > CONFIG_MII=y
> > CONFIG_NVME_PCI=y
> > CONFIG_PCIE_DW_IMX=y
> > -CONFIG_PHY=y
> > CONFIG_PHY_IMX8M_PCIE=y
> > CONFIG_PINCTRL=y
> > CONFIG_SPL_PINCTRL=y
> > @@ -136,4 +141,15 @@ CONFIG_SYSRESET_PSCI=y
> > CONFIG_SYSRESET_WATCHDOG=y
> > CONFIG_DM_THERMAL=y
> > CONFIG_IMX_TMU=y
> > +CONFIG_USB=y
> > +CONFIG_SPL_USB_HOST=y
> > +CONFIG_USB_EHCI_HCD=y
> > +CONFIG_MXC_USB_OTG_HACTIVE=y
> > +CONFIG_USB_GADGET=y
> > +CONFIG_SPL_USB_GADGET=y
> > +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
> > +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
> > +CONFIG_CI_UDC=y
> > +CONFIG_SDP_LOADADDR=0x40400000
> > +CONFIG_SPL_USB_SDP_SUPPORT=y
> > CONFIG_IMX_WATCHDOG=y
>
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240819/ce6fed44/attachment.sig>
More information about the U-Boot
mailing list