Add a new USB class (0xFF, subclass 0x02) for trace data. In brom.cpp :
A automatically downgrades from Full to PC-Only when the host cannot keep up. 5. Implementation Example: Extending MTK (MediaTek) SP Flash Tool 5.1 Current Limitations MediaTek’s BootROM (Preloader v2) already includes a partial trace capability via SEND_DA_EX command with debug flag 0x80, but it only dumps a fixed 256-byte register file on crash. No continuous streaming. 5.2 RTM Modifications Step 1 – Custom Download Agent (DA): Patch the original DA binary ( MTK_AllInOne_DA.bin ) to include a background thread:
RTM default recommendation: Fallback UART + USB bulk when available. | Mode | Data Generated | Bandwidth Requirement | Use Case | |-------|----------------|------------------------|------------| | PC-Only | 4 bytes per instruction | ~200 KB/s (at 100 MHz, 1:1000 sampling) | Locating infinite loops | | PC + Load/Store Address | 12–16 bytes per memory op | ~5 MB/s | Detecting wild pointers | | Register Delta | 2–8 bytes per taken branch | ~1 MB/s | Tracking boot state machine | | Full Execution Trace | All of above | ~50 MB/s (impractical for UART) | Post-mortem analysis with USB |