From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48888) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJfXj-0001aP-9D for qemu-devel@nongnu.org; Wed, 11 Sep 2013 04:12:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJfXf-0000op-1f for qemu-devel@nongnu.org; Wed, 11 Sep 2013 04:12:55 -0400 Message-ID: <523025EF.6010406@cn.fujitsu.com> Date: Wed, 11 Sep 2013 16:12:31 +0800 From: Xie Xianshan MIME-Version: 1.0 References: <522EC970.2000804@cn.fujitsu.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] Disabling IRQ error List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Filippov Cc: qemu-ppc , qemu-devel Hi Max, Thanks for your reply. And I am sorry for my unclear description. I want to add a new device "fpga" for e500, and trigger an interrupt=20 IRQ3 while the register BB=5FINTR=5FREG which belongs to device "fpga" is=20 wrote by the device driver of "fpga". For e500, IRQ3 is an external interrupt irq. According the debug log, the disabling error is encoutered during=20 writing BB=5FINTR=5FREG register. - write BB=5FINTR=5FREG register - qemu=5Firq=5Fraise() is called. - after serval minutes, the error message about disabling irq is displayed. - continue the next execution without error(with poll?) My sample code is as follows: ---------------------------------------------- hw/ppce500=5Ffpga.c ---------------------------------------------- typedef struct FPGAState { SysBusDevice busdev; MemoryRegion iomem; qemu=5Firq irq; }FPGAState; static void fpga=5Fwrite(FPGAState *s, unsigned int offset, uint32=5Ft=20 value, unsigned size) { switch(offset) { case BB=5FINTR=5FREG: qemu=5Firq=5Fraise(s->irq); break; } } static int ppce500=5Ffpga=5Finitfn(SysBusDevice *dev) { FPGAState *s; s =3D FROM=5FSYSBUS(FPGAState, SYS=5FBUS=5FDEVICE(dev)); sysbus=5Finit=5Firq(dev, &s->irq); ... } ---------------------------------------------- hw/ppc/e500.c ---------------------------------------------- void ppce500=5Finit(PPCE500Params *params) { ... qemu=5Firq *mpic; for (i =3D 0; i < 256; i++) { mpic[i] =3D qdev=5Fget=5Fgpio=5Fin(dev, i); } ... /* add for FPGA */ dev=5Ffpga =3D qdev=5Fcreate(NULL, "fpga"); dev=5Ffpga->id =3D "fpga"; qdev=5Finit=5Fnofail(dev=5Ffpga); s =3D SYS=5FBUS=5FDEVICE(dev=5Ffpga); memory=5Fregion=5Fadd=5Fsubregion(fpga=5Fspace, FPGA=5FREGS=5FOFFSET, sysbus=5Fmmio=5Fget=5Fregion(s, 0)); sysbus=5Fconnect=5Firq(s, 0, mpic[3]); .... } Thanks Simen =E4=BA=8E 2013/09/10 16:23, Max Filippov =E5=86=99=E9=81=93: > On Tue, Sep 10, 2013 at 11:25 AM, Xie Xianshan wro= te: >> hi everyone, >> >> I`m getting the nobody cared disabling IRQ error, when i raised external >> interrupts IRQ3 to the Openpic in QEMU. >> (Actually, any external interrupts irq i raised can reproduce this error, >> but internal interrupts work fine) >> >> And this IRQ3 is sharing irq with usb card. > > Could you please explain what you mean by "I raised external interrupt", > what you generally try to achieve and what behaviour you expected? > > Your description reminds me of this thread: > https://lists.gnu.org/archive/html/qemu-devel/2013-08/msg04063.html > --=20 Best Regards Xie Xianshan -------------------------------------------------- Xie Xianshan Development Dept.I Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) No. 6 Wenzhu Road, Nanjing, 210012, China PHONE: +86+25-86630566-9555 FUJITSU INTERNAL: 7998-9555 MAIL: xiexs@cn.fujitsu.com -------------------------------------------------- This communication is for use by the intended recipient(s) only and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not an intended recipient of this communication, you are hereby notified that any dissemination, distribution or copying hereof is strictly prohibited. If you have received this communication in error, please notify me by reply e-mail, permanently delete this communication from your system, and destroy any hard copies you may have printed =