diff --git a/spi_switch_Unb2c.py b/spi_switch_Unb2c.py index 9ddd737031091e3ed68a3ade7f1daf3a1f2b5ea6..713e7ea4fe37769fb8b2058bcf3d343177802139 100644 --- a/spi_switch_Unb2c.py +++ b/spi_switch_Unb2c.py @@ -31,6 +31,7 @@ import sys import spidev DEBUG=False +CRC = False #True # CRC or packet counter # We only have SPI bus 0 available to us on the Pi bus = 0 @@ -136,7 +137,7 @@ def read_link_status(): stri = "| " for cnt_port in range(16): if ret[3] & (0x8000 >> cnt_port) : - stri += "U | " + stri += "P | " else: stri += " | " print(stri) @@ -166,6 +167,9 @@ def read_link_status(): stri += "Rx: Er " if ret[2] & 0x40: stri += "Rx FIFO Er " +# ret_err = read_switch(0x10+cnt,0x2E, pr_stri = False) +# stri += f"CRC errs: 0x{ret_err[1]:2x}" +# rest = write_switch_bytes(0x01,0x23, [0x40], pr_stri = False) else: stri += "link down " print(stri) @@ -208,7 +212,7 @@ def read_link_status(): read_switch(0x10+cnt,0x2e) if 1: # alternative status read out, works better for SerDes lines. - for prt_cnt in [9, 10, 11,12, 13,14, 15]: + for prt_cnt in [8, 9, 10, 11,12, 13,14, 15]: ret = read_switch(0x10+prt_cnt,0x28, pr_stri = False) stri = "Port status of " + str(prt_cnt) + " " if ret[1] & 0x02: @@ -235,6 +239,19 @@ def read_link_status(): stri += "Rx Fifo Err " if ret[2] & 0x80: stri += "Tx Fifo Err " + ret = read_switch(0x10+prt_cnt,0x2E, pr_stri = False) + if CRC: + rest = write_switch_bytes(0x10+prt_cnt,0x34, [0x20, 0x10], pr_stri = False) + rest = write_switch_bytes(0x10+prt_cnt,0x3e, [0x00, 0x00], pr_stri = False) + rest = write_switch_bytes(0x10+prt_cnt,0x20, [0xD0, 0x01], pr_stri = False) + stri += f"CRC err: {ret[0]} " + else: + rest = write_switch_bytes(0x10+prt_cnt,0x3e, [0x00, 0x00], pr_stri = False) + rest = write_switch_bytes(0x10+prt_cnt,0x20, [0xD0, 0x09], pr_stri = False) + stri += f"Rx packet count: {ret[0]} " + rest = write_switch_bytes(0x10+prt_cnt,0x22, [0x41, 0x41], pr_stri = False) + rest = write_switch_bytes(0x10+prt_cnt,0x3e, [0x00, 0x00], pr_stri = False) + rest = write_switch_bytes(0x10+prt_cnt,0x2E, [0x00, 0x00], pr_stri = False) else: stri += "Down " print(stri)