Hi,
I'm trying to add a HDD to a CEPC image. I've followed all the step-by-step
instructions and scoured the documentation for anything I might have missed,
to no avail. My bios detects the hard drive correctly, but in the kernel
debugger, when CE tries to initialize the drive, it complains that "device
busy" and then "failed to initialize device." My working hypothesis is that
CE can't deal with the ide controller, which is an intel 82801DB (deviceId
0x24CB). I haven't been able to find CE drivers for the Intel chipset on our
SBC. Intel cryptically says "PIO" on their driver matrix for this chipset,
but changing the transfer mode hasn't made any difference.
If anyone has some insight into this problem, I would greatly appreciate the
help. Here's the debug log:
>>> Loading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at 0x01FD7000-0x01FD7608)
ATAPI DLL_PROCESS_ATTACH
ATAPI:PCIConfig!DeviceConfig+(0)
ATAPI:PCIConfig!ConfigRsrc+(Bus 0, Device 31, Function 1)
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x10, Type I/O, Size 0x8
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x14, Type I/O, Size 0x4
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x18, Type I/O, Size 0x8
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x1c, Type I/O, Size 0x4
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x20, Type I/O, Size 0x10
ATAPI:PCIConfig!ConfigRsrc: BAR(0/31/1): Offset 0x24, Type Memory, Size 0x400
ATAPI:PCIConfig!ConfigRsrc-
Warning: No Match template is found for following PCI Device
-------------------------------------------------------------------------------
Bus/Device/Function = 0/31/3, Unknown Device Type
VendorID = 0x8086, DeviceID = 0x24C3, Command = 0x0001, Status = 0x0280
RevisionID = 0x02, ProgIf = 0x00, SubClass = 0x05, BaseClass = 0x0C
CacheLineSize = 0x00, LatencyTimer = 0x00, HeaderType = 0x00, BIST = 0x00
BaseAddresses:
0x00000000 0x00000000 0x00000000 0x00000000 0x00000501 0x00000000
CIS = 0x00000000, SubVendorID = 0x8086, SubSystemID = 0x24C2
ROMBaseAddress = 0x00000000
InterruptLine = 0x0A, InterruptPin = 0x02, MinGrant = 0x00, MaxLatency =
0x00
-------------------------------------------------------------------------------
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
0, Function 0
ATAPI:PCIConfig!DeviceConfig+(1)
PCIBUS!PCICfgAllocIoSpace: Failed to place Bridge resource: Bus 0, Device
30, Function 0
PCIBUS!PCICfgAllocIoSpace: Failed to place Device resource: Bus 0, Device
31, Function 3
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI:PCIConfig!DeviceConfig+(1)
ATAPI DLL_PROCESS_DETACH
<<< Unloading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at
0x01FD7000-0x01FD7608)
EPC_X86_DEBUG\ATAPI.DLL'
>>> Loading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at 0x01FD7000-0x01FD7608)
C_X86_DEBUG\ATAPI.DLL'
ATAPI DLL_PROCESS_ATTACH
ATAPI:PCIConfig!DeviceConfig+(2)
ATAPI:PCIConfig!ConfigSize+(Bus 0, Device 31, Function 1)
ATAPI:PCIConfig!ConfigSize-
ATAPI DLL_PROCESS_DETACH
<<< Unloading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at
0x01FD7000-0x01FD7608)
EPC_X86_DEBUG\ATAPI.DLL'
>>> Loading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at 0x01FD7000-0x01FD7608)
C_X86_DEBUG\ATAPI.DLL'
ATAPI DLL_PROCESS_ATTACH
ATAPI:PCIConfig!DeviceConfig+(3)
ATAPI DLL_PROCESS_DETACH
<<< Unloading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at
0x01FD7000-0x01FD7608)
EPC_X86_DEBUG\ATAPI.DLL'
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\BusPrefix) returned 2
>>> Loading module atapi.dll at address 0x03CE0000-0x03D06000 (RW data at 0x01FD7000-0x01FD7608)
C_X86_DEBUG\ATAPI.DLL'
ATAPI DLL_PROCESS_ATTACH
Atapi!DumpRegKey> Drivers\Active\4294967293
Hnd = 00051600
Name = IDE1:
Key = Drivers\BuiltIn\PCI\Instance\ALI14531
BusParent = 0004C540
InterfaceType = 00000005
BusName = PCI_0_31_1
Atapi!DumpRegKey> Drivers\BuiltIn\PCI\Instance\ALI14531
IoLen :
8
4
8
4
10
IoBase :
a030
a040
a038
a044
a020
MemLen = 00000400
MemBase = 80000000
FunctionNumber = 00000001
DeviceNumber = 0000001F
BusNumber = 00000000
InterfaceType = 00000005
SubSystemID = 000024C2
SubVendorID = 00008086
RevisionID = 00000002
DeviceID = 000024CB
VendorID = 00008086
ProgIF = 0000008A
RegisterStride = 00000001
StatusPollCyclePause = 00000005
StatusPollsPerCycle = 00000020
StatusPollCycles = 00000100
SoftResetTimeout = 00000003
DMAAlignment = 00000004
SysIntr = 00000000
Irq = 0000000E
Legacy = 00000001
ConfigEntry = GenericConfig
SubClass = 00000001
Class = 00000001
Order = 00000002
Dll = atapi.dll
Prefix = IDE
IClass :
{CDDC3621-3512-4b3f-BB6F-B4DD5E061795}
SpawnFunction = CreatePCIHDCD
InstanceIndex = 00000001
Atapi!IDE_Init> Start of IDE/ATA device enumeration
Atapi!IDE_Init> Enumerated IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device3
Atapi!IDE_Init> Enumerated IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device2
Atapi!IDE_Init> Enumerated IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device1
Atapi!IDE_Init> Enumerated IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device0
Atapi!IDE_Init> End of IDE/ATA device enumeration
Atapi!IDE_Init> Activating IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device0
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\Device0\BusPrefix)
returned 2
Atapi!DumpRegKey> Drivers\Active\4294967294
Hnd = 00051EF0
Name = DSK1:
Key = Drivers\BuiltIn\PCI\Instance\ALI14531\Device0
Atapi!DumpRegKey> Drivers\BuiltIn\PCI\Instance\ALI14531\Device0
Port = 00051820
TransferMode = 000000FF
DeviceId = 00000000
LookAhead = 00000001
WriteCache = 00000001
DrqDataBlockSize = 00000200
DoubleBufferSize = 00010000
DMA = 00000002
InterruptDriven = 00000001
Dll = atapi.dll
Prefix = DSK
IClass :
{A4E7EDDA-E575-4252-9D6B-4195D48BB865}
Atapi!CPCIDisk::CPCIDisk> device count(1)
Atapi!CDisk::ResetController> Device is busy; 3 seconds remaining
Atapi!CDisk::ResetController> Device is busy; 2 seconds remaining
Atapi!CDisk::ResetController> Device is busy; 1 seconds remaining
Atapi!CDisk::ResetController> Timeout
Atapi!CDisk::Init> Failed to initialize device
Atapi!CPCIDisk::~CPCIDisk> device count(0)
DEVICE!LaunchDevice: Init() failed for device 0x00051ef0
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DSK, index 1, dll
atapi.dll, context 0x802d030
Atapi!IDE_Init> Activating IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device1
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\Device1\BusPrefix)
returned 2
Atapi!DumpRegKey> Drivers\Active\00
Hnd = 00052160
Name = DSK1:
Key = Drivers\BuiltIn\PCI\Instance\ALI14531\Device1
Atapi!DumpRegKey> Drivers\BuiltIn\PCI\Instance\ALI14531\Device1
Port = 00051820
TransferMode = 000000FF
DeviceId = 00000001
LookAhead = 00000001
WriteCache = 00000001
DrqDataBlockSize = 00000200
DoubleBufferSize = 00010000
DMA = 00000002
InterruptDriven = 00000001
Dll = atapi.dll
Prefix = DSK
IClass :
{A4E7EDDA-E575-4252-9D6B-4195D48BB865}
Atapi!CPCIDisk::CPCIDisk> device count(1)
Atapi!CDisk::IsDevicePresent> Device 1 is not present; Error register(0xff)
Atapi!CDisk::InitController> Device did not respond to identify
Atapi!CDisk::Init> Failed to initialize device
Atapi!CPCIDisk::~CPCIDisk> device count(0)
DEVICE!LaunchDevice: Init() failed for device 0x00052160
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DSK, index 1, dll
atapi.dll, context 0x802d030
Atapi!IDE_Init> Activating IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device2
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\Device2\BusPrefix)
returned 2
Atapi!DumpRegKey> Drivers\Active\01
Hnd = 000523D0
Name = DSK1:
Key = Drivers\BuiltIn\PCI\Instance\ALI14531\Device2
Atapi!DumpRegKey> Drivers\BuiltIn\PCI\Instance\ALI14531\Device2
Port = 00051890
DeviceId = 00000000
TransferMode = 000000FF
LookAhead = 00000001
WriteCache = 00000001
DrqDataBlockSize = 00000200
DoubleBufferSize = 00010000
DMA = 00000002
InterruptDriven = 00000001
Dll = atapi.dll
Prefix = DSK
IClass :
{A4E7EDDA-E575-4252-9D6B-4195D48BB865}
Atapi!CPCIDisk::CPCIDisk> device count(1)
Atapi!CDisk::ResetController> Device is busy; 3 seconds remaining
Atapi!CDisk::ResetController> Device is busy; 2 seconds remaining
Atapi!CDisk::ResetController> Device is busy; 1 seconds remaining
Atapi!CDisk::ResetController> Timeout
Atapi!CDisk::Init> Failed to initialize device
Atapi!CPCIDisk::~CPCIDisk> device count(0)
DEVICE!LaunchDevice: Init() failed for device 0x000523d0
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DSK, index 1, dll
atapi.dll, context 0x802d030
Atapi!IDE_Init> Activating IDE/ATA device
Drivers\BuiltIn\PCI\Instance\ALI14531\Device3
DEVICE!RegReadActivationValues
RegQueryValueEx(Drivers\BuiltIn\PCI\Instance\ALI14531\Device3\BusPrefix)
returned 2
Atapi!DumpRegKey> Drivers\Active\02
Hnd = 00052640
Name = DSK1:
Key = Drivers\BuiltIn\PCI\Instance\ALI14531\Device3
Atapi!DumpRegKey> Drivers\BuiltIn\PCI\Instance\ALI14531\Device3
Port = 00051890
DeviceId = 00000001
TransferMode = 000000FF
LookAhead = 00000001
WriteCache = 00000001
DrqDataBlockSize = 00000200
DoubleBufferSize = 00010000
DMA = 00000002
InterruptDriven = 00000001
Dll = atapi.dll
Prefix = DSK
IClass :
{A4E7EDDA-E575-4252-9D6B-4195D48BB865}
Atapi!CPCIDisk::CPCIDisk> device count(1)
Atapi!CDisk::IsDevicePresent> Device 1 is not present; Error register(0xff)
Atapi!CDisk::InitController> Device did not respond to identify
Atapi!CDisk::Init> Failed to initialize device
Atapi!CPCIDisk::~CPCIDisk> device count(0)
DEVICE!LaunchDevice: Init() failed for device 0x00052640
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix DSK, index 1, dll
atapi.dll, context 0x802d030