Edward O'Callaghan has uploaded this change for review.

View Change

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);

To view, visit change 67477. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: Iaa17b3ede9cffcb20be6b8e87bbe08b1407a2fc9
Gerrit-Change-Number: 67477
Gerrit-PatchSet: 1
Gerrit-Owner: Edward O'Callaghan <quasisec@chromium.org>
Gerrit-MessageType: newchange