From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 22 Jul 2019 10:22:32 +0200 Subject: [U-Boot] [RFC PATCH 09/14] dfu: add callback for flush and initiated operation In-Reply-To: <1563541046-6432-10-git-send-email-patrick.delaunay@st.com> References: <1563541046-6432-1-git-send-email-patrick.delaunay@st.com> <1563541046-6432-10-git-send-email-patrick.delaunay@st.com> Message-ID: <20190722102232.041a8727@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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. Would the stm32prog need to modify the environment variables ? For example to update the "VERSION" or any other one? > > Signed-off-by: Patrick Delaunay > --- > > 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 a960b6e..e642b09 100644 > --- a/drivers/dfu/dfu.c > +++ b/drivers/dfu/dfu.c > @@ -22,6 +22,22 @@ 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 > + */ > +__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 > * being sent the dfu-util performed reset of USB > @@ -262,6 +278,7 @@ int dfu_transaction_initiate(struct dfu_entity > *dfu, bool read) } > > dfu->inited = 1; > + dfu_initiated_callback(dfu); > > return 0; > } > @@ -281,6 +298,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 4de7d35..5d85cc3 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 -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: