Having just had occasion to try and use my JTAGICEmkII with AS6 running in a Windows XP virtual machine in VirtualBox I was told that it needed a firmware upgrade. The problem was that part way through the process I'd hear the Windows bong-bing noise alerting to the fact that the USB device had disconnected. If I went to the Devices-USB Devices menus of the Virtual Machine and re-ticked the JTAGICE to reconnect it I then just ended up with the AS6 firmware upgrader saying the upgrade had failed.
However after a while I realised what's going on. The JTAGICEmkII can actually appear as TWO different USB devices. One called "Atmel JTAGICE mkII" and one called "Atmel AVRBLDR" which is clearly the bootloader in the ICE that is used to apply the firmware update.
So what I ended up doing was applied two USB filter rules to the VM as shown in the picture below. Using a filter means that if this device ever enumerates to the host (Linux in my case) it is immediately captured and connected to the virtual machine.
With these two filter rules in place the ICE firmware update worked without a hitch and the rules mean that in future if AS6 ever causes the ICE to do a USB reset then it will immediately re-connect back (as would happen on a stand-alone Windows machine).