Siemens GS20

From MS4X Wiki
Revision as of 17:20, 29 December 2021 by Sda2 (talk | contribs) (→‎Memory Layout)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Siemens GS20 transmission control unit (TCU) uses a Bosch branded Infineon C167CR_SR CPU in combination with a 4 megabit AMD AM29F400BB flash memory.

This TCU controls the General Motors 5L40E 5 speed automatic transmission, or in BMW speak the A5S 360R.

Said gearbox came with the M57 six cylinder diesel engine, and was also put into some N42 powered cars and most important, the E46 330i ZHP.

Memory Layout

The memory layout can be seperated into three major sections, first the bootloader, followed by the calibration data and then the actual programm code.

See this table for binary data areas:

Start End Section Size
00000 0FFFF Bootloader Code 64 kByte
10000 1FFFF Calibration Data 64 kByte
20000 2FFFF Program Code 256 kByte
30000 3FFFF
40000 4FFFF
50000 5FFFF
60000 6FFFF Unused Flash Area 128 kByte
70000 7FFFF

Its interesting that a Siemens unit actually follows the same firmware layout usually known from Bosch units with a C167 from that era.

Codewise it is therefor more similar to a Bosch ME7 ECU than to the Siemens MS42 or MS43. Axises and item names are also Bosch-style instead of Siemens.


Checksums are used to verify that the data written to the ROM has not become corrupt.

The checksum routines are shared with the SMG II transmission control unit used in the E46 M3.

Checksum correction tool: Siemens TCU GS20 SMGII Checksum Corrector.rar