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.
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:
|00000||0FFFF||Bootloader Code||64 kByte|
|10000||1FFFF||Calibration Data||64 kByte|
|20000||2FFFF||Program Code||256 kByte|
|60000||6FFFF||Unused Flash Area||128 kByte|
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