X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=board%2Fst%2Fcommon%2Fstm32mp_dfu.c;fp=board%2Fst%2Fcommon%2Fstm32mp_dfu.c;h=3bd005bb04adec3448931301f7236f1028d104c9;hb=954bd1a923a686089c62195781616768f52eacc7;hp=e129f8c8b5b7f3661921475881574edf0ca73bdd;hpb=7802a4495f3c2db09b125a4963f4328b95a38429;p=oweals%2Fu-boot.git diff --git a/board/st/common/stm32mp_dfu.c b/board/st/common/stm32mp_dfu.c index e129f8c8b5..3bd005bb04 100644 --- a/board/st/common/stm32mp_dfu.c +++ b/board/st/common/stm32mp_dfu.c @@ -11,6 +11,7 @@ #include #include #include +#include #define DFU_ALT_BUF_LEN SZ_1K @@ -211,12 +212,31 @@ int dfu_read_medium_virt(struct dfu_entity *dfu, u64 offset, case 0x1: return dfu_pmic_read(offset, buf, len); } + + if (CONFIG_IS_ENABLED(CMD_STM32PROG) && + dfu->data.virt.dev_num >= STM32PROG_VIRT_FIRST_DEV_NUM) + return stm32prog_read_medium_virt(dfu, offset, buf, len); + *len = 0; return 0; } +int dfu_write_medium_virt(struct dfu_entity *dfu, u64 offset, + void *buf, long *len) +{ + if (CONFIG_IS_ENABLED(CMD_STM32PROG) && + dfu->data.virt.dev_num >= STM32PROG_VIRT_FIRST_DEV_NUM) + return stm32prog_write_medium_virt(dfu, offset, buf, len); + + return -EOPNOTSUPP; +} + int __weak dfu_get_medium_size_virt(struct dfu_entity *dfu, u64 *size) { + if (CONFIG_IS_ENABLED(CMD_STM32PROG) && + dfu->data.virt.dev_num >= STM32PROG_VIRT_FIRST_DEV_NUM) + return stm32prog_get_medium_size_virt(dfu, size); + *size = SZ_1K; return 0;