From 2a5b04afb55d91d4689c9e31fa70abebd0bd3036 Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Fri, 24 Jan 2003 15:14:15 +0000 Subject: [PATCH] - behaviour of some PCI registers fixed --- bochs/patches/patch.usb-fys | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/bochs/patches/patch.usb-fys b/bochs/patches/patch.usb-fys index b48278fc7..bf91fff28 100644 --- a/bochs/patches/patch.usb-fys +++ b/bochs/patches/patch.usb-fys @@ -336,13 +336,13 @@ diff -urN ../bochs/iodev/iodev.h ./iodev/iodev.h #if BX_SUPPORT_APIC diff -urN ../bochs/iodev/pciusb.cc ./iodev/pciusb.cc --- ../bochs/iodev/pciusb.cc 1970-01-01 01:00:00.000000000 +0100 -+++ ./iodev/pciusb.cc 2003-01-23 18:04:33.000000000 +0100 -@@ -0,0 +1,694 @@ ++++ ./iodev/pciusb.cc 2003-01-24 14:08:48.000000000 +0100 +@@ -0,0 +1,701 @@ +///////////////////////////////////////////////////////////////////////// -+// $Id: patch.usb-fys,v 1.2 2003-01-23 20:13:23 vruppert Exp $ ++// $Id: patch.usb-fys,v 1.3 2003-01-24 15:14:15 vruppert Exp $ +///////////////////////////////////////////////////////////////////////// +// -+// Copyright (C) 2002 MandrakeSoft S.A. ++// Copyright (C) 2003 MandrakeSoft S.A. +// +// MandrakeSoft S.A. +// 43, rue d'Aboukir @@ -465,7 +465,7 @@ diff -urN ../bochs/iodev/pciusb.cc ./iodev/pciusb.cc + { 0x0e, 0x00 }, // header_type_generic + { 0x20, 0x41 }, { 0x21, 0xFF }, { 0x22, 0x00 }, { 0x23, 0x00 }, // address space + { 0x3c, 0x09 }, // IRQ -+ { 0x3d, 0x0a } // INT ++ { 0x3d, 0x04 } // INT + + }; + for (unsigned i = 0; i < sizeof(reset_vals) / sizeof(*reset_vals); ++i) { @@ -1012,10 +1012,17 @@ diff -urN ../bochs/iodev/pciusb.cc ./iodev/pciusb.cc + for (unsigned i=0; i> (i*8)) & 0xFF; + switch (address+i) { -+ case 0x30: // Oh, no, you're not writing to rom_base! ++ case 0x20: // ++ BX_USB_THIS s.pci_conf[address+i] = (value8 & 0xe0) | 0x01; ++ sprintf(szTmp2, "%02x", (value8 & 0xe0) | 0x01); ++ break; ++ case 0x22: // Oh, no, you're not writing to rom_base! ++ case 0x23: // ++ case 0x30: // + case 0x31: // + case 0x32: // + case 0x33: // ++ case 0x3d: // + case 0x04: // disallowing write to command + case 0x06: // disallowing write to status lo-byte (is that expected?) + strcpy(szTmp2, ".."); @@ -1028,7 +1035,7 @@ diff -urN ../bochs/iodev/pciusb.cc ./iodev/pciusb.cc + strcat(szTmp, szTmp2); + } + strrev(szTmp); -+ BX_DEBUG(("Experimental USB write register 0x%02x value 0x%s", address, szTmp)); ++ BX_DEBUG(("Experimental USB PCI write register 0x%02x value 0x%s", address, szTmp)); +} + +#endif // BX_PCI_SUPPORT && BX_PCI_USB_SUPPORT @@ -1037,7 +1044,7 @@ diff -urN ../bochs/iodev/pciusb.h ./iodev/pciusb.h +++ ./iodev/pciusb.h 2003-01-23 17:40:20.000000000 +0100 @@ -0,0 +1,196 @@ +///////////////////////////////////////////////////////////////////////// -+// $Id: patch.usb-fys,v 1.2 2003-01-23 20:13:23 vruppert Exp $ ++// $Id: patch.usb-fys,v 1.3 2003-01-24 15:14:15 vruppert Exp $ +///////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2003 MandrakeSoft S.A.