From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yxz0t-0007kY-6Q for qemu-devel@nongnu.org; Thu, 28 May 2015 10:42:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yxz0p-0000hT-Tt for qemu-devel@nongnu.org; Thu, 28 May 2015 10:42:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43785) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yxz0p-0000hF-Nl for qemu-devel@nongnu.org; Thu, 28 May 2015 10:42:23 -0400 Message-ID: <55672949.5000502@redhat.com> Date: Thu, 28 May 2015 16:42:17 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20150528125925.GG6488@HEDWIG.INI.CMU.EDU> <1432821161.6250.11.camel@nilsson.home.kraxel.org> In-Reply-To: <1432821161.6250.11.camel@nilsson.home.kraxel.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] i386: drop FDC in pc-q35-2.4+ if neither List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann , "Gabriel L. Somlo" Cc: John Snow , mst@redhat.com, lersek@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com On 28/05/2015 15:52, Gerd Hoffmann wrote: > @@ -494,7 +494,7 @@ static void ich9_lpc_machine_ready(Notifier *n, void *opaque) > /* lpt */ > pci_conf[0x82] |= 0x04; > } > - if (memory_region_present(io_as, 0x3f0)) { > + if (memory_region_present(io_as, 0x3f2)) { > /* floppy */ > pci_conf[0x82] |= 0x08; > } > > Oh, and this ... > > $ virsh qemu-monitor-command fedora-org-q35.base --hmp "info mtree" | grep fdc > 00000000000003f1-00000000000003f5 (prio 0, RW): fdc > 00000000000003f7-00000000000003f7 (prio 0, RW): fdc > > ... looks fishy too. Shouldn't that be 0x3f2-0x3f6 for the first range? I think 0x3f0-0x3f5 based on this: hw/block/fdc.c: FD_REG_SRA = 0x00, hw/block/fdc.c: FD_REG_SRB = 0x01, hw/block/fdc.c: FD_REG_DOR = 0x02, hw/block/fdc.c: FD_REG_TDR = 0x03, hw/block/fdc.c: FD_REG_MSR = 0x04, hw/block/fdc.c: FD_REG_DSR = 0x04, hw/block/fdc.c: FD_REG_FIFO = 0x05, hw/block/fdc.c: FD_REG_DIR = 0x07, hw/block/fdc.c: FD_REG_CCR = 0x07, So: diff --git a/hw/block/fdc.c b/hw/block/fdc.c index d8a8edd..c761291 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2186,7 +2186,7 @@ static void fdctrl_realize_common(FDCtrl *fdctrl, Error **errp) } static const MemoryRegionPortio fdc_portio_list[] = { - { 1, 5, 1, .read = fdctrl_read, .write = fdctrl_write }, + { 0, 6, 1, .read = fdctrl_read, .write = fdctrl_write }, { 7, 1, 1, .read = fdctrl_read, .write = fdctrl_write }, PORTIO_END_OF_LIST(), }; Paolo