Hi everyone,
I'm building a WinCE 6 OS for an Intel D945GCLF motherboard using the
CEPC:x86 BSP as my starting point. Right now I'm having a hard time getting
the ATA interface to recognise anything connected to it. I've got all service
packs up unit June 2008 installed...
I've tried the following with this board:
- New 1G CF card that I purchassed with the board
- Older 256Mb CF card that I've used successfuly in the past
- Older 720Mb 2.5" rotating hard disk
So far the OS boots from all three devices, but none of them are mounted by
the OS once booted. I'm now thinking that there is a problem with the ATAPI
driver in combination with the ICH7 device...
The ATAPI catalog item is selected, and the OS does try and initialise the
first HD (Primary Master) without success. I've disbled the other three
interfaces (Pri/Slave, Sec/Master and Sec/Slave) since they are not present
in my application.
I've tried the following to get this working:
- Set DMA value in ali1543.reg to 0 to disable DMA (this has solved this
issue in the past for me)
- Change the TransferMode value to different settings including PIO default,
PIO default disable IORDY, PIO Flow control up to mode 4 (which is supported
by the CF card)
- Change the DeviceID and VendorID flags to match the ones reported by the
ICH7 for the ATA interface
None of this appears to be working... Does anyone have any insight on this
issue? Has anyone used the D945GCLF / ICH7 with success? Am I going crazy!?!
I've attached pertinent debug output below for your reference:
...
OSAXST1: >>> Loading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
ATAPI:PCIConfig!DeviceConfig+(0)
ATAPI:PCIConfig!DeviceConfig+(0)
Warning: No Match template is found for following PCI Devic
-------------------------------------------------------------------------------
Bus/Device/Function = 0/31/3, Unknown Device Type
VendorID = 0x8086, DeviceID = 0x27DA, Command = 0x0001, Status = 0x0280
RevisionID = 0x01, ProgIf = 0x00, SubClass = 0x05, BaseClass = 0x0C
CacheLineSize = 0x00, LatencyTimer = 0x00, HeaderType = 0x00, BIST = 0x00
BaseAddresses:
0x00000000 0x00000000 0x00000000 0x00000000 0x00002001 0x00000000
CIS = 0x00000000, SubVendorID = 0x8086, SubSystemID = 0x464C
ROMBaseAddress = 0x00000000
InterruptLine = 0x0B, InterruptPin = 0x02, MinGrant = 0x00, MaxLatency =
0x0
-------------------------------------------------------------------------------
PCIBUS!PCICfgCheckBARs: WARNING: No matching registry key was found for
placed device 0/31/3.
PCIBUS!PCICfgCheckBARs: Problems can result if the device is being
used while configuring PCIbus.
PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device
2, Function 0
PCIBUS!PCICfgAllocMemSpace: Failed to place Bridge resource: Bus 0, Device
28, Function 0
PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device
2, Function 0
PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device
2, Function 0
PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device
27, Function 0
PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device
29, Function 7
PCIBUS!PCICfgAllocIoSpace: Failed to place Bridge resource: Bus 0, Device
28, Function 0
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
29, Function 0
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
29, Function 1
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
29, Function 2
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
29, Function 3
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
31, Function 3
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device 2,
Function 0
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
OSAXST1: <<< Unloading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE1) returned open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE1) returned open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE2) returned open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI1) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI1) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI2) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI1) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI2) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\UHCI3) returned
open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE1) returned open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE2) returned open exist.continue search
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\PCI-PCI-BRIDGE3) returned open exist.continue search
OSAXST1: >>> Loading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
ATAPI:PCIConfig!DeviceConfig+(2)
OSAXST1: <<< Unloading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
OSAXST1: >>> Loading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
ATAPI:PCIConfig!DeviceConfig+(3)
OSAXST1: <<< Unloading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
OSAXST1: >>> Loading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
ATAPI:PCIConfig!DeviceConfig+(2)
OSAXST1: <<< Unloading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
OSAXST1: >>> Loading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
ATAPI:PCIConfig!DeviceConfig+(3)
OSAXST1: <<< Unloading Module 'atapi.dll' (0x8395A778) at address
0xC0490000-0xC04AC000 in Process 'NK.EXE' (0x81783C80)
PCIBUS::OpenNonExistInstanceKey(Drivers\BuiltIn\PCI\Instance\ALI14531)
returned open exist.continue search
...
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14532\Device0\BusPrefix)
returned 2
Atapi!CDisk::ResetController> SRST failed
DEVICE!LaunchDevice: Init() failed for device 0xd04ac330
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DSK, index 1, dll
atapi.dll, context 0xd03acf68CHub(Root tier 0)::HubStatusChangeThread -
device attached on port 1
+CHub(Root tier 0)::AttachDevice - port = 1, fIsLowSpeed = 1
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_OPENING_ENDPOINT0_PIPE, failures = 0
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_USING_ADDRESS0, failures = 0
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_RESET_AND_ENABLE_PORT, failures = 0
DeviceFolder::LoadDevice(Drivers\BuiltIn\PCI\Instance\ALI14532) last 291
TicksDEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\BusPrefix)
returned[NOTIFY] HandleSystemEvent 7 /ADD IDE1:
2
...