From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33900) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZotQ3-0006rH-6R for qemu-devel@nongnu.org; Wed, 21 Oct 2015 09:27:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZotPz-0002tI-9R for qemu-devel@nongnu.org; Wed, 21 Oct 2015 09:27:07 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:46263) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZotPz-0002t8-2y for qemu-devel@nongnu.org; Wed, 21 Oct 2015 09:27:03 -0400 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NWK007VVO10YT40@mailout1.w1.samsung.com> for qemu-devel@nongnu.org; Wed, 21 Oct 2015 14:27:00 +0100 (BST) From: Pavel Fedin References: <1445361732-16257-1-git-send-email-shlomopongratz@gmail.com> <1445361732-16257-10-git-send-email-shlomopongratz@gmail.com> <00a301d10bce$7bc0daa0$73428fe0$@samsung.com> <00f501d10beb$94d12690$be7373b0$@samsung.com> In-reply-to: Date: Wed, 21 Oct 2015 16:26:59 +0300 Message-id: <015901d10c04$2aa7fd70$7ff7f850$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: quoted-printable Content-language: ru Subject: Re: [Qemu-devel] [PATCH RFC V5 9/9] hw/arm: Add virt-v3 machine that uses GIC-500 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Shlomo Pongratz' , 'Peter Maydell' Cc: eric.auger@linaro.org, 'Shlomo Pongratz' , qemu-devel@nongnu.org, shannon.zhao@linaro.org, ashoks@broadcom.com, imammedo@redhat.com Hello! >> The system register implementation belongs in the gic code, not >> target-arm/. We already have support for devices that say >> "I have some system registers, please add them to this CPU". > I don't understand. > The system registers are defined in ARM Architecture reference Manual. > It is true that the real implementation is in arm_gicv3_interrupts.c > But the crn, crm, op0, and op1 of the instructions are in CPU domain. Not really. If you take a closer look, you'll see that crn, crm, op1, = op2 are the same for both ARM64 and ARM32. The only difference is that = ARM64 uses op0 =3D 3, and ARM32 uses cp =3D 15. Both of these specifiers = can coexist in the descriptor table. I think Peter wants to tell that you should not insert your register = table and registration function into target-arm/cpu64.c. This code = should go to hw/intc/arm_gicv3_cpu_interface.c, add .cp =3D 15, and - = voila - it magically works with both ARM32 and ARM64. Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia