diff options
Diffstat (limited to 'projects/flashrom/patches/0005-Workaround-MX25-reliable-operation.patch')
-rw-r--r-- | projects/flashrom/patches/0005-Workaround-MX25-reliable-operation.patch | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/projects/flashrom/patches/0005-Workaround-MX25-reliable-operation.patch b/projects/flashrom/patches/0005-Workaround-MX25-reliable-operation.patch deleted file mode 100644 index 472afd30..00000000 --- a/projects/flashrom/patches/0005-Workaround-MX25-reliable-operation.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/cli_classic.c b/cli_classic.c -index 0a09cfd..9eeafe1 100644 ---- a/cli_classic.c -+++ b/cli_classic.c -@@ -61,6 +61,7 @@ static void cli_classic_usage(const char *name) - " -i | --image <name> only flash image <name> from flash layout\n" - " -o | --output <logfile> log output to <logfile>\n" - " -L | --list-supported print supported devices\n" -+ " | --workaround-mx keep flash busy before sending command\n" - #if CONFIG_PRINT_WIKI == 1 - " -z | --list-supported-wiki print supported devices in wiki syntax\n" - #endif -@@ -130,6 +131,7 @@ int main(int argc, char *argv[]) - {"help", 0, NULL, 'h'}, - {"version", 0, NULL, 'R'}, - {"output", 1, NULL, 'o'}, -+ {"workaround-mx", 0, NULL, 0x0101}, - {NULL, 0, NULL, 0}, - }; - -@@ -337,6 +339,9 @@ int main(int argc, char *argv[]) - } - #endif /* STANDALONE */ - break; -+ case 0x0101: /* --workaround-mx */ -+ workaround_mx = 1; -+ break; - default: - cli_classic_abort_usage(); - break; -diff --git a/programmer.h b/programmer.h -index 1a6216a..6f97cfc 100644 ---- a/programmer.h -+++ b/programmer.h -@@ -650,6 +650,7 @@ enum ich_chipset { - CHIPSET_8_SERIES_WELLSBURG, - CHIPSET_9_SERIES_WILDCAT_POINT, - }; -+extern int workaround_mx; /* workaround for MX25* chips, makes flash operations more reliable, less failures */ - - /* ichspi.c */ - #if CONFIG_INTERNAL == 1 -diff --git a/spi.c b/spi.c -index 894f73f..05aa5d0 100644 ---- a/spi.c -+++ b/spi.c -@@ -30,10 +30,19 @@ - #include "programmer.h" - #include "spi.h" - -+int workaround_mx; /* Make operations with MX25* chips more reliable */ -+ - int spi_send_command(struct flashctx *flash, unsigned int writecnt, - unsigned int readcnt, const unsigned char *writearr, - unsigned char *readarr) - { -+ if (workaround_mx) { -+ const unsigned char cmd[JEDEC_READ_OUTSIZE] = {JEDEC_READ, 0, 0, 0}; -+ unsigned char buf[256]; -+ /* keep flash busy for some time, keep CS warm before sending actual command */ -+ flash->mst->spi.command(flash, sizeof(cmd), sizeof(buf), cmd, buf); -+ } -+ /* actual command */ - return flash->mst->spi.command(flash, writecnt, readcnt, writearr, - readarr); - } |