diff options
author | Jeremy Kerr <jk@codeconstruct.com.au> | 2021-05-23 17:58:06 +0800 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2021-06-21 10:19:22 +0000 |
commit | f9f9c9d2c618c494f0d8ba9f4a1da4aea725d003 (patch) | |
tree | cd1b9164670dd779b86fcab86a56330a81a6f8ca /buspirate_spi.c | |
parent | bc31bd027d159672f000f3437e44d889c928ab97 (diff) | |
download | flashrom-f9f9c9d2c618c494f0d8ba9f4a1da4aea725d003.tar.gz flashrom-f9f9c9d2c618c494f0d8ba9f4a1da4aea725d003.tar.bz2 flashrom-f9f9c9d2c618c494f0d8ba9f4a1da4aea725d003.zip |
buspirate: Add psus option
This change adds a 'psus=<on|off>' option, to control the external Vcc
state of the bus pirate, allowing hardware where the SPI flash chip is
powered by the 3V3/5V lines directly.
Change-Id: I8a7d4b40c0f7f04f6976f6757f05b61f2c9958f9
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/54887
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'buspirate_spi.c')
-rw-r--r-- | buspirate_spi.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/buspirate_spi.c b/buspirate_spi.c index 04b8fdec2..bfd0e0523 100644 --- a/buspirate_spi.c +++ b/buspirate_spi.c @@ -326,6 +326,7 @@ static int buspirate_spi_init(void) int serialspeed_index = -1; int ret = 0; int pullup = 0; + int psu = 0; unsigned char *bp_commbuf; int bp_commbufsize; @@ -377,6 +378,17 @@ static int buspirate_spi_init(void) } free(tmp); + tmp = extract_programmer_param("psus"); + if (tmp) { + if (strcasecmp("on", tmp) == 0) + psu = 1; + else if (strcasecmp("off", tmp) == 0) + ; // ignore + else + msg_perr("Invalid psus state, not enabling.\n"); + } + free(tmp); + /* Default buffer size is 19: 16 bytes data, 3 bytes control. */ #define DEFAULT_BUFSIZE (16 + 3) bp_commbuf = malloc(DEFAULT_BUFSIZE); @@ -638,6 +650,10 @@ static int buspirate_spi_init(void) bp_commbuf[0] |= (1 << 2); msg_pdbg("Enabling pull-up resistors.\n"); } + if (psu == 1) { + bp_commbuf[0] |= (1 << 3); + msg_pdbg("Enabling PSUs.\n"); + } ret = buspirate_sendrecv(bp_commbuf, 1, 1); if (ret) { ret = 1; |