From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58275) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJCGf-0007Ju-Lh for qemu-devel@nongnu.org; Thu, 27 Feb 2014 20:29:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WJCGZ-00014d-Tt for qemu-devel@nongnu.org; Thu, 27 Feb 2014 20:29:37 -0500 Received: from mail-pb0-x235.google.com ([2607:f8b0:400e:c01::235]:48249) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJCGZ-00014Q-Ey for qemu-devel@nongnu.org; Thu, 27 Feb 2014 20:29:31 -0500 Received: by mail-pb0-f53.google.com with SMTP id rp16so46385pbb.40 for ; Thu, 27 Feb 2014 17:29:30 -0800 (PST) Message-ID: <530FE675.9030702@gmail.com> Date: Fri, 28 Feb 2014 09:29:25 +0800 From: Xuebing wang MIME-Version: 1.0 References: <530F3BE7.9060704@gmail.com> In-Reply-To: Content-Type: multipart/alternative; boundary="------------040403060302040002000903" Subject: Re: [Qemu-devel] Debugging aarch64 guest running on Foundationv8 model List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jani Kokkonen Cc: Peter Maydell , Claudio Fontana , QEMU Developers This is a multi-part message in MIME format. --------------040403060302040002000903 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Jani, The video is about aarch64 (not 32-bit arm). For your original issue, I think you need armv8 MMU support (which is not merged yet), so qemu can not handle guest virtual address like 0xffffffc000636498. I just tried Peter's branch, using aarch64-qemu + aarch64-gdb to cross-debug arm64-kernel is working here. -- But, because aarch64 timer is not implemented in the current qemu, thus I can not get arm64-kernel scheduler working. Peter's branch is here: git://git.linaro.org/people/pmaydell/qemu-arm.git branch: a64-system Command I am using: 1) in one terminal: ./aarch64-softmmu/qemu-system-aarch64 -kernel ../../kernel/arch/arm64/boot/Image -machine virt -cpu cortex-a57 -s -S 2) in another terminal aarch64-linux-gnu-gdb ../../kernel/vmlinux target remote tcp::1234 b start_kernel On 02/27/2014 11:35 PM, Jani Kokkonen wrote: > Hi Xuebing, > > In that video the qemu seems use 32-bit ARM cpu model whereas I have > need to use 64-bit ARM cpu model as I have specified by "-cpu host" > qemu parameter in Foundationv8 model. > > -Jani > > > 2014-02-27 14:21 GMT+01:00 Xuebing wang >: > > Hi Jani, > > Is below video similar to what you want? This video shows > cross-debug armv8 linux kernel (using armv8-gdb + armv8-qemu). > > http://www.youtube.com/watch?v=MLu5EzheHIM > > > > On 02/27/2014 05:52 PM, Peter Maydell wrote: > > On 27 February 2014 09:45, Jani Kokkonen > > > wrote: > > Hi, > > I would like to debug a Qemu guest linux kernel under > Foundationv8 model and > I tried the following setup: > > 1. Foundationv8 model started with --network=nat and > --network-nat-ports=1234=1234 options > 2. In Foundationv8 model I started qemu-system-aarch64 > with the command > line: > > ./qemu-system-aarch64 -M virt -cpu host -kernel Image > -serial stdio > -display none -enable-kvm -gdb tcp::1234 -S > > 3. I start debugging the guest kernel with > aarch64-linux-gnu-gdb vmlinux > and with target remote:1234 command. > > However when I set any breakpoint I will get error message: > "Cannot insert breakpoint 1. > Error accessing memory address 0xffffffc000636498: Unknown > error -1" > In addition stepi or any other run related command does > not work. > > You would need to implement breakpoint support for AArch64 in > both KVM and QEMU, I think. That feature is currently not > implemented. > > thanks > -- PMM > > > > -- > Thanks, > Xuebing Wang > > -- Thanks, Xuebing Wang --------------040403060302040002000903 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Jani,

The video is about aarch64 (not 32-bit arm).

For your original issue, I think you need armv8 MMU support (which is not merged yet), so qemu can not handle guest virtual address like 0xffffffc000636498.

I just tried Peter's branch, using aarch64-qemu + aarch64-gdb to cross-debug arm64-kernel is working here.
-- But, because aarch64 timer is not implemented in the current qemu, thus I can not get arm64-kernel scheduler working.

Peter's branch is here:
git://git.linaro.org/people/pmaydell/qemu-arm.git
branch: a64-system

Command I am using:
1) in one terminal:
./aarch64-softmmu/qemu-system-aarch64  -kernel ../../kernel/arch/arm64/boot/Image  -machine virt -cpu cortex-a57 -s -S

2) in another terminal
aarch64-linux-gnu-gdb  ../../kernel/vmlinux
target remote tcp::1234
b start_kernel


On 02/27/2014 11:35 PM, Jani Kokkonen wrote:
Hi Xuebing,

In that video the qemu seems use 32-bit ARM cpu model whereas I have need to use 64-bit ARM cpu model as I have specified by "-cpu host" qemu parameter in Foundationv8 model.

-Jani


2014-02-27 14:21 GMT+01:00 Xuebing wang <xbing6@gmail.com>:
Hi Jani,

Is below video similar to what you want? This video shows cross-debug armv8 linux kernel (using armv8-gdb + armv8-qemu).

http://www.youtube.com/watch?v=MLu5EzheHIM



On 02/27/2014 05:52 PM, Peter Maydell wrote:
On 27 February 2014 09:45, Jani Kokkonen <janimikokkonen@gmail.com> wrote:
Hi,

I would like to debug a Qemu guest linux kernel under Foundationv8 model and
I tried  the following setup:

1.  Foundationv8 model started with --network=nat and
--network-nat-ports=1234=1234 options
2. In Foundationv8 model I started qemu-system-aarch64 with the command
line:

./qemu-system-aarch64  -M virt -cpu host  -kernel Image -serial stdio
-display none  -enable-kvm -gdb tcp::1234 -S

3. I start debugging the guest kernel with aarch64-linux-gnu-gdb vmlinux
and with target remote:1234 command.

However when I set any breakpoint I will get error message:
"Cannot insert breakpoint 1.
Error accessing memory address 0xffffffc000636498: Unknown error -1"
In addition stepi or any other run related command does not work.
You would need to implement breakpoint support for AArch64 in
both KVM and QEMU, I think. That feature is currently not implemented.

thanks
-- PMM



--
Thanks,
Xuebing Wang



-- 
Thanks,
Xuebing Wang
--------------040403060302040002000903--