Patch queue for ppc - 2014-11-20
Hopefully the last few fixups for 2.2: - KVM memory slot fix (should usually only occur on PPC) - e300 fix - Altivec mtvscr instruction fix -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAABAgAGBQJUbfJeAAoJECszeR4D/txgPkMQALosPR6oRCy85TVcx3IYBoJD 5R//fMZ6tVkw2jrGO/TSY6VCesyruKDY6WIY4moHHmRudjlgbu4u1Cj7SRxujpNE UG+kpYmLMOjhvvoiFCFK+nsZ3lywXwDQ672WO6ilCM7dhuf2QsYYwjLJKVkHWHj5 S4k+yvFkRdw4KlTVahLNI8pcq+W5cWueTHrFM5sCOFtlzgdx1l9Cteh1swr6k5eX GVfvDSvh/5jASymBejSYz/tcoDhrFLLahLsH7sxexN7d/hTDDhiuQzsuTxnSebXQ j2nAWVV/flpNUbbbr4H8iDluzSL0ZszCWHBLmT1aqb5MLBtNgFu2vkDwKK3rWSSB c5dfgKzBkSmSrf66++lkOkUy0fyhlpIVeW4zsi0trhweV26rT07xXjBEEHjI3GEE DwHfEEBC09DVbvSByClsD8sl6OASuphBDzog9zayAs3LRcC2Olf1SmCAo+gEBHcJ FKx2XM9aAT4eR+KdIcJCv8T8zAFMDhWldwDBb2EpDYCv9G2nC41IbImRb1QvNeEN Fm+b9+4Kp18UH+e6BzBwoaSrCOz0ENjsZ4r+A+GqOP3K6QoXR2G60KhLqU94CXWX mvMfHfgFRCHQB/nK1uLgb+1jzNQnry1cJVFQOMQvC/XRDvfaz5pXbwr8DDqdYGvc gnEWC2RT6cnMxlgZeRIz =naJE -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' into staging Patch queue for ppc - 2014-11-20 Hopefully the last few fixups for 2.2: - KVM memory slot fix (should usually only occur on PPC) - e300 fix - Altivec mtvscr instruction fix # gpg: Signature made Thu 20 Nov 2014 13:53:34 GMT using RSA key ID 03FEDC60 # gpg: Good signature from "Alexander Graf <agraf@suse.de>" # gpg: aka "Alexander Graf <alex@csgraf.de>" * remotes/agraf/tags/signed-ppc-for-upstream: target-ppc: Altivec's mtvscr Decodes Wrong Register kvm: Fix memory slot page alignment logic target-ppc: Fix breakpoint registers for e300 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
ff323a6b54
@ -634,8 +634,10 @@ static void kvm_set_phys_mem(MemoryRegionSection *section, bool add)
|
|||||||
unsigned delta;
|
unsigned delta;
|
||||||
|
|
||||||
/* kvm works in page size chunks, but the function may be called
|
/* kvm works in page size chunks, but the function may be called
|
||||||
with sub-page size and unaligned start address. */
|
with sub-page size and unaligned start address. Pad the start
|
||||||
delta = TARGET_PAGE_ALIGN(size) - size;
|
address to next and truncate size to previous page boundary. */
|
||||||
|
delta = (TARGET_PAGE_SIZE - (start_addr & ~TARGET_PAGE_MASK));
|
||||||
|
delta &= ~TARGET_PAGE_MASK;
|
||||||
if (delta > size) {
|
if (delta > size) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -6848,7 +6848,7 @@ static void gen_mtvscr(DisasContext *ctx)
|
|||||||
gen_exception(ctx, POWERPC_EXCP_VPU);
|
gen_exception(ctx, POWERPC_EXCP_VPU);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
p = gen_avr_ptr(rD(ctx->opcode));
|
p = gen_avr_ptr(rB(ctx->opcode));
|
||||||
gen_helper_mtvscr(cpu_env, p);
|
gen_helper_mtvscr(cpu_env, p);
|
||||||
tcg_temp_free_ptr(p);
|
tcg_temp_free_ptr(p);
|
||||||
}
|
}
|
||||||
|
@ -4374,32 +4374,6 @@ static void init_proc_G2LE (CPUPPCState *env)
|
|||||||
SPR_NOACCESS, SPR_NOACCESS,
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
&spr_read_generic, &spr_write_generic,
|
&spr_read_generic, &spr_write_generic,
|
||||||
0x00000000);
|
0x00000000);
|
||||||
/* Breakpoints */
|
|
||||||
/* XXX : not implemented */
|
|
||||||
spr_register(env, SPR_DABR, "DABR",
|
|
||||||
SPR_NOACCESS, SPR_NOACCESS,
|
|
||||||
&spr_read_generic, &spr_write_generic,
|
|
||||||
0x00000000);
|
|
||||||
/* XXX : not implemented */
|
|
||||||
spr_register(env, SPR_DABR2, "DABR2",
|
|
||||||
SPR_NOACCESS, SPR_NOACCESS,
|
|
||||||
&spr_read_generic, &spr_write_generic,
|
|
||||||
0x00000000);
|
|
||||||
/* XXX : not implemented */
|
|
||||||
spr_register(env, SPR_IABR2, "IABR2",
|
|
||||||
SPR_NOACCESS, SPR_NOACCESS,
|
|
||||||
&spr_read_generic, &spr_write_generic,
|
|
||||||
0x00000000);
|
|
||||||
/* XXX : not implemented */
|
|
||||||
spr_register(env, SPR_IBCR, "IBCR",
|
|
||||||
SPR_NOACCESS, SPR_NOACCESS,
|
|
||||||
&spr_read_generic, &spr_write_generic,
|
|
||||||
0x00000000);
|
|
||||||
/* XXX : not implemented */
|
|
||||||
spr_register(env, SPR_DBCR, "DBCR",
|
|
||||||
SPR_NOACCESS, SPR_NOACCESS,
|
|
||||||
&spr_read_generic, &spr_write_generic,
|
|
||||||
0x00000000);
|
|
||||||
|
|
||||||
/* Memory management */
|
/* Memory management */
|
||||||
gen_low_BATs(env);
|
gen_low_BATs(env);
|
||||||
@ -4628,6 +4602,32 @@ static void init_proc_e300 (CPUPPCState *env)
|
|||||||
SPR_NOACCESS, SPR_NOACCESS,
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
&spr_read_generic, &spr_write_generic,
|
&spr_read_generic, &spr_write_generic,
|
||||||
0x00000000);
|
0x00000000);
|
||||||
|
/* Breakpoints */
|
||||||
|
/* XXX : not implemented */
|
||||||
|
spr_register(env, SPR_DABR, "DABR",
|
||||||
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
|
&spr_read_generic, &spr_write_generic,
|
||||||
|
0x00000000);
|
||||||
|
/* XXX : not implemented */
|
||||||
|
spr_register(env, SPR_DABR2, "DABR2",
|
||||||
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
|
&spr_read_generic, &spr_write_generic,
|
||||||
|
0x00000000);
|
||||||
|
/* XXX : not implemented */
|
||||||
|
spr_register(env, SPR_IABR2, "IABR2",
|
||||||
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
|
&spr_read_generic, &spr_write_generic,
|
||||||
|
0x00000000);
|
||||||
|
/* XXX : not implemented */
|
||||||
|
spr_register(env, SPR_IBCR, "IBCR",
|
||||||
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
|
&spr_read_generic, &spr_write_generic,
|
||||||
|
0x00000000);
|
||||||
|
/* XXX : not implemented */
|
||||||
|
spr_register(env, SPR_DBCR, "DBCR",
|
||||||
|
SPR_NOACCESS, SPR_NOACCESS,
|
||||||
|
&spr_read_generic, &spr_write_generic,
|
||||||
|
0x00000000);
|
||||||
/* Memory management */
|
/* Memory management */
|
||||||
gen_low_BATs(env);
|
gen_low_BATs(env);
|
||||||
gen_high_BATs(env);
|
gen_high_BATs(env);
|
||||||
|
Loading…
Reference in New Issue
Block a user