diff mbox series

ARM: dts: stm32: Add DFU support for DHCOM recovery

Message ID 20220314123554.23904-1-marex@denx.de
State Accepted
Commit 19fbe102b2e21db949a66d9020da097769bbdb3c
Delegated to: Patrice Chotard
Headers show
Series ARM: dts: stm32: Add DFU support for DHCOM recovery | expand

Commit Message

Marek Vasut March 14, 2022, 12:35 p.m. UTC
This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
SPL and subsequent u-boot.itb for recovery or commissioning purposes.

The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
except for switching the SoM into DFU mode. By default, the DHCOM SoM
has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
therefore to enter DFU mode, the SoC must fail to boot from boot media
which can be selected by the BOOTn strap override mechanism first and
then fall back to DFU mode.

In case of a SoM with pre-populated BOOTn strap override button, power
the system off, remove microSD card (if applicable), hold down the BOOTn
strap override button located between eMMC and SoM edge connector, power
on the SoM. The SoC will fail to boot from SD card and fall back into
DFU mode.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
---
 arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
 configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
 2 files changed, 54 insertions(+), 3 deletions(-)

Comments

Patrice CHOTARD March 15, 2022, 7:48 a.m. UTC | #1
Hi Marek

On 3/14/22 13:35, Marek Vasut wrote:
> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
> 
> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
> except for switching the SoM into DFU mode. By default, the DHCOM SoM
> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
> therefore to enter DFU mode, the SoC must fail to boot from boot media
> which can be selected by the BOOTn strap override mechanism first and
> then fall back to DFU mode.
> 
> In case of a SoM with pre-populated BOOTn strap override button, power
> the system off, remove microSD card (if applicable), hold down the BOOTn
> strap override button located between eMMC and SoM edge connector, power
> on the SoM. The SoC will fail to boot from SD card and fall back into
> DFU mode.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
>  arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>  configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>  2 files changed, 54 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
> index f09f4290f62..d73967ac1b5 100644
> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
> @@ -58,6 +58,7 @@
>  
>  &i2c4 {
>  	u-boot,dm-pre-reloc;
> +	u-boot,dm-spl;
>  
>  	eeprom0: eeprom@50 {
>  	};
> @@ -98,6 +99,11 @@
>  
>  &pmic {
>  	u-boot,dm-pre-reloc;
> +	u-boot,dm-spl;
> +
> +	regulators {
> +		u-boot,dm-spl;
> +	};
>  };
>  
>  &flash0 {
> @@ -288,3 +294,39 @@
>  		bias-pull-up;
>  	};
>  };
> +
> +&reg11 {
> +	u-boot,dm-spl;
> +};
> +
> +&reg18 {
> +	u-boot,dm-spl;
> +};
> +
> +&usb33 {
> +	u-boot,dm-spl;
> +};
> +
> +&usbotg_hs_pins_a {
> +	u-boot,dm-spl;
> +};
> +
> +&usbotg_hs {
> +	u-boot,dm-spl;
> +};
> +
> +&usbphyc {
> +	u-boot,dm-spl;
> +};
> +
> +&usbphyc_port0 {
> +	u-boot,dm-spl;
> +};
> +
> +&usbphyc_port1 {
> +	u-boot,dm-spl;
> +};
> +
> +&vdd_usb {
> +	u-boot,dm-spl;
> +};
> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
> index c422c47775e..438bba37dee 100644
> --- a/configs/stm32mp15_dhcom_basic_defconfig
> +++ b/configs/stm32mp15_dhcom_basic_defconfig
> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_SYS_LOAD_ADDR=0xc2000000
>  CONFIG_FIT=y
>  CONFIG_SPL_LOAD_FIT=y
> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>  CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>  # CONFIG_USE_SPL_FIT_GENERATOR is not set
>  CONFIG_BOOTDELAY=1
> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>  CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
> +CONFIG_SPL_ENV_SUPPORT=y
>  CONFIG_SPL_I2C=y
>  CONFIG_SPL_MTD_SUPPORT=y
>  CONFIG_SPL_DM_SPI_FLASH=y
>  CONFIG_SPL_POWER=y
> +CONFIG_SPL_RAM_SUPPORT=y
> +CONFIG_SPL_RAM_DEVICE=y
>  CONFIG_SPL_SPI_FLASH_MTD=y
>  CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
> +CONFIG_SPL_USB_GADGET=y
> +CONFIG_SPL_DFU=y
>  CONFIG_SYS_PROMPT="STM32MP> "
>  # CONFIG_CMD_ELF is not set
>  # CONFIG_CMD_EXPORTENV is not set
> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>  CONFIG_ENV_IS_IN_SPI_FLASH=y
>  CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SPL_ENV_IS_NOWHERE=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_IP_DEFRAG=y
>  CONFIG_TFTP_BLOCKSIZE=1536
> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_MTD=y
>  CONFIG_DFU_RAM=y
> -CONFIG_DFU_VIRT=y
> -CONFIG_SET_DFU_ALT_INFO=y
>  CONFIG_GPIO_HOG=y
>  CONFIG_DM_HWSPINLOCK=y
>  CONFIG_HWSPINLOCK_STM32=y
> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>  CONFIG_DWC_ETH_QOS=y
>  CONFIG_KS8851_MLL=y
>  CONFIG_PHY=y
> +CONFIG_SPL_PHY=y
>  CONFIG_PHY_STM32_USBPHYC=y
>  CONFIG_PINCONF=y
>  # CONFIG_SPL_PINCTRL_FULL is not set
>  CONFIG_PINCTRL_STMFX=y
>  CONFIG_DM_PMIC=y
> -# CONFIG_SPL_PMIC_CHILDREN is not set
>  CONFIG_PMIC_STPMIC1=y
>  CONFIG_DM_REGULATOR=y
> +CONFIG_SPL_DM_REGULATOR=y
>  CONFIG_DM_REGULATOR_FIXED=y
>  CONFIG_DM_REGULATOR_GPIO=y
>  CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>  CONFIG_DM_REGULATOR_STPMIC1=y
> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>  CONFIG_REMOTEPROC_STM32_COPRO=y
>  CONFIG_DM_RTC=y
>  CONFIG_RTC_STM32=y
> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>  CONFIG_SYSRESET_SYSCON=y
>  CONFIG_USB=y
>  CONFIG_DM_USB_GADGET=y
> +CONFIG_SPL_DM_USB_GADGET=y
>  CONFIG_USB_EHCI_HCD=y
>  CONFIG_USB_EHCI_GENERIC=y
> +CONFIG_USB_DWC2=y
>  CONFIG_USB_HOST_ETHER=y
>  CONFIG_USB_ETHER_ASIX=y
>  CONFIG_USB_GADGET=y


Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>

