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 <ma...@denx.de>
---
Cc: Patrice Chotard <patrice.chot...@foss.st.com>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Tom Rini <tr...@konsulko.com>
Cc: u-b...@dh-electronics.com
Cc: u-boot@lists.denx.de
Cc: uboot-st...@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