
Hi,
From: Lukasz Majewski lukma@denx.de Sent: mardi 17 septembre 2019 12:45
Hi Patrick,
Add weak callback to allow board specific behavior
- flush
- initiated
This patch prepare usage of DFU back end for communication with STM32CubeProgrammer on stm32mp1 platform with stm32prog command.
As I've said previously - please add this use case and info to ./doc/README.dtu.
Yes
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com
drivers/dfu/dfu.c | 19 +++++++++++++++++++ include/dfu.h | 2 ++ 2 files changed, 21 insertions(+)
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 2697235c24..f12c5afc66 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -22,6 +22,22 @@ static int dfu_alt_num; static int alt_num_cnt; static struct hash_algo *dfu_hash_algo;
+/*
- The purpose of the dfu_flush_callback() function is to
- provide callback for dfu user
- */
+__weak void dfu_flush_callback(struct dfu_entity *dfu) { }
+/*
- The purpose of the dfu_flush_callback() function is to
- provide callback for dfu user
Please update this repeated comment.
Yes, in V2
- */
+__weak void dfu_initiated_callback(struct dfu_entity *dfu) +{ +}
/*
- The purpose of the dfu_usb_get_reset() function is to
- provide information if after USB_DETACH request
@@ -263,6 +279,7 @@ int dfu_transaction_initiate(struct dfu_entity *dfu, bool read) }
dfu->inited = 1;
dfu_initiated_callback(dfu);
return 0;
} @@ -282,6 +299,8 @@ int dfu_flush(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num) printf("\nDFU complete %s: 0x%08x\n", dfu_hash_algo->name, dfu->crc);
dfu_flush_callback(dfu);
dfu_transaction_cleanup(dfu);
return ret;
diff --git a/include/dfu.h b/include/dfu.h index 4de7d35914..5d85cc35ef 100644 --- a/include/dfu.h +++ b/include/dfu.h @@ -182,6 +182,8 @@ bool dfu_usb_get_reset(void); int dfu_read(struct dfu_entity *de, void *buf, int size, int blk_seq_num); int dfu_write(struct dfu_entity *de, void *buf, int size, int blk_seq_num); int dfu_flush(struct dfu_entity *de, void *buf, int size, int blk_seq_num); +void dfu_flush_callback(struct dfu_entity *dfu); +void dfu_initiated_callback(struct dfu_entity *dfu); /*
- dfu_defer_flush - pointer to store dfu_entity for deferred
flashing.
Best regards,
Lukasz Majewski
--
Best regards Patrick