[flashrom] [PATCH] serprog: add proper serprog_map
Urja Rannikko
urjaman at gmail.com
Mon Oct 14 16:11:32 CEST 2013
Add serprog_map so that chips are addressed properly.
I did this for adding LPC support to my ATmega644 programmer.
Signed-off-by: Urja Rannikko <urjaman at gmail.com>
-----
This is a re-submit because the old patch from 2011
had gotten bit-rotten (didnt apply cleanly).
---
flashrom.c | 2 +-
programmer.h | 1 +
serprog.c | 13 +++++++++++++
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/flashrom.c b/flashrom.c
index afab57c..8831e36 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -191,7 +191,7 @@ const struct programmer_entry programmer_table[] = {
/* FIXME */
.devs.note = "All programmer devices speaking the serprog protocol\n",
.init = serprog_init,
- .map_flash_region = fallback_map,
+ .map_flash_region = serprog_map,
.unmap_flash_region = fallback_unmap,
.delay = serprog_delay,
},
diff --git a/programmer.h b/programmer.h
index ef96c9e..6bd49d9 100644
--- a/programmer.h
+++ b/programmer.h
@@ -654,6 +654,7 @@ int register_programmer(struct registered_programmer *pgm);
/* serprog.c */
#if CONFIG_SERPROG == 1
int serprog_init(void);
+void *serprog_map(const char *descr, uintptr_t phys_addr, size_t len);
void serprog_delay(int usecs);
#endif
diff --git a/serprog.c b/serprog.c
index 237db7d..5b96e8a 100644
--- a/serprog.c
+++ b/serprog.c
@@ -671,6 +671,19 @@ int serprog_init(void)
return 0;
}
+void *serprog_map(const char *descr, uintptr_t phys_addr, size_t len)
+{
+ if ((phys_addr & 0xFF000000) == 0xFF000000) {
+ msg_pspew("Serprog map '%s' giving low 24 bits of phys_addr (0x%06X)\n",
+ descr,(unsigned int)(phys_addr & 0xFFFFFF));
+ return (void*)(phys_addr & 0xFFFFFF);
+ } else {
+ msg_pdbg("Serprog-incompatible mapping '%s' phys_addr 0x%08X len %d, returning NULL\n",
+ descr,(unsigned int)phys_addr,len);
+ return NULL;
+ }
+}
+
/* Move an in flashrom buffer existing write-n operation to the on-device operation buffer. */
static int sp_pass_writen(void)
{
--
1.8.4
More information about the flashrom
mailing list