fw-upload.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. This document describes how to upload the cx2341x firmware to the card.
  2. How to find
  3. ===========
  4. See the web pages of the various projects that uses this chip for information
  5. on how to obtain the firmware.
  6. The firmware stored in a Windows driver can be detected as follows:
  7. - Each firmware image is 256k bytes.
  8. - The 1st 32-bit word of the Encoder image is 0x0000da7
  9. - The 1st 32-bit word of the Decoder image is 0x00003a7
  10. - The 2nd 32-bit word of both images is 0xaa55bb66
  11. How to load
  12. ===========
  13. - Issue the FWapi command to stop the encoder if it is running. Wait for the
  14. command to complete.
  15. - Issue the FWapi command to stop the decoder if it is running. Wait for the
  16. command to complete.
  17. - Issue the I2C command to the digitizer to stop emitting VSYNC events.
  18. - Issue the FWapi command to halt the encoder's firmware.
  19. - Sleep for 10ms.
  20. - Issue the FWapi command to halt the decoder's firmware.
  21. - Sleep for 10ms.
  22. - Write 0x00000000 to register 0x2800 to stop the Video Display Module.
  23. - Write 0x00000005 to register 0x2D00 to stop the AO (audio output?).
  24. - Write 0x00000000 to register 0xA064 to ping? the APU.
  25. - Write 0xFFFFFFFE to register 0x9058 to stop the VPU.
  26. - Write 0xFFFFFFFF to register 0x9054 to reset the HW blocks.
  27. - Write 0x00000001 to register 0x9050 to stop the SPU.
  28. - Sleep for 10ms.
  29. - Write 0x0000001A to register 0x07FC to init the Encoder SDRAM's pre-charge.
  30. - Write 0x80000640 to register 0x07F8 to init the Encoder SDRAM's refresh to 1us.
  31. - Write 0x0000001A to register 0x08FC to init the Decoder SDRAM's pre-charge.
  32. - Write 0x80000640 to register 0x08F8 to init the Decoder SDRAM's refresh to 1us.
  33. - Sleep for 512ms. (600ms is recommended)
  34. - Transfer the encoder's firmware image to offset 0 in Encoder memory space.
  35. - Transfer the decoder's firmware image to offset 0 in Decoder memory space.
  36. - Use a read-modify-write operation to Clear bit 0 of register 0x9050 to
  37. re-enable the SPU.
  38. - Sleep for 1 second.
  39. - Use a read-modify-write operation to Clear bits 3 and 0 of register 0x9058
  40. to re-enable the VPU.
  41. - Sleep for 1 second.
  42. - Issue status API commands to both firmware images to verify.