qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-ppc@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>,
	Fabien Chouteau <chouteau@adacore.com>,
	qemu-devel@nongnu.org, Aurelien Jarno <aurelien@aurel32.net>
Subject: [Qemu-devel] [PATCH 26/32] PPC: Fix GDB read on code area for PPC6xx
Date: Sun, 30 Jun 2013 03:45:03 +0200	[thread overview]
Message-ID: <1372556709-23868-27-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1372556709-23868-1-git-send-email-agraf@suse.de>

From: Fabien Chouteau <chouteau@adacore.com>

On PPC 6xx, data and code have separated TLBs. Until now QEMU was only
looking at data TLBs, which is not good when GDB wants to read code.

This patch adds a second call to get_physical_address() with an
ACCESS_CODE type of access when the first call with ACCESS_INT fails.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/mmu_helper.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c
index 34330dc..385b67a 100644
--- a/target-ppc/mmu_helper.c
+++ b/target-ppc/mmu_helper.c
@@ -1431,7 +1431,15 @@ hwaddr cpu_get_phys_page_debug(CPUPPCState *env, target_ulong addr)
     }
 
     if (unlikely(get_physical_address(env, &ctx, addr, 0, ACCESS_INT) != 0)) {
-        return -1;
+
+        /* Some MMUs have separate TLBs for code and data. If we only try an
+         * ACCESS_INT, we may not be able to read instructions mapped by code
+         * TLBs, so we also try a ACCESS_CODE.
+         */
+        if (unlikely(get_physical_address(env, &ctx, addr, 0,
+                                          ACCESS_CODE) != 0)) {
+            return -1;
+        }
     }
 
     return ctx.raddr & TARGET_PAGE_MASK;
-- 
1.8.1.4

  parent reply	other threads:[~2013-06-30  1:45 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-30  1:44 [Qemu-devel] [PULL 00/32] ppc patch queue 2013-06-30 Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 01/32] KVM: Don't assume that mpstate exists with in-kernel PIC always Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 02/32] KVM: Export kvm_init_irq_routing Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 03/32] KVM: MSI: Swap payload to native endianness Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 04/32] openpic: factor out some common defines into openpic.h Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 05/32] PPC: e500: factor out mpic init code Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 06/32] KVM: PIC: Only commit irq routing when necessary Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 07/32] PPC: Add non-kvm stub file Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 08/32] kvm/openpic: in-kernel mpic support Alexander Graf
2013-06-30  6:13   ` Andreas Färber
2013-06-30 23:01     ` Alexander Graf
2013-06-30 23:18       ` Andreas Färber
2013-07-01 11:17         ` Andreas Färber
2013-06-30  1:44 ` [Qemu-devel] [PATCH 09/32] intc/openpic: QOM'ify Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 10/32] intc/openpic: Convert to QOM realize Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 11/32] intc/openpic_kvm: Fix QOM and build issues Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 12/32] mpc8544_guts: Fix MemoryRegion name Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 13/32] mpc8544_guts: QOM'ify Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 14/32] mpc8544_guts: Turn qdev initfn into instance_init Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 15/32] target-ppc: Drop redundant flags assignments from CPU families Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 16/32] ppc: do not register IABR SPR twice for 603e Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 17/32] target-ppc: Change default machine for 64-bit Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 18/32] spapr-rtas: add CPU argument to RTAS calls Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 19/32] pseries: Fix compiler warning (conversion of pointer to integral value) Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 20/32] target-ppc kvm: save cr register Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 21/32] pseries: Update MAINTAINERS information Alexander Graf
2013-06-30  1:44 ` [Qemu-devel] [PATCH 22/32] Graphics: Switch to 800x600x32 as default mode Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 23/32] booke_ppc: limit booke timer to max when timeout overflow Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 24/32] target-ppc: Introduce unrealizefn for PowerPCCPU Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 25/32] PPC: Add dump_mmu() for 6xx Alexander Graf
2013-06-30  1:45 ` Alexander Graf [this message]
2013-06-30  1:45 ` [Qemu-devel] [PATCH 27/32] PPC: Introduce an alias cache for faster lookups Alexander Graf
2013-06-30  6:25   ` Andreas Färber
2013-06-30 23:08     ` Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 28/32] PPC: Add clock-frequency export for Mac machines Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 29/32] PPC: Newworld: Add uninorth token register Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 30/32] PPC: Newworld: Add second uninorth control register set Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 31/32] mac-io: Add escc-legacy memory alias region Alexander Graf
2013-06-30  1:45 ` [Qemu-devel] [PATCH 32/32] PPC: Ignore writes to L2CR Alexander Graf
2013-09-06 12:54   ` Julio Guerra
2013-09-25 13:00     ` Alexander Graf
2013-09-25 13:40       ` Julio Guerra
2013-06-30 23:14 ` [Qemu-devel] [Qemu-ppc] [PULL 00/32] ppc patch queue 2013-06-30 Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1372556709-23868-27-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=blauwirbel@gmail.com \
    --cc=chouteau@adacore.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).