Need firmware for CYPD4226 Lenovo Yoga 930

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
SaBh_294166
Level 3
Level 3
25 replies posted 10 replies posted 10 questions asked

Hello. Further to the following thread,

Lenovo yoga c930 NM-B741 Doesn't boot or charge USB type-C controller issue. - Badcaps Forums

Attempting to assist others in a repair of this logic board. The CYPD4226 controller is available from authorized distributors.

Q1: Is the USB Type C controller able to replace the original component on this Lenovo logic board? Understand that there is a factory I2C bootloader but is there custom firmware onboard from Lenovo that may hinder this repair?

Q2: Can the firmware be read out of a similar logic board?

Q3: Read on another thread in this forum that Lenovo offers such firmware. Lenovo was useless on this case and did not want to assist further. We can attempt to reverse engineer the details for the public review but wish to understand if the CYPD4226 is a protected flash memory or not. Which tool can allow us to R/W to this USB Type C controller over I2C? Totalphase tools?

The owner is sourcing a 'blank' CYPD4226 device for this replacement.

In hindsight, the CCx lines must have been zapped by the high Vbus rail after a PD contract was enabled. Very common but the device should have had protection against this issue. We reported the same quirk ages ago to Via Semiconductor as I almost burnt my hands with the spec. Nasty and still evolving cases. Even after investing close to $1k USD on Cypress tools, your kits claimed to support 100W of negotiation yet the kit featured traces thinner than my hair. Apparently no one cross checked the reference designs.

 

 

0 Likes
1 Solution
OlEr_1999891
Level 5
Level 5
50 replies posted 25 replies posted 25 sign-ins

Hi! You really have worked a lot there to get your Lenovo running 🙂 We have been using CYPD4226 for a while in our products. 

Some thoughts based on reading your forum, maybe you already know some of this:

- It looked like the VCONN 5V over-current burned. In the CYPD4226 that 5V is forwarded into the CYPD4226 and then enabled on either CC1 or CC2 depending on orientation and if the laptop is providing the VCONN power. So Vconn_V5_P2/Vconn_V5_P1 is power INPUT. If you have no 5V power at all, the problem must be higher up in the laptops 5V power supply. When you mentioned that "the laptop didn't start" kind of indicate a bigger problem than the CYPD4226 IC. There is a theoretical chance that the BIOS halts if the CYPD4226 is not there, but I don't think it is likely.

- CYPD4226 is tricky to get, but looks like Mouser has 23 pcs. https://www.mouser.se/ProductDetail/Cypress-Semiconductor/CYPD4226-40LQXI?qs=HXFqYaX1Q2yKKDLYlWZxQA%... Don't try CYPD4225, Lenovo FW updater will not like that.

- Loading FW will be tricky since Lenovo have most likely some changes. The chips comes without FW. If you could load the deafult FW you might then be able to update it to Lenovos version from within the laptop (not sure if this is possible, maybe part of a laptop-wide firmware update and it might be encrypted). The Lenovo BIOS talks to the CYPD4226 via the HPD I2C pins and FW is can be updated that way. However, to load the FW the first time you would need to access the SWD pins and have a programmer. (default Pin SWD_IO (1) + SWD_CLK (2) + XRES (10). If you feel for getting down this road the cheapest way to get a Cypress programmer is to buy their PSOC dev-cards ($10) and break of the programmer which is attached to it. It looked like on your picture that PIN 1 and PIN 2 had some programming "pads" exposed, might be used by an automated programmer during production.

The default firmware is part of the EZ-PD SDK (C:\Program Files (x86)\Cypress\EZ-PD CCGx Host SDK\CCGx\Firmware\binaries\CYPD4226-40LQXI_notebook) and loads via the PSoC Programmer windows tool.

Note that the FW can be modified at two levels: Configuration setting via EZ-PD Configuration Utility. Make changes, compile a new FW and download. Or start coding. Lenovo has most likely made changes using the configuration tool, but might also have made other code changes. There is no chance I think that you get it to work with Cypress default FW other than startup and start the I2C interface to allow the BIOS to program it. There is still a chance that the default FW will burn something if Lenovo has changed some critical pin mappings.

Good luck!

View solution in original post

1 Reply
OlEr_1999891
Level 5
Level 5
50 replies posted 25 replies posted 25 sign-ins

Hi! You really have worked a lot there to get your Lenovo running 🙂 We have been using CYPD4226 for a while in our products. 

Some thoughts based on reading your forum, maybe you already know some of this:

- It looked like the VCONN 5V over-current burned. In the CYPD4226 that 5V is forwarded into the CYPD4226 and then enabled on either CC1 or CC2 depending on orientation and if the laptop is providing the VCONN power. So Vconn_V5_P2/Vconn_V5_P1 is power INPUT. If you have no 5V power at all, the problem must be higher up in the laptops 5V power supply. When you mentioned that "the laptop didn't start" kind of indicate a bigger problem than the CYPD4226 IC. There is a theoretical chance that the BIOS halts if the CYPD4226 is not there, but I don't think it is likely.

- CYPD4226 is tricky to get, but looks like Mouser has 23 pcs. https://www.mouser.se/ProductDetail/Cypress-Semiconductor/CYPD4226-40LQXI?qs=HXFqYaX1Q2yKKDLYlWZxQA%... Don't try CYPD4225, Lenovo FW updater will not like that.

- Loading FW will be tricky since Lenovo have most likely some changes. The chips comes without FW. If you could load the deafult FW you might then be able to update it to Lenovos version from within the laptop (not sure if this is possible, maybe part of a laptop-wide firmware update and it might be encrypted). The Lenovo BIOS talks to the CYPD4226 via the HPD I2C pins and FW is can be updated that way. However, to load the FW the first time you would need to access the SWD pins and have a programmer. (default Pin SWD_IO (1) + SWD_CLK (2) + XRES (10). If you feel for getting down this road the cheapest way to get a Cypress programmer is to buy their PSOC dev-cards ($10) and break of the programmer which is attached to it. It looked like on your picture that PIN 1 and PIN 2 had some programming "pads" exposed, might be used by an automated programmer during production.

The default firmware is part of the EZ-PD SDK (C:\Program Files (x86)\Cypress\EZ-PD CCGx Host SDK\CCGx\Firmware\binaries\CYPD4226-40LQXI_notebook) and loads via the PSoC Programmer windows tool.

Note that the FW can be modified at two levels: Configuration setting via EZ-PD Configuration Utility. Make changes, compile a new FW and download. Or start coding. Lenovo has most likely made changes using the configuration tool, but might also have made other code changes. There is no chance I think that you get it to work with Cypress default FW other than startup and start the I2C interface to allow the BIOS to program it. There is still a chance that the default FW will burn something if Lenovo has changed some critical pin mappings.

Good luck!