今天把Windows CE VMWare虚拟机配置文件升级到了VMWare 6.5,发现启动后无法识别硬盘和网卡。做了个Debug版内核调试,发现问题所在:VMWare 6.5 PCI需要的IO空间为0xE080,大于VMCEPC BSP里默认设置0x6000:
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/PCI]
"IoLen" =dword:6000
改成"IoLen" =dword:F000后网卡可以工作,但是硬盘还是认不出来,调试信息显示分配IO空间失败。无奈,只好改虚拟机配置文件MS-DOS.vmx,把pciBridge4-7禁止掉,反正也用不着:
pciBridge4.present = "FALSE"
pciBridge5.present = "FALSE"
pciBridge6.present = "FALSE"
pciBridge7.present = "FALSE"
VMWare workstation 6.5支持ehci,但看起来CE的ehci driver不能支持它,原因不清楚。相关的调试信息如下:
0x8f535e0c: !!!interrupt!!!! on frame index + 1 = 0x00000401, USBSTS = 0x0001
0x8f53dcbc: CPipe::CheckForDoneTransfersThread - warning! Called when no pipes were busy
以后有时间慢慢研究。VMWare EHC的Vendor ID=0x15AD, Vendor ID=0x0770。