#include "stdafx.h"
BOOLEAN
+NTAPI
UniataChipDetectChannels(
IN PVOID HwDeviceExtension,
IN PPCI_COMMON_CONFIG pciData, // optional
)
{
PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension;
- ULONG slotNumber = deviceExtension->slotNumber;
- ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber;
+ //ULONG slotNumber = deviceExtension->slotNumber;
+ //ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber;
ULONG VendorID = deviceExtension->DevID & 0xffff;
- ULONG DeviceID = (deviceExtension->DevID >> 16) & 0xffff;
- ULONG RevID = deviceExtension->RevID;
+ //ULONG DeviceID = (deviceExtension->DevID >> 16) & 0xffff;
+ //ULONG RevID = deviceExtension->RevID;
ULONG ChipType = deviceExtension->HwFlags & CHIPTYPE_MASK;
ULONG ChipFlags= deviceExtension->HwFlags & CHIPFLAG_MASK;
case ATA_ATI_ID:
KdPrint2((PRINT_PREFIX "ATI\n"));
switch(deviceExtension->DevID) {
- case 0x438c1002:
- case 0x439c1002:
+ case ATA_ATI_IXP600:
+ case ATA_ATI_IXP700:
/* IXP600 & IXP700 only have 1 PATA channel */
if(BMList[deviceExtension->DevIndex].channel) {
KdPrint2((PRINT_PREFIX "New ATI no 2nd PATA chan\n"));
} // end UniataChipDetectChannels()
BOOLEAN
+NTAPI
UniataChipDetect(
IN PVOID HwDeviceExtension,
IN PPCI_COMMON_CONFIG pciData, // optional
PCI_DEV_HW_SPEC_BM( 0730, 1039, 0x00, ATA_UDMA5, "SiS 730" , SIS100OLD ),
PCI_DEV_HW_SPEC_BM( 0646, 1039, 0x00, ATA_UDMA6, "SiS 645DX", SIS133NEW ),
-/* PCI_DEV_HW_SPEC_BM( 0645, 1039, 0x00, ATA_UDMA6, "SiS 645" , SIS133NEW ),
+/* PCI_DEV_HW_SPEC_BM( 0645, 1039, 0x00, ATA_UDMA6, "SiS 645" , SIS133NEW ),*/
/* PCI_DEV_HW_SPEC_BM( 0640, 1039, 0x00, ATA_UDMA4, "SiS 640" , SIS_SOUTH ),*/
PCI_DEV_HW_SPEC_BM( 0635, 1039, 0x00, ATA_UDMA5, "SiS 635" , SIS100NEW ),
PCI_DEV_HW_SPEC_BM( 0633, 1039, 0x00, ATA_UDMA5, "SiS 633" , SIS100NEW ),
BaseIoAddressBM = AtapiGetIoRange(HwDeviceExtension, ConfigInfo, pciData, SystemIoBusNumber,
4, 0, deviceExtension->NumberChannels*sizeof(IDE_BUSMASTER_REGISTERS));
for(c=0; c<deviceExtension->NumberChannels; c++) {
- ULONG unit01 = (c & 1);
+ //ULONG unit01 = (c & 1);
ULONG unit10 = (c & 2);
chan = &deviceExtension->chan[c];
This will prevent data losses
*/
VOID
+NTAPI
AtapiViaSouthBridgeFixup(
IN PVOID HwDeviceExtension,
IN BUS_DATA_TYPE BusDataType,
This will prevent data losses
*/
VOID
+NTAPI
AtapiRosbSouthBridgeFixup(
IN PVOID HwDeviceExtension,
IN BUS_DATA_TYPE BusDataType,
IN ULONG slotNumber
)
{
- PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension;
+ //PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension;
PCI_COMMON_CONFIG pciData;
ULONG funcNumber;
ULONG busDataRead;
This will prevent data losses
*/
VOID
+NTAPI
AtapiAliSouthBridgeFixup(
IN PVOID HwDeviceExtension,
IN BUS_DATA_TYPE BusDataType,
IN ULONG c
)
{
- PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension;
+ //PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension;
PCI_COMMON_CONFIG pciData;
ULONG funcNumber;
ULONG busDataRead;
} // end AtapiRosbSouthBridgeFixup()
ULONG
+NTAPI
hpt_cable80(
IN PHW_DEVICE_EXTENSION deviceExtension,
IN ULONG channel // physical channel number (0-1)
ULONG
+NTAPI
via_cable80(
IN PHW_DEVICE_EXTENSION deviceExtension,
IN ULONG channel // physical channel number (0-1)
} // end via_cable80()
BOOLEAN
+NTAPI
generic_cable80(
IN PHW_DEVICE_EXTENSION deviceExtension,
IN ULONG channel, // physical channel number (0-1)
ULONG slotNumber = deviceExtension->slotNumber;
ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber;
- ULONG ChipType = deviceExtension->HwFlags & CHIPTYPE_MASK;
+ //ULONG ChipType = deviceExtension->HwFlags & CHIPTYPE_MASK;
PHW_CHANNEL chan;
ULONG c; // logical channel (for Compatible Mode controllers)
UCHAR tmp8;
} // end generic_cable80()
VOID
+NTAPI
UniAtaReadLunConfig(
IN PHW_DEVICE_EXTENSION deviceExtension,
IN ULONG channel, // physical channel
} // end UniAtaReadLunConfig()
BOOLEAN
+NTAPI
AtapiReadChipConfig(
IN PVOID HwDeviceExtension,
IN ULONG DeviceNumber,
}
deviceExtension->opt_AtapiDmaZeroTransfer = FALSE;
deviceExtension->opt_AtapiDmaControlCmd = FALSE;
- deviceExtension->opt_AtapiDmaRawRead = TRUE;
+ deviceExtension->opt_AtapiDmaRawRead = FALSE;//TRUE; // Disabling that for VirtualBox
deviceExtension->opt_AtapiDmaReadWrite = TRUE;
}
} // end AtapiReadChipConfig()
BOOLEAN
+NTAPI
AtapiChipInit(
IN PVOID HwDeviceExtension,
IN ULONG DeviceNumber,
ULONG slotNumber = deviceExtension->slotNumber;
ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber;
ULONG VendorID = deviceExtension->DevID & 0xffff;
+#ifdef _DEBUG
ULONG DeviceID = (deviceExtension->DevID >> 16) & 0xffff;
+#endif
ULONG RevID = deviceExtension->RevID;
// ULONG i;
// BUSMASTER_CONTROLLER_INFORMATION* DevTypeInfo;
} // end AtapiChipInit()
VOID
+NTAPI
UniataInitMapBM(
IN PHW_DEVICE_EXTENSION deviceExtension,
IN PIDE_BUSMASTER_REGISTERS BaseIoAddressBM_0,
} // end UniataInitMapBM()
VOID
+NTAPI
UniataInitMapBase(
IN PHW_CHANNEL chan,
IN PIDE_REGISTERS_1 BaseIoAddress1,
} // end UniataInitMapBase()
VOID
+NTAPI
UniataInitSyncBaseIO(
IN PHW_CHANNEL chan
)