From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44979) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VtHyB-0005GR-HX for qemu-devel@nongnu.org; Wed, 18 Dec 2013 09:19:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VtHy2-0000v8-Nl for qemu-devel@nongnu.org; Wed, 18 Dec 2013 09:19:27 -0500 Sender: Paolo Bonzini Message-ID: <52B1AEDF.8050109@redhat.com> Date: Wed, 18 Dec 2013 15:19:11 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1386753670-11238-1-git-send-email-ghammer@redhat.com> <52A83D1F.8060103@redhat.com> <20131211104437.GD9547@redhat.com> <42164188.5113689.1386759897161.JavaMail.root@redhat.com> In-Reply-To: <42164188.5113689.1386759897161.JavaMail.root@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] piix: do not reset APIC base address (0x80) on piix4_reset. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gal Hammer Cc: Gal Hammer , qemu-stable@nongnu.org, qemu-devel@nongnu.org, "Michael S. Tsirkin" Il 11/12/2013 12:04, Gal Hammer ha scritto: > Michael, > > True, I haven't figure it out yet, but the current status is that recover from sleep doesn't work. > > As far as I can tell it could be either: > > 1. piix4_reset shouldn't be call on resume. > 2. memory_region_set_enabled (called in pm_io_space_update) shouldn't use config[0x80]. > 3. the config[0x80] shouldn't be zero in piix4_reset (current solution). > 4. something else? > > I'm not well familiar with the PIIX4 emulation and your help will be appreciated. The datasheet says that config[0x80] is reset to 0. The PIIX spec says that during S3 the chipset provides "Shadow registers for standard AT write only registers to save and restore system state information" These are just for the 825x (DMA controller, PIC, PIT). We do not emulate them and our BIOS does not support them. I was told that a few memory controller registers survive S3, which in our case would be the i440FX's PAM registers, but I don't think this register should be one of them. What guest is breaking and how? Does the guest usually initialize this register, or does the firmware (SeaBIOS) do that? If the latter, this could be a SeaBIOS bug instead. Paolo