[U-Boot] Fixing dfu_alt_info field after DM conversion

Hi Lukasz,
Myself and Joris have been working on DM conversion of pico-mx7 and the the latest patches are available at: https://github.com/jorisoffouga/u-boot/commits/pico-imx7d/convert-dm
Things are working well so far, except eMMC flashing via DFU.
The following error is seen we flash u-boot-dtb.img:
=> dfu 0 mmc 0 Request would exceed designated area! #Deferred dfu_flush() failed!=>
Joris found a way to fix this problem by doing:
#define CONFIG_DFU_ENV_SETTINGS \ "dfu_alt_info=" \ "spl raw 0x2 0x400;" \ - "u-boot raw 0x8a 0x400;" \ + "u-boot raw 0x8a 0x1000;" \ "/boot/zImage ext4 0 1;" \ "/boot/imx7d-pico-hobbit.dtb ext4 0 1;" \ "/boot/imx7d-pico-pi.dtb ext4 0 1;" \
Is this an acceptable fix?
What does the last field in dfu_alt_info mean?
Thanks,
Fabio Estevam

Hi Fabio,
Hi Lukasz,
Myself and Joris have been working on DM conversion of pico-mx7 and the the latest patches are available at: https://github.com/jorisoffouga/u-boot/commits/pico-imx7d/convert-dm
Things are working well so far, except eMMC flashing via DFU.
The following error is seen we flash u-boot-dtb.img:
=> dfu 0 mmc 0 Request would exceed designated area! #Deferred dfu_flush() failed!=>
Joris found a way to fix this problem by doing:
#define CONFIG_DFU_ENV_SETTINGS \ "dfu_alt_info=" \ "spl raw 0x2 0x400;" \
"u-boot raw 0x8a 0x400;" \
"u-boot raw 0x8a 0x1000;" \
The change is as follows:
It defines the DFU alt setting "u-boot" to be "raw" (LBA addressed) - starting from 0x8a LBA and with 0x400 * 512B = 512 KiB.
Probably your u-boot is larger than 512 KiB, so you need to increase the "size" of the alt setting to be written to eMMC.
In short - yes this is an acceptable fix.
"/boot/zImage ext4 0 1;" \ "/boot/imx7d-pico-hobbit.dtb ext4 0 1;" \ "/boot/imx7d-pico-pi.dtb ext4 0 1;" \
Is this an acceptable fix?
What does the last field in dfu_alt_info mean?
Thanks,
Fabio Estevam
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

Hi Lukasz,
On Sat, Mar 23, 2019 at 6:29 PM Lukasz Majewski lukma@denx.de wrote:
#define CONFIG_DFU_ENV_SETTINGS \ "dfu_alt_info=" \ "spl raw 0x2 0x400;" \
"u-boot raw 0x8a 0x400;" \
"u-boot raw 0x8a 0x1000;" \
The change is as follows:
It defines the DFU alt setting "u-boot" to be "raw" (LBA addressed) - starting from 0x8a LBA and with 0x400 * 512B = 512 KiB.
Probably your u-boot is larger than 512 KiB, so you need to increase the "size" of the alt setting to be written to eMMC.
In short - yes this is an acceptable fix.
Yes, the new u-boot-dtb.img is 557 kiB.
Thanks for your explanation. Things are clear now.
Thanks,
Fabio Estevam
participants (2)
-
Fabio Estevam
-
Lukasz Majewski