aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2011-07-05 18:28:10 +0200
committerBlue Swirl <blauwirbel@gmail.com>2011-07-12 20:00:33 +0000
commit06c46bbab04faa3b5a1c10756be7db4f09af1ffb (patch)
treed92c4910f1c240b9abfd19867508ececfdfa30e2 /hw
parent04bc74edecef1b671c84be0b402998e96a282889 (diff)
spapr: use specific endian ld/st_phys
Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/spapr.h4
-rw-r--r--hw/spapr_hcall.c12
2 files changed, 8 insertions, 8 deletions
diff --git a/hw/spapr.h b/hw/spapr.h
index b52133a4aa..263691b6fb 100644
--- a/hw/spapr.h
+++ b/hw/spapr.h
@@ -280,12 +280,12 @@ target_ulong spapr_hypercall(CPUState *env, target_ulong opcode,
static inline uint32_t rtas_ld(target_ulong phys, int n)
{
- return ldl_phys(phys + 4*n);
+ return ldl_be_phys(phys + 4*n);
}
static inline void rtas_st(target_ulong phys, int n, uint32_t val)
{
- stl_phys(phys + 4*n, val);
+ stl_be_phys(phys + 4*n, val);
}
typedef void (*spapr_rtas_fn)(sPAPREnvironment *spapr, uint32_t token,
diff --git a/hw/spapr_hcall.c b/hw/spapr_hcall.c
index 84da8fc69c..5cd8d8f5ae 100644
--- a/hw/spapr_hcall.c
+++ b/hw/spapr_hcall.c
@@ -278,7 +278,7 @@ static target_ulong register_vpa(CPUState *env, target_ulong vpa)
}
/* FIXME: bounds check the address */
- size = lduw_phys(vpa + 0x4);
+ size = lduw_be_phys(vpa + 0x4);
if (size < VPA_MIN_SIZE) {
return H_PARAMETER;
@@ -321,7 +321,7 @@ static target_ulong register_slb_shadow(CPUState *env, target_ulong addr)
return H_HARDWARE;
}
- size = ldl_phys(addr + 0x4);
+ size = ldl_be_phys(addr + 0x4);
if (size < 0x8) {
return H_PARAMETER;
}
@@ -354,7 +354,7 @@ static target_ulong register_dtl(CPUState *env, target_ulong addr)
return H_HARDWARE;
}
- size = ldl_phys(addr + 0x4);
+ size = ldl_be_phys(addr + 0x4);
if (size < 48) {
return H_PARAMETER;
@@ -441,9 +441,9 @@ static target_ulong h_rtas(CPUState *env, sPAPREnvironment *spapr,
target_ulong opcode, target_ulong *args)
{
target_ulong rtas_r3 = args[0];
- uint32_t token = ldl_phys(rtas_r3);
- uint32_t nargs = ldl_phys(rtas_r3 + 4);
- uint32_t nret = ldl_phys(rtas_r3 + 8);
+ uint32_t token = ldl_be_phys(rtas_r3);
+ uint32_t nargs = ldl_be_phys(rtas_r3 + 4);
+ uint32_t nret = ldl_be_phys(rtas_r3 + 8);
return spapr_rtas_call(spapr, token, nargs, rtas_r3 + 12,
nret, rtas_r3 + 12 + 4*nargs);