FreeCalypso > hg > freecalypso-sw
comparison rvinterf/lowlevel/tfc139.c @ 975:0d7cc054ef72
rvinterf/lowlevel: updates for the new knowledge of TM predating ETM
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 15 Nov 2015 04:26:10 +0000 |
parents | 15e69d31c96f |
children | 7166c8311b0d |
comparison
equal
deleted
inserted
replaced
974:3f67d5bf96ef | 975:0d7cc054ef72 |
---|---|
61 { | 61 { |
62 u_char pkt[MAX_PKT_TO_TARGET]; | 62 u_char pkt[MAX_PKT_TO_TARGET]; |
63 int i, csum, csum_offset; | 63 int i, csum, csum_offset; |
64 | 64 |
65 pkt[0] = RVT_TM_HEADER; | 65 pkt[0] = RVT_TM_HEADER; |
66 pkt[1] = 0x40; /* Compal's non-standard addition */ | 66 pkt[1] = 0x40; /* old TM3 MEM_WRITE command */ |
67 pkt[2] = addr; | 67 pkt[2] = addr; |
68 pkt[3] = addr >> 8; | 68 pkt[3] = addr >> 8; |
69 pkt[4] = addr >> 16; | 69 pkt[4] = addr >> 16; |
70 pkt[5] = addr >> 24; | 70 pkt[5] = addr >> 24; |
71 bcopy(payload, pkt + 6, payload_len); | 71 bcopy(payload, pkt + 6, payload_len); |
147 process_serial_rx(); | 147 process_serial_rx(); |
148 } | 148 } |
149 } | 149 } |
150 | 150 |
151 static void | 151 static void |
152 handle_etm_response() | 152 handle_tm_response() |
153 { | 153 { |
154 char msgbuf[80]; | 154 char msgbuf[80]; |
155 | 155 |
156 if (rxpkt_len != 4 || rxpkt[1] != 0x40 || rxpkt[2] || rxpkt[3] != 0x40){ | 156 if (rxpkt_len != 4 || rxpkt[1] != 0x40 || rxpkt[2] || rxpkt[3] != 0x40){ |
157 output_line("ETM response differs from expected"); | 157 output_line("TM response differs from expected"); |
158 return; | 158 return; |
159 } | 159 } |
160 sprintf(msgbuf, "Sending stack smash write at 0x%x", stack_smash_addr); | 160 sprintf(msgbuf, "Sending stack smash write at 0x%x", stack_smash_addr); |
161 output_line(msgbuf); | 161 output_line(msgbuf); |
162 send_compal_memwrite(stack_smash_addr, stack_smash_payload, 4); | 162 send_compal_memwrite(stack_smash_addr, stack_smash_payload, 4); |
183 return; | 183 return; |
184 case RVT_L23_HEADER: | 184 case RVT_L23_HEADER: |
185 print_g23_trace(); | 185 print_g23_trace(); |
186 return; | 186 return; |
187 case RVT_TM_HEADER: | 187 case RVT_TM_HEADER: |
188 print_etm_output_raw(); | 188 print_tm_output_raw(); |
189 handle_etm_response(); | 189 handle_tm_response(); |
190 return; | 190 return; |
191 default: | 191 default: |
192 unknown: | 192 unknown: |
193 print_unknown_packet(); | 193 print_unknown_packet(); |
194 } | 194 } |