[PATCH] ARM: stm32: Add script to install U-Boot from SD/eMMC to SPI NOR on DH STM32MP15xx DHSOM
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Wed Oct 16 19:59:55 CEST 2024
Hi,
On 10/12/24 05:01, Marek Vasut wrote:
> On 10/11/24 5:30 PM, Patrick DELAUNAY wrote:
>> Hi,
>
> Hi,
>
>> On 9/30/24 21:23, Marek Vasut wrote:
>>> Make the dh_update_sd_to_sf script generic, rename it to
>>> dh_update_sdmmc_to_sf
>>> and implement two specific dh_update_sd_to_sf and
>>> dh_update_emmc_to_sf scripts
>>> which load U-Boot from either SD or eMMC and install it into SPI NOR.
>>>
>>> Signed-off-by: Marek Vasut <marex at denx.de>
>>> ---
>>> Cc: Patrice Chotard <patrice.chotard at foss.st.com>
>>> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
>>> Cc: Tom Rini <trini at konsulko.com>
>>> Cc: u-boot at dh-electronics.com
>>> Cc: u-boot at lists.denx.de
>>> Cc: uboot-stm32 at st-md-mailman.stormreply.com
>>> ---
>>> include/configs/stm32mp15_dh_dhsom.h | 16 +++++++++++++---
>>> 1 file changed, 13 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/include/configs/stm32mp15_dh_dhsom.h b/include/configs/
>>> stm32mp15_dh_dhsom.h
>>> index de39b19219d..fa759c938b3 100644
>>> --- a/include/configs/stm32mp15_dh_dhsom.h
>>> +++ b/include/configs/stm32mp15_dh_dhsom.h
>>> @@ -38,16 +38,26 @@
>>> "setenv loadaddr1 && " \
>>> "setenv sblkcnt && " \
>>> "setenv ublkcnt\0" \
>>> - "dh_update_sd_to_sf=" /* Erase SPI NOR and install U-Boot from
>>> SD */ \
>>> + "dh_update_sdmmc_to_sf=" /* Erase SPI NOR and install U-Boot
>>> from SD/eMMC */ \
>>> "setexpr loadaddr1 ${loadaddr} + 0x1000000 && " \
>>> - "load mmc 0:4 ${loadaddr1} /boot/u-boot-spl.stm32 && " \
>>> + "load ${dh_update_iface} ${dh_update_dev} " \
>>> + "${loadaddr1} /boot/u-boot-spl.stm32 && " \
>>> "env set filesize1 ${filesize} && " \
>>> - "load mmc 0:4 ${loadaddr} /boot/u-boot.itb && " \
>>> + "load ${dh_update_iface} ${dh_update_dev} " \
>>> + "${loadaddr} /boot/u-boot.itb && " \
>>> "sf probe && sf erase 0 0x200000 && " \
>>> "sf update ${loadaddr1} 0 ${filesize1} && " \
>>> "sf update ${loadaddr1} 0x40000 ${filesize1} && " \
>>> "sf update ${loadaddr} 0x80000 ${filesize} && " \
>>> "env set filesize1 && env set loadaddr1\0" \
>>> + "dh_update_sd_to_sf=" /* Erase SPI NOR and install U-Boot from
>>> SD */ \
>>> + "setenv dh_update_iface mmc && " \
>>> + "setenv dh_update_dev 0:4 && " \
>>> + "run dh_update_sdmmc_to_sf\0" \
>>> + "dh_update_emmc_to_sf=" /* Erase SPI NOR and install U-Boot
>>> from eMMC */ \
>>> + "setenv dh_update_iface mmc && " \
>>> + "setenv dh_update_dev 1:4 && " \
>>> + "run dh_update_sdmmc_to_sf\0" \
>>> "stdin=serial\0" \
>>> "stdout=serial\0" \
>>> "stderr=serial\0" \
>>>
>>
>> ok I will merge it as it
>>
>> with 2 minor question
>>
>> a) it is strange to define interface variable for macro
>> but use only with "mmc" device with
>>
>>> setenv dh_update_iface mmc
>>
>> it can be simplified with
>>
>> "load mmc ${dh_update_dev}
>>
>> or it is to prepare other device then "mmc" .....
>
> The later, I now also renamed the script in V2 to make it more obvious.
ok
>
>> b) you are using "sf" command and not "mtd" to udpate SPI NOR ?
>>
>>
>> the MTD command allows to use the MTD partition name, defined in DT,
>> so no need to know offset in script (and avoid "sf probe")
>>
>> mtd erase fsbl1; mtd write fsbl1 ${loadaddr1} 0 ${filesize1} \
>> mtd erase fsbl2; mtd write fsbl2 ${loadaddr1} 0 ${filesize1} \
>> mtd erase uboot; mtd write uboot ${loadaddr} 0 ${filesize}
> Can you also do 'sf update' alike operation with 'mtd' command? I
> don't think you can. The 'sf update' often does significantly speed up
> the SPI NOR update process, because SPI NOR erase operation is very
> slow, while SPI NOR read operation is fast, so if the update can read
> and then skip many blocks which are already in the SPI NOR and erase
> and write only the changed blocks, the update is often very fast too.
Good point....
an improve place for MTD command
I will try to propose something for mtd command
and for the patch
Applied to u-boot-stm/master, thanks!
Regards
Patrick
More information about the U-Boot
mailing list