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 }