i.MX28, i.MX50, i.MX51, i.MX53 WCE 6 and WCE 7 USB BSP Issues

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX28, i.MX50, i.MX51, i.MX53 WCE 6 and WCE 7 USB BSP Issues

1,035 Views
markwilliams
Senior Contributor I

Hi,

This issue affects anyone using one of the above platforms and using USB.

I have noticed that in the Windows CE 6.0 BSP for the i.MX28 there is a clone of the Microsoft USB driver code at:

C:\WINCE600 Default\PLATFORM\COMMON\SRC\SOC\COMMON_FSL_V2_PDK1_9\MS\

This is the same code used in the Compact 7 BSP for the i.MX50, i.MX51 and i.MX53 at:

C:\WINCE700\platform\common\src\soc\COMMON_FSL_V3\MS\

The problem is that Microsoft has released a number of updates since this driver code was cloned from the original source which have therefore not been applied. Some of these updates are really important to fix memory stick issues (which we are having) and have made some significant changes to the original code.

FIX: An update that fixes several issues with USB functionality in Windows Embedded CE 6.0 is availa...

FIX: A "Data Abort" exception may occur when a USB storage device is attached to and then immediatel...

I need to understand why the BSP includes a clone of the Microsoft driver - what platform-specific changes are required?

I really need to use the latest Microsoft code and also apply the memory stick bug fixes listed here:

Discover the Windows Embedded Experience: Windows Embedded CE: USB memory stick fix

Can anyone help and let me know if I need to use the Freescale cloned driver source or if I can revert to the Microsoft code that is regularly updated?

Kind regards, Mark

Labels (5)
0 Kudos
2 Replies

624 Views
markwilliams
Senior Contributor I

Looking into this a bit further it seems some of the files are quite different for the Freescale implementation of the USB drivers. For example cdevice.cpp has some freescale-specific changes.

This makes it  a bit of a nightmare task to merge in the changes that Microsoft have made to the USB drivers. If Freescale based their USB driver on older buggy Microsoft code then it makes it difficult when Microsoft release updates to reliably merge in their fixes.

I would appreciate advice on how to proceed with this as this is going to affect anyone using WinCE and USB with the above platforms.

0 Kudos

624 Views
markwilliams
Senior Contributor I

Further to my old post above if you are using the Windows CE 6.0 or 7.0 BSP for the processors listed above then it is worth taking a look at the latest Compact 7.0 code for the USB disk support (usbdisk6.dll) here:

C:\WINCE700\public\common\oak\drivers\usb\class\storage\disk\SCSI2

Compare the disk.c and scsi2.c files with what you have in the MS folder in your BSP. There are some important changes that have been made in the public Compact 7 driver that have not been made in the CE 6.0 code or the BSP driver clones (CE 6.0 or WEC7).

The latest code has tidied up the original code significantly and added in some critical section locks to prevent deadlock situations that have caused our ports to lock up on random memory stick attach/detach.

The Compact 7 usbdisk6.dll driver (to date) seems to have a lot of improvements over the latest CE 6.0 driver.

Mark

0 Kudos