Skip to contentSkip to conversation

hw/q35: fix floppy controller definition in ich9

PATCH In review Marcel Apfelbaum 2 participants 6 messages Jun 1, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hw/q35: fix floppy controller definition in ich9

In DSDT FDC0 declares the IO region as IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04). Use the same in lpc_ich9 initialization code.
Now the floppy drive is detected correctly on Windows.

---
 hw/isa/lpc_ich9.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
hw/isa/lpc_ich9.c +1 -1
index dba7585..bc9afc6 100644
@@ -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;
     }
Signature · 1 line
2.1.0
#1 lore raw
Quoted 15 lines · Marcel Apfelbaum

In DSDT FDC0 declares the IO region as IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04). Use the same in lpc_ich9 initialization code.
Now the floppy drive is detected correctly on Windows.

---
  hw/isa/lpc_ich9.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
hw/isa/lpc_ich9.c +0 -0
index dba7585..bc9afc6 100644

hw/isa/lpc_ich9.c static void ich9_lpc_machine_ready(Notifier *n, void *opaque) · line 500

Quoted 8 lines
hw/isa/lpc_ich9.c +1 -1
@@ -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;
      }

Hi,

I cc-ed the developers involved in the mail thread:

    https://lists.gnu.org/archive/html/qemu-block/2015-05/msg01043.html

and the FDC maintainer. I hope I didn't miss anybody.

I also have no knowledge of FDC, but I think the above patch is correct and solves the problem of floppy disk missing in Windows for Q35 machines.

Comments appreciated as always.

Thanks,
Marcel

#2 lore raw
Quoted 29 lines · Marcel Apfelbaum
Quoted 24 lines

In DSDT FDC0 declares the IO region as IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04).
Use the same in lpc_ich9 initialization code.
Now the floppy drive is detected correctly on Windows.

---
  hw/isa/lpc_ich9.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
hw/isa/lpc_ich9.c +1 -1
index dba7585..bc9afc6 100644
@@ -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;
Quoted 2 lines
      }

Hi,

Quoted 6 lines

I cc-ed the developers involved in the mail thread:

    https://lists.gnu.org/archive/html/qemu-block/2015-05/msg01043.html

and the FDC maintainer. I hope I didn't miss anybody.

I also have no knowledge of FDC, but I think the above patch is correct and solves the problem of floppy disk missing in Windows for Q35 machines.

The patch is okay, but the correct definition of the area is from 0x3F1 to 0x3F7.

Paolo

#3 lore raw
Quoted 36 lines · Paolo Bonzini
Quoted 33 lines · Marcel Apfelbaum
Quoted 24 lines

In DSDT FDC0 declares the IO region as IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04).
Use the same in lpc_ich9 initialization code.
Now the floppy drive is detected correctly on Windows.

---
   hw/isa/lpc_ich9.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
hw/isa/lpc_ich9.c +1 -1
index dba7585..bc9afc6 100644
@@ -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;
Quoted 2 lines
       }

Hi,

I cc-ed the developers involved in the mail thread:

     https://lists.gnu.org/archive/html/qemu-block/2015-05/msg01043.html

and the FDC maintainer. I hope I didn't miss anybody.

Quoted 5 lines
Quoted 2 lines

I also have no knowledge of FDC, but I think the above patch is correct and solves the problem of floppy disk missing in Windows for Q35 machines.

The patch is okay, but the correct definition of the area is from 0x3F1 to 0x3F7.

Can we do other fixes on top of this? This patch solves the actual Windows problem and now we can use floppies for Q35.

Can I take this okay as a "Reviewed-by"? )
Thanks,
Marcel

Quoted 3 lines

Paolo

#4 lore raw
Quoted 5 lines · Paolo Bonzini
Quoted 2 lines

The patch is okay, but the correct definition of the area is from 0x3F1 to 0x3F7.

Can we do other fixes on top of this? This patch solves the actual Windows problem and now we can use floppies for Q35.

Well, IANAM. :)

Quoted 1 line

Can I take this okay as a "Reviewed-by"? )

Sure.

Paolo

#5 lore raw
Quoted 11 lines · Paolo Bonzini
Quoted 5 lines · Paolo Bonzini
Quoted 2 lines

The patch is okay, but the correct definition of the area is from 0x3F1 to 0x3F7.

Can we do other fixes on top of this? This patch solves the actual Windows problem and now we can use floppies for Q35.

Well, IANAM. :)

Quoted 1 line

Can I take this okay as a "Reviewed-by"? )

Sure.

Thanks Paolo!

Michael, maybe you can take this patch under pci/Q35 branch? Thanks,
Marcel

Quoted 3 lines

Paolo