From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=58109 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OwhvU-0001FM-HW for qemu-devel@nongnu.org; Fri, 17 Sep 2010 16:52:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OwhvO-0004HI-8Z for qemu-devel@nongnu.org; Fri, 17 Sep 2010 16:52:51 -0400 Received: from mail-vw0-f45.google.com ([209.85.212.45]:39526) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OwhvO-0004HC-53 for qemu-devel@nongnu.org; Fri, 17 Sep 2010 16:52:50 -0400 Received: by vws19 with SMTP id 19so1899955vws.4 for ; Fri, 17 Sep 2010 13:52:49 -0700 (PDT) MIME-Version: 1.0 Sender: camm@ualberta.ca In-Reply-To: <20100917200428.GD19949@x200.localdomain> References: <20100917200428.GD19949@x200.localdomain> Date: Fri, 17 Sep 2010 14:52:49 -0600 Message-ID: Subject: Re: [Qemu-devel] Re: ACPI error when mapping a 2GB BAR w/ 4GB of RAM From: Cam Macdonell Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chris Wright Cc: "qemu-devel@nongnu.org Developers" , linux-kernel On Fri, Sep 17, 2010 at 2:04 PM, Chris Wright wrote: > * Cam Macdonell (cam@cs.ualberta.ca) wrote: >> After fixing the resource_size_t return value with >> pci_resource_alignment, I see one other strange behaviour only when >> using 4GB of RAM and a 2GB BAR. =A0I haven't found any other combination >> of RAM/BAR size that triggers this bug. =A0I am using 2.6.36-rc3. >> >> ACPI Error: The DSDT has been corrupted or replaced - old, new headers >> below (20100702/tbutils-372) >> ACPI: DSDT (null) 01F15 (v01 =A0 BXPC =A0 BXDSDT 00000001 INTL 20090123) >> ACPI: =A0 =A0 =A0(null) 00000 (v00 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 00000= 000 =A0 =A0 =A000000000) >> ACPI Error: Please send DMI info to linux-acpi@vger.kernel.org >> If system does not work as expected, please boot with acpi=3Dcopy_dsdt >> (20100702/tbutils-378) >> ACPI: PCI Interrupt Link [LNKC] disabled and referenced, BIOS bug >> ACPI Exception: AE_AML_INVALID_RESOURCE_TYPE, Evaluating _CRS >> (20100702/pci_link-283) >> ACPI: Unable to set IRQ for PCI Interrupt Link [LNKC]. Try pci=3Dnoacpi >> or acpi=3Doff >> virtio-pci 0000:00:03.0: PCI INT A: no GSI - using ISA IRQ 11 >> Non-volatile memory driver v1.3 >> Linux agpgart interface v0.103 >> Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled > > IIRC, =A0the pci hole is only 1.5G in the BIOS, can you verify that > seabios is doing the right thing? I'm not sure what the right thing for seabios to do is. Here is the seabios output related to the device. PCI: bus=3D0 devfn=3D0x20: vendor_id=3D0x1af4 device_id=3D0x1110 region 0: 0xf2040000 init smm init boot device ordering Attempting to init PCI bdf 00:04.0 (vd 1af4:1110) Attempting to map option rom on dev 00:04.0 Option rom sizing returned 0 0 Checking rom 0x000c9800 (sig aa55 size 17) Checking rom 0x000cc000 (sig aa55 size 2) Checking rom 0x000c9000 (sig aa55 size 4) Checking rom 0x000c9800 (sig aa55 size 17) Checking rom 0x000cc000 (sig aa55 size 2) Mapping hd drive 0x000fdb50 to 0 Running option rom at c980:0003 Running option rom at cc00:0003 pmm_malloc zone=3D0x000f515c handle=3Dffffffff size=3D36 align=3D10 ret=3D0x000fdaf0 (detail=3D0x7ffefca0) ebda moved from 9fc00 to 9f400 pmm_malloc zone=3D0x000f5154 handle=3Dffffffff size=3D2048 align=3D10 ret=3D0x0009f800 (detail=3D0x7ffefb40) finalize PMM malloc finalize when using a BAR of 2GB or less, there is an additional write to the PCI space of the device, which may be from the bios pci_write_config: (val) 0xffffffff -> 0x18 (addr) pci_read_config: (val) 0x80000004 <- 0x18 (addr) pci_write_config: (val) 0x4 -> 0x18 (addr) pci_write_config: (val) 0x3 -> 0x4 (addr) pci_read_config: (val) 0x0 <- 0x1c (addr) pci_write_config: (val) 0xffffffff -> 0x1c (addr) IVSHMEM: guest pci addr =3D ffffffff00000000, guest h/w addr =3D 4312137728, size =3D 80000000 so is it succeeding with smaller sizes (> 2GB) because it fits in the bios' pci hole? Cam > > thanks, > -chris > >