diff options
author | Alexander Goncharov <chat@joursoir.net> | 2022-07-29 09:05:14 +0300 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2022-10-17 01:00:35 +0000 |
commit | 5c69cde56114ec96310a27dca7e72617d15ba2bc (patch) | |
tree | 0426d1472f0584930701b130105be5a4d588ed26 /jedec.c | |
parent | 890d07986b66aed4d216a02977d37bfb69cec034 (diff) | |
download | flashrom-5c69cde56114ec96310a27dca7e72617d15ba2bc.tar.gz flashrom-5c69cde56114ec96310a27dca7e72617d15ba2bc.tar.bz2 flashrom-5c69cde56114ec96310a27dca7e72617d15ba2bc.zip |
tree: provide flashrom context into programmer_delay()
Modify the `programmer_delay` function signature to allow passing
the flashrom context. Programmers that depend on internal delay
should provide NULL as a context. The use of this function parameter
will be introduced in CB:67393.
TOPIC=programmer_handle_global
TEST=builds
Change-Id: Ibb0bce26ce2052853ee52158d7ba742967a9e229
Signed-off-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/66373
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Diffstat (limited to 'jedec.c')
-rw-r--r-- | jedec.c | 58 |
1 files changed, 29 insertions, 29 deletions
@@ -44,7 +44,7 @@ static void toggle_ready_jedec_common(const struct flashctx *flash, chipaddr dst while (i++ < 0xFFFFFFF) { if (delay) - programmer_delay(delay); + programmer_delay(flash, delay); tmp2 = chip_readb(flash, dst) & 0x40; if (tmp1 == tmp2) { break; @@ -193,31 +193,31 @@ static int probe_jedec_common(struct flashctx *flash, unsigned int mask) * reset command. */ if (probe_timing_enter) - programmer_delay(probe_timing_enter); + programmer_delay(flash, probe_timing_enter); /* Reset chip to a clean slate */ if ((chip->feature_bits & FEATURE_RESET_MASK) == FEATURE_LONG_RESET) { chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_exit) - programmer_delay(10); + programmer_delay(flash, 10); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); if (probe_timing_exit) - programmer_delay(10); + programmer_delay(flash, 10); } chip_writeb(flash, 0xF0, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_exit) - programmer_delay(probe_timing_exit); + programmer_delay(flash, probe_timing_exit); /* Issue JEDEC Product ID Entry command */ chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_enter) - programmer_delay(10); + programmer_delay(flash, 10); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); if (probe_timing_enter) - programmer_delay(10); + programmer_delay(flash, 10); chip_writeb(flash, 0x90, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_enter) - programmer_delay(probe_timing_enter); + programmer_delay(flash, probe_timing_enter); /* Read product ID */ id1 = chip_readb(flash, bios + (0x00 << shifted)); @@ -242,14 +242,14 @@ static int probe_jedec_common(struct flashctx *flash, unsigned int mask) { chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_exit) - programmer_delay(10); + programmer_delay(flash, 10); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); if (probe_timing_exit) - programmer_delay(10); + programmer_delay(flash, 10); } chip_writeb(flash, 0xF0, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); if (probe_timing_exit) - programmer_delay(probe_timing_exit); + programmer_delay(flash, probe_timing_exit); msg_cdbg("%s: id1 0x%02x, id2 0x%02x", __func__, largeid1, largeid2); if (!oddparity(id1)) @@ -293,18 +293,18 @@ static int erase_sector_jedec_common(struct flashctx *flash, unsigned int page, /* Issue the Sector Erase command */ chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x80, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x30, bios + page); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); /* wait for Toggle bit ready */ toggle_ready_jedec_slow(flash, bios); @@ -325,18 +325,18 @@ static int erase_block_jedec_common(struct flashctx *flash, unsigned int block, /* Issue the Sector Erase command */ chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x80, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x50, bios + block); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); /* wait for Toggle bit ready */ toggle_ready_jedec_slow(flash, bios); @@ -356,18 +356,18 @@ static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask) /* Issue the JEDEC Chip Erase command */ chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x80, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0xAA, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x55, bios + ((shifted ? 0x5555 : 0x2AAA) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); chip_writeb(flash, 0x10, bios + ((shifted ? 0x2AAA : 0x5555) & mask)); - programmer_delay(delay_us); + programmer_delay(flash, delay_us); toggle_ready_jedec_slow(flash, bios); |