Skip to content
Manual / Part II / 06 Memory Geometry & Axes
Chapter 06 · Compatibility, Memory Geometry & Fault Management

Memory Geometry & Axes

Flash mirroring, inline vs shared axes, and the 40-map cross-calibration offset table.

Calibration symbols
CWDLSAHK DSLGRAD KFFDLGO KFLDHBN KFLDIMX KFZWTVS TABGBTS TEMINVA WDKUGDN KFZWOP2 CWSAWE DSLOFS ESKONF KFLBTS +28 more
ECUs covered
06A906032DL 06A906032HS 06A906032JJ 06A906032LP 06A906032PL
Size
42 symbols · 2 diagrams · ~995 words

Flash mirroring, inline vs shared axes, and the 40-map cross-calibration offset table.

A common pitfall when importing DAMOS definitions into tuning software or writing binary patching scripts is misunderstanding descriptor-to-data offsets and segment mirroring.

6.1. Bosch Flash Address Mirroring#

In the Infineon C167CR-LM memory bus architecture:

  • Physical Flash ROM spans 0x000000 to 0x0FFFFF (1024 KB).
  • The C167 segment registers mirror this flash space into Segment 8: 0x800000 to 0x8FFFFF.
  • In DAMOS files, addresses are frequently declared with the mirrored prefix $81xxxx.
  • Conversion Rule: Strip the high nibble or mask with 0x0FFFFF to obtain the physical binary file offset: \text{File Offset} = \text{DAMOS Address} \land \text{0x0FFFFF} Example: DAMOS address $81208E \rightarrow File offset 0x01208E.

6.2. Inline vs. Shared Axes Geometry#

In Bosch ASAP2DAM definitions, an address in a /SPZ record points to the map descriptor block, not necessarily the raw data array:

  1. Inline Axes (Flagged with /FKX or /FKY): The map descriptor contains its own axis point counts and breakpoint values immediately preceding the map data:
    • 2D Curves with u16 axis: +34 byte offset (2\text{ bytes count} + 16 \times 2\text{ bytes axis} = 34). Example: LDRXN (Max Engine Load) descriptor at 0x1F054 \rightarrow Data starts at 0x1F076.
    • 3D Maps with 16x16 u16 axes: +68 byte offset (4\text{ bytes counts} + 16 \times 2 + 16 \times 2 = 68). Example: KFMIRL (Target Load) descriptor at 0x15088 \rightarrow Data starts at 0x150CC.
    • 3D Maps with 8x8 u8 axes: +18 byte offset (2\text{ bytes counts} + 8 \times 1 + 8 \times 1 = 18). Example: KFLDHBN descriptor at 0x1EE82 \rightarrow Data starts at 0x1EE94.
    • Mixed Axes (e.g. u8 X-axis, u16 Y-axis): +50 byte offset (2\text{ bytes count} + 16 \times 1 + 16 \times 2 = 50). Example: FKKVS descriptor at 0x1CAF2 \rightarrow Data starts at 0x1CB24.
  1. Shared / External Axes (No /FKX flag): The record references separate shared breakpoint records (/SPX, /SPY) located elsewhere in flash.
    • For shared axis maps, scalars, and direct lookup tables, the descriptor address is the exact data address (+0 offset).
    • Examples: KFZW (Ignition timing), CWSAWE (Anti-lag codeword), TEMIN (Min injection time), MLOFS (MAF offset).

6.3. Hex Dump Byte Comparison: Shared vs. Inline Axis Mechanics#

To prevent off-by-one or data-shift corruption when patching firmware or creating custom definition files, consider the following direct binary comparison of a Shared Axis map (KFZW) versus an Inline Axis map (KFMIRL) in h24bw05g / 06A906032LP:

1. Type 1: Shared Axis Map (KFZW — Base Ignition Timing, 12x16 Grid)#
  • Descriptor Address: 0x01208E
  • Data Array Address: 0x01208E (Offset: +0 bytes)
  • Data Format: 12 \times 16 = 192 unsigned 8-bit bytes (u8).
  • Conversion Formula: \text{Timing (°BTDC)} = (\text{Byte} \times 0.75) - 48.00
  • Axis Storage: Does not contain axis breakpoints in the table block. Points via /SPX to snm16 (Engine Speed axis at 0x011936) and via /SPY to rl12 (Engine Load axis at 0x011AE4).
