Bootstrap Loader: Difference between revisions

From OpenGK
No edit summary
 
(5 intermediate revisions by 3 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 [[K-Line]] per [[Siemens 5WY 2 Connector Pinout|ECU pinout]]
# Connect ECU pins 3, 14, 21 and 22 to +12V.
# Ground the BOOT pin<ref name=":0">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</ref>
# Connect [[K-Line]] per [[Siemens 5WY 2 Connector Pinout|ECU pinout.]]
# Connect power to the ECU
# Pull down the BOOT pin to Ground through a 10kΩ resistor. (Most V6 ECU's have the resistor onboard).
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher
# Connect power and ground to the ECU.
# 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
# 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 470ohm 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]].
# Ground the BOOT pin<ref name=":0" />
#Attach a 470Ω resistor on the [[W-Line|W-Line<small>(? citation needed)</small>]].
# Connect power to the ECU
#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]].
# ECU is now ready for BSL input - you can press any button in the BSL tab in GKFlasher
# Pull down the BOOT pin to Ground through a 10kΩ resistor.
# 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
# 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.

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.