diff options
Diffstat (limited to 'dev-embedded/stm32flash/files')
3 files changed, 0 insertions, 196 deletions
diff --git a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-01fbb65.patch b/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-01fbb65.patch deleted file mode 100644 index c4c7a2a7fedc..000000000000 --- a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-01fbb65.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 01fbb65d4626e1c122e329075526bd6035cb0be6 Mon Sep 17 00:00:00 2001 -From: Tormod Volden <debian.tormod@gmail.com> -Date: Thu, 2 Sep 2021 16:25:57 +0200 -Subject: [PATCH 06/15] stm32: Fix typo from recent commit - -Oops, I got this wrong while amending commit b079cd09. - -Signed-off-by: Tormod Volden <debian.tormod@gmail.com> ---- - stm32.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/stm32.c b/stm32.c -index 6e2e402..0edaf01 100644 ---- a/stm32.c -+++ b/stm32.c -@@ -851,7 +851,7 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - buf[i++] = pages - 1; - cs ^= (pages-1); - /* For I2C send a checksum after the number of pages (AN4221) */ -- if (port->flags && PORT_NPAG_CSUM) { -+ if (port->flags & PORT_NPAG_CSUM) { - buf[i++] = cs; - p_err = port->write(port, buf, i); - if (p_err != PORT_ERR_OK) { --- -2.33.0.309.g3052b89438-goog - diff --git a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-17a24f8.patch b/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-17a24f8.patch deleted file mode 100644 index e0b519c48413..000000000000 --- a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-17a24f8.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 17a24f873122b96481adefaadc128bd1abba594f Mon Sep 17 00:00:00 2001 -From: Tormod Volden <debian.tormod@gmail.com> -Date: Sat, 21 Aug 2021 13:06:34 +0200 -Subject: [PATCH 02/15] stm32: Consistent and unique erase error messages - -Signed-off-by: Tormod Volden <debian.tormod@gmail.com> ---- - stm32.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/stm32.c b/stm32.c -index 82fa26a..e071905 100644 ---- a/stm32.c -+++ b/stm32.c -@@ -797,7 +797,7 @@ static stm32_err_t stm32_mass_erase(const stm32_t *stm) - return STM32_ERR_OK; - } - -- /* extended erase */ -+ /* extended erase (0x44 or 0x45) */ - buf[0] = 0xFF; /* 0xFFFF the magic number for mass erase */ - buf[1] = 0xFF; - buf[2] = 0x00; /* checksum */ -@@ -870,11 +870,12 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - p_err = port->write(port, buf, i); - free(buf); - if (p_err != PORT_ERR_OK) { -- fprintf(stderr, "Erase failed.\n"); -+ fprintf(stderr, "Erase failed sending list of pages.\n"); - return STM32_ERR_UNKNOWN; - } - s_err = stm32_get_ack_timeout(stm, pages * STM32_PAGEERASE_TIMEOUT); - if (s_err != STM32_ERR_OK) { -+ fprintf(stderr, "Erase failed.\n"); - if (port->flags & PORT_STRETCH_W) - stm32_warn_stretching("erase"); - return STM32_ERR_UNKNOWN; -@@ -882,7 +883,7 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - return STM32_ERR_OK; - } - -- /* extended erase */ -+ /* extended erase (0x44 or 0x45) */ - buf = malloc(2 + 2 * pages + 1); - if (!buf) - return STM32_ERR_UNKNOWN; -@@ -925,13 +926,13 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - p_err = port->write(port, buf, i); - free(buf); - if (p_err != PORT_ERR_OK) { -- fprintf(stderr, "Page-by-page erase error.\n"); -+ fprintf(stderr, "Extended erase failed sending list of pages.\n"); - return STM32_ERR_UNKNOWN; - } - - s_err = stm32_get_ack_timeout(stm, pages * STM32_PAGEERASE_TIMEOUT); - if (s_err != STM32_ERR_OK) { -- fprintf(stderr, "Page-by-page erase failed. Check the maximum pages your device supports.\n"); -+ fprintf(stderr, "Extended erase failed. Check the maximum pages your device supports.\n"); - if ((port->flags & PORT_STRETCH_W) - && stm->cmd->er != STM32_CMD_EE_NS) - stm32_warn_stretching("erase"); --- -2.33.0.309.g3052b89438-goog - diff --git a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-b079cd0.patch b/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-b079cd0.patch deleted file mode 100644 index dcd7299570c5..000000000000 --- a/dev-embedded/stm32flash/files/stm32flash-0.6-fix-i2c-erase-b079cd0.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b079cd09bc942b4a489cad29524418441a44fc82 Mon Sep 17 00:00:00 2001 -From: Yann Sionneau <ysionneau@kalray.eu> -Date: Wed, 28 Apr 2021 14:16:01 +0200 -Subject: [PATCH 01/15] Follow bootloader protocol for page-by-page erase over - I2C - -For I2C the protocol is slighly different than for USART, -requiring a checksum after the number of pages. - -https://sourceforge.net/p/stm32flash/tickets/98/ - -Signed-off-by: Yann Sionneau <ysionneau@kalray.eu> -[Tormod: Add port flag, no wait, amend messages] -Signed-off-by: Tormod Volden <debian.tormod@gmail.com> ---- - i2c.c | 2 +- - port.h | 1 + - stm32.c | 37 +++++++++++++++++++++++++++++++++++++ - 3 files changed, 39 insertions(+), 1 deletion(-) - -diff --git a/i2c.c b/i2c.c -index bb99545..8425b41 100644 ---- a/i2c.c -+++ b/i2c.c -@@ -204,7 +204,7 @@ static port_err_t i2c_flush(struct port_interface __unused *port) - - struct port_interface port_i2c = { - .name = "i2c", -- .flags = PORT_STRETCH_W, -+ .flags = PORT_STRETCH_W | PORT_NPAG_CSUM, - .open = i2c_open, - .close = i2c_close, - .flush = i2c_flush, -diff --git a/port.h b/port.h -index 4e728d7..1a28dc6 100644 ---- a/port.h -+++ b/port.h -@@ -34,6 +34,7 @@ typedef enum { - #define PORT_CMD_INIT (1 << 2) /* use INIT cmd to autodetect speed */ - #define PORT_RETRY (1 << 3) /* allowed read() retry after timeout */ - #define PORT_STRETCH_W (1 << 4) /* warning for no-stretching commands */ -+#define PORT_NPAG_CSUM (1 << 5) /* checksum after number of pages to erase */ - - /* all options and flags used to open and configure an interface */ - struct port_options { -diff --git a/stm32.c b/stm32.c -index 966048b..82fa26a 100644 ---- a/stm32.c -+++ b/stm32.c -@@ -843,6 +843,25 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - - buf[i++] = pages - 1; - cs ^= (pages-1); -+ /* For I2C send a checksum after the number of pages (AN4221) */ -+ if (port->flags && PORT_NPAG_CSUM) { -+ buf[i++] = cs; -+ p_err = port->write(port, buf, i); -+ if (p_err != PORT_ERR_OK) { -+ fprintf(stderr, "Erase failed sending number of pages."); -+ free(buf); -+ return STM32_ERR_UNKNOWN; -+ } -+ s_err = stm32_get_ack(stm); -+ if (s_err != STM32_ERR_OK) { -+ fprintf(stderr, "Erase failed, no ack after number of pages."); -+ free(buf); -+ return STM32_ERR_UNKNOWN; -+ } -+ cs = 0; -+ i = 0; -+ } -+ - for (pg_num = spage; pg_num < (pages + spage); pg_num++) { - buf[i++] = pg_num; - cs ^= pg_num; -@@ -876,6 +895,24 @@ static stm32_err_t stm32_pages_erase(const stm32_t *stm, uint32_t spage, uint32_ - buf[i++] = pg_byte; - cs ^= pg_byte; - -+ if (port->flags & PORT_NPAG_CSUM) { -+ buf[i++] = cs; -+ p_err = port->write(port, buf, i); -+ if (p_err != PORT_ERR_OK) { -+ fprintf(stderr, "Extended erase failed sending number of pages."); -+ free(buf); -+ return STM32_ERR_UNKNOWN; -+ } -+ s_err = stm32_get_ack(stm); -+ if (s_err != STM32_ERR_OK) { -+ fprintf(stderr, "Extended erase failed, no ack after number of pages."); -+ free(buf); -+ return STM32_ERR_UNKNOWN; -+ } -+ cs = 0; -+ i = 0; -+ } -+ - for (pg_num = spage; pg_num < spage + pages; pg_num++) { - pg_byte = pg_num >> 8; - cs ^= pg_byte; --- -2.33.0.309.g3052b89438-goog - |