Offset       00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F  ASCII
─────────────────────────────────────────────────────────────────────────────
0x0001208E:  48 48 48 49 4B 4E 52 56  5A 5E 62 66 69 6C 6F 72  HHHIKNRVZ^bfilor  <-- Row 0 (rl = 10%)
0x0001209E:  46 46 47 48 4A 4D 50 54  58 5C 60 64 67 6A 6D 70  FFGHJMPTX``dgjmp  <-- Row 1 (rl = 15%)
0x000120AE:  42 42 43 45 47 4B 4E 52  56 5A 5E 62 65 68 6B 6E  BBCGEKNRVZ^behkn  <-- Row 2 (rl = 20%)
...
0x0001214E:  20 20 21 23 25 28 2B 2F  33 37 3B 3F 43 46 4A 4E    !#%(+/37;?CFJN <-- Row 11 (rl = 115%)
2. Type 2: Inline Axis Map (KFMIRL — Target Engine Load, 16x16 Grid)#
  • Descriptor Address: 0x015088
    • 0x015088–0x015089: X-Axis Length = 0x0010 (16 elements, u16).
    • 0x01508A–0x01508B: Y-Axis Length = 0x0010 (16 elements, u16).
    • 0x01508C–0x0150AB: X-Axis Breakpoints (Pedal Angle %): 16 \times 2 = 32\text{ bytes} (u16, scale: \times 0.001526).
    • 0x0150AC–0x0150CB: Y-Axis Breakpoints (Engine Speed RPM): 16 \times 2 = 32\text{ bytes} (u16, scale: \times 0.25).
    • 0x0150CC–0x0151CB: Data Table Payload: 16 \times 16 = 256\text{ bytes} (u16 or u8).
  • Data Array Address: 0x0150CC (Offset: +68 bytes)
  • Structural Header Breakdown:
Offset       00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F  Header & Breakpoints
─────────────────────────────────────────────────────────────────────────────
0x00015088:  10 00 10 00 00 00 14 05  28 0A 3C 0F 50 14 64 19  X-Len, Y-Len, X-Axis [0..5]
0x00015098:  78 1E 8C 23 A0 28 B4 2D  C8 32 DC 37 F0 3C FF 3F  X-Axis Breakpoints [6..15]
0x000150A8:  A0 0F C0 12 E0 15 00 19  40 1F 80 25 C0 2B 00 32  Y-Axis Breakpoints [0..7]
0x000150B8:  40 38 80 3E C0 44 00 4B  80 54 00 5E 80 67 00 70  Y-Axis Breakpoints [8..15]
─────────────────────────────────────────────────────────────────────────────
0x000150CC:  00 00 12 01 24 02 36 03  48 04 5A 05 6C 06 7E 07  <-- RAW DATA PAYLOAD BEGINS (+68)

6.4. Master Cross-Calibration Address Offset & Symbol Map Table#

The table below compiles the Top 40 Core Engine Calibration Maps required for performance tuning, boost recalibration, fueling conversion, and emissions deletes. It provides the exact physical 1024 KB binary file offset across the six benchmark ME7.5 firmware releases:

  1. h24bw05g (Master Engineering Baseline, 180 PS AWP)
  2. 06A906032LP (US AWP 6-Speed Manual, SW 1037366194)
  3. 06A906032PL (US AWP Late Production, SW 1037367xxx)
  4. 06A906032JJ (US AWP Golf GTI Reference, SW 1037363354)
  5. 06A906032HS (US AWW 5-Speed Manual, SW 1037363354 / h24bo08g)
  6. 06A906032DL (Euro 4 AUQ 6-Speed Manual, SW 1037363351)
