This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TI MSP-430FETUIF and VirtualBox on the same machine => Bluescreen

Other Parts Discussed in Thread: TUSB3410

Hello,

I am working on an embedded software project where I need to support multiple targets, one of which is an MSP430 which we'd like to use with IAR Workbench, and another is only supported with a Linux based toolchain. Thus, I have a system with IAR and VirtualBox installed.

Now, if both VirtualBox is running and the FET is plugged in, the system crashes with a bluescreen, so that I have to unplug the FET before starting the VM, or stop the VM before connecting the FET.

Running WinDbg on the crash dump generated by the kernel gives

nt!ZwYieldExecution+0x1bb6
nt!KeSetEvent+0x5a
nt!IoReleaseRemoveLockEx+0xb9
VBoxUSBMon+0x757
nt!IoBuildPartialMdl+0xed
wdf01000+0x126b9
wdf01000+0xdcb5
umpusbvista+0x9692
umpusbvista+0x26e5
umpusbvista+0x27ac
umpusbvista+0x98d1
wdf01000+0x4a2b4
wdf01000+0x49d81
wdf01000+0x4abb2
wdf01000+0x4b5bb
wdf01000+0x53d3a
nt!IoGetRequestorSessionId+0x219
nt!IoCancelIrp+0x120
usbhub+0x5e0d
usbhub+0x68ec

The exception reason given is a NULL pointer dereference. It is rather difficult for me to tell which module is at fault here, as the crash happens inside the VirtualBox USB filter driver (which is configured to ignore the FET), but while accessing data structures that, to my knowledge, are provided by the FET driver. So either the FET driver incorrectly leaves out a required member, and Windows silently ignores that error while VBox stumbles over it, or VBox is not properly verifying that a certain pointer or handle is really initialized before using it. Either way, it'd be good to establish what is happening here, so that the problem can be fixed.

The issue can be reproduced with the current umpusbvista driver on both XP and Windows 7, 32 or 64 bit, with current VirtualBox.

  • Hello Simon

     

    Trying different scenarios I have found that the issue occurs only when you have connected the MSP-FETU430IF (with or without drivers) to the PC during the Oracle VM VirtualBox installation.

     

    Taking a look in the memory dump that you provide to the Oracle VM community (http://www.virtualbox.org/ticket/5327) I can see that the mention to our driver is only made because the symbols are not loaded; however the system crash points to VBox drivers (VBoxUSBMon.sys). Please see the log below:

     

    BugCheck 1000000A, {16, 1c, 0, 80502e9a}

     

    ***** Kernel symbols are WRONG. Please fix symbols to do analysis.

     

    Unable to load image VBoxUSBMon.sys, Win32 error 2

    *** WARNING: Unable to verify timestamp for VBoxUSBMon.sys

    *** ERROR: Module load completed but symbols could not be loaded for VBoxUSBMon.sys

    Unable to load image wdf01000.sys, Win32 error 2

    *** WARNING: Unable to verify timestamp for wdf01000.sys

    *** ERROR: Module load completed but symbols could not be loaded for wdf01000.sys

    Unable to load image umpusbvista.sys, Win32 error 2

    *** WARNING: Unable to verify timestamp for umpusbvista.sys

    *** ERROR: Module load completed but symbols could not be loaded for umpusbvista.sys

    Unable to load image usbhub.sys, Win32 error 2

    *** WARNING: Unable to verify timestamp for usbhub.sys

    *** ERROR: Module load completed but symbols could not be loaded for usbhub.sys

    Unable to load image serenum.sys, Win32 error 2

    *** WARNING: Unable to verify timestamp for serenum.sys

    *** ERROR: Module load completed but symbols could not be loaded for serenum.sys

    Probably caused by : VBoxUSBMon.sys ( VBoxUSBMon+757 )

     

    I believe that this crash is produced by the VBox drivers. In fact, in the same post, someone is having this issue but with a USB-modem that has nothing to do with our TUSB3410 device.

     

    Finally I want to emphasize that the TUSB3410 driver is not supported on Virtual Machines, so if VBox utility is trying to load our driver I wouldn’t be surprised that this might result on an unexpected behavior.

     

    I would definitely recommend the customer to work this issue with VBox owners and would suggest you, that you try installing Oracle’s VM VirtualBox without the MSP-FETU430IF and verify the installation is correct. After that, you can plug the device and execute the Oracle VM VirtualBox application.

               

     

    Regards,

    Roberto.

  • Roberto Diaz said:

    Trying different scenarios I have found that the issue occurs only when you have connected the MSP-FETU430IF (with or without drivers) to the PC during the Oracle VM VirtualBox installation.

    I'm afraid this is not what I see -- the crash occurs every time I start up VBox while the debugger is attached, or connect the debugger while VBox is running.

    Roberto Diaz said:
    Taking a look in the memory dump that you provide to the Oracle VM community (http://www.virtualbox.org/ticket/5327) I can see that the mention to our driver is only made because the symbols are not loaded; however the system crash points to VBox drivers (VBoxUSBMon.sys).

     

    The module that ultimately dereferences the NULL pointer is VBoxUSBMon, correct. What I'm unsure about is whether the umpusbvista driver should have initialized that pointer, or if the VBox USB Monitor is wrong in not checking it before use. From a stability POV, of course my answer would be "both", however I'd be happy if at least one of the places "cooperating" in this crash were fixed, and TI is in a better position to verify that the bug indeed exists.

     

    Roberto Diaz said:

    I believe that this crash is produced by the VBox drivers. In fact, in the same post, someone is having this issue but with a USB-modem that has nothing to do with our TUSB3410 device.

    If that were the case for ten different devices, then I'd absolutely agree here -- however so far, only two drivers seem to have issues here, which suggests to me that the vast majority of drivers does indeed initialize the field in question (if I interpret the data correctly, this is about a Remove Lock, i.e. related to the "remove this device safely" dialog).

    Roberto Diaz said:
    Finally I want to emphasize that the TUSB3410 driver is not supported on Virtual Machines, so if VBox utility is trying to load our driver I wouldn’t be surprised that this might result on an unexpected behavior.

     

    I'm running the driver on the host system, so there is no emulated hardware involved here. VBox checks upon device insertion whether this is a device that should be forwarded into a VM (it is not), so it registers a driver that sits "on top" in the USB stack.

     

    Roberto Diaz said:
    I would definitely recommend the customer to work this issue with VBox owners and would suggest you, that you try installing Oracle’s VM VirtualBox without the MSP-FETU430IF and verify the installation is correct. After that, you can plug the device and execute the Oracle VM VirtualBox application.

    I've installed VirtualBox first on the machine I'm currently sitting at, and keep getting the same results. I'd love to take this up with the VBox team, however it will be difficult to reproduce the issue there, as they do not have access to the necessary hardware.

    Thanks,

       Simon