22 #define XOP_MSGSND 206
23 #define XOP_MSGCLR 238
24 #define XOP_TLBIVAX 786
30 #ifdef CONFIG_KVM_E500MC
53 int prio = dbell2prio(param);
62 static int kvmppc_e500_emul_msgsnd(
struct kvm_vcpu *vcpu,
int rb)
65 int prio = dbell2prio(rb);
74 int cpir = cvcpu->
arch.shared->pir;
86 unsigned int inst,
int *advance)
89 int ra = get_ra(inst);
90 int rb = get_rb(inst);
91 int rt = get_rt(inst);
93 switch (get_op(inst)) {
95 switch (get_xop(inst)) {
97 #ifdef CONFIG_KVM_E500MC
99 emulated = kvmppc_e500_emul_msgsnd(vcpu, rb);
103 emulated = kvmppc_e500_emul_msgclr(vcpu, rb);
149 #ifndef CONFIG_KVM_BOOKE_HV
156 vcpu_e500->pid[1] = spr_val;
161 vcpu_e500->pid[2] = spr_val;
164 vcpu->
arch.shared->mas0 = spr_val;
167 vcpu->
arch.shared->mas1 = spr_val;
170 vcpu->
arch.shared->mas2 = spr_val;
173 vcpu->
arch.shared->mas7_3 &= ~(
u64)0xffffffff;
174 vcpu->
arch.shared->mas7_3 |= spr_val;
177 vcpu->
arch.shared->mas4 = spr_val;
180 vcpu->
arch.shared->mas6 = spr_val;
183 vcpu->
arch.shared->mas7_3 &= (
u64)0xffffffff;
184 vcpu->
arch.shared->mas7_3 |= (
u64)spr_val << 32;
188 vcpu_e500->
l1csr0 = spr_val;
189 vcpu_e500->
l1csr0 &= ~(L1CSR0_DCFI | L1CSR0_CLFC);
192 vcpu_e500->
l1csr1 = spr_val;
195 vcpu_e500->
hid0 = spr_val;
198 vcpu_e500->
hid1 = spr_val;
219 #ifdef CONFIG_KVM_BOOKE_HV
240 #ifndef CONFIG_KVM_BOOKE_HV
242 *spr_val = vcpu_e500->pid[0];
245 *spr_val = vcpu_e500->pid[1];
248 *spr_val = vcpu_e500->pid[2];
251 *spr_val = vcpu->
arch.shared->mas0;
254 *spr_val = vcpu->
arch.shared->mas1;
257 *spr_val = vcpu->
arch.shared->mas2;
260 *spr_val = (
u32)vcpu->
arch.shared->mas7_3;
263 *spr_val = vcpu->
arch.shared->mas4;
266 *spr_val = vcpu->
arch.shared->mas6;
269 *spr_val = vcpu->
arch.shared->mas7_3 >> 32;
273 *spr_val = vcpu->
arch.decar;
276 *spr_val = vcpu->
arch.tlbcfg[0];
279 *spr_val = vcpu->
arch.tlbcfg[1];
282 *spr_val = vcpu_e500->
l1csr0;
285 *spr_val = vcpu_e500->
l1csr1;
288 *spr_val = vcpu_e500->
hid0;
291 *spr_val = vcpu_e500->
hid1;
294 *spr_val = vcpu_e500->
svr;
302 *spr_val = vcpu->
arch.mmucfg;
318 #ifdef CONFIG_KVM_BOOKE_HV