Hello,
I read a lot of articles about the GEODE ATAPI DMA problems under Windows CE
4.2. Because of the fact it did not work properly for me I had turned off
the DMA feature (Using the SETTINGS registrykey). Now I have created my first
Windows CE 5.0 image for my GEODE platform. If I enable the DMA mode, my
Windows CE image boots without any problems. But sometimes it happens that
file writting or reading creates an error. So my first thought was: DMA
troubles.
These are my settings:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\GeodeIDE]
"IClass"=multi_sz:"{CDDC3621-3512-4b3f-BB6F-B4DD5E061795}"
"Prefix"="IDE"
"Dll"="atapi.dll"
"Order"=dword:2
"Class"=dword:01
"SubClass"=dword:01
"VendorID"=dword:1078
"ConfigEntry"="GenericConfig" ; PCI configuration entry point
"Legacy"=dword:01 ; legacy, use Irq for primary and Irq+1 for
secondary
"Irq"=dword:0E ; 14
"SysIntr"=dword:00 ; SysIntr not specified
"DMAAlignment"=dword:10 ; default DMA alignment
"SoftResetTimeout"=dword:03 ; ATA/ATAPI spec defines 31s ceiling; this
is too long
"StatusPollCycles"=dword:100 ; Status register DRQ/BSY polling; 256 poll
cycles
"StatusPollsPerCycle"=dword:20 ; Status register DRQ/BSY polling; 32 polls
per cycle
"StatusPollCyclePause"=dword:05 ; Status register DRQ/BSY polling; 5
milliseconds between poll cycles
"IsrDll"="" ; not required
; "IsrHandler"="" ; not required
"RegisterStride"=dword:01 ; ATA register stride; register block is
contiguous
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\GeodeIDE\Device0]
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Prefix"="DSK"
"Dll"="atapi.dll"
"InterruptDriven"=dword:01 ; enable interrupt driven I/O
"DMA"=dword:01 ; enable DMA
"DoubleBufferSize"=dword:10000 ; 128 sector (65536 byte) double buffer
"DrqDataBlockSize"=dword:200 ; 1 sector (512 byte) DRQ data block
"WriteCache"=dword:01 ; enable on-disk write cache
"LookAhead"=dword:01 ; enable on-disk look-ahead
"DeviceId"=dword:00 ; device 0, i.e., primary master
"TransferMode"=dword:20 ; MULTI WORD DMA
Can somebody help?
Regards Peter