aboutsummaryrefslogtreecommitdiff
path: root/target-sparc
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-11-28 20:54:33 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-11-28 20:54:33 +0000
commit3ebf5aafe562158b59aff2ee49cbcf54332cbb23 (patch)
tree49e70fa2f1bf2580b4f9ad16bf4096a2004a8551 /target-sparc
parent9c2b428ee169dfbc92664f06e466a8bb0f45c702 (diff)
Use slavio base as boot prom address, rearrange sun4m init code
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3747 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r--target-sparc/cpu.h1
-rw-r--r--target-sparc/helper.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h
index 783a850c64..6f95d94699 100644
--- a/target-sparc/cpu.h
+++ b/target-sparc/cpu.h
@@ -218,6 +218,7 @@ typedef struct CPUSPARCState {
uint32_t mmuregs[32];
uint64_t mxccdata[4];
uint64_t mxccregs[8];
+ uint64_t prom_addr;
#endif
/* temporary float registers */
float32 ft0, ft1;
diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index 0ebc365e26..a1daed8b7c 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -115,7 +115,7 @@ int get_physical_address (CPUState *env, target_phys_addr_t *physical, int *prot
if ((env->mmuregs[0] & MMU_E) == 0) { /* MMU disabled */
// Boot mode: instruction fetches are taken from PROM
if (rw == 2 && (env->mmuregs[0] & env->mmu_bm)) {
- *physical = 0xff0000000ULL | (address & 0x3ffffULL);
+ *physical = env->prom_addr | (address & 0x3ffffULL);
*prot = PAGE_READ | PAGE_EXEC;
return 0;
}