Thanks
Patrice
Patrice CHOTARD March 15, 2022, 8:19 a.m. UTC | #2
Hi Marek

On 3/15/22 08:48, Patrice CHOTARD wrote:
> Hi Marek
> 
> On 3/14/22 13:35, Marek Vasut wrote:
>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>
>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>> which can be selected by the BOOTn strap override mechanism first and
>> then fall back to DFU mode.
>>
>> In case of a SoM with pre-populated BOOTn strap override button, power
>> the system off, remove microSD card (if applicable), hold down the BOOTn
>> strap override button located between eMMC and SoM edge connector, power
>> on the SoM. The SoC will fail to boot from SD card and fall back into
>> DFU mode.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>> ---
>>  arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>  configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>  2 files changed, 54 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>> index f09f4290f62..d73967ac1b5 100644
>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>> @@ -58,6 +58,7 @@
>>  
>>  &i2c4 {
>>  	u-boot,dm-pre-reloc;
>> +	u-boot,dm-spl;
>>  
>>  	eeprom0: eeprom@50 {
>>  	};
>> @@ -98,6 +99,11 @@
>>  
>>  &pmic {
>>  	u-boot,dm-pre-reloc;
>> +	u-boot,dm-spl;
>> +
>> +	regulators {
>> +		u-boot,dm-spl;
>> +	};
>>  };
>>  
>>  &flash0 {
>> @@ -288,3 +294,39 @@
>>  		bias-pull-up;
>>  	};
>>  };
>> +
>> +&reg11 {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&reg18 {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usb33 {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usbotg_hs_pins_a {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usbotg_hs {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usbphyc {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usbphyc_port0 {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&usbphyc_port1 {
>> +	u-boot,dm-spl;
>> +};
>> +
>> +&vdd_usb {
>> +	u-boot,dm-spl;
>> +};
>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>> index c422c47775e..438bba37dee 100644
>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>  CONFIG_SYS_LOAD_ADDR=0xc2000000
>>  CONFIG_FIT=y
>>  CONFIG_SPL_LOAD_FIT=y
>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>  CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>  # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>  CONFIG_BOOTDELAY=1
>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>  CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>> +CONFIG_SPL_ENV_SUPPORT=y
>>  CONFIG_SPL_I2C=y
>>  CONFIG_SPL_MTD_SUPPORT=y
>>  CONFIG_SPL_DM_SPI_FLASH=y
>>  CONFIG_SPL_POWER=y
>> +CONFIG_SPL_RAM_SUPPORT=y
>> +CONFIG_SPL_RAM_DEVICE=y
>>  CONFIG_SPL_SPI_FLASH_MTD=y
>>  CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>> +CONFIG_SPL_USB_GADGET=y
>> +CONFIG_SPL_DFU=y
>>  CONFIG_SYS_PROMPT="STM32MP> "
>>  # CONFIG_CMD_ELF is not set
>>  # CONFIG_CMD_EXPORTENV is not set
>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>  CONFIG_ENV_IS_IN_SPI_FLASH=y
>>  CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>  CONFIG_NET_RANDOM_ETHADDR=y
>>  CONFIG_IP_DEFRAG=y
>>  CONFIG_TFTP_BLOCKSIZE=1536
>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>  CONFIG_DFU_MMC=y
>>  CONFIG_DFU_MTD=y
>>  CONFIG_DFU_RAM=y
>> -CONFIG_DFU_VIRT=y
>> -CONFIG_SET_DFU_ALT_INFO=y
>>  CONFIG_GPIO_HOG=y
>>  CONFIG_DM_HWSPINLOCK=y
>>  CONFIG_HWSPINLOCK_STM32=y
>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>  CONFIG_DWC_ETH_QOS=y
>>  CONFIG_KS8851_MLL=y
>>  CONFIG_PHY=y
>> +CONFIG_SPL_PHY=y
>>  CONFIG_PHY_STM32_USBPHYC=y
>>  CONFIG_PINCONF=y
>>  # CONFIG_SPL_PINCTRL_FULL is not set
>>  CONFIG_PINCTRL_STMFX=y
>>  CONFIG_DM_PMIC=y
>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>  CONFIG_PMIC_STPMIC1=y
>>  CONFIG_DM_REGULATOR=y
>> +CONFIG_SPL_DM_REGULATOR=y
>>  CONFIG_DM_REGULATOR_FIXED=y
>>  CONFIG_DM_REGULATOR_GPIO=y
>>  CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>  CONFIG_DM_REGULATOR_STPMIC1=y
>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>  CONFIG_REMOTEPROC_STM32_COPRO=y
>>  CONFIG_DM_RTC=y
>>  CONFIG_RTC_STM32=y
>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>  CONFIG_SYSRESET_SYSCON=y
>>  CONFIG_USB=y
>>  CONFIG_DM_USB_GADGET=y
>> +CONFIG_SPL_DM_USB_GADGET=y
>>  CONFIG_USB_EHCI_HCD=y
>>  CONFIG_USB_EHCI_GENERIC=y
>> +CONFIG_USB_DWC2=y
>>  CONFIG_USB_HOST_ETHER=y
>>  CONFIG_USB_ETHER_ASIX=y
>>  CONFIG_USB_GADGET=y
> 
> 
> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
> 
> Thanks
> Patrice

Applied to u-boot-stm32

Thanks
Patrice
Marek Vasut March 15, 2022, 8:51 a.m. UTC | #3
On 3/15/22 09:19, Patrice CHOTARD wrote:
> Hi Marek
> 
> On 3/15/22 08:48, Patrice CHOTARD wrote:
>> Hi Marek
>>
>> On 3/14/22 13:35, Marek Vasut wrote:
>>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>>
>>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>>> which can be selected by the BOOTn strap override mechanism first and
>>> then fall back to DFU mode.
>>>
>>> In case of a SoM with pre-populated BOOTn strap override button, power
>>> the system off, remove microSD card (if applicable), hold down the BOOTn
>>> strap override button located between eMMC and SoM edge connector, power
>>> on the SoM. The SoC will fail to boot from SD card and fall back into
>>> DFU mode.
>>>
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>> ---
>>>   arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>>   configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>>   2 files changed, 54 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>> index f09f4290f62..d73967ac1b5 100644
>>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>> @@ -58,6 +58,7 @@
>>>   
>>>   &i2c4 {
>>>   	u-boot,dm-pre-reloc;
>>> +	u-boot,dm-spl;
>>>   
>>>   	eeprom0: eeprom@50 {
>>>   	};
>>> @@ -98,6 +99,11 @@
>>>   
>>>   &pmic {
>>>   	u-boot,dm-pre-reloc;
>>> +	u-boot,dm-spl;
>>> +
>>> +	regulators {
>>> +		u-boot,dm-spl;
>>> +	};
>>>   };
>>>   
>>>   &flash0 {
>>> @@ -288,3 +294,39 @@
>>>   		bias-pull-up;
>>>   	};
>>>   };
>>> +
>>> +&reg11 {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&reg18 {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usb33 {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usbotg_hs_pins_a {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usbotg_hs {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usbphyc {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usbphyc_port0 {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&usbphyc_port1 {
>>> +	u-boot,dm-spl;
>>> +};
>>> +
>>> +&vdd_usb {
>>> +	u-boot,dm-spl;
>>> +};
>>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>>> index c422c47775e..438bba37dee 100644
>>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>>   CONFIG_SYS_LOAD_ADDR=0xc2000000
>>>   CONFIG_FIT=y
>>>   CONFIG_SPL_LOAD_FIT=y
>>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>>   CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>>   # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>>   CONFIG_BOOTDELAY=1
>>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>>   CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>   CONFIG_SPL_I2C=y
>>>   CONFIG_SPL_MTD_SUPPORT=y
>>>   CONFIG_SPL_DM_SPI_FLASH=y
>>>   CONFIG_SPL_POWER=y
>>> +CONFIG_SPL_RAM_SUPPORT=y
>>> +CONFIG_SPL_RAM_DEVICE=y
>>>   CONFIG_SPL_SPI_FLASH_MTD=y
>>>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>>> +CONFIG_SPL_USB_GADGET=y
>>> +CONFIG_SPL_DFU=y
>>>   CONFIG_SYS_PROMPT="STM32MP> "
>>>   # CONFIG_CMD_ELF is not set
>>>   # CONFIG_CMD_EXPORTENV is not set
>>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>>>   CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>>   CONFIG_NET_RANDOM_ETHADDR=y
>>>   CONFIG_IP_DEFRAG=y
>>>   CONFIG_TFTP_BLOCKSIZE=1536
>>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>>   CONFIG_DFU_MMC=y
>>>   CONFIG_DFU_MTD=y
>>>   CONFIG_DFU_RAM=y
>>> -CONFIG_DFU_VIRT=y
>>> -CONFIG_SET_DFU_ALT_INFO=y
>>>   CONFIG_GPIO_HOG=y
>>>   CONFIG_DM_HWSPINLOCK=y
>>>   CONFIG_HWSPINLOCK_STM32=y
>>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>>   CONFIG_DWC_ETH_QOS=y
>>>   CONFIG_KS8851_MLL=y
>>>   CONFIG_PHY=y
>>> +CONFIG_SPL_PHY=y
>>>   CONFIG_PHY_STM32_USBPHYC=y
>>>   CONFIG_PINCONF=y
>>>   # CONFIG_SPL_PINCTRL_FULL is not set
>>>   CONFIG_PINCTRL_STMFX=y
>>>   CONFIG_DM_PMIC=y
>>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>>   CONFIG_PMIC_STPMIC1=y
>>>   CONFIG_DM_REGULATOR=y
>>> +CONFIG_SPL_DM_REGULATOR=y
>>>   CONFIG_DM_REGULATOR_FIXED=y
>>>   CONFIG_DM_REGULATOR_GPIO=y
>>>   CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>>   CONFIG_DM_REGULATOR_STPMIC1=y
>>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>>   CONFIG_REMOTEPROC_STM32_COPRO=y
>>>   CONFIG_DM_RTC=y
>>>   CONFIG_RTC_STM32=y
>>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>>   CONFIG_SYSRESET_SYSCON=y
>>>   CONFIG_USB=y
>>>   CONFIG_DM_USB_GADGET=y
>>> +CONFIG_SPL_DM_USB_GADGET=y
>>>   CONFIG_USB_EHCI_HCD=y
>>>   CONFIG_USB_EHCI_GENERIC=y
>>> +CONFIG_USB_DWC2=y
>>>   CONFIG_USB_HOST_ETHER=y
>>>   CONFIG_USB_ETHER_ASIX=y
>>>   CONFIG_USB_GADGET=y
>>
>>
>> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
>>
>> Thanks
>> Patrice
> 
> Applied to u-boot-stm32

This is also for next release.
Patrice CHOTARD March 15, 2022, 9:02 a.m. UTC | #4
Hi Marek

On 3/15/22 09:51, Marek Vasut wrote:
> On 3/15/22 09:19, Patrice CHOTARD wrote:
>> Hi Marek
>>
>> On 3/15/22 08:48, Patrice CHOTARD wrote:
>>> Hi Marek
>>>
>>> On 3/14/22 13:35, Marek Vasut wrote:
>>>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>>>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>>>
>>>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>>>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>>>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>>>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>>>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>>>> which can be selected by the BOOTn strap override mechanism first and
>>>> then fall back to DFU mode.
>>>>
>>>> In case of a SoM with pre-populated BOOTn strap override button, power
>>>> the system off, remove microSD card (if applicable), hold down the BOOTn
>>>> strap override button located between eMMC and SoM edge connector, power
>>>> on the SoM. The SoC will fail to boot from SD card and fall back into
>>>> DFU mode.
>>>>
>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>>>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>>> ---
>>>>   arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>>>   configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>>>   2 files changed, 54 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>> index f09f4290f62..d73967ac1b5 100644
>>>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>> @@ -58,6 +58,7 @@
>>>>     &i2c4 {
>>>>       u-boot,dm-pre-reloc;
>>>> +    u-boot,dm-spl;
>>>>         eeprom0: eeprom@50 {
>>>>       };
>>>> @@ -98,6 +99,11 @@
>>>>     &pmic {
>>>>       u-boot,dm-pre-reloc;
>>>> +    u-boot,dm-spl;
>>>> +
>>>> +    regulators {
>>>> +        u-boot,dm-spl;
>>>> +    };
>>>>   };
>>>>     &flash0 {
>>>> @@ -288,3 +294,39 @@
>>>>           bias-pull-up;
>>>>       };
>>>>   };
>>>> +
>>>> +&reg11 {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&reg18 {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usb33 {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usbotg_hs_pins_a {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usbotg_hs {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usbphyc {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usbphyc_port0 {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&usbphyc_port1 {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> +
>>>> +&vdd_usb {
>>>> +    u-boot,dm-spl;
>>>> +};
>>>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>>>> index c422c47775e..438bba37dee 100644
>>>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>>>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>>>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>>>   CONFIG_SYS_LOAD_ADDR=0xc2000000
>>>>   CONFIG_FIT=y
>>>>   CONFIG_SPL_LOAD_FIT=y
>>>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>>>   CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>>>   # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>>>   CONFIG_BOOTDELAY=1
>>>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>>>   CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>>>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>>>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>>   CONFIG_SPL_I2C=y
>>>>   CONFIG_SPL_MTD_SUPPORT=y
>>>>   CONFIG_SPL_DM_SPI_FLASH=y
>>>>   CONFIG_SPL_POWER=y
>>>> +CONFIG_SPL_RAM_SUPPORT=y
>>>> +CONFIG_SPL_RAM_DEVICE=y
>>>>   CONFIG_SPL_SPI_FLASH_MTD=y
>>>>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>>>> +CONFIG_SPL_USB_GADGET=y
>>>> +CONFIG_SPL_DFU=y
>>>>   CONFIG_SYS_PROMPT="STM32MP> "
>>>>   # CONFIG_CMD_ELF is not set
>>>>   # CONFIG_CMD_EXPORTENV is not set
>>>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>>>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>>>>   CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>>>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>>>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>>>   CONFIG_NET_RANDOM_ETHADDR=y
>>>>   CONFIG_IP_DEFRAG=y
>>>>   CONFIG_TFTP_BLOCKSIZE=1536
>>>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>>>   CONFIG_DFU_MMC=y
>>>>   CONFIG_DFU_MTD=y
>>>>   CONFIG_DFU_RAM=y
>>>> -CONFIG_DFU_VIRT=y
>>>> -CONFIG_SET_DFU_ALT_INFO=y
>>>>   CONFIG_GPIO_HOG=y
>>>>   CONFIG_DM_HWSPINLOCK=y
>>>>   CONFIG_HWSPINLOCK_STM32=y
>>>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>>>   CONFIG_DWC_ETH_QOS=y
>>>>   CONFIG_KS8851_MLL=y
>>>>   CONFIG_PHY=y
>>>> +CONFIG_SPL_PHY=y
>>>>   CONFIG_PHY_STM32_USBPHYC=y
>>>>   CONFIG_PINCONF=y
>>>>   # CONFIG_SPL_PINCTRL_FULL is not set
>>>>   CONFIG_PINCTRL_STMFX=y
>>>>   CONFIG_DM_PMIC=y
>>>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>>>   CONFIG_PMIC_STPMIC1=y
>>>>   CONFIG_DM_REGULATOR=y
>>>> +CONFIG_SPL_DM_REGULATOR=y
>>>>   CONFIG_DM_REGULATOR_FIXED=y
>>>>   CONFIG_DM_REGULATOR_GPIO=y
>>>>   CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>>>   CONFIG_DM_REGULATOR_STPMIC1=y
>>>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>>>   CONFIG_REMOTEPROC_STM32_COPRO=y
>>>>   CONFIG_DM_RTC=y
>>>>   CONFIG_RTC_STM32=y
>>>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>>>   CONFIG_SYSRESET_SYSCON=y
>>>>   CONFIG_USB=y
>>>>   CONFIG_DM_USB_GADGET=y
>>>> +CONFIG_SPL_DM_USB_GADGET=y
>>>>   CONFIG_USB_EHCI_HCD=y
>>>>   CONFIG_USB_EHCI_GENERIC=y
>>>> +CONFIG_USB_DWC2=y
>>>>   CONFIG_USB_HOST_ETHER=y
>>>>   CONFIG_USB_ETHER_ASIX=y
>>>>   CONFIG_USB_GADGET=y
>>>
>>>
>>> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
>>>
>>> Thanks
>>> Patrice
>>
>> Applied to u-boot-stm32
> 
> This is also for next release.
you mean for v2022.04 or v2022.07 ?

Patrice
Marek Vasut March 15, 2022, 9:49 a.m. UTC | #5
On 3/15/22 10:02, Patrice CHOTARD wrote:
> Hi Marek
> 
> On 3/15/22 09:51, Marek Vasut wrote:
>> On 3/15/22 09:19, Patrice CHOTARD wrote:
>>> Hi Marek
>>>
>>> On 3/15/22 08:48, Patrice CHOTARD wrote:
>>>> Hi Marek
>>>>
>>>> On 3/14/22 13:35, Marek Vasut wrote:
>>>>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>>>>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>>>>
>>>>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>>>>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>>>>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>>>>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>>>>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>>>>> which can be selected by the BOOTn strap override mechanism first and
>>>>> then fall back to DFU mode.
>>>>>
>>>>> In case of a SoM with pre-populated BOOTn strap override button, power
>>>>> the system off, remove microSD card (if applicable), hold down the BOOTn
>>>>> strap override button located between eMMC and SoM edge connector, power
>>>>> on the SoM. The SoC will fail to boot from SD card and fall back into
>>>>> DFU mode.
>>>>>
>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>>>> ---
>>>>>    arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>>>>    configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>>>>    2 files changed, 54 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>> index f09f4290f62..d73967ac1b5 100644
>>>>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>> @@ -58,6 +58,7 @@
>>>>>      &i2c4 {
>>>>>        u-boot,dm-pre-reloc;
>>>>> +    u-boot,dm-spl;
>>>>>          eeprom0: eeprom@50 {
>>>>>        };
>>>>> @@ -98,6 +99,11 @@
>>>>>      &pmic {
>>>>>        u-boot,dm-pre-reloc;
>>>>> +    u-boot,dm-spl;
>>>>> +
>>>>> +    regulators {
>>>>> +        u-boot,dm-spl;
>>>>> +    };
>>>>>    };
>>>>>      &flash0 {
>>>>> @@ -288,3 +294,39 @@
>>>>>            bias-pull-up;
>>>>>        };
>>>>>    };
>>>>> +
>>>>> +&reg11 {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&reg18 {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usb33 {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usbotg_hs_pins_a {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usbotg_hs {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usbphyc {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usbphyc_port0 {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&usbphyc_port1 {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> +
>>>>> +&vdd_usb {
>>>>> +    u-boot,dm-spl;
>>>>> +};
>>>>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>>>>> index c422c47775e..438bba37dee 100644
>>>>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>>>>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>>>>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>>>>    CONFIG_SYS_LOAD_ADDR=0xc2000000
>>>>>    CONFIG_FIT=y
>>>>>    CONFIG_SPL_LOAD_FIT=y
>>>>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>>>>    CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>>>>    # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>>>>    CONFIG_BOOTDELAY=1
>>>>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>>>>    CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>>>>    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>>>>    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>>>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>>>    CONFIG_SPL_I2C=y
>>>>>    CONFIG_SPL_MTD_SUPPORT=y
>>>>>    CONFIG_SPL_DM_SPI_FLASH=y
>>>>>    CONFIG_SPL_POWER=y
>>>>> +CONFIG_SPL_RAM_SUPPORT=y
>>>>> +CONFIG_SPL_RAM_DEVICE=y
>>>>>    CONFIG_SPL_SPI_FLASH_MTD=y
>>>>>    CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>>>>> +CONFIG_SPL_USB_GADGET=y
>>>>> +CONFIG_SPL_DFU=y
>>>>>    CONFIG_SYS_PROMPT="STM32MP> "
>>>>>    # CONFIG_CMD_ELF is not set
>>>>>    # CONFIG_CMD_EXPORTENV is not set
>>>>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>>>>    CONFIG_ENV_IS_IN_SPI_FLASH=y
>>>>>    CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>>>>    CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>>>>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>>>>    CONFIG_NET_RANDOM_ETHADDR=y
>>>>>    CONFIG_IP_DEFRAG=y
>>>>>    CONFIG_TFTP_BLOCKSIZE=1536
>>>>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>>>>    CONFIG_DFU_MMC=y
>>>>>    CONFIG_DFU_MTD=y
>>>>>    CONFIG_DFU_RAM=y
>>>>> -CONFIG_DFU_VIRT=y
>>>>> -CONFIG_SET_DFU_ALT_INFO=y
>>>>>    CONFIG_GPIO_HOG=y
>>>>>    CONFIG_DM_HWSPINLOCK=y
>>>>>    CONFIG_HWSPINLOCK_STM32=y
>>>>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>>>>    CONFIG_DWC_ETH_QOS=y
>>>>>    CONFIG_KS8851_MLL=y
>>>>>    CONFIG_PHY=y
>>>>> +CONFIG_SPL_PHY=y
>>>>>    CONFIG_PHY_STM32_USBPHYC=y
>>>>>    CONFIG_PINCONF=y
>>>>>    # CONFIG_SPL_PINCTRL_FULL is not set
>>>>>    CONFIG_PINCTRL_STMFX=y
>>>>>    CONFIG_DM_PMIC=y
>>>>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>>>>    CONFIG_PMIC_STPMIC1=y
>>>>>    CONFIG_DM_REGULATOR=y
>>>>> +CONFIG_SPL_DM_REGULATOR=y
>>>>>    CONFIG_DM_REGULATOR_FIXED=y
>>>>>    CONFIG_DM_REGULATOR_GPIO=y
>>>>>    CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>>>>    CONFIG_DM_REGULATOR_STPMIC1=y
>>>>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>>>>    CONFIG_REMOTEPROC_STM32_COPRO=y
>>>>>    CONFIG_DM_RTC=y
>>>>>    CONFIG_RTC_STM32=y
>>>>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>>>>    CONFIG_SYSRESET_SYSCON=y
>>>>>    CONFIG_USB=y
>>>>>    CONFIG_DM_USB_GADGET=y
>>>>> +CONFIG_SPL_DM_USB_GADGET=y
>>>>>    CONFIG_USB_EHCI_HCD=y
>>>>>    CONFIG_USB_EHCI_GENERIC=y
>>>>> +CONFIG_USB_DWC2=y
>>>>>    CONFIG_USB_HOST_ETHER=y
>>>>>    CONFIG_USB_ETHER_ASIX=y
>>>>>    CONFIG_USB_GADGET=y
>>>>
>>>>
>>>> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>
>>>> Thanks
>>>> Patrice
>>>
>>> Applied to u-boot-stm32
>>
>> This is also for next release.
> you mean for v2022.04 or v2022.07 ?

If it was up to me, I would plan this patch for 2022.07 , since we are 
already in -rc4 . But since this is board specific, and board specific 
stuff can go in all the way until release, if you want to avoid having 
to do -next PR, then feel free to include it for v2022.04 , it's not 
like it wasn't tested.
Patrice CHOTARD March 15, 2022, 9:52 a.m. UTC | #6
On 3/15/22 10:49, Marek Vasut wrote:
> On 3/15/22 10:02, Patrice CHOTARD wrote:
>> Hi Marek
>>
>> On 3/15/22 09:51, Marek Vasut wrote:
>>> On 3/15/22 09:19, Patrice CHOTARD wrote:
>>>> Hi Marek
>>>>
>>>> On 3/15/22 08:48, Patrice CHOTARD wrote:
>>>>> Hi Marek
>>>>>
>>>>> On 3/14/22 13:35, Marek Vasut wrote:
>>>>>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>>>>>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>>>>>
>>>>>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>>>>>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>>>>>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>>>>>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>>>>>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>>>>>> which can be selected by the BOOTn strap override mechanism first and
>>>>>> then fall back to DFU mode.
>>>>>>
>>>>>> In case of a SoM with pre-populated BOOTn strap override button, power
>>>>>> the system off, remove microSD card (if applicable), hold down the BOOTn
>>>>>> strap override button located between eMMC and SoM edge connector, power
>>>>>> on the SoM. The SoC will fail to boot from SD card and fall back into
>>>>>> DFU mode.
>>>>>>
>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>>>>> ---
>>>>>>    arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>>>>>    configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>>>>>    2 files changed, 54 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>> index f09f4290f62..d73967ac1b5 100644
>>>>>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>> @@ -58,6 +58,7 @@
>>>>>>      &i2c4 {
>>>>>>        u-boot,dm-pre-reloc;
>>>>>> +    u-boot,dm-spl;
>>>>>>          eeprom0: eeprom@50 {
>>>>>>        };
>>>>>> @@ -98,6 +99,11 @@
>>>>>>      &pmic {
>>>>>>        u-boot,dm-pre-reloc;
>>>>>> +    u-boot,dm-spl;
>>>>>> +
>>>>>> +    regulators {
>>>>>> +        u-boot,dm-spl;
>>>>>> +    };
>>>>>>    };
>>>>>>      &flash0 {
>>>>>> @@ -288,3 +294,39 @@
>>>>>>            bias-pull-up;
>>>>>>        };
>>>>>>    };
>>>>>> +
>>>>>> +&reg11 {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&reg18 {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usb33 {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usbotg_hs_pins_a {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usbotg_hs {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usbphyc {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usbphyc_port0 {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&usbphyc_port1 {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> +
>>>>>> +&vdd_usb {
>>>>>> +    u-boot,dm-spl;
>>>>>> +};
>>>>>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>>>>>> index c422c47775e..438bba37dee 100644
>>>>>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>>>>>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>>>>>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>>>>>    CONFIG_SYS_LOAD_ADDR=0xc2000000
>>>>>>    CONFIG_FIT=y
>>>>>>    CONFIG_SPL_LOAD_FIT=y
>>>>>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>>>>>    CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>>>>>    # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>>>>>    CONFIG_BOOTDELAY=1
>>>>>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>>>>>    CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>>>>>    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>>>>>    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>>>>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>>>>    CONFIG_SPL_I2C=y
>>>>>>    CONFIG_SPL_MTD_SUPPORT=y
>>>>>>    CONFIG_SPL_DM_SPI_FLASH=y
>>>>>>    CONFIG_SPL_POWER=y
>>>>>> +CONFIG_SPL_RAM_SUPPORT=y
>>>>>> +CONFIG_SPL_RAM_DEVICE=y
>>>>>>    CONFIG_SPL_SPI_FLASH_MTD=y
>>>>>>    CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>>>>>> +CONFIG_SPL_USB_GADGET=y
>>>>>> +CONFIG_SPL_DFU=y
>>>>>>    CONFIG_SYS_PROMPT="STM32MP> "
>>>>>>    # CONFIG_CMD_ELF is not set
>>>>>>    # CONFIG_CMD_EXPORTENV is not set
>>>>>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>>>>>    CONFIG_ENV_IS_IN_SPI_FLASH=y
>>>>>>    CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>>>>>    CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>>>>>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>>>>>    CONFIG_NET_RANDOM_ETHADDR=y
>>>>>>    CONFIG_IP_DEFRAG=y
>>>>>>    CONFIG_TFTP_BLOCKSIZE=1536
>>>>>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>>>>>    CONFIG_DFU_MMC=y
>>>>>>    CONFIG_DFU_MTD=y
>>>>>>    CONFIG_DFU_RAM=y
>>>>>> -CONFIG_DFU_VIRT=y
>>>>>> -CONFIG_SET_DFU_ALT_INFO=y
>>>>>>    CONFIG_GPIO_HOG=y
>>>>>>    CONFIG_DM_HWSPINLOCK=y
>>>>>>    CONFIG_HWSPINLOCK_STM32=y
>>>>>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>>>>>    CONFIG_DWC_ETH_QOS=y
>>>>>>    CONFIG_KS8851_MLL=y
>>>>>>    CONFIG_PHY=y
>>>>>> +CONFIG_SPL_PHY=y
>>>>>>    CONFIG_PHY_STM32_USBPHYC=y
>>>>>>    CONFIG_PINCONF=y
>>>>>>    # CONFIG_SPL_PINCTRL_FULL is not set
>>>>>>    CONFIG_PINCTRL_STMFX=y
>>>>>>    CONFIG_DM_PMIC=y
>>>>>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>>>>>    CONFIG_PMIC_STPMIC1=y
>>>>>>    CONFIG_DM_REGULATOR=y
>>>>>> +CONFIG_SPL_DM_REGULATOR=y
>>>>>>    CONFIG_DM_REGULATOR_FIXED=y
>>>>>>    CONFIG_DM_REGULATOR_GPIO=y
>>>>>>    CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>>>>>    CONFIG_DM_REGULATOR_STPMIC1=y
>>>>>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>>>>>    CONFIG_REMOTEPROC_STM32_COPRO=y
>>>>>>    CONFIG_DM_RTC=y
>>>>>>    CONFIG_RTC_STM32=y
>>>>>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>>>>>    CONFIG_SYSRESET_SYSCON=y
>>>>>>    CONFIG_USB=y
>>>>>>    CONFIG_DM_USB_GADGET=y
>>>>>> +CONFIG_SPL_DM_USB_GADGET=y
>>>>>>    CONFIG_USB_EHCI_HCD=y
>>>>>>    CONFIG_USB_EHCI_GENERIC=y
>>>>>> +CONFIG_USB_DWC2=y
>>>>>>    CONFIG_USB_HOST_ETHER=y
>>>>>>    CONFIG_USB_ETHER_ASIX=y
>>>>>>    CONFIG_USB_GADGET=y
>>>>>
>>>>>
>>>>> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>>
>>>>> Thanks
>>>>> Patrice
>>>>
>>>> Applied to u-boot-stm32
>>>
>>> This is also for next release.
>> you mean for v2022.04 or v2022.07 ?
> 
> If it was up to me, I would plan this patch for 2022.07 , since we are already in -rc4 . But since this is board specific, and board specific stuff can go in all the way until release, if you want to avoid having to do -next PR, then feel free to include it for v2022.04 , it's not like it wasn't tested.

Yes that what i think also, patch's perimeter is limited to STM32MP SoC based board,
we have no doubt about test ;-)

Thanks
Patrice
Marek Vasut March 15, 2022, 9:55 a.m. UTC | #7
On 3/15/22 10:52, Patrice CHOTARD wrote:
> 
> 
> On 3/15/22 10:49, Marek Vasut wrote:
>> On 3/15/22 10:02, Patrice CHOTARD wrote:
>>> Hi Marek
>>>
>>> On 3/15/22 09:51, Marek Vasut wrote:
>>>> On 3/15/22 09:19, Patrice CHOTARD wrote:
>>>>> Hi Marek
>>>>>
>>>>> On 3/15/22 08:48, Patrice CHOTARD wrote:
>>>>>> Hi Marek
>>>>>>
>>>>>> On 3/14/22 13:35, Marek Vasut wrote:
>>>>>>> This patch configures U-Boot SPL for DHCOM SoM to permit DFU upload of
>>>>>>> SPL and subsequent u-boot.itb for recovery or commissioning purposes.
>>>>>>>
>>>>>>> The DFU usage procedure is identical to STM32MP1 DHCOR SoM, see commit
>>>>>>> 3919aa1722a ("ARM: dts: stm32: Add DFU support for DHCOR recovery") ,
>>>>>>> except for switching the SoM into DFU mode. By default, the DHCOM SoM
>>>>>>> has no dedicated mechanism for setting BOOTn straps into UART/USB mode,
>>>>>>> therefore to enter DFU mode, the SoC must fail to boot from boot media
>>>>>>> which can be selected by the BOOTn strap override mechanism first and
>>>>>>> then fall back to DFU mode.
>>>>>>>
>>>>>>> In case of a SoM with pre-populated BOOTn strap override button, power
>>>>>>> the system off, remove microSD card (if applicable), hold down the BOOTn
>>>>>>> strap override button located between eMMC and SoM edge connector, power
>>>>>>> on the SoM. The SoC will fail to boot from SD card and fall back into
>>>>>>> DFU mode.
>>>>>>>
>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>>>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>>>>>> ---
>>>>>>>     arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi | 42 ++++++++++++++++++++++
>>>>>>>     configs/stm32mp15_dhcom_basic_defconfig    | 15 ++++++--
>>>>>>>     2 files changed, 54 insertions(+), 3 deletions(-)
>>>>>>>
>>>>>>> diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>>> index f09f4290f62..d73967ac1b5 100644
>>>>>>> --- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>>> +++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
>>>>>>> @@ -58,6 +58,7 @@
>>>>>>>       &i2c4 {
>>>>>>>         u-boot,dm-pre-reloc;
>>>>>>> +    u-boot,dm-spl;
>>>>>>>           eeprom0: eeprom@50 {
>>>>>>>         };
>>>>>>> @@ -98,6 +99,11 @@
>>>>>>>       &pmic {
>>>>>>>         u-boot,dm-pre-reloc;
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +
>>>>>>> +    regulators {
>>>>>>> +        u-boot,dm-spl;
>>>>>>> +    };
>>>>>>>     };
>>>>>>>       &flash0 {
>>>>>>> @@ -288,3 +294,39 @@
>>>>>>>             bias-pull-up;
>>>>>>>         };
>>>>>>>     };
>>>>>>> +
>>>>>>> +&reg11 {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&reg18 {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usb33 {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usbotg_hs_pins_a {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usbotg_hs {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usbphyc {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usbphyc_port0 {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&usbphyc_port1 {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> +
>>>>>>> +&vdd_usb {
>>>>>>> +    u-boot,dm-spl;
>>>>>>> +};
>>>>>>> diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
>>>>>>> index c422c47775e..438bba37dee 100644
>>>>>>> --- a/configs/stm32mp15_dhcom_basic_defconfig
>>>>>>> +++ b/configs/stm32mp15_dhcom_basic_defconfig
>>>>>>> @@ -18,6 +18,7 @@ CONFIG_DISTRO_DEFAULTS=y
>>>>>>>     CONFIG_SYS_LOAD_ADDR=0xc2000000
>>>>>>>     CONFIG_FIT=y
>>>>>>>     CONFIG_SPL_LOAD_FIT=y
>>>>>>> +CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
>>>>>>>     CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
>>>>>>>     # CONFIG_USE_SPL_FIT_GENERATOR is not set
>>>>>>>     CONFIG_BOOTDELAY=1
>>>>>>> @@ -27,12 +28,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>>>>>>>     CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
>>>>>>>     CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>>>>>>>     CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
>>>>>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>>>>>     CONFIG_SPL_I2C=y
>>>>>>>     CONFIG_SPL_MTD_SUPPORT=y
>>>>>>>     CONFIG_SPL_DM_SPI_FLASH=y
>>>>>>>     CONFIG_SPL_POWER=y
>>>>>>> +CONFIG_SPL_RAM_SUPPORT=y
>>>>>>> +CONFIG_SPL_RAM_DEVICE=y
>>>>>>>     CONFIG_SPL_SPI_FLASH_MTD=y
>>>>>>>     CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
>>>>>>> +CONFIG_SPL_USB_GADGET=y
>>>>>>> +CONFIG_SPL_DFU=y
>>>>>>>     CONFIG_SYS_PROMPT="STM32MP> "
>>>>>>>     # CONFIG_CMD_ELF is not set
>>>>>>>     # CONFIG_CMD_EXPORTENV is not set
>>>>>>> @@ -71,6 +77,7 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
>>>>>>>     CONFIG_ENV_IS_IN_SPI_FLASH=y
>>>>>>>     CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>>>>>>>     CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>>>>>>> +CONFIG_SPL_ENV_IS_NOWHERE=y
>>>>>>>     CONFIG_NET_RANDOM_ETHADDR=y
>>>>>>>     CONFIG_IP_DEFRAG=y
>>>>>>>     CONFIG_TFTP_BLOCKSIZE=1536
>>>>>>> @@ -79,8 +86,6 @@ CONFIG_SPL_BLOCK_CACHE=y
>>>>>>>     CONFIG_DFU_MMC=y
>>>>>>>     CONFIG_DFU_MTD=y
>>>>>>>     CONFIG_DFU_RAM=y
>>>>>>> -CONFIG_DFU_VIRT=y
>>>>>>> -CONFIG_SET_DFU_ALT_INFO=y
>>>>>>>     CONFIG_GPIO_HOG=y
>>>>>>>     CONFIG_DM_HWSPINLOCK=y
>>>>>>>     CONFIG_HWSPINLOCK_STM32=y
>>>>>>> @@ -106,18 +111,20 @@ CONFIG_DM_ETH=y
>>>>>>>     CONFIG_DWC_ETH_QOS=y
>>>>>>>     CONFIG_KS8851_MLL=y
>>>>>>>     CONFIG_PHY=y
>>>>>>> +CONFIG_SPL_PHY=y
>>>>>>>     CONFIG_PHY_STM32_USBPHYC=y
>>>>>>>     CONFIG_PINCONF=y
>>>>>>>     # CONFIG_SPL_PINCTRL_FULL is not set
>>>>>>>     CONFIG_PINCTRL_STMFX=y
>>>>>>>     CONFIG_DM_PMIC=y
>>>>>>> -# CONFIG_SPL_PMIC_CHILDREN is not set
>>>>>>>     CONFIG_PMIC_STPMIC1=y
>>>>>>>     CONFIG_DM_REGULATOR=y
>>>>>>> +CONFIG_SPL_DM_REGULATOR=y
>>>>>>>     CONFIG_DM_REGULATOR_FIXED=y
>>>>>>>     CONFIG_DM_REGULATOR_GPIO=y
>>>>>>>     CONFIG_DM_REGULATOR_STM32_VREFBUF=y
>>>>>>>     CONFIG_DM_REGULATOR_STPMIC1=y
>>>>>>> +CONFIG_SPL_DM_REGULATOR_STPMIC1=y
>>>>>>>     CONFIG_REMOTEPROC_STM32_COPRO=y
>>>>>>>     CONFIG_DM_RTC=y
>>>>>>>     CONFIG_RTC_STM32=y
>>>>>>> @@ -129,8 +136,10 @@ CONFIG_STM32_SPI=y
>>>>>>>     CONFIG_SYSRESET_SYSCON=y
>>>>>>>     CONFIG_USB=y
>>>>>>>     CONFIG_DM_USB_GADGET=y
>>>>>>> +CONFIG_SPL_DM_USB_GADGET=y
>>>>>>>     CONFIG_USB_EHCI_HCD=y
>>>>>>>     CONFIG_USB_EHCI_GENERIC=y
>>>>>>> +CONFIG_USB_DWC2=y
>>>>>>>     CONFIG_USB_HOST_ETHER=y
>>>>>>>     CONFIG_USB_ETHER_ASIX=y
>>>>>>>     CONFIG_USB_GADGET=y
>>>>>>
>>>>>>
>>>>>> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
>>>>>>
>>>>>> Thanks
>>>>>> Patrice
>>>>>
>>>>> Applied to u-boot-stm32
>>>>
>>>> This is also for next release.
>>> you mean for v2022.04 or v2022.07 ?
>>
>> If it was up to me, I would plan this patch for 2022.07 , since we are already in -rc4 . But since this is board specific, and board specific stuff can go in all the way until release, if you want to avoid having to do -next PR, then feel free to include it for v2022.04 , it's not like it wasn't tested.
> 
> Yes that what i think also, patch's perimeter is limited to STM32MP SoC based board,
> we have no doubt about test ;-)

All right then.
diff mbox series

Patch

diff --git a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
index f09f4290f62..d73967ac1b5 100644
--- a/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
+++ b/arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi
@@ -58,6 +58,7 @@ 
 
 &i2c4 {
 	u-boot,dm-pre-reloc;
+	u-boot,dm-spl;
 
 	eeprom0: eeprom@50 {
 	};
@@ -98,6 +99,11 @@ 
 
 &pmic {
 	u-boot,dm-pre-reloc;
+	u-boot,dm-spl;
+
+	regulators {
+		u-boot,dm-spl;
+	};
 };
 
 &flash0 {
@@ -288,3 +294,39 @@ 
 		bias-pull-up;
 	};
 };
+
+&reg11 {
+	u-boot,dm-spl;
+};
+
+&reg18 {
+	u-boot,dm-spl;
+};
+
+&usb33 {
+	u-boot,dm-spl;
+};
+
+&usbotg_hs_pins_a {
+	u-boot,dm-spl;
+};
+
+&usbotg_hs {
+	u-boot,dm-spl;
+};
+
+&usbphyc {
+	u-boot,dm-spl;
+};
+
+&usbphyc_port0 {
+	u-boot,dm-spl;
+};
+
+&usbphyc_port1 {
+	u-boot,dm-spl;
+};
+
+&vdd_usb {
+	u-boot,dm-spl;
+};
diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
index c422c47775e..438bba37dee 100644
--- a/configs/stm32mp15_dhcom_basic_defconfig
+++ b/configs/stm32mp15_dhcom_basic_defconfig
@@ -18,6 +18,7 @@  CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_LOAD_ADDR=0xc2000000
 CONFIG_FIT=y
 CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
 CONFIG_SPL_FIT_SOURCE="board/dhelectronics/dh_stm32mp1/u-boot-dhcom.its"
 # CONFIG_USE_SPL_FIT_GENERATOR is not set
 CONFIG_BOOTDELAY=1
@@ -27,12 +28,17 @@  CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
+CONFIG_SPL_ENV_SUPPORT=y
 CONFIG_SPL_I2C=y
 CONFIG_SPL_MTD_SUPPORT=y
 CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPL_POWER=y
+CONFIG_SPL_RAM_SUPPORT=y
+CONFIG_SPL_RAM_DEVICE=y
 CONFIG_SPL_SPI_FLASH_MTD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_DFU=y
 CONFIG_SYS_PROMPT="STM32MP> "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_EXPORTENV is not set
@@ -71,6 +77,7 @@  CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-names interrupts-extended inter
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SPL_ENV_IS_NOWHERE=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_IP_DEFRAG=y
 CONFIG_TFTP_BLOCKSIZE=1536
@@ -79,8 +86,6 @@  CONFIG_SPL_BLOCK_CACHE=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_MTD=y
 CONFIG_DFU_RAM=y
-CONFIG_DFU_VIRT=y
-CONFIG_SET_DFU_ALT_INFO=y
 CONFIG_GPIO_HOG=y
 CONFIG_DM_HWSPINLOCK=y
 CONFIG_HWSPINLOCK_STM32=y
@@ -106,18 +111,20 @@  CONFIG_DM_ETH=y
 CONFIG_DWC_ETH_QOS=y
 CONFIG_KS8851_MLL=y
 CONFIG_PHY=y
+CONFIG_SPL_PHY=y
 CONFIG_PHY_STM32_USBPHYC=y
 CONFIG_PINCONF=y
 # CONFIG_SPL_PINCTRL_FULL is not set
 CONFIG_PINCTRL_STMFX=y
 CONFIG_DM_PMIC=y
-# CONFIG_SPL_PMIC_CHILDREN is not set
 CONFIG_PMIC_STPMIC1=y
 CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_DM_REGULATOR_STM32_VREFBUF=y
 CONFIG_DM_REGULATOR_STPMIC1=y
+CONFIG_SPL_DM_REGULATOR_STPMIC1=y
 CONFIG_REMOTEPROC_STM32_COPRO=y
 CONFIG_DM_RTC=y
 CONFIG_RTC_STM32=y
@@ -129,8 +136,10 @@  CONFIG_STM32_SPI=y
 CONFIG_SYSRESET_SYSCON=y
 CONFIG_USB=y
 CONFIG_DM_USB_GADGET=y
+CONFIG_SPL_DM_USB_GADGET=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_DWC2=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_GADGET=y