The final fix on my unit was exactly what platinum95 described:
- both T-CON SoCs had FW1 sector 0 completely zeroed
- FW1/FW2 bodies were intact and byte-identical
- both SoCs were kept halted
- each SoC’s own valid FW2 512-byte header was copied back to its FW1 sector 0
- both writes were read back and verified
- power was cut while both SoCs were still halted
- on the next cold boot both came up through FW1 normally
After that the mainboard UART changed from endless:
SecDrvTcon_ReadPowerOnStatus: 00 00 00 00
to:
SecDrvTcon_ReadPowerOnStatus: AB AB AB AB
followed by a normal T-CON boot/status sequence and the display came back.
It’s now survived multiple restarts/cold boots without re-blanking the FW1 header.
One thing confirmed during the debugging is that the firmware itself deliberately zeros the FW1 header after certain failed handshake paths, so the actual underlying recovery design is still a bit scary. For now though, the repair appears stable.
Huge thanks to platinum95 for the SWD pinout, OpenOCD configs/scripts and basically mapping out the whole path first. Without that this would probably still be a dead monitor.
I’ve got logs, RAM/eMMC findings and some photos if anyone else runs into the same G93SC failure and needs them.
Leave a comment: