Bootstrap Loader

From OpenGK
Revision as of 17:01, 25 June 2026 by Dante383 (talk | contribs)
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. Ground the BOOT pin[1]
  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
  5. Once communication has been estabilished, unground the BOOT pin. It is part of the addressing pins and it will cause memory to be corrupted if left grounded

Immo ECUs

  1. Connect K-Line per ECU pinout
  2. Attach a 470ohm 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. Ground the BOOT pin[1]
  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
  6. Once communication has been estabilished, unground the BOOT pin. It is part of the addressing pins and it will cause memory to be corrupted if left grounded
  1. 1.0 1.1 Some sources believe a 10K resistor should be used to ground the BOOT pin, but it has been successfully tested with just a simple jumper wire