The system stops responding during disk input/output on a MIPS-based platform (830521)
The information in this article applies to:
- Microsoft Windows CE .NET 4.2
SYMPTOMSWhile you are doing disk input/output (I/O), the system stops responding on a MIPS-based platform.
Note This problem occurs only when the advanced technology attachment packet interface (ATAPI) driver is set to Direct Memory Access (DMA) mode.CAUSEThis problem occurs because the physical addresses for the DMA pages are not calculated correctly on MIPS-based platforms.RESOLUTIONThis problem has been resolved in public code. Line 495 of the following file has been changed: <ROOT>\WINCE42\Public\Common\Oak\Drivers\Block\ATAPI\Atapipci.cpp The original code:
m_pPRD[iPage].physAddr = (m_pPFNs[iPFN] >> UserKInfo[KINX_PFN_SHIFT]) + ((DWORD)pBuffer & dwPageMask);
The updated code:
m_pPRD[iPage].physAddr = (m_pPFNs[iPFN] << UserKInfo[KINX_PFN_SHIFT]) + ((DWORD)pBuffer & dwPageMask);
WORKAROUNDIf you decide not to make changes, and if you use a MIPS-based platform, you must set the ATAPI driver to Program Input/Output (PIO) mode. Do not use DMA mode.
Modification Type: | Major | Last Reviewed: | 5/10/2004 |
---|
Keywords: | kbCodeSnippet kbceARMV4I kbceARMV4 kbCEx86 kbceMIPSIV kbceMIPSII kbprb KB830521 kbAudOEM kbAudDeveloper |
---|
|