ECU write failure EcuFlash 1.42 MH7203FA processor
Posted: Tue Jun 30, 2009 8:55 pm
Hi,
Tried flashing my MH7203 based Mitsubishi ECU and got the following
The issue here is that the CRC32 check fails because the data read back is not the same as was supposed to be written.
When I then downloaded the ROM again, it matched. However, a binary compare if this file and another (one of numerous reads) with a file which did NOT match, returned 0 binary difference.
Saved the ROM, restart ECU flash and loaded the read which was just done.
As you can see, this now does not match the ECU.
So I loaded the file which I compared in a binary manner, and the result is now the same.
Now I loaded the ROM which was used to WRITE the ECU (I always use this rom, it is the original downloadod ROM)
And the 2 columns have swapped.
I am keen to hear if anyone else is having issues with writing to MH7203 processors, if there is a bug in EcuFlash or if there is something I have stuffed up.
Not sure if this is in the correct area, if not, mods please move
Kenneth
Tried flashing my MH7203 based Mitsubishi ECU and got the following
- Code: Select all
[16:09:19.871] J2534 API Version: 04.04
[16:09:19.871] J2534 DLL Version: 0.50.2598 Jun 26 2009 15:02:29
[16:09:19.871] Device Firmware Version: 1.07.2597
[16:09:21.549] sending init sequence 2
[16:09:21.549] got 0x13 response instead of 0x11
[16:09:21.549] sending init sequence 3
[16:09:21.924] entering bootloader
[16:09:21.924] sending kernel size (2027)
[16:09:21.924] sending kernel load address (0x0000F000)
[16:09:21.939] uploading kernel
[16:09:22.267] verifying kernel checksum response
[16:09:22.267] kernel valid
[16:09:22.470] kernel get version
[16:09:22.470] kernel version is : OpenEcu Mitsubishi H8/539FA Kernel V1.06
[16:09:22.470] reading kernel comm buffer size
[16:09:22.485] comm buffer size set to 256
[16:09:22.485] reading kernel flash buffer size
[16:09:22.485] flash buffer size set to 1024
[16:09:22.517] -- flashing image to ECU memory --
[16:09:22.922] -- comparing ECU flash memory pages to image file --
[16:09:22.922] seg start len ecu CRC32 img CRC32 same?
[16:09:22.938] EB0 00010000 00000400 0F9C67C1 0F9C67C1 YES
[16:09:22.953] EB1 00010400 00000400 567D0AC1 567D0AC1 YES
[16:09:22.985] EB2 00010800 00000400 088E1010 088E1010 YES
[16:09:23.000] EB3 00010C00 00000400 B83AFFF4 B83AFFF4 YES
[16:09:23.343] EB4 00011000 00007000 0F9AB2B7 D9FB5F80 NO
[16:09:23.718] EB5 00018000 00008000 0E0A67FF 0E0A67FF YES
[16:09:24.108] EB6 00020000 00008000 B56B126D B56B126D YES
[16:09:24.498] EB7 00028000 00008000 876F020A 876F020A YES
[16:09:24.498] kernel flash enable
[16:09:24.498] kernel blank flash page: addr: 00011000
[16:09:24.560] erased in 2 pulse(s)
[16:09:24.560] kernel write flash buffer addr: 00011000 len: 00000100
[16:09:24.607] kernel write flash buffer addr: 00011100 len: 00000100
[16:09:24.669] kernel write flash buffer addr: 00011200 len: 00000100
[16:09:24.716] kernel write flash buffer addr: 00011300 len: 00000100
[16:09:24.763] kernel commit flash addr: 00011000 len: 00000400 crc32 dba80a82
[16:09:24.857] written in 20 pulse(s)
[16:09:24.857] kernel write flash buffer addr: 00011400 len: 00000100
[16:09:24.919] kernel write flash buffer addr: 00011500 len: 00000100
[16:09:24.966] kernel write flash buffer addr: 00011600 len: 00000100
[16:09:25.013] kernel write flash buffer addr: 00011700 len: 00000100
[16:09:25.059] kernel commit flash addr: 00011400 len: 00000400 crc32 b1371b84
[16:09:25.169] written in 20 pulse(s)
[16:09:25.169] kernel write flash buffer addr: 00011800 len: 00000100
[16:09:25.215] kernel write flash buffer addr: 00011900 len: 00000100
[16:09:25.262] kernel write flash buffer addr: 00011A00 len: 00000100
[16:09:25.309] kernel write flash buffer addr: 00011B00 len: 00000100
[16:09:25.356] kernel commit flash addr: 00011800 len: 00000400 crc32 e4a47ac0
[16:09:25.465] written in 20 pulse(s)
[16:09:25.465] kernel write flash buffer addr: 00011C00 len: 00000100
[16:09:25.512] kernel write flash buffer addr: 00011D00 len: 00000100
[16:09:25.559] kernel write flash buffer addr: 00011E00 len: 00000100
[16:09:25.605] kernel write flash buffer addr: 00011F00 len: 00000100
[16:09:25.652] kernel commit flash addr: 00011C00 len: 00000400 crc32 036d4f1f
[16:09:25.761] written in 20 pulse(s)
[16:09:25.761] kernel write flash buffer addr: 00012000 len: 00000100
[16:09:25.808] kernel write flash buffer addr: 00012100 len: 00000100
[16:09:25.855] kernel write flash buffer addr: 00012200 len: 00000100
[16:09:25.902] kernel write flash buffer addr: 00012300 len: 00000100
[16:09:25.949] kernel commit flash addr: 00012000 len: 00000400 crc32 3b44dba6
[16:09:26.058] written in 20 pulse(s)
[16:09:26.058] kernel write flash buffer addr: 00012400 len: 00000100
[16:09:26.105] kernel write flash buffer addr: 00012500 len: 00000100
[16:09:26.151] kernel write flash buffer addr: 00012600 len: 00000100
[16:09:26.214] kernel write flash buffer addr: 00012700 len: 00000100
[16:09:26.261] kernel commit flash addr: 00012400 len: 00000400 crc32 74c37db7
[16:09:26.354] written in 16 pulse(s)
[16:09:26.354] kernel write flash buffer addr: 00012800 len: 00000100
[16:09:26.401] kernel write flash buffer addr: 00012900 len: 00000100
[16:09:26.448] kernel write flash buffer addr: 00012A00 len: 00000100
[16:09:26.510] kernel write flash buffer addr: 00012B00 len: 00000100
[16:09:26.557] kernel commit flash addr: 00012800 len: 00000400 crc32 1a91418f
[16:09:26.651] written in 20 pulse(s)
[16:09:26.651] kernel write flash buffer addr: 00012C00 len: 00000100
[16:09:26.697] kernel write flash buffer addr: 00012D00 len: 00000100
[16:09:26.760] kernel write flash buffer addr: 00012E00 len: 00000100
[16:09:26.807] kernel write flash buffer addr: 00012F00 len: 00000100
[16:09:26.853] kernel commit flash addr: 00012C00 len: 00000400 crc32 8e2e2293
[16:09:26.947] written in 20 pulse(s)
[16:09:26.947] kernel write flash buffer addr: 00014000 len: 00000100
[16:09:26.994] kernel write flash buffer addr: 00014100 len: 00000100
[16:09:27.041] kernel write flash buffer addr: 00014200 len: 00000100
[16:09:27.087] kernel write flash buffer addr: 00014300 len: 00000100
[16:09:27.150] kernel commit flash addr: 00014000 len: 00000400 crc32 6b8b42df
[16:09:27.243] written in 16 pulse(s)
[16:09:27.243] kernel write flash buffer addr: 00014400 len: 00000100
[16:09:27.290] kernel write flash buffer addr: 00014500 len: 00000100
[16:09:27.337] kernel write flash buffer addr: 00014600 len: 00000100
[16:09:27.384] kernel write flash buffer addr: 00014700 len: 00000100
[16:09:27.446] kernel commit flash addr: 00014400 len: 00000400 crc32 e1e23bc5
[16:09:27.540] written in 16 pulse(s)
[16:09:27.540] kernel write flash buffer addr: 00014800 len: 00000100
[16:09:27.587] kernel write flash buffer addr: 00014900 len: 00000100
[16:09:27.633] kernel write flash buffer addr: 00014A00 len: 00000100
[16:09:27.680] kernel write flash buffer addr: 00014B00 len: 00000100
[16:09:27.727] kernel commit flash addr: 00014800 len: 00000400 crc32 2662cb3b
[16:09:27.836] written in 16 pulse(s)
[16:09:27.836] kernel write flash buffer addr: 00014C00 len: 00000100
[16:09:27.883] kernel write flash buffer addr: 00014D00 len: 00000100
[16:09:27.930] kernel write flash buffer addr: 00014E00 len: 00000100
[16:09:27.977] kernel write flash buffer addr: 00014F00 len: 00000100
[16:09:28.023] kernel commit flash addr: 00014C00 len: 00000400 crc32 9fa1661e
[16:09:28.133] written in 16 pulse(s)
[16:09:28.133] kernel write flash buffer addr: 00015000 len: 00000100
[16:09:28.179] kernel write flash buffer addr: 00015100 len: 00000100
[16:09:28.226] kernel write flash buffer addr: 00015200 len: 00000100
[16:09:28.273] kernel write flash buffer addr: 00015300 len: 00000100
[16:09:28.320] kernel commit flash addr: 00015000 len: 00000400 crc32 733fba5a
[16:09:28.429] written in 16 pulse(s)
[16:09:28.429] kernel write flash buffer addr: 00015400 len: 00000100
[16:09:28.476] kernel write flash buffer addr: 00015500 len: 00000100
[16:09:28.523] kernel write flash buffer addr: 00015600 len: 00000100
[16:09:28.569] kernel write flash buffer addr: 00015700 len: 00000100
[16:09:28.616] kernel commit flash addr: 00015400 len: 00000400 crc32 9fb3374a
[16:09:28.725] written in 16 pulse(s)
[16:09:28.725] kernel write flash buffer addr: 00015800 len: 00000100
[16:09:28.772] kernel write flash buffer addr: 00015900 len: 00000100
[16:09:28.819] kernel write flash buffer addr: 00015A00 len: 00000100
[16:09:28.866] kernel write flash buffer addr: 00015B00 len: 00000100
[16:09:28.913] kernel commit flash addr: 00015800 len: 00000400 crc32 14790d5a
[16:09:29.006] written in 16 pulse(s)
[16:09:29.006] kernel write flash buffer addr: 00015C00 len: 00000100
[16:09:29.069] kernel write flash buffer addr: 00015D00 len: 00000100
[16:09:29.115] kernel write flash buffer addr: 00015E00 len: 00000100
[16:09:29.162] kernel write flash buffer addr: 00015F00 len: 00000100
[16:09:29.209] kernel commit flash addr: 00015C00 len: 00000400 crc32 31fa73d6
[16:09:29.303] written in 16 pulse(s)
[16:09:29.303] kernel write flash buffer addr: 00016000 len: 00000100
[16:09:29.365] kernel write flash buffer addr: 00016100 len: 00000100
[16:09:29.412] kernel write flash buffer addr: 00016200 len: 00000100
[16:09:29.459] kernel write flash buffer addr: 00016300 len: 00000100
[16:09:29.505] kernel commit flash addr: 00016000 len: 00000400 crc32 336c1f08
[16:09:29.599] written in 16 pulse(s)
[16:09:29.599] kernel write flash buffer addr: 00016400 len: 00000100
[16:09:29.646] kernel write flash buffer addr: 00016500 len: 00000100
[16:09:29.708] kernel write flash buffer addr: 00016600 len: 00000100
[16:09:29.755] kernel write flash buffer addr: 00016700 len: 00000100
[16:09:29.802] kernel commit flash addr: 00016400 len: 00000400 crc32 63f74fec
[16:09:29.895] written in 16 pulse(s)
[16:09:29.895] kernel write flash buffer addr: 00016800 len: 00000100
[16:09:29.942] kernel write flash buffer addr: 00016900 len: 00000100
[16:09:29.989] kernel write flash buffer addr: 00016A00 len: 00000100
[16:09:30.051] kernel write flash buffer addr: 00016B00 len: 00000100
[16:09:30.098] kernel commit flash addr: 00016800 len: 00000400 crc32 e4745226
[16:09:30.192] written in 16 pulse(s)
[16:09:30.192] kernel write flash buffer addr: 00016C00 len: 00000100
[16:09:30.239] kernel write flash buffer addr: 00016D00 len: 00000100
[16:09:30.285] kernel write flash buffer addr: 00016E00 len: 00000100
[16:09:30.332] kernel write flash buffer addr: 00016F00 len: 00000100
[16:09:30.395] kernel commit flash addr: 00016C00 len: 00000400 crc32 76bd42d1
[16:09:30.488] written in 16 pulse(s)
[16:09:30.488] kernel write flash buffer addr: 00017000 len: 00000100
[16:09:30.535] kernel write flash buffer addr: 00017100 len: 00000100
[16:09:30.582] kernel write flash buffer addr: 00017200 len: 00000100
[16:09:30.629] kernel write flash buffer addr: 00017300 len: 00000100
[16:09:30.675] kernel commit flash addr: 00017000 len: 00000400 crc32 769c2c4a
[16:09:30.769] written in 20 pulse(s)
[16:09:30.769] kernel write flash buffer addr: 00017400 len: 00000100
[16:09:30.816] kernel write flash buffer addr: 00017500 len: 00000100
[16:09:30.878] kernel write flash buffer addr: 00017600 len: 00000100
[16:09:30.925] kernel write flash buffer addr: 00017700 len: 00000100
[16:09:30.972] kernel commit flash addr: 00017400 len: 00000400 crc32 aebcb0ed
[16:09:31.065] written in 16 pulse(s)
[16:09:31.065] kernel write flash buffer addr: 00017800 len: 00000100
[16:09:31.112] kernel write flash buffer addr: 00017900 len: 00000100
[16:09:31.159] kernel write flash buffer addr: 00017A00 len: 00000100
[16:09:31.206] kernel write flash buffer addr: 00017B00 len: 00000100
[16:09:31.253] kernel commit flash addr: 00017800 len: 00000400 crc32 683e65c5
[16:09:31.331] written in 16 pulse(s)
[16:09:31.331] kernel write flash buffer addr: 00017C00 len: 00000100
[16:09:31.377] kernel write flash buffer addr: 00017D00 len: 00000100
[16:09:31.440] kernel write flash buffer addr: 00017E00 len: 00000100
[16:09:31.487] kernel write flash buffer addr: 00017F00 len: 00000100
[16:09:31.533] kernel commit flash addr: 00017C00 len: 00000400 crc32 821d5986
[16:09:31.627] written in 16 pulse(s)
[16:09:31.627] kernel flash disable
[16:09:31.643] verifying result...
[16:09:31.643] -- comparing ECU flash memory pages to image file --
[16:09:31.643] seg start len ecu CRC32 img CRC32 same?
[16:09:31.658] EB0 00010000 00000400 0F9C67C1 0F9C67C1 YES
[16:09:31.674] EB1 00010400 00000400 567D0AC1 567D0AC1 YES
[16:09:31.705] EB2 00010800 00000400 088E1010 088E1010 YES
[16:09:31.721] EB3 00010C00 00000400 B83AFFF4 B83AFFF4 YES
[16:09:32.064] EB4 00011000 00007000 A8438C01 D9FB5F80 NO
[16:09:32.438] EB5 00018000 00008000 0E0A67FF 0E0A67FF YES
[16:09:32.828] EB6 00020000 00008000 B56B126D B56B126D YES
[16:09:33.218] EB7 00028000 00008000 876F020A 876F020A YES
[16:09:33.218] *** FLASH FAILURE ***
[16:09:33.218] interface close
The issue here is that the CRC32 check fails because the data read back is not the same as was supposed to be written.
When I then downloaded the ROM again, it matched. However, a binary compare if this file and another (one of numerous reads) with a file which did NOT match, returned 0 binary difference.
Saved the ROM, restart ECU flash and loaded the read which was just done.
- Code: Select all
[16:41:24.347] 131072 byte image read.
[16:41:27.483] 131072 byte image read.
[16:41:30.689] J2534 API Version: 04.04
[16:41:30.689] J2534 DLL Version: 0.50.2598 (DEBUG) Jun 26 2009 15:02:29
[16:41:30.689] Device Firmware Version: 1.07.2597
[16:41:32.261] sending init sequence 2
[16:41:32.268] got 0x13 response instead of 0x11
[16:41:32.268] sending init sequence 3
[16:41:32.623] entering bootloader
[16:41:32.626] sending kernel size (2027)
[16:41:32.636] sending kernel load address (0x0000F000)
[16:41:32.646] uploading kernel
[16:41:32.975] verifying kernel checksum response
[16:41:32.978] kernel valid
[16:41:33.178] kernel get version
[16:41:33.190] kernel version is : OpenEcu Mitsubishi H8/539FA Kernel V1.06
[16:41:33.190] reading kernel comm buffer size
[16:41:33.198] comm buffer size set to 256
[16:41:33.198] reading kernel flash buffer size
[16:41:33.206] flash buffer size set to 1024
[16:41:33.224] -- comparing ECU flash memory pages to image file --
[16:41:33.224] seg start len ecu CRC32 img CRC32 same?
[16:41:33.245] EB0 00010000 00000400 0F9C67C1 0F9C67C1 YES
[16:41:33.266] EB1 00010400 00000400 567D0AC1 567D0AC1 YES
[16:41:33.287] EB2 00010800 00000400 088E1010 088E1010 YES
[16:41:33.308] EB3 00010C00 00000400 B83AFFF4 B83AFFF4 YES
[16:41:33.647] EB4 00011000 00007000 A3A462A1 0F9AB2B7 NO
[16:41:34.033] EB5 00018000 00008000 0E0A67FF 0E0A67FF YES
[16:41:34.420] EB6 00020000 00008000 B56B126D B56B126D YES
[16:41:34.806] EB7 00028000 00008000 876F020A 876F020A YES
[16:41:34.807] interface close
As you can see, this now does not match the ECU.
So I loaded the file which I compared in a binary manner, and the result is now the same.
- Code: Select all
[16:41:41.874] J2534 API Version: 04.04
[16:41:41.874] J2534 DLL Version: 0.50.2598 (DEBUG) Jun 26 2009 15:02:29
[16:41:41.874] Device Firmware Version: 1.07.2597
[16:41:43.197] sending init sequence 2
[16:41:43.205] got 0x13 response instead of 0x11
[16:41:43.205] sending init sequence 3
[16:41:43.560] entering bootloader
[16:41:43.563] sending kernel size (2027)
[16:41:43.573] sending kernel load address (0x0000F000)
[16:41:43.584] uploading kernel
[16:41:43.912] verifying kernel checksum response
[16:41:43.916] kernel valid
[16:41:44.116] kernel get version
[16:41:44.129] kernel version is : OpenEcu Mitsubishi H8/539FA Kernel V1.06
[16:41:44.129] reading kernel comm buffer size
[16:41:44.137] comm buffer size set to 256
[16:41:44.137] reading kernel flash buffer size
[16:41:44.145] flash buffer size set to 1024
[16:41:44.163] -- comparing ECU flash memory pages to image file --
[16:41:44.163] seg start len ecu CRC32 img CRC32 same?
[16:41:44.184] EB0 00010000 00000400 0F9C67C1 0F9C67C1 YES
[16:41:44.205] EB1 00010400 00000400 567D0AC1 567D0AC1 YES
[16:41:44.226] EB2 00010800 00000400 088E1010 088E1010 YES
[16:41:44.247] EB3 00010C00 00000400 B83AFFF4 B83AFFF4 YES
[16:41:44.586] EB4 00011000 00007000 A3A462A1 0F9AB2B7 NO
[16:41:44.972] EB5 00018000 00008000 0E0A67FF 0E0A67FF YES
[16:41:45.358] EB6 00020000 00008000 B56B126D B56B126D YES
[16:41:45.744] EB7 00028000 00008000 876F020A 876F020A YES
[16:41:45.745] interface close
Now I loaded the ROM which was used to WRITE the ECU (I always use this rom, it is the original downloadod ROM)
And the 2 columns have swapped.
- Code: Select all
[16:42:07.284] 131072 byte image read.
[16:42:09.601] J2534 API Version: 04.04
[16:42:09.601] J2534 DLL Version: 0.50.2598 (DEBUG) Jun 26 2009 15:02:29
[16:42:09.601] Device Firmware Version: 1.07.2597
[16:42:12.654] sending init sequence 2
[16:42:12.661] got 0x13 response instead of 0x11
[16:42:12.661] sending init sequence 3
[16:42:13.017] entering bootloader
[16:42:13.020] sending kernel size (2027)
[16:42:13.031] sending kernel load address (0x0000F000)
[16:42:13.041] uploading kernel
[16:42:13.369] verifying kernel checksum response
[16:42:13.373] kernel valid
[16:42:13.573] kernel get version
[16:42:13.586] kernel version is : OpenEcu Mitsubishi H8/539FA Kernel V1.06
[16:42:13.586] reading kernel comm buffer size
[16:42:13.594] comm buffer size set to 256
[16:42:13.594] reading kernel flash buffer size
[16:42:13.602] flash buffer size set to 1024
[16:42:13.620] -- comparing ECU flash memory pages to image file --
[16:42:13.620] seg start len ecu CRC32 img CRC32 same?
[16:42:13.641] EB0 00010000 00000400 0F9C67C1 0F9C67C1 YES
[16:42:13.662] EB1 00010400 00000400 567D0AC1 567D0AC1 YES
[16:42:13.683] EB2 00010800 00000400 088E1010 088E1010 YES
[16:42:13.704] EB3 00010C00 00000400 B83AFFF4 B83AFFF4 YES
[16:42:14.042] EB4 00011000 00007000 0F9AB2B7 D9FB5F80 NO
[16:42:14.428] EB5 00018000 00008000 0E0A67FF 0E0A67FF YES
[16:42:14.814] EB6 00020000 00008000 B56B126D B56B126D YES
[16:42:15.200] EB7 00028000 00008000 876F020A 876F020A YES
[16:42:15.201] interface close
I am keen to hear if anyone else is having issues with writing to MH7203 processors, if there is a bug in EcuFlash or if there is something I have stuffed up.
Not sure if this is in the correct area, if not, mods please move
Kenneth