Edward O'Callaghan has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/67477 )
Change subject: flashrom.c: plumb flashctx into programmer_{un}map_flash_region ......................................................................
flashrom.c: plumb flashctx into programmer_{un}map_flash_region
Change-Id: Iaa17b3ede9cffcb20be6b8e87bbe08b1407a2fc9 Signed-off-by: Edward O'Callaghan quasisec@google.com --- M flashrom.c 1 file changed, 17 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/77/67477/1
diff --git a/flashrom.c b/flashrom.c index 45388b3..8d08341 100644 --- a/flashrom.c +++ b/flashrom.c @@ -194,7 +194,8 @@ return ret; }
-static void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t len) +static void *programmer_map_flash_region(const struct flashctx *flash, const char *descr, + uintptr_t phys_addr, size_t len) { void *ret; if (programmer->map_flash_region) @@ -206,7 +207,7 @@ return ret; }
-static void programmer_unmap_flash_region(void *virt_addr, size_t len) +static void programmer_unmap_flash_region(const struct flashctx *flash, void *virt_addr, size_t len) { if (programmer->unmap_flash_region) programmer->unmap_flash_region(virt_addr, len); @@ -642,13 +643,13 @@ void unmap_flash(struct flashctx *flash) { if (flash->virtual_registers != (chipaddr)ERROR_PTR) { - programmer_unmap_flash_region((void *)flash->virtual_registers, flash->chip->total_size * 1024); + programmer_unmap_flash_region(flash, (void *)flash->virtual_registers, flash->chip->total_size * 1024); flash->physical_registers = 0; flash->virtual_registers = (chipaddr)ERROR_PTR; }
if (flash->virtual_memory != (chipaddr)ERROR_PTR) { - programmer_unmap_flash_region((void *)flash->virtual_memory, flash->chip->total_size * 1024); + programmer_unmap_flash_region(flash, (void *)flash->virtual_memory, flash->chip->total_size * 1024); flash->physical_memory = 0; flash->virtual_memory = (chipaddr)ERROR_PTR; } @@ -668,7 +669,7 @@
const chipsize_t size = flash->chip->total_size * 1024; uintptr_t base = flashbase ? flashbase : (0xffffffff - size + 1); - void *addr = programmer_map_flash_region(flash->chip->name, base, size); + void *addr = programmer_map_flash_region(flash, flash->chip->name, base, size); if (addr == ERROR_PTR) { msg_perr("Could not map flash chip %s at 0x%0*" PRIxPTR ".\n", flash->chip->name, PRIxPTR_WIDTH, base); @@ -682,7 +683,7 @@ * Ignore these problems for now and always report success. */ if (flash->chip->feature_bits & FEATURE_REGISTERMAP) { base = 0xffffffff - size - 0x400000 + 1; - addr = programmer_map_flash_region("flash chip registers", base, size); + addr = programmer_map_flash_region(flash, "flash chip registers", base, size); if (addr == ERROR_PTR) { msg_pdbg2("Could not map flash chip registers %s at 0x%0*" PRIxPTR ".\n", flash->chip->name, PRIxPTR_WIDTH, base);