Bootstrap Loader: Difference between revisions

From OpenGK
(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.)
 
(3 intermediate revisions by 2 users not shown)
Line 5: Line 5:
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.
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.  
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 facilitates upload and execution of the proper BSL program, which will offer ways to manipulate memory.  


[https://github.com/dante383/gkflasher GKFlasher] supports BSL mode
[https://github.com/dante383/gkflasher GKFlasher] supports BSL mode.


== Entering the BSL mode ==
== Entering BSL mode (2.0L) ==
[[File:Boot pin ziome3eg.png|thumb|BOOT pin]]
[[File:Boot pin ziome3eg.png|thumb|BOOT pin]]


=== Non-immo ECUs ===
=== Non-immo ECUs ===


# Connect ECU pins 3, 14, 21 and 22 to +12V.
# Connect [[K-Line]] per [[Siemens 5WY 2 Connector Pinout|ECU pinout.]]
# Connect [[K-Line]] per [[Siemens 5WY 2 Connector Pinout|ECU pinout.]]
# Pull down the BOOT pin to Ground through a 10kΩ resistor.
# Pull down the BOOT pin to Ground through a 10kΩ resistor. (Most V6 ECU's have the resistor onboard).  
# Connect power to the ECU.
# Connect power and ground to the ECU.
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.


=== Immo ECUs ===
=== Immo ECUs ===


# Connect K-Line per [[Siemens 5WY 2 Connector Pinout|ECU pinout]]
# Connect ECU pins 3, 14, 21 and 22 to +12V.
# [[File:Bsl pins dmg210.png|thumb]]Attach a 470Ω resistor on the [[W-Line|W-Line<small>(? citation needed)</small>]] and splice [[K-Line]] into [[K-Line]] on the ECU header - if you're using a Y-split OBD2 cable, that'd be [[Data link connector (OBD2)|pin 9]].
# Connect K-Line (pin 77) per [[Siemens 5WY 2 Connector Pinout|ECU pinout]].
#Attach a 470Ω resistor on the [[W-Line|W-Line<small>(? citation needed)</small>]].
#Splice [[K-Line]] into [[K-Line]] on the ECU header - if you're using a Y-split OBD2 cable, that'd be [[Data link connector (OBD2)|pin 9]].
# Pull down the BOOT pin to Ground through a 10kΩ resistor.
# Pull down the BOOT pin to Ground through a 10kΩ resistor.
# Connect power to the ECU.
# Connect power and ground to the ECU.
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.
[[File:Bsl pins dmg210.png|thumb]]If the method above does not work, try the following:
 
# Connect ECU pins 3, 14, 21 and 22 to +12V.
# Connect K-line (OBD pin 7) to W-Line on the ECU header (pin 47).
# Pull down the BOOT pin (pin 28 of the flash chip) to Ground through a 10kΩ resistor.
# Connect power and ground to the ECU.
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.

Latest revision as of 08:52, 6 July 2026

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 facilitates upload and execution of the proper BSL program, which will offer ways to manipulate memory.

GKFlasher supports BSL mode.

Entering BSL mode (2.0L)

BOOT pin

Non-immo ECUs

  1. Connect ECU pins 3, 14, 21 and 22 to +12V.
  2. Connect K-Line per ECU pinout.
  3. Pull down the BOOT pin to Ground through a 10kΩ resistor. (Most V6 ECU's have the resistor onboard).
  4. Connect power and ground to the ECU.
  5. ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.

Immo ECUs

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

If the method above does not work, try the following:

  1. Connect ECU pins 3, 14, 21 and 22 to +12V.
  2. Connect K-line (OBD pin 7) to W-Line on the ECU header (pin 47).
  3. Pull down the BOOT pin (pin 28 of the flash chip) to Ground through a 10kΩ resistor.
  4. Connect power and ground to the ECU.
  5. ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher.