Statistics: Posted by antus — Fri Mar 15, 2024 8:29 pm
Statistics: Posted by gmtech825 — Fri Mar 15, 2024 4:50 am
Statistics: Posted by decipha — Fri Mar 15, 2024 3:40 am
Statistics: Posted by MidnightTuning — Thu Mar 14, 2024 12:51 pm
Statistics: Posted by Gareth — Thu Mar 14, 2024 12:38 pm
Statistics: Posted by MidnightTuning — Thu Mar 14, 2024 12:16 pm
Statistics: Posted by jca — Sun Feb 11, 2024 7:21 pm
Statistics: Posted by Tazzi — Wed Feb 07, 2024 7:11 pm
Statistics: Posted by jakka — Mon Feb 05, 2024 5:14 pm
Statistics: Posted by jakka — Mon Feb 05, 2024 5:08 pm
Statistics: Posted by DWS — Sun Feb 04, 2024 11:08 am
I wonder if/when they will have 1st gen covered. I know there was a number of changes during the first gen, so it's probably more complicated than the matured 2nd gen era, like PWM (96-03ish) vs CANBUS (04+). Also 96-97 vs 98+ something's different there for PCMFlash to not work with the older ones.By this moment FORScan only implements second generation of FMFU for Ford and Mazda cars. So this document also describes only 2nd generation. Implementation for the 1st generation is still in progress.
Statistics: Posted by DWS — Sun Feb 04, 2024 4:37 am
Statistics: Posted by kur4o — Sat Feb 03, 2024 7:17 pm
Statistics: Posted by Gatecrasher — Sat Feb 03, 2024 2:07 am
Code:
sym 10570 "tq_source"
Code:
95bce: b3,01,70,05,38 ldb R38,[R0+570] R38 = tq_source;
Statistics: Posted by DWS — Sat Jan 27, 2024 10:04 am
Statistics: Posted by Tazzi — Sat Jan 27, 2024 9:54 am
My current solution has been to define a sym for the code line instead of the actual data item which puts the name before the statement like this:1da35: 99,00,00 cmpb R0,0
1da38: d7,03 jne 1da3d if ( true ) {
LST outputsym 1da35 "Something_Flag" # Just an example
I've tried several ways of trying to define the byte at 1da36 but haven't found anything better yet. The only way I've found to effect the hard coded values like that is if I assume it's an address, then it flags, but every instance of that value gets flagged as that address even when it's not an address and of course a single value can only be named once.Something_Flag:
1da35: 99,00,00 cmpb R0,0
1da38: d7,03 jne 1da3d if ( true ) {
Statistics: Posted by DWS — Sat Jan 27, 2024 3:04 am
Statistics: Posted by DWS — Fri Jan 26, 2024 1:46 am
Statistics: Posted by In-Tech — Thu Jan 25, 2024 5:20 pm
Statistics: Posted by DWS — Thu Jan 25, 2024 4:59 am
Statistics: Posted by jakka — Thu Jan 25, 2024 2:01 am
Statistics: Posted by In-Tech — Sat Jan 20, 2024 11:33 am
Statistics: Posted by jakka — Sat Jan 20, 2024 10:55 am
Statistics: Posted by DWS — Tue Jan 02, 2024 2:58 pm
Statistics: Posted by DWS — Fri Dec 22, 2023 4:01 am
Statistics: Posted by hjtrbo — Thu Dec 21, 2023 9:59 pm
Code:
"Normal" 216K EECVCK_Bank0Bank 00x020000x0FFFE0xE000CK_Bank8Bank 80x820000x8FFFE0xE000CK_Bank9Bank 90x920000x9FEFE0xE000CK_Bank1Bank 10x120000x1DFFE0xC000“ALAPK” and others I bet. 216K ChecksumCK_Bank0Bank 00x020000x0FFFE0xE000CK_Bank8Bank 80x820000x8FFFE0xE000CK_Bank9Bank 90x920000x9FEFE0xE000CK_Bank1Bank 10x120000x19FFE0x8000
Statistics: Posted by In-Tech — Thu Dec 21, 2023 9:10 pm
Statistics: Posted by abs351 — Thu Dec 21, 2023 6:58 pm
Statistics: Posted by DWS — Thu Dec 21, 2023 11:03 am
Statistics: Posted by DWS — Wed Dec 20, 2023 6:02 pm
Another point in the same docuemtnNext, a 16 bit addition of the contents of the ROM locations is performed. A parameter (ROM_TO) is set to a value that should
cause the result of the summation to be zero. If the value is not zero, then some value in ROM has been corrupted. (Note,
during development, the use of patched chips, RCONs, etc. can cause this test to fail.) If a failure is detected, Code P0605 is
set and Self Test continues.
0x200A seems like it must be the right address, at least for the CRA* Strategies.38.1.2.4 Kam_rom_test
void kam_rom_test()
BEGIN_FUNC /* BEGIN: kam_rom_test */
IF (UNCONDITIONALLY)
THEN NO_ACTION; /* After register test, perform a */
/* 16 bit (word) addition of contents */
/* of all ROM locations retaining the */
/* 16 least significant bits of the */
/* result. */
/* Note: The parameter ROM_TO contains */
/* a checksum such that the sum of the */
/* ROM contents will equal zero. */
END_IF
I don't normally work with checksums, so it's not my normal thing. PCMFlash does correct this for me, but I want to calculate it when I do modifications so the checksum comes back as valid which tells me the file isn't corrupt etc.For 1988 and beyond, the procedure has been changed to make this process
easier. The new process removes CALID and replaces it with ROM_TO. In
addition, VERID has been deleted and a new parameter "FIXSUM" has been added.
FIXSUM should always be set to 0. Specifically:
1. The non-modifiable Vector parameter "ROM_TO" replaces the old CALID
parameter as the ROM chip identifier. The ROM_TO value is generated by
Vector during a calibration release and is located at 200A HEX. This
value is the complement of the ROM pattern CHECKSUM and is also used to
perform the EEC-IV diagnostic "CHECKSUM Memory Test".
2. The new parameter "FIXSUM" is a Vector calibration parameter located at
2004 HEX and should always be set to 0. This parameter will be used to
assure the ROM_TO values are unique and will only be changed by the SWDV
engineer if a duplicate ROM_TO value is found.
Statistics: Posted by DWS — Wed Dec 20, 2023 3:10 pm
Had you found a resolution via OBD for RCM?GREAT WORK, I hadn't checked this but after the crash module data I thought it was worth looking & WOW!
Statistics: Posted by jakka — Wed Dec 20, 2023 1:23 pm
Statistics: Posted by Whiteford — Wed Dec 20, 2023 12:49 pm
Statistics: Posted by Gareth — Wed Dec 20, 2023 6:21 am
Statistics: Posted by jakka — Mon Dec 18, 2023 6:25 pm
Statistics: Posted by jakka — Mon Dec 18, 2023 6:09 pm
Statistics: Posted by DWS — Mon Dec 18, 2023 12:59 pm
Statistics: Posted by darkman5001 — Mon Dec 18, 2023 1:25 am
Code:
BEM_DiagSig_Rx = 0x726BEM_DiagSig_Tx = 0x72EBEM_CCP_Rx = 0x706BEM_CCP_Tx = 0x712
Code:
726#0210870000000000
Code:
72E#0250870000000000
Code:
726#072FF2A907976A65
Code:
72E#026FF2A900000000
Code:
706#0101BEBE00000000
Code:
712#FF00010000000000
Code:
706#1202020000000000
Code:
712#FF000102K1K2K3K4
Code:
SECURITY_ID0 = 0x41 SECURITY_ID1 = 0x55 SECURITY_ID2 = 0x36 SECURITY_ID3 = 0x74
Code:
challenge0_ubl = 0 challenge1_ubl = 0 challenge2_ubl = 0 challenge3_ubl = 0 result0_ubl = 0 result1_ubl = 0 result2_ubl = 0 result3_ubl = 0 reply_cnt_ubl = 0 adden_a_uil = 0 adden_b_uil = 0 sum_uil = 0 temp1_ubl = 0 temp2_ubl = 0 temp3_ubl = 0 print(" Calculating Response Key...") adden_a_uil = (SECURITY_ID2 << 8) + (SECURITY_ID0) adden_b_uil = (challenge2_ubl << 8) + (challenge3_ubl) sum_uil = adden_a_uil + adden_b_uil result2_ubl = (sum_uil >> 8) result3_ubl = (sum_uil & 0xFF) adden_a_uil = (SECURITY_ID0 << 8) + SECURITY_ID1 adden_a_uil = (challenge2_ubl << 8) + challenge3_ubl sum_uil = adden_a_uil + adden_b_uil result0_ubl = (sum_uil >> 8) result1_ubl = (sum_uil & 0xFF) result3_ubl = result3_ubl * 13 result2_ubl = result2_ubl * 11 result1_ubl = result1_ubl * 19 result0_ubl = result0_ubl * 17 result3_ubl = (((temp1_ubl == result3_ubl) << 6) | ((temp2_ubl == result3_ubl) >> 2)) result2_ubl = (((temp1_ubl == result2_ubl) << 6) | ((temp2_ubl == result2_ubl) >> 2)) result1_ubl = (((temp1_ubl == result1_ubl) << 6) | ((temp2_ubl == result1_ubl) >> 2)) result0_ubl = (((temp1_ubl == result0_ubl) << 6) | ((temp2_ubl == result0_ubl) >> 2)) result3_ubl = result3_ubl ^ 17 result2_ubl = result2_ubl ^ 86 result1_ubl = result1_ubl ^ 75 result0_ubl = result0_ubl ^ 52 if result2_ubl & 0x04: temp3_ubl = (temp1_ubl == (result3_ubl >> 4)) | (temp2_ubl == (result3_ubl << 4)) temp2_ubl = (temp1_ubl == (result2_ubl >> 4)) | (temp2_ubl == (result2_ubl << 4)) result3_ubl = temp2_ubl result2_ubl = temp3_ubl else: temp3_ubl = (temp1_ubl == (result1_ubl >> 4)) | (temp2_ubl == (result1_ubl << 4)) temp2_ubl = (temp1_ubl == (result0_ubl >> 4)) | (temp2_ubl == (result0_ubl << 4)) result1_ubl = temp2_ubl result0_ubl = temp3_ubl print(" Key Calculated.") R1 = result0_ubl R2 = result1_ubl R3 = result2_ubl R4 = result3_ubl print(" ", R1, R2, R3, R4) return R1, R2, R3, R4
Code:
706#1303R1R2R3R40000
Code:
712#FF00030200000000
Code:
706#0406SS0000000000
Code:
712#FF0006UUUUUUUUUU
Code:
706#0305SSUUUUUUUU00
Code:
712#FF000500000004004
Statistics: Posted by jakka — Sat Dec 16, 2023 10:02 pm
I don't see any references in the code for that area, but it might be referenced elsewhere, just not 100% sure what that address is in reference to.9ff06: 46,48,41,46,39,4e,34,2e,48,45,58,2a text "FHAF9N4.HEX*"
9ff12: ff,00 ???
9ff14: 33,46,31,41,42,44,20,2a text "3F1ABD *"
Statistics: Posted by DWS — Tue Dec 12, 2023 12:08 pm