Part Number: LAUNCHXL-F2800157
Other Parts Discussed in Thread: TMS320F2800157, C2000WARE
Hello Team,
I am currently working on implementing a software-controlled firmware update mechanism on the TMS320F2800157 (C2000) device using the approach described in the TI application report SPRACN1 (SCI boot-based firmware update using GPIO-controlled boot selection).
While the current approach works for normal firmware update flow, I have concerns regarding robustness and recovery in power failure scenarios.
Current Implementation
- Device: TMS320F2800157
- Boot configuration: Custom boot via OTP using GPIO (similar to SPRACN1)
- Update method: SCI boot + serial flash programmer
- Flow:
- Application sets GPIO high → reset
- Boot ROM enters SCI boot
- Kernel downloads and programs application
Concern
If power loss occurs during flash erase/write, the system may:
- Boot again into Flash mode (GPIO low)
- But Flash may contain corrupted/partial application
- Resulting in invalid execution or non-recoverable state
This makes the current approach non-fail-safe for production use
Requirement
I would like to enhance the design with robust firmware update mechanisms, including:
1. Dual Image Support
- A/B application partitions in Flash
- Safe update without overwriting running image
- Rollback capability on failure
2. Flash-Based Update Flag
- Persistent flag stored in Flash indicating:
- Update in progress
- Update successful
- Boot decision based on this flag instead of only GPIO
3. Firmware Validation
- CRC / checksum verification before jump to application
- Detection of corrupted image
- Automatic fallback to update mode
Specific Questions
-
Does TI provide any reference examples or demo projects for:
- Dual image firmware update on F2800157 (or similar devices)
- Flash flag-based boot flow control
- Firmware validation (CRC/checksum)
-
Are there any C2000Ware examples / libraries / APIs for:
- Image integrity verification
- Flash metadata handling (flags / headers)
-
Is there any bootloader reference implementation that supports:
- Fail-safe firmware update
- Recovery after power interruption
-
Are there any recommended best practices for:
- Flash partitioning for dual image
- Reliable firmware update over SCI
- Handling incomplete firmware updates
Additional Context
- Use case: Production system requiring reliable firmware update
- No JTAG access during field updates
- Requirement: Fail-safe recovery from power failure during update
Expected Outcome
I am looking for:
- Reference implementations (if available)
- Application notes or internal documentation
- Recommended architecture/design approach
Thank you for your support.
Regards,
Kamarudheen Md