@@ -3153,8 +3153,7 @@ def get_uart_stat(self):
31533153 """
31543154
31553155 if self .platform_chassis is not None :
3156- cnt = {}
3157- uartPort = {}
3156+
31583157 result = {}
31593158
31603159 for option in range (2 ):
@@ -3166,27 +3165,41 @@ def get_uart_stat(self):
31663165 self .log_error ('Dump Uart statstics error (error code:0x%04X)' % (status ))
31673166 return result
31683167
3169- addr = 128
3170-
3171- for idx in range (1 , 3 ):
3172- cnt ['TxPktCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3173- addr += 4
3174- cnt ['RxPktCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3175- addr += 4
3176- cnt ['AckCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3177- addr += 4
3178- cnt ['NackCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3179- addr += 4
3180- cnt ['TxRetryCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3181- addr += 4
3182- cnt ['TxAbortCnt' ] = (self .read_mmap (YCable .MIS_PAGE_FC , addr + 3 ) << 24 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 2 ) << 16 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 1 ) << 8 ) | (self .read_mmap (YCable .MIS_PAGE_FC , addr + 0 ) << 0 )
3183- addr += 4
3184- uartPort ['UART%d' % idx ] = cnt
3168+ data = self .read_mmap (YCable .MIS_PAGE_FC , 128 , 64 )
3169+ ver = self .read_mmap (YCable .MIS_PAGE_VSC , 130 , 1 )
3170+
3171+ uartPort = {}
3172+ cnt = {}
3173+ cnt ['TxPktCnt' ] = struct .unpack_from ('<I' , data [ 0 : 4 ])[0 ]
3174+ cnt ['RxPktCnt' ] = struct .unpack_from ('<I' , data [ 4 : 8 ])[0 ]
3175+ cnt ['AckCnt' ] = struct .unpack_from ('<I' , data [ 8 : 12 ])[0 ]
3176+ cnt ['NackCnt' ] = struct .unpack_from ('<I' , data [ 12 : 16 ])[0 ]
3177+ cnt ['TxRetryCnt' ] = struct .unpack_from ('<I' , data [ 16 : 20 ])[0 ]
3178+ cnt ['TxAbortCnt' ] = struct .unpack_from ('<I' , data [ 20 : 24 ])[0 ]
3179+
3180+ if ver == 1 :
3181+ cnt ['RxErrorCnt' ] = struct .unpack_from ('<I' , data [ 48 : 52 ])[0 ]
3182+
3183+ uartPort ['UART1' ] = cnt
3184+
3185+ cnt = {}
3186+ cnt ['TxPktCnt' ] = struct .unpack_from ('<I' , data [ 24 : 28 ])[0 ]
3187+ cnt ['RxPktCnt' ] = struct .unpack_from ('<I' , data [ 28 : 32 ])[0 ]
3188+ cnt ['AckCnt' ] = struct .unpack_from ('<I' , data [ 32 : 36 ])[0 ]
3189+ cnt ['NackCnt' ] = struct .unpack_from ('<I' , data [ 36 : 40 ])[0 ]
3190+ cnt ['TxRetryCnt' ] = struct .unpack_from ('<I' , data [ 40 : 44 ])[0 ]
3191+ cnt ['TxAbortCnt' ] = struct .unpack_from ('<I' , data [ 44 : 48 ])[0 ]
3192+
3193+ if ver == 1 :
3194+ cnt ['RxErrorCnt' ] = struct .unpack_from ('<I' , data [ 52 : 56 ])[0 ]
3195+
3196+ uartPort ['UART2' ] = cnt
3197+
31853198 if option == 0 : result ['Local' ] = uartPort
31863199 else : result ['Remote' ] = uartPort
31873200
31883201 else :
3189- self .log_error ("platform_chassis is not loaded, failed to get Uart statstics " )
3202+ self .log_error ("platform_chassis is not loaded, failed to get Uart statistics " )
31903203
31913204 return result
31923205
0 commit comments