Author: Anshul Gulati Version: *D
Question: How to prevent field firmware update over CC interface for power adapters?
Answer: Several PD controllers from Cypress support the firmware update over the CC lines. The intention of this feature is to enable firmware updates during development and manufacturing. It is recommended that this feature be disabled before releasing the product out in the market. This ensures that any unauthorized firmware cannot be updated over CC-line in the field. The steps to disable the firmware update feature using the EZ-PD configuration utility is shown below
Step 1: Change the “Enable firmware update” in the “Device Parameters” tab to “No” as shown in Figure 1
Figure 1: Device Parameters Tab
Step 2: Check if there is an SVID 0 tab under the “SVID Configuration” tab. If yes; select SVID 0 and then click on “Remove” as shown in Figure 2. Skip this step if this field is not present.
Figure 2: SVID Configuration Tab
Step 3: Save the xml file. Click on “File>Save As” or the “Save As” shortcut to save the file. A window will pop-up asking for a confirmation to disable this feature. Click on “Yes” to continue saving the xml file.
Figure 3: Pop-up window to confirm the disabling of firmware update feature
Step 4: Program the device with the firmware update disabled configuration
Configure the device with the xml saved in the step 3. Click on “Tools>Configure Device” to configure the device. A pop-up window asking for confirmation to proceed will appear. Click on “Yes” to continue.
This is an irreversible step, once the device is configured in this mode, it can only be programmed via the SWD interface. It would not be possible to access the device for programming via the CC interface.
Figure 4: Configure Device Pop-up window
After the device has been configured, a pop-up message appears that the “Firmware/Configuration upgrade not completed”. This is an expected behavior since the firmware update has been disabled and the device will not respond to “GET_DISCOVER_SVID”. It is important to note that the configuration upgrade step should be 90% complete as shown in Figure 5.
Figure 5: Configure Device Pop-up window
An alternative method of programming the device is by importing the config.c file to the project and using it to generate a new hex file with the firmware update feature disabled.
In the step 3, when the configuration is saved, a C source file containing the configuration data in the form of an array is generated. Rename this source file to config.c.
Figure 6: Files generated by the Save As option of EZ-PD Configuration Utility
Replace the cofing.c file in your project with the new config.c file as shown in Figure 7 below. The config.c file is in the common folder.
Figure 7: config.c file in the common folder of the projects repository
Open the project in PSoC Creator; then click on “Build>Clean and Build” to generate the hex file with the firmware update feature disabled.
Figure 8: Clean and Build the project to generate a new hex file
This hex file can be used for programming via the SWD interface.
Step 5: Read from device, Configure Device and Firmware Update functions will not work after the firmware update feature is disabled. The EZ-PD configuration utility tool will be able to detect the device but will not be able to select it. This proves that the firmware update feature has been successfully disabled.
Figure 9: Firmware Update window