[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/4] cfi: Mark flash memory executable
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 3/4] cfi: Mark flash memory executable |
Date: |
Thu, 13 May 2010 16:16:47 +0200 |
Add the new IO_MEM_EXEC flag to all cfi01/02 memory regions to allow
execution from them in any state.
Signed-off-by: Jan Kiszka <address@hidden>
---
hw/pflash_cfi01.c | 9 +++++----
hw/pflash_cfi02.c | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 20fe93d..50f6598 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -90,7 +90,7 @@ static void pflash_timer (void *opaque)
pfl->wcycle = 2;
} else {
cpu_register_physical_memory(pfl->base, pfl->total_len,
- pfl->off | IO_MEM_ROMD | pfl->fl_mem);
+ pfl->off | IO_MEM_ROMD | IO_MEM_EXEC | pfl->fl_mem);
pfl->wcycle = 0;
}
pfl->cmd = 0;
@@ -247,7 +247,8 @@ static void pflash_write(pflash_t *pfl, target_phys_addr_t
offset,
if (!pfl->wcycle) {
/* Set the device in I/O access mode */
- cpu_register_physical_memory(pfl->base, pfl->total_len, pfl->fl_mem);
+ cpu_register_physical_memory(pfl->base, pfl->total_len,
+ pfl->fl_mem | IO_MEM_EXEC);
}
switch (pfl->wcycle) {
@@ -403,7 +404,7 @@ static void pflash_write(pflash_t *pfl, target_phys_addr_t
offset,
reset_flash:
cpu_register_physical_memory(pfl->base, pfl->total_len,
- pfl->off | IO_MEM_ROMD | pfl->fl_mem);
+ pfl->off | IO_MEM_ROMD | IO_MEM_EXEC | pfl->fl_mem);
pfl->bypass = 0;
pfl->wcycle = 0;
@@ -587,7 +588,7 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base,
ram_addr_t off,
}
pfl->off = off;
cpu_register_physical_memory(base, total_len,
- off | pfl->fl_mem | IO_MEM_ROMD);
+ off | pfl->fl_mem | IO_MEM_ROMD | IO_MEM_EXEC);
pfl->bs = bs;
if (pfl->bs) {
diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c
index 8195d91..6bc58b4 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/pflash_cfi02.c
@@ -75,7 +75,7 @@ struct pflash_t {
static void pflash_register_memory(pflash_t *pfl, int rom_mode)
{
- unsigned long phys_offset = pfl->fl_mem;
+ unsigned long phys_offset = pfl->fl_mem | IO_MEM_EXEC;
int i;
if (rom_mode)
--
1.6.0.2