sleep-interval default value is reduced to 1.

i2c-bus is required argument
replace --bus with --i2c-bus for i2c_dump_rtl_regs.py for better consistency
format lint clean up
This commit is contained in:
HL Yi
2026-06-22 18:02:34 -05:00
parent 4b770a8abc
commit a56e2a419b
3 changed files with 146 additions and 110 deletions
+87 -65
View File
@@ -1,66 +1,84 @@
#!/usr/bin/env python3
import os
import sys
regs = list(range(65536))
glb_mux = 0x65E0
led3_0_set1 = 0x6528
led1_0_set0 = 0x6548
led_port_sel = 0x654c
led3_0_set1 = 0x6528
led1_0_set0 = 0x6548
led_port_sel = 0x654C
def get_word(i):
val = (regs[i+3] <<24) + (regs[i+2]<<16) + (regs[i+1]<<8) + regs[i]
# print(f"READING {i:04x} : {val:08x}")
return val
val = (regs[i + 3] << 24) + (regs[i + 2] << 16) + (regs[i + 1] << 8) + regs[i]
# print(f"READING {i:04x} : {val:08x}")
return val
with open ('reg_dump.txt', 'r') as file:
for line in file:
(addr, data) = line.split(":")
data = [ int(x, 16) for x in data.strip().split(" ") ]
addr = int(addr, 16)
for x in range(len(data)):
regs[addr + x] = data[x]
with open("reg_dump.txt", "r") as file:
for line in file:
addr, data = line.split(":")
data = [int(x, 16) for x in data.strip().split(" ")]
addr = int(addr, 16)
for x in range(len(data)):
regs[addr + x] = data[x]
ledstr = []
ledfmt = []
print("LED pad Configuration:")
for i in range(28):
j = i % 5
if j == 0:
idx = glb_mux + (i//5)*4
val = get_word(idx)
ledval = (val>>(6*j)) &0x3f
ledstr.append(f"{ledval:02x}")
ledfmt.append(f"{i:02x}")
j = i % 5
if j == 0:
idx = glb_mux + (i // 5) * 4
val = get_word(idx)
ledval = (val >> (6 * j)) & 0x3F
ledstr.append(f"{ledval:02x}")
ledfmt.append(f"{i:02x}")
print(f"{' '.join(ledfmt)}")
print(f"{' '.join(ledstr)}")
print(f".led_mux = {{ 0x{', 0x'.join(ledstr)} }},")
LED_TYPES = [
" 10G", 16,
" TWO_5G", 17,
" 5G", 18,
" TWO_2G5", 19,
" 2G5", 0,
" TWO_1G", 1,
" 1G", 2,
" 500M", 3,
" 100M", 4,
" 10M", 5,
" LINK", 6,
" LINK_FLASH", 7,
" ACT", 8,
" RX", 9,
" TX", 10,
" COL", 11,
" DUPLEX", 12,
" TRAINING", 13,
" MASTER", 14,
"", 15,
" 10G",
16,
" TWO_5G",
17,
" 5G",
18,
" TWO_2G5",
19,
" 2G5",
0,
" TWO_1G",
1,
" 1G",
2,
" 500M",
3,
" 100M",
4,
" 10M",
5,
" LINK",
6,
" LINK_FLASH",
7,
" ACT",
8,
" RX",
9,
" TX",
10,
" COL",
11,
" DUPLEX",
12,
" TRAINING",
13,
" MASTER",
14,
"",
15,
]
led_set = []
@@ -68,26 +86,30 @@ led_set_str = []
print("\nLED-set Configuration:")
print("LED-ID 0 1 2 3")
for i in range(4):
idval = []
idvalstr = []
for id in range(4):
val = 0xffff & ( get_word(led1_0_set0 - 8*i - ((id>>1)<<2)) >> (16*(id&1)) )
valhi = ( 0xf & ( get_word(led3_0_set1 - 4*(i>>1)) >> (16*(i&1) + 4*id)) ) << 16
val += valhi
idval.append(val)
valstr = "("
for bit in range(0,len(LED_TYPES),2):
if val & (1<<(LED_TYPES[bit+1])):
valstr += LED_TYPES[bit]
valstr += ")"
idvalstr.append(valstr)
led_set.append(idval)
led_set_str.append(idvalstr)
idstr = ' '.join([f"{d:05x}" for d in idval])
print(f"SET {i}: {idstr}")
# print(f"{idvalstr}")
idval = []
idvalstr = []
for id in range(4):
val = 0xFFFF & (
get_word(led1_0_set0 - 8 * i - ((id >> 1) << 2)) >> (16 * (id & 1))
)
valhi = (
0xF & (get_word(led3_0_set1 - 4 * (i >> 1)) >> (16 * (i & 1) + 4 * id))
) << 16
val += valhi
idval.append(val)
valstr = "("
for bit in range(0, len(LED_TYPES), 2):
if val & (1 << (LED_TYPES[bit + 1])):
valstr += LED_TYPES[bit]
valstr += ")"
idvalstr.append(valstr)
led_set.append(idval)
led_set_str.append(idvalstr)
idstr = " ".join([f"{d:05x}" for d in idval])
print(f"SET {i}: {idstr}")
# print(f"{idvalstr}")
portsel = get_word(led_port_sel)
for i in range(3,9):
sel = (portsel>>(i<<1)) & 3
print(f"Port {i}: SET {sel}: {', '.join(led_set_str[sel])}")
for i in range(3, 9):
sel = (portsel >> (i << 1)) & 3
print(f"Port {i}: SET {sel}: {', '.join(led_set_str[sel])}")