]> git.ipfire.org Git - thirdparty/u-boot.git/blobdiff - board/st/common/stm32mp_dfu.c
Merge tag 'u-boot-stm32-20231004' of https://source.denx.de/u-boot/custodians/u-boot-stm
[thirdparty/u-boot.git] / board / st / common / stm32mp_dfu.c
index faee953cd4bb1056e07c31a53c4ab52002160568..a8eb8d5cae2fd25ea2f33ef246aa9300c7de4348 100644 (file)
@@ -148,108 +148,14 @@ void set_dfu_alt_info(char *interface, char *devstr)
                        board_get_alt_info_mtd(mtd, buf);
        }
 
-       if (IS_ENABLED(CONFIG_DFU_VIRT) &&
-           IS_ENABLED(CMD_STM32PROG_USB)) {
-               strncat(buf, "&virt 0=OTP", DFU_ALT_BUF_LEN);
+       if (IS_ENABLED(CONFIG_DFU_VIRT)) {
+               /* virtual device id 0 is aligned with stm32mp_dfu_virt.c */
+               strlcat(buf, "&virt 0=OTP", DFU_ALT_BUF_LEN);
 
                if (IS_ENABLED(CONFIG_PMIC_STPMIC1))
-                       strncat(buf, "&virt 1=PMIC", DFU_ALT_BUF_LEN);
+                       strlcat(buf, "&virt 1=PMIC", DFU_ALT_BUF_LEN);
        }
 
        env_set("dfu_alt_info", buf);
        puts("DFU alt info setting: done\n");
 }
-
-#if CONFIG_IS_ENABLED(DFU_VIRT)
-#include <dfu.h>
-#include <power/stpmic1.h>
-
-static int dfu_otp_read(u64 offset, u8 *buffer, long *size)
-{
-       struct udevice *dev;
-       int ret;
-
-       ret = uclass_get_device_by_driver(UCLASS_MISC,
-                                         DM_DRIVER_GET(stm32mp_bsec),
-                                         &dev);
-       if (ret)
-               return ret;
-
-       ret = misc_read(dev, offset + STM32_BSEC_OTP_OFFSET, buffer, *size);
-       if (ret >= 0) {
-               *size = ret;
-               ret = 0;
-       }
-
-       return 0;
-}
-
-static int dfu_pmic_read(u64 offset, u8 *buffer, long *size)
-{
-       int ret;
-#ifdef CONFIG_PMIC_STPMIC1
-       struct udevice *dev;
-
-       ret = uclass_get_device_by_driver(UCLASS_MISC,
-                                         DM_DRIVER_GET(stpmic1_nvm),
-                                         &dev);
-       if (ret)
-               return ret;
-
-       ret = misc_read(dev, 0xF8 + offset, buffer, *size);
-       if (ret >= 0) {
-               *size = ret;
-               ret = 0;
-       }
-       if (ret == -EACCES) {
-               *size = 0;
-               ret = 0;
-       }
-#else
-       log_err("PMIC update not supported");
-       ret = -EOPNOTSUPP;
-#endif
-
-       return ret;
-}
-
-int dfu_read_medium_virt(struct dfu_entity *dfu, u64 offset,
-                        void *buf, long *len)
-{
-       switch (dfu->data.virt.dev_num) {
-       case 0x0:
-               return dfu_otp_read(offset, buf, len);
-       case 0x1:
-               return dfu_pmic_read(offset, buf, len);
-       }
-
-       if (IS_ENABLED(CONFIG_CMD_STM32PROG_USB) &&
-           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 (IS_ENABLED(CONFIG_CMD_STM32PROG_USB) &&
-           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 (IS_ENABLED(CONFIG_CMD_STM32PROG_USB) &&
-           dfu->data.virt.dev_num >= STM32PROG_VIRT_FIRST_DEV_NUM)
-               return stm32prog_get_medium_size_virt(dfu, size);
-
-       *size = SZ_1K;
-
-       return 0;
-}
-
-#endif