Bootstrap Loader

From OpenGK
Revision as of 08:33, 5 July 2026 by Ardamir (talk | contribs) (Fixed the part about grounding the BOOT pin. Puling pins hard to ground without a pulldown resistor is dangerous and may cause the I/O circuitry inside the MCU to burn up since it's essentially shorted.)
This article is a stub. You can help by contributing your knowledge of the Tiburon platform

Bootstrap Loader (BSL) on the C166 MCUs allows to execute code in memory, bypassing code stored on the EEPROM.

This is often used to flash regions of memory inaccessible through OBD2, such as the bootloader. Most notable case would be removing the immobiliser, or performing a ca663056->ca663057 upgrade, which requires changing the bootloader.

To enter BSL mode, you must ground the BOOT pin and then feed power to the ECU, which will make the CPU wait for input over serial port instead of executing code stored on the flash memory. Then, typically a small loader is uploaded which later faciliates upload and execution of the proper BSL program, which will offer ways to manipulate memory.

GKFlasher supports BSL mode

Entering the BSL mode

BOOT pin

Non-immo ECUs

  1. Connect K-Line per ECU pinout.
  2. Pull down the BOOT pin to Ground through a 10kΩ resistor.
  3. Connect power to the ECU.
  4. ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.

Immo ECUs

  1. Connect K-Line per ECU pinout
  2. Attach a 470Ω resistor on the W-Line(? citation needed) and splice K-Line into K-Line on the ECU header - if you're using a Y-split OBD2 cable, that'd be pin 9.
  3. Pull down the BOOT pin to Ground through a 10kΩ resistor.
  4. Connect power to the ECU.
  5. ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.