- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
My USB controller's VR firmware corrupted itself all of a sudden, so I decided to reflash it. I tried reflashing oasisfirmware (gotten from HololensSensors.dll), which is usually what these HMD's come bundled with, on and on, but the firmware wasn't being written permanently, I would unplug the device and plug it back in, and it would be the bootloader all over again, so that's when I flashed the BootProgrammer, to see if it would be any useful (which was a very silly thing to do, it flashed permanently!) and now I basically can't even flash anymore with the CyControl.exe tool, it simply keeps displaying 'Bootloader is not running', which is obvious since well, I flashed the BootProgrammer. How do I go back to the bootloader, I have seen the docs and they mainly just say that I should set the PMODE using pins, but there's no pins on this board, and the BootProgrammer, I couldn't find any documentation on. Thanks, all I want is the bootloader back or a way to write firmware, somehow.
USB Controller chip is at the right, above 'REV:E'
Back of the board, chip at the left above 'CN601'
Please note that this board is from the VR1000 HP headset.
Solved! Go to Solution.
- Tags:
- hp
- mixed reality
- usb
- vr
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello IgBe_4789151,
Please try the following steps:
1.) Perform a control IN transfer as shown in image to verify the first two bytes are "43 59" in the EEPROM by sending vendor command "0xBB" (or "0xC3" for reading the contents of SPI FLASH if it exists):
2.) You need to re-write this "43 59" ( or "CY") with some random bytes to force the device to enumerate as a bootloader device as shown below using vendor command as "0xBA" for EEPROM (or "0xC2" for FLASH) by a control OUT transfer:
3.) Validate that the EEPROM (or FLASH) settings again using the step mentioned in 1.) as below:
4.) Power cycle (or reset) the device and you should see the "Cypress USB Bootloader Device" coming in the control center.
NOTE: As you said you want to reflash the oasisfirmware.img, after the device comes up as Bootloader device, you can directly program the oasisfirmware.img file to EEPROM or FLASH using the Control Center using Program > FX3 > I2C EEPROM or SPI FLASH and that will make the firmware get permanently flashed to the device.
Regards,
Yashwant
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's FX3 by the way. Posting here since I can't figure out how to edit the original post.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello IgBe_4789151,
Can you please share the screenshot of the control center application after plugging in the device?
If possible, can you please share the schematics of the board?
Can you please let me know whether there is an SPI FLASH or I2C EEPROM onboard?
I would need to know this in order to figure out the PMODE set for the device.
Regards,
Yashwant
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the prompt reply YashwantK_46
I don't have the schematics of the board, I could ask HP for them. I posted as much information as I could find.
Here's the screenshot:
Descriptor Info:
<DEVICE>
FriendlyName="Cypress FX3 USB BootProgrammer Device"
Manufacturer="Cypress"
Product="FX3"
SerialNumber=""
Configurations="1"
MaxPacketSize="512"
VendorID="04 B4"
ProductID="47 20"
Class="00h"
SubClass="00h"
Protocol="00h"
BcdDevice="00 00"
BcdUSB="03 10"
<BOS>
NumberOfDeviceCapability="02h"
DescriptorType="15"
DescriptorLength="5"
TotalLength="22"
<USB20 Device Extension>
DescriptorLength="7"
DescriptorType="16"
DeviceCapabilityType="2"
bmAttribute="641Eh"
</USB20 Device Extension>
<SUPERSPEED USB>
DescriptorLength="10"
DescriptorType="16"
DeviceCapabilityType="3"
FunctionalitySupporte="3"
bmAttribute="00h"
U1Device Exit Latency="0"
U2Device Exit Latency="00h"
</SUPERSPEED USB>
</BOS>
<CONFIGURATION>
Configuration="0"
ConfigurationValue="1"
Attributes="80h"
Interfaces="1"
DescriptorType="2"
DescriptorLength="9"
TotalLength="18"
MaxPower="50"
<INTERFACE>
Interface="0"
InterfaceNumber="0"
AltSetting="0"
Class="FFh"
Subclass="00h"
Protocol="0"
Endpoints="0"
DescriptorType="4"
DescriptorLength="9"
</INTERFACE>
</CONFIGURATION>
</DEVICE>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello IgBe_4789151,
Please try the following steps:
1.) Perform a control IN transfer as shown in image to verify the first two bytes are "43 59" in the EEPROM by sending vendor command "0xBB" (or "0xC3" for reading the contents of SPI FLASH if it exists):
2.) You need to re-write this "43 59" ( or "CY") with some random bytes to force the device to enumerate as a bootloader device as shown below using vendor command as "0xBA" for EEPROM (or "0xC2" for FLASH) by a control OUT transfer:
3.) Validate that the EEPROM (or FLASH) settings again using the step mentioned in 1.) as below:
4.) Power cycle (or reset) the device and you should see the "Cypress USB Bootloader Device" coming in the control center.
NOTE: As you said you want to reflash the oasisfirmware.img, after the device comes up as Bootloader device, you can directly program the oasisfirmware.img file to EEPROM or FLASH using the Control Center using Program > FX3 > I2C EEPROM or SPI FLASH and that will make the firmware get permanently flashed to the device.
Regards,
Yashwant
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks it worked, unbelievable lol