Martyn Welch <martyn.we...@collabora.com> writes:

> On Thu, 2024-05-23 at 15:08 -0500, Jon Humphreys wrote:
>> Martyn Welch <martyn.we...@collabora.com> writes:
>> 
>> > From: Sjoerd Simons <sjo...@collabora.com>
>> > 
>> > Provide config fragments to enable USB host as well as USB gadget
>> > and DFU
>> > support for a53 and r5. This relevant fragment is included into the
>> > am62x EVM a53 defconfig. For the r5, due to the smaller available
>> > size,
>> > the config fragment also disables support for persistent storage to
>> > free
>> > up space for USB support. This fragment needs to be included is DFU
>> > booting is desired.
>> > 
>> > The CONFIG_DFU_SF option is placed in the defconfig rather than the
>> > fragment as this is known not to be supported on all boards that
>> > can
>> > support DFU.
>> > 
>> > Signed-off-by: Sjoerd Simons <sjo...@collabora.com>
>> > Signed-off-by: Martyn Welch <martyn.we...@collabora.com>
>> > ---
>> > Changes in v5:
>> > - Switch to config fragment for a53 most DFU configuration
>> > 
>> > Changes in v4:
>> > - Move R5 dfu config to a config fragment rather then a full
>> > defconfig
>> > - Don't enable XHCI for the R5 SPL, unneeded
>> > 
>> > Changes in v3:
>> > - Run savedefconfig to adjust to more recent u-boot
>> > 
>> > Changes in v2:
>> > - Create a seperate defconfig for R5
>> > 
>> > 
>> > 
>> >  configs/am62x_a53_usbdfu.config | 30
>> > ++++++++++++++++++++++++++++++
>> >  configs/am62x_evm_a53_defconfig |  2 ++
>> >  configs/am62x_r5_usbdfu.config  | 28 ++++++++++++++++++++++++++++
>> >  3 files changed, 60 insertions(+)
>> >  create mode 100644 configs/am62x_a53_usbdfu.config
>> >  create mode 100644 configs/am62x_r5_usbdfu.config
>> > 
>> > diff --git a/configs/am62x_a53_usbdfu.config
>> > b/configs/am62x_a53_usbdfu.config
>> > new file mode 100644
>> > index 0000000000..3a19cf2328
>> > --- /dev/null
>> > +++ b/configs/am62x_a53_usbdfu.config
>> > @@ -0,0 +1,29 @@
>> > +CONFIG_SYS_MALLOC_LEN=0x2000000
>> > +CONFIG_SPL_ENV_SUPPORT=y
>> > +CONFIG_SPL_RAM_SUPPORT=y
>> > +CONFIG_SPL_RAM_DEVICE=y
>> > +CONFIG_SPL_USB_GADGET=y
>> > +CONFIG_SPL_DFU=y
>> > +CONFIG_CMD_DFU=y
>> > +CONFIG_CMD_USB=y
>> > +CONFIG_SYSCON=y
>> > +CONFIG_SPL_SYSCON=y
>> > +CONFIG_DFU_MMC=y
>> > +CONFIG_DFU_RAM=y
>> > +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
>> > +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>> > +CONFIG_USB=y
>> > +CONFIG_DM_USB_GADGET=y
>> > +CONFIG_SPL_DM_USB_GADGET=y
>> > +CONFIG_USB_XHCI_HCD=y
>> > +CONFIG_USB_XHCI_DWC3=y
>> > +CONFIG_USB_DWC3=y
>> > +CONFIG_USB_DWC3_GENERIC=y
>> > +CONFIG_SPL_USB_DWC3_GENERIC=y
>> > +CONFIG_SPL_USB_DWC3_AM62=y
>> > +CONFIG_USB_DWC3_AM62=y
>> > +CONFIG_USB_GADGET=y
>> > +CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
>> > +CONFIG_USB_GADGET_VENDOR_NUM=0x0451
>> > +CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
>> > +CONFIG_USB_GADGET_DOWNLOAD=y
>> > diff --git a/configs/am62x_evm_a53_defconfig
>> > b/configs/am62x_evm_a53_defconfig
>> > index 6c708dcb05..16294a6a79 100644
>> > --- a/configs/am62x_evm_a53_defconfig
>> > +++ b/configs/am62x_evm_a53_defconfig
>> > @@ -68,6 +68,7 @@ CONFIG_SPL_OF_TRANSLATE=y
>> >  CONFIG_CLK=y
>> >  CONFIG_SPL_CLK=y
>> >  CONFIG_CLK_TI_SCI=y
>> > +CONFIG_DFU_SF=y
>> >  CONFIG_DMA_CHANNELS=y
>> >  CONFIG_TI_K3_NAVSS_UDMA=y
>> >  CONFIG_TI_SCI_PROTOCOL=y
>> > @@ -111,3 +112,5 @@ CONFIG_SPL_SYSRESET=y
>> >  CONFIG_SYSRESET_TI_SCI=y
>> >  CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
>> >  CONFIG_EFI_SET_TIME=y
>> > +
>> > +#include <configs/am62x_a53_usbdfu.config>
>> > diff --git a/configs/am62x_r5_usbdfu.config
>> > b/configs/am62x_r5_usbdfu.config
>> > new file mode 100644
>> > index 0000000000..772bb2ab93
>> > --- /dev/null
>> > +++ b/configs/am62x_r5_usbdfu.config
>> > @@ -0,0 +1,28 @@
>> > +CONFIG_SPL_ENV_SUPPORT=y
>> > +CONFIG_SYSCON=y
>> > +CONFIG_SPL_SYSCON=y
>> > +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
>> > +CONFIG_MISC=y
>> > +CONFIG_USB=y
>> > +CONFIG_DM_USB_GADGET=y
>> > +CONFIG_SPL_DM_USB_GADGET=y
>> > +CONFIG_USB_DWC3=y
>> > +CONFIG_USB_DWC3_GENERIC=y
>> > +CONFIG_SPL_USB_DWC3_GENERIC=y
>> > +CONFIG_SPL_USB_DWC3_AM62=y
>> > +CONFIG_USB_GADGET=y
>> > +CONFIG_SPL_USB_GADGET=y
>> > +CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
>> > +CONFIG_USB_GADGET_VENDOR_NUM=0x0451
>> > +CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
>> > +CONFIG_USB_GADGET_DOWNLOAD=y
>> > +CONFIG_SPL_DFU=y
>> > +# CONFIG_SPL_MMC is not set
>> > +# CONFIG_SPL_FS_FAT is not set
>> > +# CONFIG_SPL_LIBDISK_SUPPORT is not set
>> > +# CONFIG_SPL_SPI is not set
>> > +# CONFIG_SPL_SYS_MALLOC is not set
>> > +# CONFIG_CMD_GPT is not set
>> > +# CONFIG_CMD_MMC is not set
>> > +# CONFIG_CMD_FAT is not set
>> > +# CONFIG_MMC_SDHCI is not set
>> > -- 
>> > 2.43.0
>> 
>> Hi all, it appears that this patch breaks OSPI DFU on the board.  In
>> particular, changing the CONFIG_SYS_DFU_DATA_BUF_SIZE seems to be the
>> culprit.
>> 
>> I see the error as a DFU timeout when applying capsules.
>> 
>>   SF: Detected s28hs512t with page size 256 Bytes, erase size 256
>> KiB, total 64 MiB
>>   ############jedec_spi_nor flash@0: flash operation timed out
>>   #DFU write failed
>> 
>
> I'm not seeing this failure using the `-next` branch from yesterday
> (2f96033923).
>
> I've attempted to use both the `uboot-capsule.bin` produced with and
> without the DFU config enabled whilst booting the SK-AM62 via DFU and
> from an SD card. I seem to be consistently getting the following:
>
> => ext2ls mmc 1:1                                                    
> <DIR>       4096 .                                                   
> <DIR>       4096 ..                                                  
> <DIR>      16384 lost+found                                          
>          1132791 uboot-capsule.bin                                   
> => load mmc 1:1 ${loadaddr} /uboot-capsule.bin                       
> 1132791 bytes read in 57 ms (19 MiB/s)                               
> => efidebug capsule update ${loadaddr}                               
> ** File not found ubootefi.var **                                    
> Failed to load EFI variables                                         
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> SF: Detected s28hs512t with page size 256 Bytes, erase size 256 KiB,
> total 64 Mi
> B                                                                    
> ########################################################             
> ** Unable to write file ubootefi.var **                              
> Failed to persist EFI variables                                      
> =>
>
> TBH, I'm not sure if this is good or bad at this point, but I'm not
> seeing the error that you reported. As can be seen above, I don't have
> a `ubootefi.var` file, but then I don't boot using EFI mechanisms, so I
> guess that's expected?
>
> But then, the commands I've used above aren't applying the capsule
> either right?
>
> Martyn
>
>> Jon

Hi Martyn, against upstream/next, I no longer see the failure.  Thanks for
looking into it.

Jon

Reply via email to