memory_bus: Pass master instead of flash to .chip_read/write
There is / should be no need to know flash-chip details in a programmer
driver. They should only pass data around and leave the chip details to
each chip driver.
This will allow us to probe for chips before knowing the details and as
a bonus gets rid of many `flash.h` dependencies.
Change-Id: Iae78fbbd95567134da890613114999cb14c3a011
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/437
diff --git a/dummyflasher.c b/dummyflasher.c
index 9f27d91..b9357ea 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -106,14 +106,14 @@
const unsigned char *writearr, unsigned char *readarr);
static int dummy_spi_write_256(struct flashctx *flash, const uint8_t *buf,
unsigned int start, unsigned int len);
-static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr);
-static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr);
-static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr);
-static void dummy_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len);
-static uint8_t dummy_chip_readb(const struct flashctx *flash, const chipaddr addr);
-static uint16_t dummy_chip_readw(const struct flashctx *flash, const chipaddr addr);
-static uint32_t dummy_chip_readl(const struct flashctx *flash, const chipaddr addr);
-static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
+static void dummy_chip_writeb(const struct par_master *, uint8_t val, chipaddr);
+static void dummy_chip_writew(const struct par_master *, uint16_t val, chipaddr);
+static void dummy_chip_writel(const struct par_master *, uint32_t val, chipaddr);
+static void dummy_chip_writen(const struct par_master *, const uint8_t *buf, chipaddr, size_t len);
+static uint8_t dummy_chip_readb(const struct par_master *, chipaddr);
+static uint16_t dummy_chip_readw(const struct par_master *, chipaddr);
+static uint32_t dummy_chip_readl(const struct par_master *, chipaddr);
+static void dummy_chip_readn(const struct par_master *, uint8_t *buf, chipaddr, size_t len);
static bool dummy_spi_probe_opcode(const struct flashctx *flash, uint8_t opcode);
static void *dummy_map(const char *descr, uintptr_t phys_addr, size_t len);
static void dummy_unmap(void *virt_addr, size_t len);
@@ -538,22 +538,22 @@
msg_pspew("%s: Unmapping 0x%zx bytes at %p\n", __func__, len, virt_addr);
}
-static void dummy_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr)
+static void dummy_chip_writeb(const struct par_master *par, uint8_t val, chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%02x\n", __func__, addr, val);
}
-static void dummy_chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr)
+static void dummy_chip_writew(const struct par_master *par, uint16_t val, chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%04x\n", __func__, addr, val);
}
-static void dummy_chip_writel(const struct flashctx *flash, uint32_t val, chipaddr addr)
+static void dummy_chip_writel(const struct par_master *par, uint32_t val, chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", val=0x%08x\n", __func__, addr, val);
}
-static void dummy_chip_writen(const struct flashctx *flash, const uint8_t *buf, chipaddr addr, size_t len)
+static void dummy_chip_writen(const struct par_master *par, const uint8_t *buf, chipaddr addr, size_t len)
{
size_t i;
msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, writing data (hex):", __func__, addr, len);
@@ -564,25 +564,25 @@
}
}
-static uint8_t dummy_chip_readb(const struct flashctx *flash, const chipaddr addr)
+static uint8_t dummy_chip_readb(const struct par_master *par, const chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xff\n", __func__, addr);
return 0xff;
}
-static uint16_t dummy_chip_readw(const struct flashctx *flash, const chipaddr addr)
+static uint16_t dummy_chip_readw(const struct par_master *par, const chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffff\n", __func__, addr);
return 0xffff;
}
-static uint32_t dummy_chip_readl(const struct flashctx *flash, const chipaddr addr)
+static uint32_t dummy_chip_readl(const struct par_master *par, const chipaddr addr)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", returning 0xffffffff\n", __func__, addr);
return 0xffffffff;
}
-static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len)
+static void dummy_chip_readn(const struct par_master *par, uint8_t *buf, const chipaddr addr, size_t len)
{
msg_pspew("%s: addr=0x%" PRIxPTR ", len=0x%zx, returning array of 0xff\n", __func__, addr, len);
memset(buf, 0xff, len);