Lines Matching +full:1 +full:- +full:eng
1 // SPDX-License-Identifier: GPL-2.0+
17 //------------------------------------------------------------
18 int ncsi_set_error_flag(MAC_ENGINE *eng, int eflag) in ncsi_set_error_flag() argument
20 eng->flg.ncsi = eng->flg.ncsi | eflag; in ncsi_set_error_flag()
21 eng->flg.error = eng->flg.error | ERR_FLAG_NCSI_LINKFAIL; in ncsi_set_error_flag()
24 eng->flg.error, eng->flg.ncsi); in ncsi_set_error_flag()
26 return (1); in ncsi_set_error_flag()
29 //------------------------------------------------------------
30 // PHY IC(NC-SI)
31 //------------------------------------------------------------
32 void ncsi_reqdump(MAC_ENGINE *eng, NCSI_Command_Packet *in) in ncsi_reqdump() argument
35 …LOG, "[NCSI-Request] DA : %02x %02x %02x %02x %02x %02x\n", in->DA[ 0 ], in->DA[ 1 ], … in ncsi_reqdump()
36 …LOG, "[NCSI-Request] SA : %02x %02x %02x %02x %02x %02x\n", in->SA[ 0 ], in->SA[ 1 ], … in ncsi_reqdump()
37 …PRINTF( FP_LOG, "[NCSI-Request] EtherType : %04x\n", SWAP_2B_BEDN( in->EtherType ) … in ncsi_reqdump()
38 …PRINTF( FP_LOG, "[NCSI-Request] MC_ID : %02x\n", in->MC_ID … in ncsi_reqdump()
39 …PRINTF( FP_LOG, "[NCSI-Request] Header_Revision: %02x\n", in->Header_Revision … in ncsi_reqdump()
40 // PRINTF( FP_LOG, "[NCSI-Request] Reserved_1 : %02x\n", in->Reserved_1 … in ncsi_reqdump()
41 …PRINTF( FP_LOG, "[NCSI-Request] IID : %02x\n", in->IID … in ncsi_reqdump()
42 …PRINTF( FP_LOG, "[NCSI-Request] Command : %02x\n", in->Command … in ncsi_reqdump()
43 …PRINTF( FP_LOG, "[NCSI-Request] ChID : %02x\n", in->ChID … in ncsi_reqdump()
44 …PRINTF( FP_LOG, "[NCSI-Request] Payload_Length : %04x\n", SWAP_2B_BEDN( in->Payload_Length ) … in ncsi_reqdump()
45 // PRINTF( FP_LOG, "[NCSI-Request] Reserved_2 : %04x\n", in->Reserved_2 … in ncsi_reqdump()
46 // PRINTF( FP_LOG, "[NCSI-Request] Reserved_3 : %04x\n", in->Reserved_3 … in ncsi_reqdump()
47 // PRINTF( FP_LOG, "[NCSI-Request] Reserved_4 : %04x\n", in->Reserved_4 … in ncsi_reqdump()
48 // PRINTF( FP_LOG, "[NCSI-Request] Reserved_5 : %04x\n", in->Reserved_5 … in ncsi_reqdump()
49 …PRINTF( FP_LOG, "[NCSI-Request] Response_Code : %04x\n", SWAP_2B_BEDN( in->Response_Code ) … in ncsi_reqdump()
50 …PRINTF( FP_LOG, "[NCSI-Request] Reason_Code : %04x\n", SWAP_2B_BEDN( in->Reason_Code ) … in ncsi_reqdump()
51 for ( i = 0; i < SWAP_2B_BEDN( in->Payload_Length ); i++ ) { in ncsi_reqdump()
53 case 0 : PRINTF( FP_LOG, "[NCSI-Request] Payload_Data : %02x", in->Payload_Data[ i ]); break; in ncsi_reqdump()
54 case 3 : PRINTF( FP_LOG, " %02x\n", in->Payload_Data[ i ]); break; in ncsi_reqdump()
55 default : PRINTF( FP_LOG, " %02x", in->Payload_Data[ i ]); break; in ncsi_reqdump()
61 void ncsi_respdump (MAC_ENGINE *eng, NCSI_Response_Packet *in) { in ncsi_respdump() argument
63 …_LOG, "[NCSI-Respond] DA : %02x %02x %02x %02x %02x %02x\n", in->DA[ 5 ], in->DA[ 4 ],… in ncsi_respdump()
64 …_LOG, "[NCSI-Respond] SA : %02x %02x %02x %02x %02x %02x\n", in->SA[ 5 ], in->SA[ 4 ],… in ncsi_respdump()
65 …LOG, "[NCSI-Respond] DA : %02x %02x %02x %02x %02x %02x\n", in->DA[ 0 ], in->DA[ 1 ], … in ncsi_respdump()
66 …LOG, "[NCSI-Respond] SA : %02x %02x %02x %02x %02x %02x\n", in->SA[ 0 ], in->SA[ 1 ], … in ncsi_respdump()
67 …PRINTF( FP_LOG, "[NCSI-Respond] EtherType : %04x\n", SWAP_2B_BEDN( in->EtherType ) … in ncsi_respdump()
68 …PRINTF( FP_LOG, "[NCSI-Respond] MC_ID : %02x\n", in->MC_ID … in ncsi_respdump()
69 …PRINTF( FP_LOG, "[NCSI-Respond] Header_Revision: %02x\n", in->Header_Revision … in ncsi_respdump()
70 // PRINTF( FP_LOG, "[NCSI-Respond] Reserved_1 : %02x\n", in->Reserved_1 … in ncsi_respdump()
71 …PRINTF( FP_LOG, "[NCSI-Respond] IID : %02x\n", in->IID … in ncsi_respdump()
72 …PRINTF( FP_LOG, "[NCSI-Respond] Command : %02x\n", in->Command … in ncsi_respdump()
73 …PRINTF( FP_LOG, "[NCSI-Respond] ChID : %02x\n", in->ChID … in ncsi_respdump()
74 …PRINTF( FP_LOG, "[NCSI-Respond] Payload_Length : %04x\n", SWAP_2B_BEDN( in->Payload_Length ) … in ncsi_respdump()
75 // PRINTF( FP_LOG, "[NCSI-Respond] Reserved_2 : %04x\n", in->Reserved_2 … in ncsi_respdump()
76 // PRINTF( FP_LOG, "[NCSI-Respond] Reserved_3 : %04x\n", in->Reserved_3 … in ncsi_respdump()
77 // PRINTF( FP_LOG, "[NCSI-Respond] Reserved_4 : %04x\n", in->Reserved_4 … in ncsi_respdump()
78 // PRINTF( FP_LOG, "[NCSI-Respond] Reserved_5 : %04x\n", in->Reserved_5 … in ncsi_respdump()
79 …PRINTF( FP_LOG, "[NCSI-Respond] Response_Code : %04x\n", SWAP_2B_BEDN( in->Response_Code ) … in ncsi_respdump()
80 …PRINTF( FP_LOG, "[NCSI-Respond] Reason_Code : %04x\n", SWAP_2B_BEDN( in->Reason_Code ) … in ncsi_respdump()
81 for ( i = 0; i < SWAP_2B_BEDN( in->Payload_Length ); i++ ) { in ncsi_respdump()
83 case 0 : PRINTF( FP_LOG, "[NCSI-Respond] Payload_Data : %02x", in->Payload_Data[ i ]); break; in ncsi_respdump()
84 case 3 : PRINTF( FP_LOG, " %02x\n", in->Payload_Data[ i ]); break; in ncsi_respdump()
85 default : PRINTF( FP_LOG, " %02x", in->Payload_Data[ i ]); break; in ncsi_respdump()
92 //------------------------------------------------------------
93 void NCSI_PrintCommandStr (MAC_ENGINE *eng, unsigned char command, unsigned iid) { in NCSI_PrintCommandStr() argument
95 case 0x80 : sprintf(eng->dat.NCSI_CommandStr, "IID:%3d [%02x:Respond]", iid, command); break; in NCSI_PrintCommandStr()
96 default : sprintf(eng->dat.NCSI_CommandStr, "IID:%3d [%02x:Request]", iid, command); break; in NCSI_PrintCommandStr()
99 …case 0x00 : sprintf(eng->dat.NCSI_CommandStr, "%s[CLEAR_INITIAL_STATE ]", eng->da… in NCSI_PrintCommandStr()
100 …case 0x01 : sprintf(eng->dat.NCSI_CommandStr, "%s[SELECT_PACKAGE ]", eng->da… in NCSI_PrintCommandStr()
101 …case 0x02 : sprintf(eng->dat.NCSI_CommandStr, "%s[DESELECT_PACKAGE ]", eng->da… in NCSI_PrintCommandStr()
102 …case 0x03 : sprintf(eng->dat.NCSI_CommandStr, "%s[ENABLE_CHANNEL ]", eng->da… in NCSI_PrintCommandStr()
103 …case 0x04 : sprintf(eng->dat.NCSI_CommandStr, "%s[DISABLE_CHANNEL ]", eng->da… in NCSI_PrintCommandStr()
104 …case 0x05 : sprintf(eng->dat.NCSI_CommandStr, "%s[RESET_CHANNEL ]", eng->da… in NCSI_PrintCommandStr()
105 …case 0x06 : sprintf(eng->dat.NCSI_CommandStr, "%s[ENABLE_CHANNEL_NETWORK_TX ]", eng->da… in NCSI_PrintCommandStr()
106 …case 0x07 : sprintf(eng->dat.NCSI_CommandStr, "%s[DISABLE_CHANNEL_NETWORK_TX ]", eng->da… in NCSI_PrintCommandStr()
107 …case 0x08 : sprintf(eng->dat.NCSI_CommandStr, "%s[AEN_ENABLE ]", eng->da… in NCSI_PrintCommandStr()
108 …case 0x09 : sprintf(eng->dat.NCSI_CommandStr, "%s[SET_LINK ]", eng->da… in NCSI_PrintCommandStr()
109 …case 0x0A : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_LINK_STATUS ]", eng->da… in NCSI_PrintCommandStr()
110 …case 0x0B : sprintf(eng->dat.NCSI_CommandStr, "%s[SET_VLAN_FILTER ]", eng->da… in NCSI_PrintCommandStr()
111 …case 0x0C : sprintf(eng->dat.NCSI_CommandStr, "%s[ENABLE_VLAN ]", eng->da… in NCSI_PrintCommandStr()
112 …case 0x0D : sprintf(eng->dat.NCSI_CommandStr, "%s[DISABLE_VLAN ]", eng->da… in NCSI_PrintCommandStr()
113 …case 0x0E : sprintf(eng->dat.NCSI_CommandStr, "%s[SET_MAC_ADDRESS ]", eng->da… in NCSI_PrintCommandStr()
114 …case 0x10 : sprintf(eng->dat.NCSI_CommandStr, "%s[ENABLE_BROADCAST_FILTERING ]", eng->da… in NCSI_PrintCommandStr()
115 …case 0x11 : sprintf(eng->dat.NCSI_CommandStr, "%s[DISABLE_BROADCAST_FILTERING ]", eng->da… in NCSI_PrintCommandStr()
116 …case 0x12 : sprintf(eng->dat.NCSI_CommandStr, "%s[ENABLE_GLOBAL_MULTICAST_FILTERING ]", eng->da… in NCSI_PrintCommandStr()
117 …case 0x13 : sprintf(eng->dat.NCSI_CommandStr, "%s[DISABLE_GLOBAL_MULTICAST_FILTERING ]", eng->da… in NCSI_PrintCommandStr()
118 …case 0x14 : sprintf(eng->dat.NCSI_CommandStr, "%s[SET_NCSI_FLOW_CONTROL ]", eng->da… in NCSI_PrintCommandStr()
119 …case 0x15 : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_VERSION_ID ]", eng->da… in NCSI_PrintCommandStr()
120 …case 0x16 : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_CAPABILITIES ]", eng->da… in NCSI_PrintCommandStr()
121 …case 0x17 : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_PARAMETERS ]", eng->da… in NCSI_PrintCommandStr()
122 …case 0x18 : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_CONTROLLER_PACKET_STATISTICS ]", eng->da… in NCSI_PrintCommandStr()
123 …case 0x19 : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_NCSI_STATISTICS ]", eng->da… in NCSI_PrintCommandStr()
124 …case 0x1A : sprintf(eng->dat.NCSI_CommandStr, "%s[GET_NCSI_PASS_THROUGH_STATISTICS ]", eng->da… in NCSI_PrintCommandStr()
125 …case 0x50 : sprintf(eng->dat.NCSI_CommandStr, "%s[OEM_COMMAND ]", eng->da… in NCSI_PrintCommandStr()
126 …default : sprintf(eng->dat.NCSI_CommandStr, "%s Not Support Command", eng->dat.NCSI_CommandStr… in NCSI_PrintCommandStr()
128 } // End void NCSI_PrintCommandStr (MAC_ENGINE *eng, unsigned char command, unsigned iid) in NCSI_PrintCommandStr()
130 //------------------------------------------------------------
131 void NCSI_PrintCommandType (MAC_ENGINE *eng, unsigned char command, unsigned iid) { in NCSI_PrintCommandType() argument
132 NCSI_PrintCommandStr( eng, command, iid ); in NCSI_PrintCommandType()
133 printf("[NCSI-commd]%s\n", eng->dat.NCSI_CommandStr); in NCSI_PrintCommandType()
136 //------------------------------------------------------------
137 void NCSI_PrintCommandType2File (MAC_ENGINE *eng, unsigned char command, unsigned iid) { in NCSI_PrintCommandType2File() argument
138 NCSI_PrintCommandStr( eng, command, iid ); in NCSI_PrintCommandType2File()
139 PRINTF( FP_LOG, "[NCSI-commd]%s\n", eng->dat.NCSI_CommandStr ); in NCSI_PrintCommandType2File()
142 //------------------------------------------------------------
143 void NCSI_Struct_Initialize_SLT (MAC_ENGINE *eng) in NCSI_Struct_Initialize_SLT() argument
148 eng->run.NCSI_RxTimeOutScale = 1; in NCSI_Struct_Initialize_SLT()
151 eng->ncsi_req.DA[i] = 0xFF; in NCSI_Struct_Initialize_SLT()
152 eng->ncsi_req.SA[i] = eng->inf.SA[i]; in NCSI_Struct_Initialize_SLT()
155 /* EtherType = 0x88F8 (DMTF DSP0222 NC-SI spec) in NCSI_Struct_Initialize_SLT()
157 eng->ncsi_req.EtherType = SWAP_2B_BEDN(0x88F8); in NCSI_Struct_Initialize_SLT()
159 eng->ncsi_req.MC_ID = 0; in NCSI_Struct_Initialize_SLT()
160 eng->ncsi_req.Header_Revision = 0x01; in NCSI_Struct_Initialize_SLT()
161 eng->ncsi_req.Reserved_1 = 0; in NCSI_Struct_Initialize_SLT()
162 eng->ncsi_req.IID = 0; in NCSI_Struct_Initialize_SLT()
163 // eng->ncsi_req.Command = 0; in NCSI_Struct_Initialize_SLT()
164 // eng->ncsi_req.ChID = 0; in NCSI_Struct_Initialize_SLT()
165 // eng->ncsi_req.Payload_Length = 0; in NCSI_Struct_Initialize_SLT()
167 eng->ncsi_req.Response_Code = 0; in NCSI_Struct_Initialize_SLT()
168 eng->ncsi_req.Reason_Code = 0; in NCSI_Struct_Initialize_SLT()
169 eng->ncsi_req.Reserved_2 = 0; in NCSI_Struct_Initialize_SLT()
170 eng->ncsi_req.Reserved_3 = 0; in NCSI_Struct_Initialize_SLT()
172 eng->dat.NCSI_TxByteBUF = (unsigned char *) &eng->dat.NCSI_TxDWBUF[0]; in NCSI_Struct_Initialize_SLT()
173 eng->dat.NCSI_RxByteBUF = (unsigned char *) &eng->dat.NCSI_RxDWBUF[0]; in NCSI_Struct_Initialize_SLT()
175 eng->run.ncsi_tdes_base = eng->run.tdes_base;//base for read/write in NCSI_Struct_Initialize_SLT()
176 Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x04, 0 ); in NCSI_Struct_Initialize_SLT()
177 Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x08, 0 ); in NCSI_Struct_Initialize_SLT()
178 Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x0C, DMA_BASE - ASPEED_DRAM_BASE); in NCSI_Struct_Initialize_SLT()
180 eng->run.ncsi_rdes_base = eng->run.rdes_base;//base for read/write in NCSI_Struct_Initialize_SLT()
183 for (i = 0; i < NCSI_RxDESNum - 1; i++) { in NCSI_Struct_Initialize_SLT()
184 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base ), 0x00000000 ); in NCSI_Struct_Initialize_SLT()
185 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x04 ), 0x00000000 ); in NCSI_Struct_Initialize_SLT()
186 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x08 ), 0x00000000 ); in NCSI_Struct_Initialize_SLT()
187 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x0C ), NCSI_RxDatBase ); in NCSI_Struct_Initialize_SLT()
188 eng->run.ncsi_rdes_base += 16; in NCSI_Struct_Initialize_SLT()
191 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base ), EOR_IniVal ); in NCSI_Struct_Initialize_SLT()
192 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x04 ), 0x00000000 ); in NCSI_Struct_Initialize_SLT()
193 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x08 ), 0x00000000 ); in NCSI_Struct_Initialize_SLT()
194 // Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x0C ), (NCSI_RxDatBase + CPU_BUS_ADDR_SDRAM_… in NCSI_Struct_Initialize_SLT()
195 Write_Mem_Des_NCSI_DD( ( eng->run.ncsi_rdes_base + 0x0C ), NCSI_RxDatBase ); // 20130730 in NCSI_Struct_Initialize_SLT()
197 eng->run.ncsi_rdes_base = eng->run.rdes_base;//base for read/write in NCSI_Struct_Initialize_SLT()
200 //------------------------------------------------------------
201 void Calculate_Checksum_NCSI (MAC_ENGINE *eng, unsigned char *buffer_base, int Length) { in Calculate_Checksum_NCSI() argument
208 // Page 50, NC-SI spec. ver. 1.0.0 form DMTF in Calculate_Checksum_NCSI()
211 Data1 = buffer_base[i + 1]; in Calculate_Checksum_NCSI()
214 eng->dat.Payload_Checksum_NCSI = SWAP_4B_BEDN(~(CheckSum) + 1); //2's complement in Calculate_Checksum_NCSI()
230 p_eng->dat.NCSI_RxEr = 1; in check_rx_desc_err()
278 //------------------------------------------------------------
280 // return 1: it is FAIL
281 //------------------------------------------------------------
282 char NCSI_Rx_SLT (MAC_ENGINE *eng) { in NCSI_Rx_SLT() argument
288 char ret = 1; in NCSI_Rx_SLT()
296 mac_reg_write( eng, 0x1C, 0x00000000 );//Rx Poll in NCSI_Rx_SLT()
300 NCSI_RxDesDat = Read_Mem_Des_NCSI_DD( eng->run.ncsi_rdes_base ); in NCSI_Rx_SLT()
301 if ( ++timeout > TIME_OUT_NCSI * eng->run.NCSI_RxTimeOutScale ) { in NCSI_Rx_SLT()
303 return( FindErr( eng, Err_Flag_NCSI_Check_RxOwnTimeOut ) ); in NCSI_Rx_SLT()
307 check_rx_desc_err(eng, NCSI_RxDesDat); in NCSI_Rx_SLT()
310 …NCSI_RxDatBase = AT_BUF_MEMRW( Read_Mem_Des_NCSI_DD( eng->run.ncsi_rdes_base + 0x0C ) );//base for… in NCSI_Rx_SLT()
315 bytesize = (NCSI_RxDesDat & 0x3fff) - 4; in NCSI_Rx_SLT()
321 dwsize = ( bytesize >> 2 ) + 1; in NCSI_Rx_SLT()
325 if ( eng->arg.ctrl.b.print_ncsi ) { in NCSI_Rx_SLT()
327 PRINTF( FP_LOG ,"----->[Rx] %d bytes(%xh) [Remove CRC data]\n", bytesize, bytesize ); in NCSI_Rx_SLT()
329 PRINTF( FP_LOG ,"----->[Rx] %d bytes(%xh)\n", bytesize, bytesize ); in NCSI_Rx_SLT()
331 for (i = 0; i < dwsize - 1; i++) { in NCSI_Rx_SLT()
336 i = ( dwsize - 1 ); in NCSI_Rx_SLT()
342 …case 1 : PRINTF( FP_LOG ," [Rx]%02d:%08x %08x [%08x %08x][%08x %08x]\n", i, NCSI_BufData & S… in NCSI_Rx_SLT()
351 …eng->dat.NCSI_RxDWBUF[i] = SWAP_4B_LEDN_NCSI( Read_Mem_Dat_NCSI_DD( NCSI_RxDatBase + ( i << 2 ) ) … in NCSI_Rx_SLT()
353 memcpy ( &eng->ncsi_rsp, eng->dat.NCSI_RxByteBUF, bytesize ); in NCSI_Rx_SLT()
355 if ( eng->arg.ctrl.b.print_ncsi ) in NCSI_Rx_SLT()
356 PRINTF( FP_LOG ,"[Frm-NCSI][Rx IID:%2d]\n", eng->ncsi_rsp.IID ); in NCSI_Rx_SLT()
358 if ( ( eng->ncsi_rsp.IID == 0x0 ) && ( eng->ncsi_rsp.Command == 0xff ) ) { // AEN Packet in NCSI_Rx_SLT()
359 if ( eng->arg.ctrl.b.print_ncsi ) in NCSI_Rx_SLT()
360 …PRINTF( FP_LOG ,"[Frm-NCSI][AEN Packet]Type:%2d\n", SWAP_2B_BEDN( eng->ncsi_rsp.Reason_Code ) & 0x… in NCSI_Rx_SLT()
367 if ( eng->arg.ctrl.b.print_ncsi ) in NCSI_Rx_SLT()
368 …PRINTF( FP_LOG, "[Frm-Skip] Not NCSI Response: [%08x & %08x = %08x]!=[%08x]\n", NCSI_RxData, 0xfff… in NCSI_Rx_SLT()
373 Write_Mem_Des_NCSI_DD( eng->run.ncsi_rdes_base , EOR_IniVal ); in NCSI_Rx_SLT()
374 eng->run.ncsi_rdes_base = eng->run.rdes_base;//base for read/write in NCSI_Rx_SLT()
377 Write_Mem_Des_NCSI_DD( eng->run.ncsi_rdes_base , 0x00000000 ); in NCSI_Rx_SLT()
378 eng->run.ncsi_rdes_base += 16; in NCSI_Rx_SLT()
386 if ( ( ret == 0 ) && eng->arg.ctrl.b.print_ncsi ) { in NCSI_Rx_SLT()
388 ncsi_respdump ( eng, &eng->ncsi_rsp ); in NCSI_Rx_SLT()
390 …PRINTF( FP_LOG, "[NCSI-Respond] ETyp:%04x MC_ID:%02x HeadVer:%02x IID:%02x Comm:%02x ChlID:%02x Pa… in NCSI_Rx_SLT()
391 SWAP_2B_BEDN( eng->ncsi_rsp.EtherType ), in NCSI_Rx_SLT()
392 eng->ncsi_rsp.MC_ID, in NCSI_Rx_SLT()
393 eng->ncsi_rsp.Header_Revision, in NCSI_Rx_SLT()
394 eng->ncsi_rsp.IID, in NCSI_Rx_SLT()
395 eng->ncsi_rsp.Command, in NCSI_Rx_SLT()
396 eng->ncsi_rsp.ChID, in NCSI_Rx_SLT()
397 SWAP_2B_BEDN( eng->ncsi_rsp.Payload_Length ), in NCSI_Rx_SLT()
398 SWAP_2B_BEDN( eng->ncsi_rsp.Response_Code ), in NCSI_Rx_SLT()
399 SWAP_2B_BEDN( eng->ncsi_rsp.Reason_Code )); in NCSI_Rx_SLT()
402 NCSI_PrintCommandType2File( eng, eng->ncsi_rsp.Command, eng->ncsi_rsp.IID ); in NCSI_Rx_SLT()
406 } // End char NCSI_Rx_SLT (MAC_ENGINE *eng) in NCSI_Rx_SLT()
408 //------------------------------------------------------------
409 char NCSI_Tx (MAC_ENGINE *eng, unsigned char command, unsigned char allid, uint16_t length) { in NCSI_Tx() argument
416 eng->ncsi_req.IID++; in NCSI_Tx()
417 eng->ncsi_req.Command = command; in NCSI_Tx()
418 eng->ncsi_req.ChID = allid; in NCSI_Tx()
419 eng->ncsi_req.Payload_Length = SWAP_2B_BEDN( length ); in NCSI_Tx()
421 memcpy ( eng->dat.NCSI_TxByteBUF , &eng->ncsi_req , 30 ); in NCSI_Tx()
422 memcpy ( (eng->dat.NCSI_TxByteBUF + 30 ), &eng->dat.NCSI_Payload_Data , length ); in NCSI_Tx()
423 Calculate_Checksum_NCSI( eng, eng->dat.NCSI_TxByteBUF, 30 + length ); in NCSI_Tx()
424 memcpy ( (eng->dat.NCSI_TxByteBUF + 30 + length), &eng->dat.Payload_Checksum_NCSI, 4 ); in NCSI_Tx()
426 // Header of NC-SI command format is 34 bytes. page 58, NC-SI spec. ver 1.0.0 from DMTF in NCSI_Tx()
427 // The minimum size of a NC-SI package is 64 bytes. in NCSI_Tx()
430 memset ( eng->dat.NCSI_TxByteBUF + bytesize, 0, 60 - bytesize ); in NCSI_Tx()
437 dwsize = ( bytesize >> 2 ) + 1; in NCSI_Tx()
441 if ( eng->arg.ctrl.b.print_ncsi ) { in NCSI_Tx()
443 memset ( eng->dat.NCSI_TxByteBUF + bytesize, 0, (dwsize << 2) - bytesize ); in NCSI_Tx()
445 PRINTF( FP_LOG ,"----->[Tx] %d bytes(%xh)\n", bytesize, bytesize ); in NCSI_Tx()
446 for ( i = 0; i < dwsize-1; i++ ) in NCSI_Tx()
447 …PRINTF( FP_LOG, " [Tx]%02d:%08x %08x\n", i, eng->dat.NCSI_TxDWBUF[i], SWAP_4B( eng->dat.NCSI_… in NCSI_Tx()
449 i = dwsize - 1; in NCSI_Tx()
451 …8x %08x\n", i, eng->dat.NCSI_TxDWBUF[i] & SWAP_4B_LEDN_NCSI( 0xffffffff )… in NCSI_Tx()
452 …eng->dat.NCSI_TxDWBUF[i] & SWAP_4B_LEDN_NCSI( 0x00ffffff ), SWAP_4B( eng->dat.NCSI_TxDWBUF[i] ) & … in NCSI_Tx()
453 …eng->dat.NCSI_TxDWBUF[i] & SWAP_4B_LEDN_NCSI( 0x0000ffff ), SWAP_4B( eng->dat.NCSI_TxDWBUF[i] ) & … in NCSI_Tx()
454 …1 : PRINTF( FP_LOG ," [Tx]%02d:%08x %08x [%08x %08x][%08x %08x]\n", i, eng->dat.NCSI_TxDWBUF… in NCSI_Tx()
457 PRINTF( FP_LOG ,"[Frm-NCSI][Tx IID:%2d]\n", eng->ncsi_req.IID ); in NCSI_Tx()
460 #if 1 in NCSI_Tx()
463 Write_Mem_Dat_NCSI_DD( DMA_BASE + ( i << 2 ), SWAP_4B_LEDN_NCSI( eng->dat.NCSI_TxDWBUF[i] ) ); in NCSI_Tx()
467 Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base , 0xf0008000 + bytesize ); in NCSI_Tx()
469 // mac_reg_write( eng, 0x40, eng->reg.MAC_040 ); // 20170505 in NCSI_Tx()
472 mac_reg_write( eng, 0x18, 0x00000000 );//Tx Poll in NCSI_Tx()
475 NCSI_TxDesDat = Read_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base ); in NCSI_Tx()
478 return( FindErr( eng, Err_Flag_NCSI_Check_TxOwnTimeOut )); in NCSI_Tx()
482 if ( eng->arg.ctrl.b.print_ncsi ) { in NCSI_Tx()
484 ncsi_reqdump ( eng, &eng->ncsi_req ); in NCSI_Tx()
486 …PRINTF( FP_LOG, "[NCSI-Request] ETyp:%04x MC_ID:%02x HeadVer:%02x IID:%02x Comm:%02x ChlID:%02x Pa… in NCSI_Tx()
487 SWAP_2B_BEDN( eng->ncsi_req.EtherType ), in NCSI_Tx()
488 eng->ncsi_req.MC_ID, in NCSI_Tx()
489 eng->ncsi_req.Header_Revision, in NCSI_Tx()
490 eng->ncsi_req.IID, in NCSI_Tx()
491 eng->ncsi_req.Command, in NCSI_Tx()
492 eng->ncsi_req.ChID, in NCSI_Tx()
493 SWAP_2B_BEDN( eng->ncsi_req.Payload_Length ) ); in NCSI_Tx()
496 NCSI_PrintCommandType2File( eng, eng->ncsi_req.Command, eng->ncsi_req.IID ); in NCSI_Tx()
499 NCSI_PrintCommandType( eng, eng->ncsi_req.Command, eng->ncsi_req.IID ); in NCSI_Tx()
503 } // End char NCSI_Tx (MAC_ENGINE *eng, unsigned char command, unsigned char allid, uint16_t length) in NCSI_Tx()
505 //------------------------------------------------------------
506 char NCSI_ARP (MAC_ENGINE *eng) { in NCSI_ARP() argument
511 if ( eng->arg.ctrl.b.print_ncsi ) in NCSI_ARP()
512 PRINTF( FP_LOG ,"----->[ARP] 60 bytes x%d\n", eng->arg.GARPNumCnt ); in NCSI_ARP()
515 if ( eng->arg.ctrl.b.print_ncsi ) in NCSI_ARP()
516 …PRINTF( FP_LOG, " [Tx%02d] %08x %08x\n", i, eng->dat.ARP_data[i], SWAP_4B( eng->dat.ARP_data[… in NCSI_ARP()
518 Write_Mem_Dat_NCSI_DD(((uint32_t)&dma_buf) + ( i << 2 ), eng->dat.ARP_data[i] ); in NCSI_ARP()
521 // Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x04, 0 ); in NCSI_ARP()
522 // Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x08, 0 ); in NCSI_ARP()
523 // Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base + 0x0C, AT_MEMRW_BUF( DMA_BASE ) ); in NCSI_ARP()
524 for (i = 0; i < eng->arg.GARPNumCnt; i++) { in NCSI_ARP()
525 Write_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base , 0xf0008000 + 60); in NCSI_ARP()
526 mac_reg_write( eng, 0x18, 0x00000000 );//Tx Poll in NCSI_ARP()
529 NCSI_TxDesDat = Read_Mem_Des_NCSI_DD( eng->run.ncsi_tdes_base ); in NCSI_ARP()
531 PRINTF( FP_LOG, "[TxDes-ARP] DesOwn timeout %08x\n", NCSI_TxDesDat ); in NCSI_ARP()
532 return( FindErr( eng, Err_Flag_NCSI_Check_ARPOwnTimeOut ) ); in NCSI_ARP()
537 } // End char NCSI_ARP (MAC_ENGINE *eng) in NCSI_ARP()
539 //------------------------------------------------------------
540 char NCSI_SentWaitPacket (MAC_ENGINE *eng, unsigned char command, unsigned char allid, uint16_t len… in NCSI_SentWaitPacket() argument
544 if ( NCSI_Tx( eng, command, allid, length ) ) in NCSI_SentWaitPacket()
545 return( 1 ); in NCSI_SentWaitPacket()
550 if ( NCSI_Rx_SLT( eng ) ) in NCSI_SentWaitPacket()
553 if ( ( eng->ncsi_rsp.IID != eng->ncsi_req.IID ) in NCSI_SentWaitPacket()
554 || ( eng->ncsi_rsp.Command != ( command | 0x80 ) ) in NCSI_SentWaitPacket()
555 || ( eng->ncsi_rsp.Response_Code != SWAP_2B_BEDN( COMMAND_COMPLETED ) ) ) { in NCSI_SentWaitPacket()
556 if ( eng->arg.ctrl.b.print_ncsi ) { in NCSI_SentWaitPacket()
557 …NTF( FP_LOG, "Retry: Command = %x, Response_Code = %x", eng->ncsi_req.Command, SWAP_2B_BEDN( eng->… in NCSI_SentWaitPacket()
558 switch ( SWAP_2B_BEDN( eng->ncsi_rsp.Response_Code ) ) { in NCSI_SentWaitPacket()
563 default : PRINTF( FP_LOG, "(-----------)\n" ); break; in NCSI_SentWaitPacket()
576 //------------------------------------------------------------
577 char Clear_Initial_State_SLT (MAC_ENGINE *eng) {//Command:0x00 in Clear_Initial_State_SLT() argument
580 eng->flg.error_backup = eng->flg.error; in Clear_Initial_State_SLT()
581 eng->flg.ncsi_backup = eng->flg.ncsi; in Clear_Initial_State_SLT()
583 …return_value = NCSI_SentWaitPacket( eng, CLEAR_INITIAL_STATE, eng->ncsi_cap.All_ID, 0 );//Internal… in Clear_Initial_State_SLT()
585 eng->flg.error = eng->flg.error_backup; in Clear_Initial_State_SLT()
586 eng->flg.ncsi = eng->flg.ncsi_backup; in Clear_Initial_State_SLT()
590 //------------------------------------------------------------
591 char Select_Package_SLT (MAC_ENGINE *eng, char skipflag) {//Command:0x01 in Select_Package_SLT() argument
595 eng->flg.error_backup = eng->flg.error; in Select_Package_SLT()
596 eng->flg.ncsi_backup = eng->flg.ncsi; in Select_Package_SLT()
599 memset ((void *)eng->dat.NCSI_Payload_Data, 0, 4); in Select_Package_SLT()
600 eng->dat.NCSI_Payload_Data[ 3 ] = 1; //Arbitration Disable in Select_Package_SLT()
601 …return_value = NCSI_SentWaitPacket( eng, SELECT_PACKAGE, ( eng->ncsi_cap.Package_ID << 5 ) + 0x1F,… in Select_Package_SLT()
603 ncsi_set_error_flag( eng, NCSI_Flag_Select_Package ); in Select_Package_SLT()
606 eng->flg.error = eng->flg.error_backup; in Select_Package_SLT()
607 eng->flg.ncsi = eng->flg.ncsi_backup; in Select_Package_SLT()
612 //------------------------------------------------------------
613 void Select_Active_Package_SLT (MAC_ENGINE *eng) {//Command:0x01 in Select_Active_Package_SLT() argument
614 memset ((void *)eng->dat.NCSI_Payload_Data, 0, 4); in Select_Active_Package_SLT()
615 eng->dat.NCSI_Payload_Data[ 3 ] = 1; //Arbitration Disable in Select_Active_Package_SLT()
617 …if ( NCSI_SentWaitPacket( eng, SELECT_PACKAGE, ( eng->ncsi_cap.Package_ID << 5 ) + 0x1F, 4 ) ) //I… in Select_Active_Package_SLT()
618 ncsi_set_error_flag( eng, NCSI_Flag_Select_Active_Package ); in Select_Active_Package_SLT()
621 //------------------------------------------------------------
622 void DeSelect_Package_SLT (MAC_ENGINE *eng) {//Command:0x02 in DeSelect_Package_SLT() argument
623 …if ( NCSI_SentWaitPacket( eng, DESELECT_PACKAGE, ( eng->ncsi_cap.Package_ID << 5 ) + 0x1F, 0 ) ) /… in DeSelect_Package_SLT()
624 ncsi_set_error_flag( eng, NCSI_Flag_Deselect_Package ); in DeSelect_Package_SLT()
631 //------------------------------------------------------------
632 void Enable_Channel_SLT (MAC_ENGINE *eng) {//Command:0x03 in Enable_Channel_SLT() argument
633 if ( NCSI_SentWaitPacket( eng, ENABLE_CHANNEL, eng->ncsi_cap.All_ID, 0 ) ) in Enable_Channel_SLT()
634 ncsi_set_error_flag( eng, NCSI_Flag_Enable_Channel ); in Enable_Channel_SLT()
637 //------------------------------------------------------------
638 void Disable_Channel_SLT (MAC_ENGINE *eng, char skipflag) {//Command:0x04 in Disable_Channel_SLT() argument
640 eng->flg.error_backup = eng->flg.error; in Disable_Channel_SLT()
641 eng->flg.ncsi_backup = eng->flg.ncsi; in Disable_Channel_SLT()
644 memset ((void *)eng->dat.NCSI_Payload_Data, 0, 4); in Disable_Channel_SLT()
645 eng->dat.NCSI_Payload_Data[ 3 ] = 0x1; //ALD in Disable_Channel_SLT()
646 if ( NCSI_SentWaitPacket( eng, DISABLE_CHANNEL, eng->ncsi_cap.All_ID, 4 ) ) in Disable_Channel_SLT()
647 ncsi_set_error_flag( eng, NCSI_Flag_Disable_Channel ); in Disable_Channel_SLT()
650 eng->flg.error = eng->flg.error_backup; in Disable_Channel_SLT()
651 eng->flg.ncsi = eng->flg.ncsi_backup; in Disable_Channel_SLT()
655 //------------------------------------------------------------
656 void Enable_Network_TX_SLT (MAC_ENGINE *eng) {//Command:0x06 in Enable_Network_TX_SLT() argument
657 if ( NCSI_SentWaitPacket( eng, ENABLE_CHANNEL_NETWORK_TX, eng->ncsi_cap.All_ID, 0 ) ) in Enable_Network_TX_SLT()
658 ncsi_set_error_flag( eng, NCSI_Flag_Enable_Network_TX ); in Enable_Network_TX_SLT()
661 //------------------------------------------------------------
662 void Disable_Network_TX_SLT (MAC_ENGINE *eng) {//Command:0x07 in Disable_Network_TX_SLT() argument
663 if ( NCSI_SentWaitPacket( eng, DISABLE_CHANNEL_NETWORK_TX, eng->ncsi_cap.All_ID, 0 ) ) in Disable_Network_TX_SLT()
664 ncsi_set_error_flag( eng, NCSI_Flag_Disable_Network_TX ); in Disable_Network_TX_SLT()
667 //------------------------------------------------------------
668 void Set_Link_SLT (MAC_ENGINE *eng) {//Command:0x09 in Set_Link_SLT() argument
669 memset ((void *)eng->dat.NCSI_Payload_Data, 0, 8); in Set_Link_SLT()
670 eng->dat.NCSI_Payload_Data[ 2 ] = 0x02; //full duplex in Set_Link_SLT()
671 // eng->dat.NCSI_Payload_Data[ 3 ] = 0x04; //100M, auto-disable in Set_Link_SLT()
672 eng->dat.NCSI_Payload_Data[ 3 ] = 0x05; //100M, auto-enable in Set_Link_SLT()
674 if ( NCSI_SentWaitPacket( eng, SET_LINK, eng->ncsi_cap.All_ID, 8 ) ) in Set_Link_SLT()
675 ncsi_set_error_flag( eng, NCSI_Flag_Set_Link ); in Set_Link_SLT()
678 //------------------------------------------------------------
679 char Get_Link_Status_SLT (MAC_ENGINE *eng) {//Command:0x0a in Get_Link_Status_SLT() argument
680 if ( NCSI_SentWaitPacket( eng, GET_LINK_STATUS, eng->ncsi_cap.All_ID, 0 ) ) in Get_Link_Status_SLT()
683 if ( eng->ncsi_rsp.Payload_Data[ 3 ] & 0x20 ) { in Get_Link_Status_SLT()
684 if ( eng->ncsi_rsp.Payload_Data[ 3 ] & 0x40 ) { in Get_Link_Status_SLT()
685 if ( eng->ncsi_rsp.Payload_Data[ 3 ] & 0x01 ) in Get_Link_Status_SLT()
686 return(1); //Link Up or Not in Get_Link_Status_SLT()
694 if ( eng->ncsi_rsp.Payload_Data[ 3 ] & 0x01 ) in Get_Link_Status_SLT()
695 return(1); //Link Up or Not in Get_Link_Status_SLT()
700 } // End char Get_Link_Status_SLT (MAC_ENGINE *eng) in Get_Link_Status_SLT()
702 //------------------------------------------------------------
703 void Enable_Set_MAC_Address_SLT (MAC_ENGINE *eng) in Enable_Set_MAC_Address_SLT() argument
710 eng->dat.NCSI_Payload_Data[ i ] = eng->ncsi_req.SA[ i ]; in Enable_Set_MAC_Address_SLT()
711 …eng->dat.NCSI_Payload_Data[ 6 ] = 1; //MAC Address Num = 1 --> address filter 1, fixed in sample c… in Enable_Set_MAC_Address_SLT()
713 if ( eng->ncsi_req.SA[ 0 ] & 0x1 ) in Enable_Set_MAC_Address_SLT()
714 eng->dat.NCSI_Payload_Data[ 7 ] = MULTICAST + ENABLE_MAC_ADDRESS_FILTER; //AT + E in Enable_Set_MAC_Address_SLT()
716 eng->dat.NCSI_Payload_Data[ 7 ] = UNICAST + ENABLE_MAC_ADDRESS_FILTER; //AT + E in Enable_Set_MAC_Address_SLT()
718 if ( NCSI_SentWaitPacket( eng, SET_MAC_ADDRESS, eng->ncsi_cap.All_ID, 8 ) ) in Enable_Set_MAC_Address_SLT()
719 ncsi_set_error_flag( eng, NCSI_Flag_Enable_Set_MAC_Address ); in Enable_Set_MAC_Address_SLT()
722 //------------------------------------------------------------
723 void Enable_Broadcast_Filter_SLT (MAC_ENGINE *eng) {//Command:0x10 in Enable_Broadcast_Filter_SLT() argument
724 memset ((void *)eng->dat.NCSI_Payload_Data, 0, 4); in Enable_Broadcast_Filter_SLT()
725 eng->dat.NCSI_Payload_Data[ 3 ] = 0xF; //ARP, DHCP, NetBIOS in Enable_Broadcast_Filter_SLT()
727 if ( NCSI_SentWaitPacket( eng, ENABLE_BROADCAST_FILTERING, eng->ncsi_cap.All_ID, 4 ) ) in Enable_Broadcast_Filter_SLT()
728 ncsi_set_error_flag( eng, NCSI_Flag_Enable_Broadcast_Filter ); in Enable_Broadcast_Filter_SLT()
731 //------------------------------------------------------------
732 void Get_Version_ID_SLT (MAC_ENGINE *eng) {//Command:0x15 in Get_Version_ID_SLT() argument
733 if ( NCSI_SentWaitPacket( eng, GET_VERSION_ID, eng->ncsi_cap.All_ID, 0 ) ) in Get_Version_ID_SLT()
734 ncsi_set_error_flag( eng, NCSI_Flag_Get_Version_ID ); in Get_Version_ID_SLT()
737 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 0 ], eng->ncsi_rsp.Payload_Data[ 1 ], eng->nc… in Get_Version_ID_SLT()
738 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 4 ], eng->ncsi_rsp.Payload_Data[ 5 ], eng->nc… in Get_Version_ID_SLT()
739 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 8 ], eng->ncsi_rsp.Payload_Data[ 9 ], eng->nc… in Get_Version_ID_SLT()
740 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 12 ], eng->ncsi_rsp.Payload_Data[ 13 ], eng->nc… in Get_Version_ID_SLT()
741 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 16 ], eng->ncsi_rsp.Payload_Data[ 17 ], eng->nc… in Get_Version_ID_SLT()
742 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 20 ], eng->ncsi_rsp.Payload_Data[ 21 ], eng->nc… in Get_Version_ID_SLT()
743 …02x %02x/%02x %02x\n", eng->ncsi_rsp.Payload_Data[ 24 ], eng->ncsi_rsp.Payload_Data[ 25 ], eng->nc… in Get_Version_ID_SLT()
744 …02x %02x/%02x %02x\n", eng->ncsi_rsp.Payload_Data[ 28 ], eng->ncsi_rsp.Payload_Data[ 29 ], eng->nc… in Get_Version_ID_SLT()
745 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 32 ], eng->ncsi_rsp.Payload_Data[ 33 ], eng->nc… in Get_Version_ID_SLT()
746 …02x %02x %02x %02x\n", eng->ncsi_rsp.Payload_Data[ 36 ], eng->ncsi_rsp.Payload_Data[ 37 ], eng->nc… in Get_Version_ID_SLT()
748 eng->ncsi_cap.PCI_DID_VID = (eng->ncsi_rsp.Payload_Data[ 24 ]<<24) in Get_Version_ID_SLT()
749 | (eng->ncsi_rsp.Payload_Data[ 25 ]<<16) in Get_Version_ID_SLT()
750 | (eng->ncsi_rsp.Payload_Data[ 26 ]<< 8) in Get_Version_ID_SLT()
751 | (eng->ncsi_rsp.Payload_Data[ 27 ] ); in Get_Version_ID_SLT()
752 eng->ncsi_cap.manufacturer_id = (eng->ncsi_rsp.Payload_Data[ 32 ]<<24) in Get_Version_ID_SLT()
753 | (eng->ncsi_rsp.Payload_Data[ 33 ]<<16) in Get_Version_ID_SLT()
754 | (eng->ncsi_rsp.Payload_Data[ 34 ]<< 8) in Get_Version_ID_SLT()
755 | (eng->ncsi_rsp.Payload_Data[ 35 ] ); in Get_Version_ID_SLT()
757 } // End void Get_Version_ID_SLT (MAC_ENGINE *eng) in Get_Version_ID_SLT()
759 //------------------------------------------------------------
760 void Get_Capabilities_SLT (MAC_ENGINE *eng) {//Command:0x16 in Get_Capabilities_SLT() argument
761 if ( NCSI_SentWaitPacket( eng, GET_CAPABILITIES, eng->ncsi_cap.All_ID, 0 ) ) in Get_Capabilities_SLT()
762 ncsi_set_error_flag( eng, NCSI_Flag_Get_Capabilities ); in Get_Capabilities_SLT()
764 // eng->ncsi_cap.Capabilities_Flags = (eng->ncsi_rsp.Payload_Data[ 0 ]<<24) in Get_Capabilities_SLT()
765 // | (eng->ncsi_rsp.Payload_Data[ 1 ]<<16) in Get_Capabilities_SLT()
766 // | (eng->ncsi_rsp.Payload_Data[ 2 ]<< 8) in Get_Capabilities_SLT()
767 // | (eng->ncsi_rsp.Payload_Data[ 3 ] ); in Get_Capabilities_SLT()
768 // eng->ncsi_cap.Broadcast_Packet_Filter_Capabilities = (eng->ncsi_rsp.Payload_Data[ 4 ]<<24) in Get_Capabilities_SLT()
769 // | (eng->ncsi_rsp.Payload_Data[ 5 ]<<16) in Get_Capabilities_SLT()
770 // | (eng->ncsi_rsp.Payload_Data[ 6 ]<< 8) in Get_Capabilities_SLT()
771 // | (eng->ncsi_rsp.Payload_Data[ 7 ] ); in Get_Capabilities_SLT()
772 // eng->ncsi_cap.Multicast_Packet_Filter_Capabilities = (eng->ncsi_rsp.Payload_Data[ 8 ]<<24) in Get_Capabilities_SLT()
773 // | (eng->ncsi_rsp.Payload_Data[ 9 ]<<16) in Get_Capabilities_SLT()
774 // | (eng->ncsi_rsp.Payload_Data[ 10 ]<< 8) in Get_Capabilities_SLT()
775 // | (eng->ncsi_rsp.Payload_Data[ 11 ] ); in Get_Capabilities_SLT()
776 // eng->ncsi_cap.Buffering_Capabilities = (eng->ncsi_rsp.Payload_Data[ 12 ]<<24) in Get_Capabilities_SLT()
777 // | (eng->ncsi_rsp.Payload_Data[ 13 ]<<16) in Get_Capabilities_SLT()
778 // | (eng->ncsi_rsp.Payload_Data[ 14 ]<< 8) in Get_Capabilities_SLT()
779 // | (eng->ncsi_rsp.Payload_Data[ 15 ] ); in Get_Capabilities_SLT()
780 // eng->ncsi_cap.AEN_Control_Support = (eng->ncsi_rsp.Payload_Data[ 16 ]<<24) in Get_Capabilities_SLT()
781 // | (eng->ncsi_rsp.Payload_Data[ 17 ]<<16) in Get_Capabilities_SLT()
782 // | (eng->ncsi_rsp.Payload_Data[ 18 ]<< 8) in Get_Capabilities_SLT()
783 // | (eng->ncsi_rsp.Payload_Data[ 19 ] ); in Get_Capabilities_SLT()
784 // eng->ncsi_cap.VLAN_Filter_Count = eng->ncsi_rsp.Payload_Data[ 20 ]; in Get_Capabilities_SLT()
785 eng->ncsi_cap.Mixed_Filter_Count = eng->ncsi_rsp.Payload_Data[ 21 ]; in Get_Capabilities_SLT()
786 // eng->ncsi_cap.Multicast_Filter_Count = eng->ncsi_rsp.Payload_Data[ 22 ]; in Get_Capabilities_SLT()
787 eng->ncsi_cap.Unicast_Filter_Count = eng->ncsi_rsp.Payload_Data[ 23 ]; in Get_Capabilities_SLT()
788 // eng->ncsi_cap.VLAN_Mode_Support = eng->ncsi_rsp.Payload_Data[ 26 ] in Get_Capabilities_SLT()
789 eng->ncsi_cap.Channel_Count = eng->ncsi_rsp.Payload_Data[ 27 ]; in Get_Capabilities_SLT()
793 //------------------------------------------------------------
794 void Get_Controller_Packet_Statistics_SLT (MAC_ENGINE *eng) {//Command:0x18 in Get_Controller_Packet_Statistics_SLT() argument
795 if ( NCSI_SentWaitPacket( eng, GET_CONTROLLER_PACKET_STATISTICS, eng->ncsi_cap.All_ID, 0 ) ) in Get_Controller_Packet_Statistics_SLT()
796 ncsi_set_error_flag( eng, NCSI_Flag_Get_Controller_Packet_Statistics ); in Get_Controller_Packet_Statistics_SLT()
799 //------------------------------------------------------------
800 char phy_ncsi (MAC_ENGINE *eng) in phy_ncsi() argument
809 eng->dat.NCSI_RxEr = 0; in phy_ncsi()
810 eng->dat.number_chl = 0; in phy_ncsi()
811 eng->dat.number_pak = 0; in phy_ncsi()
812 eng->ncsi_cap.Package_ID = 0; in phy_ncsi()
813 eng->ncsi_cap.Channel_ID = 0x1F; in phy_ncsi()
814 eng->ncsi_cap.All_ID = 0x1F; in phy_ncsi()
817 NCSI_Struct_Initialize_SLT(eng); in phy_ncsi()
824 eng->ncsi_cap.Package_ID = pkg_idx; in phy_ncsi()
825 eng->ncsi_cap.Channel_ID = 0x1F; in phy_ncsi()
826 eng->ncsi_cap.All_ID = ( eng->ncsi_cap.Package_ID << 5) + eng->ncsi_cap.Channel_ID; in phy_ncsi()
828 select_flag[ pkg_idx ] = Select_Package_SLT ( eng, 1 ); //skipflag// Command:0x01 in phy_ncsi()
831 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
832 printf("----Find Package ID: %d\n", eng->ncsi_cap.Package_ID); in phy_ncsi()
833 PRINTF(FP_LOG, "----Find Package ID: %d\n", eng->ncsi_cap.Package_ID ); in phy_ncsi()
836 eng->ncsi_cap.Channel_ID = chl_idx; in phy_ncsi()
837 eng->ncsi_cap.All_ID = ( eng->ncsi_cap.Package_ID << 5) + eng->ncsi_cap.Channel_ID; in phy_ncsi()
839 Disable_Channel_SLT( eng, 1 );//skipflag // Command: 0x04 in phy_ncsi()
843 DeSelect_Package_SLT ( eng ); // Command:0x02 in phy_ncsi()
846 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
847 printf("----Absence of Package ID: %d\n", pkg_idx); in phy_ncsi()
848 PRINTF( FP_LOG, "----Absence of Package ID: %d\n", pkg_idx ); in phy_ncsi()
856 eng->ncsi_cap.Package_ID = pkg_idx; in phy_ncsi()
857 eng->ncsi_cap.Channel_ID = 0x1F; in phy_ncsi()
858 eng->ncsi_cap.All_ID = ( eng->ncsi_cap.Package_ID << 5) + eng->ncsi_cap.Channel_ID; in phy_ncsi()
861 select_flag[ pkg_idx ] = Select_Package_SLT ( eng, 1 ); //skipflag//Command:0x01 in phy_ncsi()
865 //eng->run.NCSI_RxTimeOutScale = 1000; in phy_ncsi()
866 eng->run.NCSI_RxTimeOutScale = 10; in phy_ncsi()
870 Select_Package_SLT ( eng, 0 );//Command:0x01 in phy_ncsi()
872 eng->dat.number_pak++; in phy_ncsi()
873 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
874 printf("====Find Package ID: %d\n", eng->ncsi_cap.Package_ID); in phy_ncsi()
875 PRINTF(FP_LOG, "====Find Package ID: %d\n", eng->ncsi_cap.Package_ID ); in phy_ncsi()
880 eng->ncsi_cap.Channel_ID = chl_idx; in phy_ncsi()
881 eng->ncsi_cap.All_ID = ( eng->ncsi_cap.Package_ID << 5) + eng->ncsi_cap.Channel_ID; in phy_ncsi()
883 if ( Clear_Initial_State_SLT( eng ) == 0 ) { //Command:0x00 in phy_ncsi()
884 eng->dat.number_chl++; in phy_ncsi()
885 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
886 printf("--------Find Channel ID: %d\n", eng->ncsi_cap.Channel_ID); in phy_ncsi()
887 PRINTF( FP_LOG, "--------Find Channel ID: %d\n", eng->ncsi_cap.Channel_ID ); in phy_ncsi()
891 Get_Version_ID_SLT( eng ); //Command:0x15 in phy_ncsi()
893 Get_Capabilities_SLT( eng ); //Command:0x16 in phy_ncsi()
894 Select_Active_Package_SLT( eng ); //Command:0x01 in phy_ncsi()
895 Enable_Set_MAC_Address_SLT( eng ); //Command:0x0e in phy_ncsi()
896 Enable_Broadcast_Filter_SLT( eng ); //Command:0x10 in phy_ncsi()
899 Enable_Network_TX_SLT( eng ); //Command:0x06 in phy_ncsi()
902 Enable_Channel_SLT( eng ); //Command:0x03 in phy_ncsi()
912 Link_Status = Get_Link_Status_SLT( eng );//Command:0x0a in phy_ncsi()
914 if ( eng->arg.GARPNumCnt ) in phy_ncsi()
915 NCSI_ARP ( eng ); in phy_ncsi()
920 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
922 …is LINK_UP (MFC:%d, UFC:%d, CC:%d)\n", eng->ncsi_cap.Mixed_Filter_Count, eng->ncsi_cap.Unicast_Fil… in phy_ncsi()
923 …is LINK_UP (MFC:%d, UFC:%d, CC:%d)\n", eng->ncsi_cap.Mixed_Filter_Count, eng->ncsi_cap.Unicast_Fil… in phy_ncsi()
926 … LINK_DOWN (MFC:%d, UFC:%d, CC:%d)\n", eng->ncsi_cap.Mixed_Filter_Count, eng->ncsi_cap.Unicast_Fil… in phy_ncsi()
927 … LINK_DOWN (MFC:%d, UFC:%d, CC:%d)\n", eng->ncsi_cap.Mixed_Filter_Count, eng->ncsi_cap.Unicast_Fil… in phy_ncsi()
934 if ( eng->run.TM_NCSI_DiSChannel ) { in phy_ncsi()
936 Disable_Network_TX_SLT( eng ); //Command:0x07 in phy_ncsi()
938 Disable_Channel_SLT( eng, 0 ); //Command:0x04 in phy_ncsi()
941 } // End if ( Clear_Initial_State_SLT( eng, chl_idx ) == 0 ) in phy_ncsi()
946 DeSelect_Package_SLT ( eng );//Command:0x02 in phy_ncsi()
948 eng->run.NCSI_RxTimeOutScale = 1; in phy_ncsi()
951 if ( !eng->run.IO_MrgChk ) { in phy_ncsi()
958 if ( eng->dat.number_pak == 0 ) FindErr( eng, Err_Flag_NCSI_No_PHY ); in phy_ncsi()
959 if ( eng->dat.number_pak != eng->arg.GPackageTolNum ) FindErr( eng, Err_Flag_NCSI_Package_Num ); in phy_ncsi()
960 if ( eng->dat.number_chl != eng->arg.GChannelTolNum ) FindErr( eng, Err_Flag_NCSI_Channel_Num ); in phy_ncsi()
961 // if ( eng->dat.number_chl == 0 ) FindErr( eng ); in phy_ncsi()
963 if ( eng->flg.error ) { in phy_ncsi()
964 if ( eng->dat.NCSI_RxEr ) in phy_ncsi()
965 FindErr_Des( eng, Des_Flag_RxErr ); in phy_ncsi()
966 return(1); in phy_ncsi()
969 if ( eng->dat.NCSI_RxEr ) { in phy_ncsi()
970 eng->flg.warn = eng->flg.warn | Wrn_Flag_RxErFloatting; in phy_ncsi()
971 if ( eng->arg.ctrl.b.skip_rx_err ) { in phy_ncsi()
972 eng->flg.all_fail = 0; in phy_ncsi()
976 FindErr_Des( eng, Des_Flag_RxErr ); in phy_ncsi()
977 return(1); in phy_ncsi()
981 eng->flg.all_fail = 0; in phy_ncsi()