No.Symbol NameDimensions & TypeAxis Typeh24bw05g032LP032PL032JJ032HS032DLShift vs LP
1KRKTE1 \times 1 u16Scalar0x01859E0x01859E0x0185CE0x01859E0x0185A40x01859A+0\text{ B}
2TVUB5 \times 1 u16Shared0x0187420x0187420x0187720x0187420x0187480x01873E+0\text{ B}
3TEMIN1 \times 1 u16Scalar0x0186100x0186100x0186400x0186100x0186160x01860C+0\text{ B}
4TEMINVA1 \times 1 u16Scalar0x0186120x0186120x0186420x0186120x0186180x01860E+0\text{ B}
5FKKVS16 \times 16 u8Inline (+50)0x01CAF20x01CAF20x01CB220x01CAF20x01CA980x01CAE8+0\text{ B}
6LAMFA6 \times 15 u8Shared0x01C3920x01C3920x01C3C20x01C3920x01C3380x01C388+0\text{ B}
7KFLF16 \times 16 u8Inline (+68)0x01C5300x01C5300x01C5600x01C5300x01C4D60x01C526+0\text{ B}
8KFFDLGO12 \times 12 u8Inline (+36)0x012F100x012F100x012F400x012F100x012EB60x012F06+0\text{ B}
9KFMIOP11 \times 16 u8Inline (+50)0x014E540x014E540x014E840x014E540x014DFA0x014E4A+0\text{ B}
10KFMIRL16 \times 16 u8Inline (+68)0x0150880x0150880x0150B80x0150880x01502E0x01507E+0\text{ B}
11LDRXN16 \times 1 u8Inline (+34)0x01F0540x01F0540x01F0840x01F0540x01EFFA0x01F04A+0\text{ B}
12LDRXNZ16 \times 1 u8Inline (+34)0x01F08A0x01F08A0x01F0BA0x01F08A0x01F0300x01F080+0\text{ B}
13KFLDHBN8 \times 8 u8Inline (+18)0x01EE820x01EE820x01EEB20x01EE820x01EE280x01EE78+0\text{ B}
14KFLDIMX8 \times 16 u8Inline (+36)0x01EC4C0x01EC4C0x01EC7C0x01EC4C0x01EBF20x01EC42+0\text{ B}
15KFLDRL10 \times 16 u8Inline (+44)0x01ED6E0x01ED6E0x01ED9E0x01ED6E0x01ED140x01ED64+0\text{ B}
16KFLDRQ8 \times 8 u8Inline (+18)0x01EBEE0x01EBEE0x01EC1E0x01EBEE0x01EB940x01EBE4+0\text{ B}
17KFZW12 \times 16 u8Shared (+0)0x01208E0x01208E0x0120BE0x01208E0x0120340x012084+0\text{ B}
18KFZW212 \times 16 u8Shared (+0)0x01214E0x01214E0x01217E0x01214E0x0120F40x012144+0\text{ B}
19KFZWOP11 \times 16 u8Inline (+50)0x0124700x0124700x0124A00x0124700x0124160x012466+0\text{ B}
20KFZWOP211 \times 16 u8Inline (+50)0x0125860x0125860x0125B60x0125860x01252C0x01257C+0\text{ B}
21KFTVSA4 \times 1 u8Shared (+0)0x012C560x012C560x012C860x012C560x012BFC0x012C4C+0\text{ B}
22KFZWTVS8 \times 8 u8Inline (+18)0x012B4C0x012B4C0x012B7C0x012B4C0x012AF20x012B42+0\text{ B}
23NMAX1 \times 1 u16Scalar0x0113140x0113140x0113440x0113140x0112BA0x01130A+0\text{ B}
24NMAXOG1 \times 1 u16Scalar0x0113160x0113160x0113460x0113160x0112BC0x01130C+0\text{ B}
25VMAX1 \times 1 u16Scalar0x0112F80x0112F80x0113280x0112F80x01129E0x0112EE+0\text{ B}
26MLHFM512 \times 1 u16Shared (+0)0x01B8540x01B8540x01B8840x01B8540x01B7FA0x01B84A+0\text{ B}
27MLOFS1 \times 1 u16Scalar0x011C820x011C820x011CB20x011C820x011C280x011C78+0\text{ B}
28KFPED12 \times 16 u16Shared (+0)0x0146020x0146020x0146320x0146020x0145A80x0145F8+0\text{ B}
29WDKUGDN1 \times 1 u8Scalar0x013E080x013E080x013E380x013E080x013DAE0x013DFE+0\text{ B}
30KFLBTS16 \times 12 u8Inline (+56)0x0194A20x0194A20x0194D20x0194A20x0194480x019498+0\text{ B}
31TABGBTS1 \times 1 u16Scalar0x01956A0x01956A0x01959A0x01956A0x0195100x019560+0\text{ B}
32DSLGRAD1 \times 1 u16Scalar0x01188C0x01188C0x0118BC0x01188C0x0118320x011882+0\text{ B}
33DSLOFS1 \times 1 u16Scalar0x01188E0x01188E0x0118BE0x01188E0x0118340x011884+0\text{ B}
34DPUVE1 \times 1 u16Scalar0x0118940x0118940x0118C40x0118940x01183A0x01188A+0\text{ B}
35DPOVE1 \times 1 u16Scalar0x0118960x0118960x0118C60x0118960x01183C0x01188C+0\text{ B}
36ESKONF7 \times 1 u8Array0x010C4F0x010C4F0x010C7F0x010C4F0x010C4F0x010C4F+0\text{ B}
37CWDLSAHK1 \times 1 u8Codeword0x0181A10x0181A10x0181D10x0181A10x0181A10x0181A1+0\text{ B}
38CDKAT1 \times 1 u8Codeword0x0181A40x0181A40x0181D40x0181A40x0181A40x0181A4+0\text{ B}
39CDSLS1 \times 1 u8Codeword0x0181AE0x0181AE0x0181DE0x0181AE0x0181AE0x0181AE+0\text{ B}
40CDLDP1 \times 1 u8Codeword0x0181B20x0181B20x0181E20x0181B20x0181B20x0181B2+0\text{ B}

Key Takeaway: Notice that between h24bw05g, 06A906032LP, and 06A906032JJ, the address shift is strictly 0x00 (zero bytes) across all 40 primary tuning maps. In 06A906032PL, a constant offset of +0x30 (+48 bytes) applies cleanly to all maps in Segment 1, making automated porting deterministic.


Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.

← Previous chapter · Contents · Next chapter →

Related

Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.

03 Benchmark Calibrations
DPUVEDPOVECWDLSAHKDSLGRADKFTVSADSLOFS
14 Code Hooks & Patching
CWSAWEWDKUGDNKFTVSAKFLBTSKFZWTVSNMAX
45 Pattern Matching & XDF Porting
NMAXKFLDHBNTEMINKFZW2TVUBKFMIOP
25 Troubleshooting & Failsafes
NMAXOGKFLDRLKFLDIMXKFLFKFMIOPLAMFA
11 Flash Checksum Hierarchy
MLHFMKFPEDKFZW2KFMIOPLAMFAKFMIRL
15 Injector Mathematics
TEMINVAMLOFSMLHFMKFLFTEMINTVUB