Files
MiPi_Investigation/analysis/__pycache__/registers.cpython-312.pyc

45 lines
5.0 KiB
Plaintext
Raw Normal View History

2026-05-06 15:57:48 +01:00
<EFBFBD>
<00>N<EFBFBD>i<EFBFBD><00><01>\<00>dZddlmZddlmZddlmZmZmZm Z m
Z
d
d<05>Z d d<06>Z d d<07>Z d d<08>Zy ) aParse SN65DSI83 and DSIM register dumps into structured flags.
DSIM PHY_TIMING bit-field layout is undocumented in the i.MX 8M Mini RM.
We log raw hex AND decoded cycle counts so they can be cross-checked
against kernel dmesg output that prints the cycle counts explicitly.
<EFBFBD>)<01> annotations)<01>Optional)<05> BYTE_CLK_HZ<48> SN65_ERR_SOT<4F>SN65_ERR_SYNCH<43> SN65_ERR_UNC<4E>SN65_FLICKER_MASKc<01><><00>|<00>yt|t<00>r|St|<00>j<00>j <00>} |j d<01>r t|d<02>St|d<02>S#t $rYywxYw)N<>0x<30>)<07>
isinstance<EFBFBD>int<6E>str<74>strip<69>lower<65>
startswith<EFBFBD>
ValueError)<02>v<>ss <20>analysis/registers.py<70>_to_intrsl<00><00><08>y<EFBFBD><13><11>!<21>S<EFBFBD><19><10><08> <0B>A<EFBFBD><06> <0C> <0C><0E><1C><1C><1E>A<EFBFBD><14> <0C><<3C><<3C><04> <1D><16>q<EFBFBD>"<22>:<3A> <1D><12>1<EFBFBD>b<EFBFBD>z<EFBFBD><19><> <15><14><13><14>s<00>A'<00> A'<00>' A3<03>2A3c <01>n<00>t|jd<01><00>}|<01>R|jdi<00>}t|jd<04>xs$|jd<05>xs|jd<06><00>}|xsd}|jd<03>r*t|jdi<00>jd<08><00>nd}|jd<03>r*t|jdi<00>jd <09><00>nd}|jd
<EFBFBD>}|<05>|<03>t|d z<00>}|jd <0C>}|<06>|<04>t|d z<00>}t|tz<00>}t|tz<00>}t|t
z<00>} t|t z<00>}
d|d<0F><04>||<05> t|<05>nd|<06> t|<06>nd||| |
|jdi<00>d<10> S)z<>Extract structured flicker flags from /sn65_registers response.
Accepts either the server's pre-parsed shape (with explicit bool keys)
or a raw {register: hex} mapping; falls back to bit-decoding in either case.
<20> irq_stat_rawN<77> registers<72>e5<65>E5<45>0xE5r<00>0a<30>0b<30>
pll_locked<EFBFBD><EFBFBD><00> clk_detected<65>r <00>02X) r<00> irq_stat_intr r"<00>sot_err<72> synch_err<72> unc_ecc_err<72>flicker_detectedr)r<00>get<65>boolrrrr ) <0B>reg_json<6F>irq_raw<61>regs<67>pll_raw<61>clk_rawr r"r&r'r(r)s r<00>
parse_sn65r1's<><00><00> <16>h<EFBFBD>l<EFBFBD>l<EFBFBD>><3E>2<>3<>G<EFBFBD><0E><EFBFBD><17>|<7C>|<7C>K<EFBFBD><12>,<2C><04><19>$<24>(<28>(<28>4<EFBFBD>.<2E>N<>D<EFBFBD>H<EFBFBD>H<EFBFBD>T<EFBFBD>N<EFBFBD>N<>d<EFBFBD>h<EFBFBD>h<EFBFBD>v<EFBFBD>>N<>O<><07><15>l<EFBFBD><11>G<EFBFBD>BJ<42>,<2C>,<2C>{<7B>B[<5B>g<EFBFBD>h<EFBFBD>l<EFBFBD>l<EFBFBD>;<3B><02>3<>7<>7<><04>=<3D>><3E>ae<61>G<EFBFBD>BJ<42>,<2C>,<2C>{<7B>B[<5B>g<EFBFBD>h<EFBFBD>l<EFBFBD>l<EFBFBD>;<3B><02>3<>7<>7<><04>=<3D>><3E>ae<61>G<EFBFBD><19><1C><1C>l<EFBFBD>+<2B>J<EFBFBD><11><19>g<EFBFBD>1<><19>'<27>D<EFBFBD>.<2E>)<29>
<EFBFBD><1B><<3C><<3C><0E>/<2F>L<EFBFBD><13><1B><07> 3<><1B>G<EFBFBD>d<EFBFBD>N<EFBFBD>+<2B> <0C><12>7<EFBFBD>\<5C>)<29>*<2A>G<EFBFBD><14>W<EFBFBD>~<7E>-<2D>.<2E>I<EFBFBD><16>w<EFBFBD><1C>-<2D>.<2E>K<EFBFBD><1B>G<EFBFBD>&7<>7<>8<><14><1D>W<EFBFBD>S<EFBFBD>M<EFBFBD>*<2A><1F>*4<>*@<40>d<EFBFBD>:<3A>&<26>d<EFBFBD>.:<3A>.F<><04>\<5C>*<2A>D<EFBFBD><1A><1E>"<22>,<2C><1D>\<5C>\<5C>+<2B>r<EFBFBD>2<>
<06>
<06>c<01><00>|tz dzS)Nge<><65>A)r)<01>cycless r<00> _cycles_to_nsr5Ts<00><00> <11>K<EFBFBD> <1F>#<23> %<25>%r2c<01><><00>t|jd<01><00>}t|jd<02><00>}t|jd<03><00>}|<01>d|d<05><04>nd|<02>d|d<05><04>nd|<03>d|d<05><04>ndd<06>}|<01>3|dz dz}|dz}||d <t|<05>|d
<||d <t|<06>|d <|<02>i|d z dz}|dz dz}|dz dz} |dz}
||d<t|<07>|d<||d<t|<08>|d<| |d<t| <09>|d<|
|d<t|
<EFBFBD>|d<|<03>N|dz dz} |dz dz} |dz} | |d<t| <0B>|d<| |d<t| <0C>|d<| |d<t| <0A>|d<|S)N<>
PHY_TIMING<EFBFBD> PHY_TIMING1<47> PHY_TIMING2r <00>08X)<03>PHY_TIMING_raw<61>PHY_TIMING1_raw<61>PHY_TIMING2_raw<61><00><00>hs_exit_cycles<65>
hs_exit_ns<EFBFBD>
lpx_cycles<EFBFBD>lpx_ns<6E><00><>r <00><00>clk_zero_cycles<65> clk_zero_ns<6E>clk_post_cycles<65> clk_post_ns<6E>clk_trail_cycles<65> clk_trail_ns<6E>clk_prepare_cycles<65>clk_prepare_ns<6E>hs_prepare_cycles<65> hs_prepare_ns<6E>hs_zero_cycles<65>
hs_zero_ns<EFBFBD>hs_trail_cycles<65> hs_trail_ns)rr*r5)r,<00>pt<70>pt1<74>pt2<74>out<75>hs_exit<69>lpx<70>clk_zero<72>clk_post<73> clk_trail<69> clk_prepare<72>
hs_prepare<EFBFBD>hs_zero<72>hs_trails r<00>
parse_dsimrbXs<><00><00> <10><18><1C><1C>l<EFBFBD>+<2B> ,<2C>B<EFBFBD>
<11>(<28>,<2C>,<2C>}<7D>-<2D>
.<2E>C<EFBFBD>
<11>(<28>,<2C>,<2C>}<7D>-<2D>
.<2E>C<EFBFBD>,.<2E>><3E>B<EFBFBD>r<EFBFBD>#<23>h<EFBFBD>-<2D>t<EFBFBD>-0<>_<EFBFBD>R<EFBFBD><03>C<EFBFBD>y<EFBFBD>><3E>$<24>-0<>_<EFBFBD>R<EFBFBD><03>C<EFBFBD>y<EFBFBD>><3E>$<24><06>C<EFBFBD> 
<EFBFBD>~<7E><15><11>7<EFBFBD>c<EFBFBD>/<2F><07><10>3<EFBFBD>h<EFBFBD><03> '<27><03> <1C><1D>)<29>'<27>2<><03>L<EFBFBD><19><1F><03>L<EFBFBD><19>%<25>c<EFBFBD>*<2A><03>H<EFBFBD> <0A>
<EFBFBD><EFBFBD><17>2<EFBFBD>I<EFBFBD><14>%<25><08><17>2<EFBFBD>I<EFBFBD><14>%<25><08><18>A<EFBFBD>X<EFBFBD><14>%<25> <09><19>D<EFBFBD>j<EFBFBD> <0B>!)<29><03> <1D><1E>*<2A>8<EFBFBD>4<><03>M<EFBFBD><1A>!)<29><03> <1D><1E>*<2A>8<EFBFBD>4<><03>M<EFBFBD><1A>"+<2B><03> <1E><1F>+<2B>I<EFBFBD>6<><03>N<EFBFBD><1B>$/<2F><03> <20>!<21> -<2D>k<EFBFBD> :<3A><03> <1C><1D>
<EFBFBD><EFBFBD><19>R<EFBFBD>i<EFBFBD>4<EFBFBD>'<27>
<EFBFBD><16>!<21>8<EFBFBD>t<EFBFBD>#<23><07><16><14>:<3A><08>#-<2D><03> <1F> <20>,<2C>Z<EFBFBD>8<><03>O<EFBFBD><1C> '<27><03> <1C><1D>)<29>'<27>2<><03>L<EFBFBD><19>!)<29><03> <1D><1E>*<2A>8<EFBFBD>4<><03>M<EFBFBD><1A> <0E>Jr2N)<02>returnz Optional[int])r,<00>dictrcrd)r4rrc<00>float)<0F>__doc__<5F>
__future__r<00>typingr<00>configrrrrr rr1r5rb<00>r2r<00><module>rks1<00><01><04>#<23><1B><02><02> <14>$&<06>Z&<26>,r2