Compare commits
3 Commits
d38a05f31b
...
fecece3f20
| Author | SHA1 | Date | |
|---|---|---|---|
| fecece3f20 | |||
| 9cdd1823ec | |||
| 38cb450796 |
@@ -0,0 +1,212 @@
|
||||
; ============================================================
|
||||
; Trace32 PRACTICE Script
|
||||
; Description : Dump CPG Clock Control Registers
|
||||
; CPG_SD0CKCR (0xE6150870) - SD0 Clock Control
|
||||
; CPG_CSI0CKCR (0xE6150880) - CSI0 Clock Control
|
||||
; CPG_DSICKCR (0xE6150884) - DSI Ext Clock Control
|
||||
; ============================================================
|
||||
|
||||
; Output file path (edit as needed)
|
||||
LOCAL &outfile
|
||||
&outfile="C:\dump_cpg_clk_regs.txt"
|
||||
|
||||
; Open AREA window to show PRINT output
|
||||
AREA.CLEAR
|
||||
AREA.view
|
||||
|
||||
LOCAL &sd0ckcr
|
||||
LOCAL &csi0ckcr
|
||||
LOCAL &dsickcr
|
||||
|
||||
; Read register values
|
||||
&sd0ckcr=Data.Long(SD:0xE6150870)
|
||||
&csi0ckcr=Data.Long(SD:0xE6150880)
|
||||
&dsickcr=Data.Long(SD:0xE6150884)
|
||||
|
||||
PRINT "============================================"
|
||||
PRINT " CPG Clock Control Register Dump"
|
||||
PRINT "============================================"
|
||||
PRINT "CPG_SD0CKCR [0xE6150870] = 0x" %HEX &sd0ckcr
|
||||
PRINT " STP0HCK (BIT9) = " (&sd0ckcr>>9.)&0x1 " (0=run, 1=stop)"
|
||||
PRINT " SD0SRCFC[2:0] (BIT4:2) = " (&sd0ckcr>>2.)&0x7
|
||||
PRINT ""
|
||||
PRINT "CPG_CSI0CKCR [0xE6150880] = 0x" %HEX &csi0ckcr
|
||||
PRINT " CKSTP (BIT8) = " (&csi0ckcr>>8.)&0x1 " (0=run, 1=stop)"
|
||||
PRINT ""
|
||||
PRINT "CPG_DSICKCR [0xE6150884] = 0x" %HEX &dsickcr
|
||||
PRINT " CKSTP (BIT8) = " (&dsickcr>>8.)&0x1 " (0=run, 1=stop)"
|
||||
PRINT "============================================"
|
||||
|
||||
; Data.dump window (opens dump window at CPG_SD0CKCR address)
|
||||
PRINT ""
|
||||
PRINT "--- Data.dump view (starting at CPG_SD0CKCR 0xE6150870) ---"
|
||||
Data.dump SD:0xE6150870
|
||||
|
||||
; ============================================================
|
||||
; After for-loop: All CKMCSR/CKMLCH/CKMLCL patterns (V4H)
|
||||
; CKMCSR bits: CHKEN=BIT0, INTEN=BIT1, ENMON=BIT16 (expected all=1)
|
||||
; Format: CKMCSR value | CKMLCH (upper limit) | CKMLCL (lower limit)
|
||||
; ============================================================
|
||||
PRINT ""
|
||||
PRINT "============================================"
|
||||
PRINT " After for-loop: All Clock Monitor Regs (V4H)"
|
||||
PRINT "============================================"
|
||||
|
||||
; Note: Powered-down domains will cause bus errors.
|
||||
; ON ERROR CONTINUE prevents script abort; unreadable registers print as 0xBADC0FFE.
|
||||
ON ERROR CONTINUE
|
||||
|
||||
; --- CPGWPR domain (CPG_BASE=0xE6150000) ---
|
||||
PRINT "--- CPGWPR domain (CPG_BASE=0xE6150000) ---"
|
||||
PRINT "PLL1LB CKMCSR[0xE6150C00]=0x" %HEX Data.Long(SD:0xE6150C00) " CKMLCH[0xE6150C08]=0x" %HEX Data.Long(SD:0xE6150C08) " CKMLCL[0xE6150C0C]=0x" %HEX Data.Long(SD:0xE6150C0C)
|
||||
PRINT "PLL2LB CKMCSR[0xE6150C20]=0x" %HEX Data.Long(SD:0xE6150C20) " CKMLCH[0xE6150C28]=0x" %HEX Data.Long(SD:0xE6150C28) " CKMLCL[0xE6150C2C]=0x" %HEX Data.Long(SD:0xE6150C2C)
|
||||
PRINT "PLL3LB CKMCSR[0xE6150C60]=0x" %HEX Data.Long(SD:0xE6150C60) " CKMLCH[0xE6150C68]=0x" %HEX Data.Long(SD:0xE6150C68) " CKMLCL[0xE6150C6C]=0x" %HEX Data.Long(SD:0xE6150C6C)
|
||||
PRINT "PLL4LB CKMCSR[0xE6150CA0]=0x" %HEX Data.Long(SD:0xE6150CA0) " CKMLCH[0xE6150CA8]=0x" %HEX Data.Long(SD:0xE6150CA8) " CKMLCL[0xE6150CAC]=0x" %HEX Data.Long(SD:0xE6150CAC)
|
||||
PRINT "PLL5LB CKMCSR[0xE6150CC0]=0x" %HEX Data.Long(SD:0xE6150CC0) " CKMLCH[0xE6150CC8]=0x" %HEX Data.Long(SD:0xE6150CC8) " CKMLCL[0xE6150CCC]=0x" %HEX Data.Long(SD:0xE6150CCC)
|
||||
PRINT "PLL6LB CKMCSR[0xE6150E60]=0x" %HEX Data.Long(SD:0xE6150E60) " CKMLCH[0xE6150E68]=0x" %HEX Data.Long(SD:0xE6150E68) " CKMLCL[0xE6150E6C]=0x" %HEX Data.Long(SD:0xE6150E6C)
|
||||
PRINT "CBFUSA CKMCSR[0xE6150D00]=0x" %HEX Data.Long(SD:0xE6150D00) " CKMLCH[0xE6150D08]=0x" %HEX Data.Long(SD:0xE6150D08) " CKMLCL[0xE6150D0C]=0x" %HEX Data.Long(SD:0xE6150D0C)
|
||||
PRINT "RCLK CKMCSR[0xE6150E80]=0x" %HEX Data.Long(SD:0xE6150E80) " CKMLCH[0xE6150E88]=0x" %HEX Data.Long(SD:0xE6150E88) " CKMLCL[0xE6150E8C]=0x" %HEX Data.Long(SD:0xE6150E8C)
|
||||
|
||||
; --- TOP domain (CPG_CKM_SAB_BASE=0xE6070000) ---
|
||||
PRINT ""
|
||||
PRINT "--- TOP domain (CPG_CKM_SAB_BASE=0xE6070000) ---"
|
||||
PRINT "S0D2 CKMCSR[0xE6070240]=0x" %HEX Data.Long(SD:0xE6070240) " CKMLCH[0xE6070248]=0x" %HEX Data.Long(SD:0xE6070248) " CKMLCL[0xE607024C]=0x" %HEX Data.Long(SD:0xE607024C)
|
||||
PRINT "S0D3 CKMCSR[0xE6070260]=0x" %HEX Data.Long(SD:0xE6070260) " CKMLCH[0xE6070268]=0x" %HEX Data.Long(SD:0xE6070268) " CKMLCL[0xE607026C]=0x" %HEX Data.Long(SD:0xE607026C)
|
||||
PRINT "S0D4 CKMCSR[0xE6070280]=0x" %HEX Data.Long(SD:0xE6070280) " CKMLCH[0xE6070288]=0x" %HEX Data.Long(SD:0xE6070288) " CKMLCL[0xE607028C]=0x" %HEX Data.Long(SD:0xE607028C)
|
||||
PRINT "CL CKMCSR[0xE60700F0]=0x" %HEX Data.Long(SD:0xE60700F0) " CKMLCH[0xE60700F8]=0x" %HEX Data.Long(SD:0xE60700F8) " CKMLCL[0xE60700FC]=0x" %HEX Data.Long(SD:0xE60700FC)
|
||||
PRINT "ZX CKMCSR[0xE6070300]=0x" %HEX Data.Long(SD:0xE6070300) " CKMLCH[0xE6070308]=0x" %HEX Data.Long(SD:0xE6070308) " CKMLCL[0xE607030C]=0x" %HEX Data.Long(SD:0xE607030C)
|
||||
PRINT "CL16M CKMCSR[0xE6070320]=0x" %HEX Data.Long(SD:0xE6070320) " CKMLCH[0xE6070328]=0x" %HEX Data.Long(SD:0xE6070328) " CKMLCL[0xE607032C]=0x" %HEX Data.Long(SD:0xE607032C)
|
||||
PRINT "CP CKMCSR[0xE6070190]=0x" %HEX Data.Long(SD:0xE6070190) " CKMLCH[0xE6070198]=0x" %HEX Data.Long(SD:0xE6070198) " CKMLCL[0xE607019C]=0x" %HEX Data.Long(SD:0xE607019C)
|
||||
PRINT "CPEX CKMCSR[0xE60701D0]=0x" %HEX Data.Long(SD:0xE60701D0) " CKMLCH[0xE60701D8]=0x" %HEX Data.Long(SD:0xE60701D8) " CKMLCL[0xE60701DC]=0x" %HEX Data.Long(SD:0xE60701DC)
|
||||
PRINT "CBFUSATOP CKMCSR[0xE60701F0]=0x" %HEX Data.Long(SD:0xE60701F0) " CKMLCH[0xE60701F8]=0x" %HEX Data.Long(SD:0xE60701F8) " CKMLCL[0xE60701FC]=0x" %HEX Data.Long(SD:0xE60701FC)
|
||||
PRINT "RCLKTOP CKMCSR[0xE60701B0]=0x" %HEX Data.Long(SD:0xE60701B0) " CKMLCH[0xE60701B8]=0x" %HEX Data.Long(SD:0xE60701B8) " CKMLCL[0xE60701BC]=0x" %HEX Data.Long(SD:0xE60701BC)
|
||||
|
||||
; --- VIO domain (CPG_CKM_VIO_BASE=0xFEAEE000) ---
|
||||
PRINT ""
|
||||
PRINT "--- VIO domain (CPG_CKM_VIO_BASE=0xFEAEE000) ---"
|
||||
PRINT "S0D1VIO CKMCSR[0xFEAEE110]=0x" %HEX Data.Long(SD:0xFEAEE110) " CKMLCH[0xFEAEE118]=0x" %HEX Data.Long(SD:0xFEAEE118) " CKMLCL[0xFEAEE11C]=0x" %HEX Data.Long(SD:0xFEAEE11C)
|
||||
PRINT "S0D2VIO CKMCSR[0xFEAEE130]=0x" %HEX Data.Long(SD:0xFEAEE130) " CKMLCH[0xFEAEE138]=0x" %HEX Data.Long(SD:0xFEAEE138) " CKMLCL[0xFEAEE13C]=0x" %HEX Data.Long(SD:0xFEAEE13C)
|
||||
PRINT "S0D4VIO CKMCSR[0xFEAEE150]=0x" %HEX Data.Long(SD:0xFEAEE150) " CKMLCH[0xFEAEE158]=0x" %HEX Data.Long(SD:0xFEAEE158) " CKMLCL[0xFEAEE15C]=0x" %HEX Data.Long(SD:0xFEAEE15C)
|
||||
PRINT "S0D8VIO CKMCSR[0xFEAEE170]=0x" %HEX Data.Long(SD:0xFEAEE170) " CKMLCH[0xFEAEE178]=0x" %HEX Data.Long(SD:0xFEAEE178) " CKMLCL[0xFEAEE17C]=0x" %HEX Data.Long(SD:0xFEAEE17C)
|
||||
PRINT "CSI CKMCSR[0xFEAEE0F0]=0x" %HEX Data.Long(SD:0xFEAEE0F0) " CKMLCH[0xFEAEE0F8]=0x" %HEX Data.Long(SD:0xFEAEE0F8) " CKMLCL[0xFEAEE0FC]=0x" %HEX Data.Long(SD:0xFEAEE0FC)
|
||||
PRINT "DSIEXT CKMCSR[0xFEAEE090]=0x" %HEX Data.Long(SD:0xFEAEE090) " CKMLCH[0xFEAEE098]=0x" %HEX Data.Long(SD:0xFEAEE098) " CKMLCL[0xFEAEE09C]=0x" %HEX Data.Long(SD:0xFEAEE09C)
|
||||
PRINT "DSIREF CKMCSR[0xFEAEE0B0]=0x" %HEX Data.Long(SD:0xFEAEE0B0) " CKMLCH[0xFEAEE0B8]=0x" %HEX Data.Long(SD:0xFEAEE0B8) " CKMLCL[0xFEAEE0BC]=0x" %HEX Data.Long(SD:0xFEAEE0BC)
|
||||
PRINT "VIOBUS CKMCSR[0xFEAEE190]=0x" %HEX Data.Long(SD:0xFEAEE190) " CKMLCH[0xFEAEE198]=0x" %HEX Data.Long(SD:0xFEAEE198) " CKMLCL[0xFEAEE19C]=0x" %HEX Data.Long(SD:0xFEAEE19C)
|
||||
PRINT "VIOBUSD2 CKMCSR[0xFEAEE1B0]=0x" %HEX Data.Long(SD:0xFEAEE1B0) " CKMLCH[0xFEAEE1B8]=0x" %HEX Data.Long(SD:0xFEAEE1B8) " CKMLCL[0xFEAEE1BC]=0x" %HEX Data.Long(SD:0xFEAEE1BC)
|
||||
PRINT "CBFUSAVIO CKMCSR[0xFEAEE1D0]=0x" %HEX Data.Long(SD:0xFEAEE1D0) " CKMLCH[0xFEAEE1D8]=0x" %HEX Data.Long(SD:0xFEAEE1D8) " CKMLCL[0xFEAEE1DC]=0x" %HEX Data.Long(SD:0xFEAEE1DC)
|
||||
PRINT "RCLKVIO CKMCSR[0xFEAEE0D0]=0x" %HEX Data.Long(SD:0xFEAEE0D0) " CKMLCH[0xFEAEE0D8]=0x" %HEX Data.Long(SD:0xFEAEE0D8) " CKMLCL[0xFEAEE0DC]=0x" %HEX Data.Long(SD:0xFEAEE0DC)
|
||||
|
||||
; --- VC domain (CPG_CKM_VC_BASE=0xFE60E000) ---
|
||||
PRINT ""
|
||||
PRINT "--- VC domain (CPG_CKM_VC_BASE=0xFE60E000) ---"
|
||||
PRINT "S0D1VC CKMCSR[0xFE60E0D0]=0x" %HEX Data.Long(SD:0xFE60E0D0) " CKMLCH[0xFE60E0D8]=0x" %HEX Data.Long(SD:0xFE60E0D8) " CKMLCL[0xFE60E0DC]=0x" %HEX Data.Long(SD:0xFE60E0DC)
|
||||
PRINT "S0D2VC CKMCSR[0xFE60E0F0]=0x" %HEX Data.Long(SD:0xFE60E0F0) " CKMLCH[0xFE60E0F8]=0x" %HEX Data.Long(SD:0xFE60E0F8) " CKMLCL[0xFE60E0FC]=0x" %HEX Data.Long(SD:0xFE60E0FC)
|
||||
PRINT "S0D4VC CKMCSR[0xFE60E110]=0x" %HEX Data.Long(SD:0xFE60E110) " CKMLCH[0xFE60E118]=0x" %HEX Data.Long(SD:0xFE60E118) " CKMLCL[0xFE60E11C]=0x" %HEX Data.Long(SD:0xFE60E11C)
|
||||
PRINT "VCBUS CKMCSR[0xFE60E070]=0x" %HEX Data.Long(SD:0xFE60E070) " CKMLCH[0xFE60E078]=0x" %HEX Data.Long(SD:0xFE60E078) " CKMLCL[0xFE60E07C]=0x" %HEX Data.Long(SD:0xFE60E07C)
|
||||
PRINT "VCBUSD2 CKMCSR[0xFE60E090]=0x" %HEX Data.Long(SD:0xFE60E090) " CKMLCH[0xFE60E098]=0x" %HEX Data.Long(SD:0xFE60E098) " CKMLCL[0xFE60E09C]=0x" %HEX Data.Long(SD:0xFE60E09C)
|
||||
PRINT "CBFUSAVC CKMCSR[0xFE60E150]=0x" %HEX Data.Long(SD:0xFE60E150) " CKMLCH[0xFE60E158]=0x" %HEX Data.Long(SD:0xFE60E158) " CKMLCL[0xFE60E15C]=0x" %HEX Data.Long(SD:0xFE60E15C)
|
||||
PRINT "RCLKVC CKMCSR[0xFE60E130]=0x" %HEX Data.Long(SD:0xFE60E130) " CKMLCH[0xFE60E138]=0x" %HEX Data.Long(SD:0xFE60E138) " CKMLCL[0xFE60E13C]=0x" %HEX Data.Long(SD:0xFE60E13C)
|
||||
|
||||
; --- VIP domain (CPG_CKM_VIP_BASE=0xE7B3E000) ---
|
||||
PRINT ""
|
||||
PRINT "--- VIP domain (CPG_CKM_VIP_BASE=0xE7B3E000) ---"
|
||||
PRINT "SVD1VIP CKMCSR[0xE7B3E0D0]=0x" %HEX Data.Long(SD:0xE7B3E0D0) " CKMLCH[0xE7B3E0D8]=0x" %HEX Data.Long(SD:0xE7B3E0D8) " CKMLCL[0xE7B3E0DC]=0x" %HEX Data.Long(SD:0xE7B3E0DC)
|
||||
PRINT "SVD2VIP CKMCSR[0xE7B3E0F0]=0x" %HEX Data.Long(SD:0xE7B3E0F0) " CKMLCH[0xE7B3E0F8]=0x" %HEX Data.Long(SD:0xE7B3E0F8) " CKMLCL[0xE7B3E0FC]=0x" %HEX Data.Long(SD:0xE7B3E0FC)
|
||||
PRINT "CBFUSAVIP CKMCSR[0xE7B3E150]=0x" %HEX Data.Long(SD:0xE7B3E150) " CKMLCH[0xE7B3E158]=0x" %HEX Data.Long(SD:0xE7B3E158) " CKMLCL[0xE7B3E15C]=0x" %HEX Data.Long(SD:0xE7B3E15C)
|
||||
PRINT "RCLKVIP CKMCSR[0xE7B3E130]=0x" %HEX Data.Long(SD:0xE7B3E130) " CKMLCH[0xE7B3E138]=0x" %HEX Data.Long(SD:0xE7B3E138) " CKMLCL[0xE7B3E13C]=0x" %HEX Data.Long(SD:0xE7B3E13C)
|
||||
|
||||
; --- MM domain (CPG_CKM_MM_BASE=0xE67FA000) ---
|
||||
PRINT ""
|
||||
PRINT "--- MM domain (CPG_CKM_MM_BASE=0xE67FA000) ---"
|
||||
PRINT "S0D2MM CKMCSR[0xE67FA0D0]=0x" %HEX Data.Long(SD:0xE67FA0D0) " CKMLCH[0xE67FA0D8]=0x" %HEX Data.Long(SD:0xE67FA0D8) " CKMLCL[0xE67FA0DC]=0x" %HEX Data.Long(SD:0xE67FA0DC)
|
||||
PRINT "S0D4MM CKMCSR[0xE67FA110]=0x" %HEX Data.Long(SD:0xE67FA110) " CKMLCH[0xE67FA118]=0x" %HEX Data.Long(SD:0xE67FA118) " CKMLCL[0xE67FA11C]=0x" %HEX Data.Long(SD:0xE67FA11C)
|
||||
PRINT "CL16MMM CKMCSR[0xE67FA090]=0x" %HEX Data.Long(SD:0xE67FA090) " CKMLCH[0xE67FA098]=0x" %HEX Data.Long(SD:0xE67FA098) " CKMLCL[0xE67FA09C]=0x" %HEX Data.Long(SD:0xE67FA09C)
|
||||
PRINT "ZB3 CKMCSR[0xE67FA130]=0x" %HEX Data.Long(SD:0xE67FA130) " CKMLCH[0xE67FA138]=0x" %HEX Data.Long(SD:0xE67FA138) " CKMLCL[0xE67FA13C]=0x" %HEX Data.Long(SD:0xE67FA13C)
|
||||
PRINT "ZB3D2 CKMCSR[0xE67FA070]=0x" %HEX Data.Long(SD:0xE67FA070) " CKMLCH[0xE67FA078]=0x" %HEX Data.Long(SD:0xE67FA078) " CKMLCL[0xE67FA07C]=0x" %HEX Data.Long(SD:0xE67FA07C)
|
||||
PRINT "ZB3D4 CKMCSR[0xE67FA150]=0x" %HEX Data.Long(SD:0xE67FA150) " CKMLCH[0xE67FA158]=0x" %HEX Data.Long(SD:0xE67FA158) " CKMLCL[0xE67FA15C]=0x" %HEX Data.Long(SD:0xE67FA15C)
|
||||
PRINT "CBFUSAMM CKMCSR[0xE67FA170]=0x" %HEX Data.Long(SD:0xE67FA170) " CKMLCH[0xE67FA178]=0x" %HEX Data.Long(SD:0xE67FA178) " CKMLCL[0xE67FA17C]=0x" %HEX Data.Long(SD:0xE67FA17C)
|
||||
PRINT "RCLKMM CKMCSR[0xE67FA190]=0x" %HEX Data.Long(SD:0xE67FA190) " CKMLCH[0xE67FA198]=0x" %HEX Data.Long(SD:0xE67FA198) " CKMLCL[0xE67FA19C]=0x" %HEX Data.Long(SD:0xE67FA19C)
|
||||
|
||||
; --- IR domain (CPG_CKM_IR0_BASE=0xFF8AE000 = CPG_CKM_IMP_BASE+0xE000) ---
|
||||
PRINT ""
|
||||
PRINT "--- IR domain (CPG_CKM_IR0_BASE=0xFF8AE000) ---"
|
||||
PRINT "SVD1IR CKMCSR[0xFF8AE050]=0x" %HEX Data.Long(SD:0xFF8AE050) " CKMLCH[0xFF8AE058]=0x" %HEX Data.Long(SD:0xFF8AE058) " CKMLCL[0xFF8AE05C]=0x" %HEX Data.Long(SD:0xFF8AE05C)
|
||||
PRINT "SVD2IR CKMCSR[0xFF8AE070]=0x" %HEX Data.Long(SD:0xFF8AE070) " CKMLCH[0xFF8AE078]=0x" %HEX Data.Long(SD:0xFF8AE078) " CKMLCL[0xFF8AE07C]=0x" %HEX Data.Long(SD:0xFF8AE07C)
|
||||
PRINT "IMPAIR CKMCSR[0xFF8AE090]=0x" %HEX Data.Long(SD:0xFF8AE090) " CKMLCH[0xFF8AE098]=0x" %HEX Data.Long(SD:0xFF8AE098) " CKMLCL[0xFF8AE09C]=0x" %HEX Data.Long(SD:0xFF8AE09C)
|
||||
PRINT "CBFUSAIR CKMCSR[0xFF8AE0D0]=0x" %HEX Data.Long(SD:0xFF8AE0D0) " CKMLCH[0xFF8AE0D8]=0x" %HEX Data.Long(SD:0xFF8AE0D8) " CKMLCL[0xFF8AE0DC]=0x" %HEX Data.Long(SD:0xFF8AE0DC)
|
||||
PRINT "RCLKIR CKMCSR[0xFF8AE0B0]=0x" %HEX Data.Long(SD:0xFF8AE0B0) " CKMLCH[0xFF8AE0B8]=0x" %HEX Data.Long(SD:0xFF8AE0B8) " CKMLCL[0xFF8AE0BC]=0x" %HEX Data.Long(SD:0xFF8AE0BC)
|
||||
|
||||
; --- IRCN domain (CPG_CKM_IR1_BASE=0xFF8AC000 = CPG_CKM_IMP_BASE+0xC000) ---
|
||||
PRINT ""
|
||||
PRINT "--- IRCN domain (CPG_CKM_IR1_BASE=0xFF8AC000) ---"
|
||||
PRINT "SVD1IRCN CKMCSR[0xFF8AC010]=0x" %HEX Data.Long(SD:0xFF8AC010) " CKMLCH[0xFF8AC018]=0x" %HEX Data.Long(SD:0xFF8AC018) " CKMLCL[0xFF8AC01C]=0x" %HEX Data.Long(SD:0xFF8AC01C)
|
||||
PRINT "SVD2IRCN CKMCSR[0xFF8AC030]=0x" %HEX Data.Long(SD:0xFF8AC030) " CKMLCH[0xFF8AC038]=0x" %HEX Data.Long(SD:0xFF8AC038) " CKMLCL[0xFF8AC03C]=0x" %HEX Data.Long(SD:0xFF8AC03C)
|
||||
PRINT "CBFUSAIRCN CKMCSR[0xFF8AC070]=0x" %HEX Data.Long(SD:0xFF8AC070) " CKMLCH[0xFF8AC078]=0x" %HEX Data.Long(SD:0xFF8AC078) " CKMLCL[0xFF8AC07C]=0x" %HEX Data.Long(SD:0xFF8AC07C)
|
||||
PRINT "RCLKIRCN CKMCSR[0xFF8AC050]=0x" %HEX Data.Long(SD:0xFF8AC050) " CKMLCH[0xFF8AC058]=0x" %HEX Data.Long(SD:0xFF8AC058) " CKMLCL[0xFF8AC05C]=0x" %HEX Data.Long(SD:0xFF8AC05C)
|
||||
|
||||
; --- RT domain (CPG_CKM_RT_BASE=0xE61F0000) ---
|
||||
PRINT ""
|
||||
PRINT "--- RT domain (CPG_CKM_RT_BASE=0xE61F0000) ---"
|
||||
PRINT "S0D2RT CKMCSR[0xE61F01D0]=0x" %HEX Data.Long(SD:0xE61F01D0) " CKMLCH[0xE61F01D8]=0x" %HEX Data.Long(SD:0xE61F01D8) " CKMLCL[0xE61F01DC]=0x" %HEX Data.Long(SD:0xE61F01DC)
|
||||
PRINT "S0D3RT CKMCSR[0xE61F01F0]=0x" %HEX Data.Long(SD:0xE61F01F0) " CKMLCH[0xE61F01F8]=0x" %HEX Data.Long(SD:0xE61F01F8) " CKMLCL[0xE61F01FC]=0x" %HEX Data.Long(SD:0xE61F01FC)
|
||||
PRINT "S0D4RT CKMCSR[0xE61F0210]=0x" %HEX Data.Long(SD:0xE61F0210) " CKMLCH[0xE61F0218]=0x" %HEX Data.Long(SD:0xE61F0218) " CKMLCL[0xE61F021C]=0x" %HEX Data.Long(SD:0xE61F021C)
|
||||
PRINT "S0D6RT CKMCSR[0xE61F0230]=0x" %HEX Data.Long(SD:0xE61F0230) " CKMLCH[0xE61F0238]=0x" %HEX Data.Long(SD:0xE61F0238) " CKMLCL[0xE61F023C]=0x" %HEX Data.Long(SD:0xE61F023C)
|
||||
PRINT "CL16MRT CKMCSR[0xE61F0190]=0x" %HEX Data.Long(SD:0xE61F0190) " CKMLCH[0xE61F0198]=0x" %HEX Data.Long(SD:0xE61F0198) " CKMLCL[0xE61F019C]=0x" %HEX Data.Long(SD:0xE61F019C)
|
||||
PRINT "SASYNCRT CKMCSR[0xE61F02D0]=0x" %HEX Data.Long(SD:0xE61F02D0) " CKMLCH[0xE61F02D8]=0x" %HEX Data.Long(SD:0xE61F02D8) " CKMLCL[0xE61F02DC]=0x" %HEX Data.Long(SD:0xE61F02DC)
|
||||
PRINT "CBFUSART CKMCSR[0xE61F02B0]=0x" %HEX Data.Long(SD:0xE61F02B0) " CKMLCH[0xE61F02B8]=0x" %HEX Data.Long(SD:0xE61F02B8) " CKMLCL[0xE61F02BC]=0x" %HEX Data.Long(SD:0xE61F02BC)
|
||||
PRINT "RCLKRT CKMCSR[0xE61F0170]=0x" %HEX Data.Long(SD:0xE61F0170) " CKMLCH[0xE61F0178]=0x" %HEX Data.Long(SD:0xE61F0178) " CKMLCL[0xE61F017C]=0x" %HEX Data.Long(SD:0xE61F017C)
|
||||
|
||||
; --- RTCR52 domain (CPG_CKM_RTCR52_BASE=0xE61F2000 = RT_BASE+0x2000) ---
|
||||
PRINT ""
|
||||
PRINT "--- RTCR52 domain (CPG_CKM_RTCR52_BASE=0xE61F2000) ---"
|
||||
PRINT "S0D2RTCR52 CKMCSR[0xE61F20C0]=0x" %HEX Data.Long(SD:0xE61F20C0) " CKMLCH[0xE61F20C8]=0x" %HEX Data.Long(SD:0xE61F20C8) " CKMLCL[0xE61F20CC]=0x" %HEX Data.Long(SD:0xE61F20CC)
|
||||
PRINT "ZR0CR52 CKMCSR[0xE61F2010]=0x" %HEX Data.Long(SD:0xE61F2010) " CKMLCH[0xE61F2018]=0x" %HEX Data.Long(SD:0xE61F2018) " CKMLCL[0xE61F201C]=0x" %HEX Data.Long(SD:0xE61F201C)
|
||||
PRINT "ZR1CR52 CKMCSR[0xE61F2100]=0x" %HEX Data.Long(SD:0xE61F2100) " CKMLCH[0xE61F2108]=0x" %HEX Data.Long(SD:0xE61F2108) " CKMLCL[0xE61F210C]=0x" %HEX Data.Long(SD:0xE61F210C)
|
||||
PRINT "ZR2CR52 CKMCSR[0xE61F2120]=0x" %HEX Data.Long(SD:0xE61F2120) " CKMLCH[0xE61F2128]=0x" %HEX Data.Long(SD:0xE61F2128) " CKMLCL[0xE61F212C]=0x" %HEX Data.Long(SD:0xE61F212C)
|
||||
PRINT "CBFUSARTCR52 CKMCSR[0xE61F2090]=0x" %HEX Data.Long(SD:0xE61F2090) " CKMLCH[0xE61F2098]=0x" %HEX Data.Long(SD:0xE61F2098) " CKMLCL[0xE61F209C]=0x" %HEX Data.Long(SD:0xE61F209C)
|
||||
PRINT "RCLKRTCR52 CKMCSR[0xE61F2070]=0x" %HEX Data.Long(SD:0xE61F2070) " CKMLCH[0xE61F2078]=0x" %HEX Data.Long(SD:0xE61F2078) " CKMLCL[0xE61F207C]=0x" %HEX Data.Long(SD:0xE61F207C)
|
||||
|
||||
; --- PER domain (CPG_CKM_PER_BASE=0xE677E000) ---
|
||||
PRINT ""
|
||||
PRINT "--- PER domain (CPG_CKM_PER_BASE=0xE677E000) ---"
|
||||
PRINT "S0D2PER CKMCSR[0xE677E280]=0x" %HEX Data.Long(SD:0xE677E280) " CKMLCH[0xE677E288]=0x" %HEX Data.Long(SD:0xE677E288) " CKMLCL[0xE677E28C]=0x" %HEX Data.Long(SD:0xE677E28C)
|
||||
PRINT "S0D3PER CKMCSR[0xE677E2A0]=0x" %HEX Data.Long(SD:0xE677E2A0) " CKMLCH[0xE677E2A8]=0x" %HEX Data.Long(SD:0xE677E2A8) " CKMLCL[0xE677E2AC]=0x" %HEX Data.Long(SD:0xE677E2AC)
|
||||
PRINT "S0D4PER CKMCSR[0xE677E2C0]=0x" %HEX Data.Long(SD:0xE677E2C0) " CKMLCH[0xE677E2C8]=0x" %HEX Data.Long(SD:0xE677E2C8) " CKMLCL[0xE677E2CC]=0x" %HEX Data.Long(SD:0xE677E2CC)
|
||||
PRINT "S0D6PER CKMCSR[0xE677E2E0]=0x" %HEX Data.Long(SD:0xE677E2E0) " CKMLCH[0xE677E2E8]=0x" %HEX Data.Long(SD:0xE677E2E8) " CKMLCL[0xE677E2EC]=0x" %HEX Data.Long(SD:0xE677E2EC)
|
||||
PRINT "S0D12PER CKMCSR[0xE677E300]=0x" %HEX Data.Long(SD:0xE677E300) " CKMLCH[0xE677E308]=0x" %HEX Data.Long(SD:0xE677E308) " CKMLCL[0xE677E30C]=0x" %HEX Data.Long(SD:0xE677E30C)
|
||||
PRINT "S0D24PER CKMCSR[0xE677E340]=0x" %HEX Data.Long(SD:0xE677E340) " CKMLCH[0xE677E348]=0x" %HEX Data.Long(SD:0xE677E348) " CKMLCL[0xE677E34C]=0x" %HEX Data.Long(SD:0xE677E34C)
|
||||
PRINT "CL16MPER CKMCSR[0xE677E1B0]=0x" %HEX Data.Long(SD:0xE677E1B0) " CKMLCH[0xE677E1B8]=0x" %HEX Data.Long(SD:0xE677E1B8) " CKMLCL[0xE677E1BC]=0x" %HEX Data.Long(SD:0xE677E1BC)
|
||||
PRINT "SD0H CKMCSR[0xE677E090]=0x" %HEX Data.Long(SD:0xE677E090) " CKMLCH[0xE677E098]=0x" %HEX Data.Long(SD:0xE677E098) " CKMLCL[0xE677E09C]=0x" %HEX Data.Long(SD:0xE677E09C)
|
||||
PRINT "SD0 CKMCSR[0xE677E0B0]=0x" %HEX Data.Long(SD:0xE677E0B0) " CKMLCH[0xE677E0B8]=0x" %HEX Data.Long(SD:0xE677E0B8) " CKMLCL[0xE677E0BC]=0x" %HEX Data.Long(SD:0xE677E0BC)
|
||||
PRINT "RPC CKMCSR[0xE677E1F0]=0x" %HEX Data.Long(SD:0xE677E1F0) " CKMLCH[0xE677E1F8]=0x" %HEX Data.Long(SD:0xE677E1F8) " CKMLCL[0xE677E1FC]=0x" %HEX Data.Long(SD:0xE677E1FC)
|
||||
PRINT "RPCD2 CKMCSR[0xE677E210]=0x" %HEX Data.Long(SD:0xE677E210) " CKMLCH[0xE677E218]=0x" %HEX Data.Long(SD:0xE677E218) " CKMLCL[0xE677E21C]=0x" %HEX Data.Long(SD:0xE677E21C)
|
||||
PRINT "CANFD CKMCSR[0xE677E1D0]=0x" %HEX Data.Long(SD:0xE677E1D0) " CKMLCH[0xE677E1D8]=0x" %HEX Data.Long(SD:0xE677E1D8) " CKMLCL[0xE677E1DC]=0x" %HEX Data.Long(SD:0xE677E1DC)
|
||||
PRINT "MSO CKMCSR[0xE677E130]=0x" %HEX Data.Long(SD:0xE677E130) " CKMLCH[0xE677E138]=0x" %HEX Data.Long(SD:0xE677E138) " CKMLCL[0xE677E13C]=0x" %HEX Data.Long(SD:0xE677E13C)
|
||||
PRINT "FRAY CKMCSR[0xE677E170]=0x" %HEX Data.Long(SD:0xE677E170) " CKMLCH[0xE677E178]=0x" %HEX Data.Long(SD:0xE677E178) " CKMLCL[0xE677E17C]=0x" %HEX Data.Long(SD:0xE677E17C)
|
||||
PRINT "IPC CKMCSR[0xE677E190]=0x" %HEX Data.Long(SD:0xE677E190) " CKMLCH[0xE677E198]=0x" %HEX Data.Long(SD:0xE677E198) " CKMLCL[0xE677E19C]=0x" %HEX Data.Long(SD:0xE677E19C)
|
||||
PRINT "ADGH CKMCSR[0xE677E360]=0x" %HEX Data.Long(SD:0xE677E360) " CKMLCH[0xE677E368]=0x" %HEX Data.Long(SD:0xE677E368) " CKMLCL[0xE677E36C]=0x" %HEX Data.Long(SD:0xE677E36C)
|
||||
PRINT "SASYNCPERD1 CKMCSR[0xE677E3A0]=0x" %HEX Data.Long(SD:0xE677E3A0) " CKMLCH[0xE677E3A8]=0x" %HEX Data.Long(SD:0xE677E3A8) " CKMLCL[0xE677E3AC]=0x" %HEX Data.Long(SD:0xE677E3AC)
|
||||
PRINT "SASYNCPERD2 CKMCSR[0xE677E3C0]=0x" %HEX Data.Long(SD:0xE677E3C0) " CKMLCH[0xE677E3C8]=0x" %HEX Data.Long(SD:0xE677E3C8) " CKMLCL[0xE677E3CC]=0x" %HEX Data.Long(SD:0xE677E3CC)
|
||||
PRINT "SASYNCPERD4 CKMCSR[0xE677E3E0]=0x" %HEX Data.Long(SD:0xE677E3E0) " CKMLCH[0xE677E3E8]=0x" %HEX Data.Long(SD:0xE677E3E8) " CKMLCL[0xE677E3EC]=0x" %HEX Data.Long(SD:0xE677E3EC)
|
||||
PRINT "CBFUSAPER CKMCSR[0xE677E380]=0x" %HEX Data.Long(SD:0xE677E380) " CKMLCH[0xE677E388]=0x" %HEX Data.Long(SD:0xE677E388) " CKMLCL[0xE677E38C]=0x" %HEX Data.Long(SD:0xE677E38C)
|
||||
PRINT "RCLKPER CKMCSR[0xE677E150]=0x" %HEX Data.Long(SD:0xE677E150) " CKMLCH[0xE677E158]=0x" %HEX Data.Long(SD:0xE677E158) " CKMLCL[0xE677E15C]=0x" %HEX Data.Long(SD:0xE677E15C)
|
||||
|
||||
; --- HSC domain (CPG_CKM_HSC_BASE=0xE644E000) ---
|
||||
PRINT ""
|
||||
PRINT "--- HSC domain (CPG_CKM_HSC_BASE=0xE644E000) ---"
|
||||
PRINT "S0D1HSC CKMCSR[0xE644E150]=0x" %HEX Data.Long(SD:0xE644E150) " CKMLCH[0xE644E158]=0x" %HEX Data.Long(SD:0xE644E158) " CKMLCL[0xE644E15C]=0x" %HEX Data.Long(SD:0xE644E15C)
|
||||
PRINT "S0D2HSC CKMCSR[0xE644E170]=0x" %HEX Data.Long(SD:0xE644E170) " CKMLCH[0xE644E178]=0x" %HEX Data.Long(SD:0xE644E178) " CKMLCL[0xE644E17C]=0x" %HEX Data.Long(SD:0xE644E17C)
|
||||
PRINT "S0D4HSC CKMCSR[0xE644E1B0]=0x" %HEX Data.Long(SD:0xE644E1B0) " CKMLCH[0xE644E1B8]=0x" %HEX Data.Long(SD:0xE644E1B8) " CKMLCL[0xE644E1BC]=0x" %HEX Data.Long(SD:0xE644E1BC)
|
||||
PRINT "S0D8HSC CKMCSR[0xE644E1D0]=0x" %HEX Data.Long(SD:0xE644E1D0) " CKMLCH[0xE644E1D8]=0x" %HEX Data.Long(SD:0xE644E1D8) " CKMLCL[0xE644E1DC]=0x" %HEX Data.Long(SD:0xE644E1DC)
|
||||
PRINT "CL16MHSC CKMCSR[0xE644E130]=0x" %HEX Data.Long(SD:0xE644E130) " CKMLCH[0xE644E138]=0x" %HEX Data.Long(SD:0xE644E138) " CKMLCL[0xE644E13C]=0x" %HEX Data.Long(SD:0xE644E13C)
|
||||
PRINT "CBFUSAHSC CKMCSR[0xE644E2F0]=0x" %HEX Data.Long(SD:0xE644E2F0) " CKMLCH[0xE644E2F8]=0x" %HEX Data.Long(SD:0xE644E2F8) " CKMLCL[0xE644E2FC]=0x" %HEX Data.Long(SD:0xE644E2FC)
|
||||
PRINT "RCLKHSC CKMCSR[0xE644E0B0]=0x" %HEX Data.Long(SD:0xE644E0B0) " CKMLCH[0xE644E0B8]=0x" %HEX Data.Long(SD:0xE644E0B8) " CKMLCL[0xE644E0BC]=0x" %HEX Data.Long(SD:0xE644E0BC)
|
||||
PRINT "============================================"
|
||||
|
||||
ON ERROR ; restore default error handling
|
||||
|
||||
; Save AREA output to text file
|
||||
AREA.SAVE &outfile
|
||||
PRINT "Saved to: " "&outfile"
|
||||
|
||||
ENDDO
|
||||
@@ -0,0 +1,41 @@
|
||||
============================================================
|
||||
pattern_index=0
|
||||
============================================================
|
||||
--- SYSC Domain0 ISO Injection/Status ---
|
||||
SYSCISOEHIR0 [0xE6180870] = 0x1
|
||||
BIT0 (PDR0/A1E0D0C0 ISO_HIGH inject) = 1 (1=injecting, 0=stopped)
|
||||
|
||||
SYSCISOEHSR0 [0xE6180860] = 0x1
|
||||
BIT0 (PDR0/A1E0D0C0 ISO_HIGH status) = 1 (1=error detected)
|
||||
|
||||
SYSCISOELIR0 [0xE6180878] = 0x0
|
||||
(ISO_LOW inject, should be 0 for ISO_HIGH test)
|
||||
|
||||
SYSCISOELSR0 [0xE6180868] = 0x0
|
||||
(ISO_LOW status, should be 0 for ISO_HIGH test)
|
||||
|
||||
--- SYSC Power Domain Status (Read-only: PDRSR) ---
|
||||
PDRSR0 [0xE6181000] = 0x1
|
||||
(PDR0/A1E0D0C0 power status)
|
||||
PDRSR16 [0xE6181400] = 0x10
|
||||
(PDR16/A2E0D0 parent domain power status)
|
||||
PDRSR31 [0xE61817C0] = 0x10
|
||||
(PDR31/C4 grandparent domain power status)
|
||||
|
||||
--- SYSC Power Domain Control Registers (Write-Only: read value may be 0) ---
|
||||
PDRONCR0 [0xE6181004] = 0x0 (PDR0/A1E0D0C0 power-ON ctrl, BIT0=1 to trigger)
|
||||
PDROFFCR0 [0xE6181008] = 0x0 (PDR0/A1E0D0C0 power-OFF ctrl, BIT0=1 to trigger)
|
||||
PDRONCR16 [0xE6181404] = 0x0 (PDR16/A2E0D0 power-ON ctrl - parent)
|
||||
PDROFFCR16[0xE6181408] = 0x0 (PDR16/A2E0D0 power-OFF ctrl - parent)
|
||||
PDRONCR31 [0xE61817C4] = 0x0 (PDR31/C4 power-ON ctrl - grandparent)
|
||||
PDROFFCR31[0xE61817C8] = 0x0 (PDR31/C4 power-OFF ctrl - grandparent)
|
||||
|
||||
--- ECM (base=0xE6250000) ---
|
||||
ECMERRCTLR0 [0xE6250000] = 0x5F003002
|
||||
BIT12 (ISO Cell Error Control) = 1 (1=error reporting enabled)
|
||||
|
||||
ECMERRTGTR0 [0xE6250200] = 0x0
|
||||
BIT12 (ISO Cell Error Target) = 0 (0=ERROROUT# pin, 1=NMI)
|
||||
|
||||
ECMERRSTSR0 [0xE6250100] = 0x1000
|
||||
BIT12 (ISO Cell Error Status) = 1 (1=error notified, 0=no error)
|
||||
@@ -0,0 +1,40 @@
|
||||
============================================================
|
||||
pattern_index=01
|
||||
============================================================
|
||||
|
||||
--- SYSC Domain0 (base=0xE6180000) ---
|
||||
SYSCISOEHIR0 [0xE6180870] = 0x2
|
||||
BIT1 (PDR1/A1E0D0C1 ISO_HIGH inject) = 1 (1=injecting, 0=stopped)
|
||||
|
||||
SYSCISOEHIR1 [0xE6180874] = 0x0
|
||||
(PDR32-63 ISO_HIGH inject, should be 0 for this pattern)
|
||||
|
||||
SYSCISOEHSR0 [0xE6180860] = 0x2
|
||||
BIT1 (PDR1/A1E0D0C1 ISO_HIGH status) = 1 (1=error detected)
|
||||
|
||||
SYSCISOELIR0 [0xE6180878] = 0x0
|
||||
(ISO_LOW inject, should be 0 for ISO_HIGH test)
|
||||
|
||||
SYSCISOELSR0 [0xE6180868] = 0x0
|
||||
(ISO_LOW status, should be 0 for ISO_HIGH test)
|
||||
|
||||
PDRSR1 [0xE6181040] = 0x1
|
||||
(PDR1 power status: bit0=PwrStat, bit8=IsoStat)
|
||||
|
||||
--- SYSC Power Domain Control Registers (Write-Only: read value may be 0) ---
|
||||
PDRONCR1 [0xE6181044] = 0x0 (PDR1/A1E0D0C1 power-ON ctrl, BIT0=1 to trigger)
|
||||
PDROFFCR1 [0xE6181048] = 0x0 (PDR1/A1E0D0C1 power-OFF ctrl, BIT0=1 to trigger)
|
||||
PDRONCR16 [0xE6181404] = 0x0 (PDR16/A2E0D0 power-ON ctrl - parent)
|
||||
PDROFFCR16[0xE6181408] = 0x0 (PDR16/A2E0D0 power-OFF ctrl - parent)
|
||||
PDRONCR31 [0xE61817C4] = 0x0 (PDR31/C4 power-ON ctrl - grandparent)
|
||||
PDROFFCR31[0xE61817C8] = 0x0 (PDR31/C4 power-OFF ctrl - grandparent)
|
||||
|
||||
--- ECM (base=0xE6250000) ---
|
||||
ECMERRCTLR0 [0xE6250000] = 0x5F003002
|
||||
BIT12 (ISO Cell Error Control) = 1 (1=error reporting enabled)
|
||||
|
||||
ECMERRTGTR0 [0xE6250200] = 0x0
|
||||
BIT12 (ISO Cell Error Target) = 0 (0=ERROROUT# pin, 1=NMI)
|
||||
|
||||
ECMERRSTSR0 [0xE6250100] = 0x1000
|
||||
BIT12 (ISO Cell Error Status) = 1 (1=error notified, 0=no error)
|
||||
@@ -0,0 +1,39 @@
|
||||
============================================================
|
||||
ISO Error Detection Register Dump
|
||||
pattern_index=16
|
||||
============================================================
|
||||
|
||||
--- SYSC Domain0 ISO Injection/Status ---
|
||||
SYSCISOEHIR0 [0xE6180870] = 0x10000
|
||||
BIT16 (PDR16/A2E0D0 ISO_HIGH inject) = 1 (1=injecting, 0=stopped)
|
||||
|
||||
SYSCISOEHSR0 [0xE6180860] = 0x10000
|
||||
BIT16 (PDR16/A2E0D0 ISO_HIGH status) = 1 (1=error detected)
|
||||
|
||||
SYSCISOELIR0 [0xE6180878] = 0x0
|
||||
(ISO_LOW inject, should be 0 for ISO_HIGH test)
|
||||
|
||||
SYSCISOELSR0 [0xE6180868] = 0x0
|
||||
(ISO_LOW status, should be 0 for ISO_HIGH test)
|
||||
|
||||
--- SYSC Power Domain Status (Read-only: PDRSR) ---
|
||||
PDRSR16 [0xE6181400] = 0x1
|
||||
(PDR16/A2E0D0 power status - target domain)
|
||||
PDRSR31 [0xE61817C0] = 0x10
|
||||
(PDR31/C4 grandparent domain power status)
|
||||
|
||||
--- SYSC Power Domain Control Registers (Write-Only: read value may be 0) ---
|
||||
PDRONCR16 [0xE6181404] = 0x0 (PDR16/A2E0D0 power-ON ctrl - target, BIT0=1 to trigger)
|
||||
PDROFFCR16[0xE6181408] = 0x0 (PDR16/A2E0D0 power-OFF ctrl - target, BIT0=1 to trigger)
|
||||
PDRONCR31 [0xE61817C4] = 0x0 (PDR31/C4 power-ON ctrl - grandparent)
|
||||
PDROFFCR31[0xE61817C8] = 0x0 (PDR31/C4 power-OFF ctrl - grandparent)
|
||||
|
||||
--- ECM (base=0xE6250000) ---
|
||||
ECMERRCTLR0 [0xE6250000] = 0x5F003002
|
||||
BIT12 (ISO Cell Error Control) = 1 (1=error reporting enabled)
|
||||
|
||||
ECMERRTGTR0 [0xE6250200] = 0x0
|
||||
BIT12 (ISO Cell Error Target) = 0 (0=ERROROUT# pin, 1=NMI)
|
||||
|
||||
ECMERRSTSR0 [0xE6250100] = 0x1000
|
||||
BIT12 (ISO Cell Error Status) = 1 (1=error notified, 0=no error)
|
||||
@@ -0,0 +1,34 @@
|
||||
============================================================
|
||||
pattern_index=31
|
||||
============================================================
|
||||
|
||||
--- SYSC Domain0 ISO Injection/Status ---
|
||||
SYSCISOEHIR0 [0xE6180870] = 0x80000000
|
||||
BIT31 (PDR31/C4 ISO_HIGH inject) = 1 (1=injecting, 0=stopped)
|
||||
|
||||
SYSCISOEHSR0 [0xE6180860] = 0x80000000
|
||||
BIT31 (PDR31/C4 ISO_HIGH status) = 1 (1=error detected)
|
||||
|
||||
SYSCISOELIR0 [0xE6180878] = 0x0
|
||||
(ISO_LOW inject, should be 0 for ISO_HIGH test)
|
||||
|
||||
SYSCISOELSR0 [0xE6180868] = 0x0
|
||||
(ISO_LOW status, should be 0 for ISO_HIGH test)
|
||||
|
||||
--- SYSC Power Domain Status (Read-only: PDRSR) ---
|
||||
PDRSR31 [0xE61817C0] = 0x1
|
||||
(PDR31/C4 power status)
|
||||
|
||||
--- SYSC Power Domain Control Registers (Write-Only: read value may be 0) ---
|
||||
PDRONCR31 [0xE61817C4] = 0x0 (PDR31/C4 power-ON ctrl, BIT0=1 to trigger)
|
||||
PDROFFCR31[0xE61817C8] = 0x0 (PDR31/C4 power-OFF ctrl, BIT0=1 to trigger)
|
||||
|
||||
--- ECM (base=0xE6250000) ---
|
||||
ECMERRCTLR0 [0xE6250000] = 0x5F003002
|
||||
BIT12 (ISO Cell Error Control) = 1 (1=error reporting enabled)
|
||||
|
||||
ECMERRTGTR0 [0xE6250200] = 0x0
|
||||
BIT12 (ISO Cell Error Target) = 0 (0=ERROROUT# pin, 1=NMI)
|
||||
|
||||
ECMERRSTSR0 [0xE6250100] = 0x1000
|
||||
BIT12 (ISO Cell Error Status) = 1 (1=error notified, 0=no error)
|
||||
@@ -102,11 +102,30 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)external\FT4222\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>$(ProjectDir)external\FT4222\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);LibFT4222-64.lib;ftd2xx.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>:: 1. DLL 파일 먼저 복사
|
||||
copy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)"
|
||||
|
||||
@echo off
|
||||
:: 2. PowerShell을 이용해 시스템 언어와 무관하게 날짜_시간 추출 (YYYYMMDD_HHmm)
|
||||
for /f "tokens=*" %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmm'"') do set BUILD_NAME=%%i
|
||||
|
||||
:: 3. 경로 설정 (반드시 큰따옴표로 감싸야 함)
|
||||
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_Debug_History\%BUILD_NAME%"
|
||||
|
||||
:: 4. 폴더 생성 및 복사
|
||||
echo Creating backup at: "%TARGET_PATH%"
|
||||
if not exist "%TARGET_PATH%" mkdir "%TARGET_PATH%"
|
||||
xcopy /y /e "$(OutDir)*.*" "%TARGET_PATH%\"</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
@@ -135,7 +154,7 @@ copy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)"
|
||||
for /f "tokens=*" %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmm'"') do set BUILD_NAME=%%i
|
||||
|
||||
:: 3. 경로 설정 (반드시 큰따옴표로 감싸야 함)
|
||||
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_History\%BUILD_NAME%"
|
||||
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_Release_History\%BUILD_NAME%"
|
||||
|
||||
:: 4. 폴더 생성 및 복사
|
||||
echo Creating backup at: "%TARGET_PATH%"
|
||||
@@ -144,6 +163,8 @@ xcopy /y /e "$(OutDir)*.*" "%TARGET_PATH%\"</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="external\FT4222\include\ftd2xx.h" />
|
||||
<ClInclude Include="external\FT4222\include\LibFT4222.h" />
|
||||
<ClInclude Include="include\PMIC_Reg_Map.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
<ClInclude Include="include\PMIC_Reg_Map.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="external\FT4222\include\LibFT4222.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="external\FT4222\include\ftd2xx.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\PMIC_Cmd_Tool.cpp">
|
||||
|
||||
@@ -37,9 +37,11 @@ int parseCommand(const char* dir);
|
||||
void PMIC_I2C_Write(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr, uint8_t value); // Address에 1바이트 Write with CRC, 그리고 Address를 Read해서 Write한 값과 비교
|
||||
uint8_t PMIC_I2C_Read(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr); // Address에서 1바이트 Read (CRC 계산 없음)
|
||||
void toBinaryString(uint8_t val, char* outBuf); // 8비트 데이터를 "0000_0000" 형식의 문자열로 변환
|
||||
bool Run_DebugMode(FT_HANDLE ftHandle); // Enter Debug Mode
|
||||
bool Run_DebugMode_On(FT_HANDLE ftHandle); // Enter Debug Mode On
|
||||
bool Run_DebugMode_Off(FT_HANDLE ftHandle); // Enter Debug Mode Off
|
||||
void Run_CheckFaults(FT_HANDLE ftHandle); // Check All Fault Registers
|
||||
void Run_ReadChipInfo(FT_HANDLE ftHandle); // Read Chip Information (OTP/Version)
|
||||
void Irq_Clear(FT_HANDLE ftHandle); // PMIC Irq Clear
|
||||
void Handle_ManualCommand(FT_HANDLE ftHandle, char* line); // Manual Command
|
||||
|
||||
int main()
|
||||
@@ -52,9 +54,12 @@ int main()
|
||||
while (1) {
|
||||
printf("\n========================================\n");
|
||||
printf(" [MAIN MENU] Select a function\n");
|
||||
printf(" 1. Toggle PMIC Debug Mode (Current: %s)\n", debugState ? "ON" : "OFF");
|
||||
printf(" 2. Read All Fault Status (Specific 1)\n");
|
||||
printf(" 3. Read Device Info & OTP (Specific 2)\n");
|
||||
printf(" 1. Toggle PMIC Debug Mode ON\n");
|
||||
printf(" 2. Toggle PMIC Debug Mode OFF\n");
|
||||
printf(" 3. Read All Fault Status\n");
|
||||
printf(" 4. Read Device Info & OTP\n");
|
||||
printf(" 5. PMIC Irq Clear\n");
|
||||
|
||||
printf(" W. Manual I2C Write (w [Addr] [Reg] [Val])\n");
|
||||
printf(" R. Manual I2C Read (r [Addr] [Reg])\n");
|
||||
printf(" E. Exit Program\n");
|
||||
@@ -82,9 +87,9 @@ int main()
|
||||
switch (choice) {
|
||||
case 1:
|
||||
{
|
||||
if (Run_DebugMode(ftHandle)) {
|
||||
if (Run_DebugMode_On(ftHandle)) {
|
||||
debugState = true;
|
||||
printf("\n[SUCCESS] PMIC Debug Mode.\n");
|
||||
printf("\n[SUCCESS] PMIC Debug Mode On\n");
|
||||
}
|
||||
else {
|
||||
debugState = false;
|
||||
@@ -93,13 +98,29 @@ int main()
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (Run_DebugMode_Off(ftHandle)) {
|
||||
debugState = false;
|
||||
printf("\n[SUCCESS] PMIC Debug Mode Off\n");
|
||||
}
|
||||
else {
|
||||
debugState = true;
|
||||
printf("\n[FAILURE] Communication error.\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
Run_CheckFaults(ftHandle);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
Run_ReadChipInfo(ftHandle);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
Irq_Clear(ftHandle);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("\n[ERROR] Menu number %d does not exist.\n", choice);
|
||||
break;
|
||||
@@ -741,16 +762,12 @@ void toBinaryString(uint8_t val, char* outBuf)
|
||||
outBuf[9] = '\0'; // 문자열 끝 지정
|
||||
}
|
||||
|
||||
// Enter / Exit Debug Mode
|
||||
bool Run_DebugMode(FT_HANDLE ftHandle) {
|
||||
// Set Debug Mode On
|
||||
bool Run_DebugMode_On(FT_HANDLE ftHandle) {
|
||||
uint8_t readVal = 0;
|
||||
int retryCount = 0;
|
||||
const int maxRetries = 100; // 과도한 반복 방지 (50회면 충분합니다)
|
||||
const int maxRetries = 300; // 과도한 반복 방지 (50회면 충분합니다)
|
||||
|
||||
#if 0
|
||||
printf("\n[PROCESS] Enter PMIC Debug Mode...\n");
|
||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x102 - IO_MODECTRL Read시 디폴트 0x65
|
||||
#else
|
||||
printf("\n[PROCESS] Checking PMIC Communication...");
|
||||
|
||||
// 사전 통신 검사: 정상적인 리드 값이 올 때까지 무한 대기 (또는 특정 횟수)
|
||||
@@ -769,9 +786,8 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
||||
}
|
||||
|
||||
// 실제 디버그 모드 진입 시퀀스 시작
|
||||
printf("[PROCESS] Attempting to Enter Debug Mode...\n");
|
||||
printf("[PROCESS] Attempting to Enter Debug Mode On\n");
|
||||
|
||||
#endif
|
||||
do {
|
||||
retryCount++;
|
||||
|
||||
@@ -783,13 +799,13 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x02, 0x25); //0x102 - IO_MODECTRL
|
||||
|
||||
// 딜레이 및 확인 (Verification)
|
||||
Sleep(10);
|
||||
Sleep(50);
|
||||
|
||||
// 직접 읽어서 확인
|
||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02);
|
||||
|
||||
if (readVal == 0x25) {
|
||||
printf(" >>> Success! Debug Mode entered at cycle %d. <<<\n", retryCount);
|
||||
if (readVal == 0x25) {;
|
||||
printf(" >>> Success! Debug Mode On[0x%02X] at cycle %d. <<<\n", readVal, retryCount);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -797,12 +813,66 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
||||
|
||||
} while (retryCount < maxRetries);
|
||||
|
||||
printf("\n[ERRPR] Failed to enter Debug Mode\n");
|
||||
return false;
|
||||
printf("\n[ERRPR] Failed to enter Debug Mode On\n");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set Debug Mode Off
|
||||
bool Run_DebugMode_Off(FT_HANDLE ftHandle) {
|
||||
uint8_t readVal = 0;
|
||||
int retryCount = 0;
|
||||
const int maxRetries = 100; // 과도한 반복 방지 (50회면 충분합니다)
|
||||
|
||||
printf("\n[PROCESS] Checking PMIC Communication...");
|
||||
|
||||
// 사전 통신 검사: 정상적인 리드 값이 올 때까지 무한 대기 (또는 특정 횟수)
|
||||
while (1) {
|
||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x102 - IO_MODECTRL Read시 Debug On으로 0x25
|
||||
|
||||
if (readVal != 0xFF) {
|
||||
printf("\n[SUCCESS] Device detected! (Current Reg 0x02: 0x%02X)\n", readVal);
|
||||
break; // 통신 성공 시 검사 루프 탈출
|
||||
}
|
||||
|
||||
printf("."); // 대기 중임을 알리는 점 표시
|
||||
Sleep(1000); // 1초 간격으로 확인
|
||||
|
||||
// 만약 무한 대기가 싫다면 별도의 카운터를 써서 break
|
||||
}
|
||||
|
||||
// 실제 디버그 모드 진입 시퀀스 시작
|
||||
printf("[PROCESS] Attempting to Enter Debug Mode Off...\n");
|
||||
|
||||
do {
|
||||
retryCount++;
|
||||
|
||||
// Page01 선택
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x01);
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x01);
|
||||
|
||||
// 디버그 모드 해제 명령 (0x65)
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x02, 0x65); //0x102 - IO_MODECTRL
|
||||
|
||||
// 딜레이 및 확인 (Verification)
|
||||
Sleep(50);
|
||||
|
||||
// 직접 읽어서 확인
|
||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02);
|
||||
|
||||
if (readVal == 0x65) {
|
||||
printf(" >>> Success! Debug Mode Off[0x%02X] at cycle %d. <<<\n", readVal, retryCount);
|
||||
return true;
|
||||
}
|
||||
|
||||
printf("[Retry %d]...\n", retryCount);
|
||||
|
||||
} while (retryCount < maxRetries);
|
||||
|
||||
printf("\n[ERRPR] Failed Debug Mode Off\n");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check All Fault Registers
|
||||
void Run_CheckFaults(FT_HANDLE ftHandle)
|
||||
@@ -849,6 +919,11 @@ void Run_CheckFaults(FT_HANDLE ftHandle)
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1E); //0x01E - FLT_RECORD_ExtLDOs
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1F); //0x01F - FLT_RECORD_BUCKS_B
|
||||
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x20); //0x020 - FLT_RECORD_BUCKS_A
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x21); //0x021 - FLT_RECORD_ExtINPs_7_0
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x28); //0x028 - OTP_RWADDR
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x2A); //0x02A - OTP_FLT_RECORD
|
||||
|
||||
//Debug Regulation Chip Name etc
|
||||
printf("[Regulation Chip ID]\n");
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||
@@ -879,9 +954,76 @@ void Run_CheckFaults(FT_HANDLE ftHandle)
|
||||
// Read Chip Information (OTP/Version)
|
||||
void Run_ReadChipInfo(FT_HANDLE ftHandle)
|
||||
{
|
||||
printf("\n[PROCESS] Reading Chip Information...\n");
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x02); // IO_CHIPVERSION_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x03); // IO_DIEID3_REGU
|
||||
//Regulation Register
|
||||
printf("[OTP Version]\n");
|
||||
//OTP Version
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x02); //0x00 - Page0x02
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x02); //0x00 - Page0x02
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x22); //0x222 - OTP_VERSION_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x23); //0x223 - OTP_VERSION_REGU
|
||||
|
||||
//Debug Regulation Chip Name etc
|
||||
printf("[Regulation Chip ID]\n");
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x00); //0x000 - IO_PAGE_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x01); //0x001 - IO_CHIPNAME_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x02); //0x002 - IO_CHIPVERSION_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x03); //0x003 - IO_DIEID3_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x04); //0x004 - IO_DIEID2_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x05); //0x005 - IO_DIEID1_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x06); //0x006 - IO_DIEID0_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x0A); //0x00A - OTP_VERSION_REGU
|
||||
|
||||
//Debug Protection Chip Name etc
|
||||
printf("[Protection Chip ID]\n");
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x00); //0x000 - IO_PAGE_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x01); //0x001 - IO_CHIPNAME_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x002 - IO_CHIPVERSION_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x03); //0x003 - IO_DIEID3_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x04); //0x004 - IO_DIEID2_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x05); //0x005 - IO_DIEID1_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x06); //0x006 - IO_DIEID0_REGU
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x0A); //0x00A - OTP_VERSION_REGU
|
||||
}
|
||||
|
||||
// PMIC Irq Clear
|
||||
void Irq_Clear(FT_HANDLE ftHandle)
|
||||
{
|
||||
//Regulation Fault Register Clear : Regulation Register, Address 0x040 ~ 0x049
|
||||
printf("[Regulation FLT Register Clear]\n");
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x40, 0x00); //0x040 - FLT_RECORD_OTP
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x41, 0x00); //0x041 - FLT_RECORD_TEMP
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x42, 0x00); //0x042 - FLT_RECORD_BUCK1
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x43, 0x00); //0x043 - FLT_RECORD_BUCK2
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x44, 0x00); //0x044 - FLT_RECORD_BUCK3
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x45, 0x00); //0x045 - FLT_RECORD_BUCK4
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x46, 0x00); //0x046 - FLT_RECORD_BUCK5
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x47, 0x00); //0x047 - FLT_RECORD_LDO
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x48, 0x00); //0x048 - FLT_RECORD_IF
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x49, 0x00); //0x049 - FLT_RECORD_LDO_DISC_DET
|
||||
|
||||
|
||||
//Fault register data: Protection Register, Address 0x010 ~0x014, 0x019 ~0x021
|
||||
printf("[Protection FLT Register Clear]\n");
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x14); //0x014 - FUSA_STATUS_4
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x19); //0x019 - FLT_RECORD_A
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1A); //0x01A - FLT_RECORD_B
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1B); //0x01B - FLT_RECORD_GND_AVIN
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1C); //0x01C - FLT_RECORD_BG_Temp
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1D); //0x01D - FLT_RECORD_IntLDOs
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1E); //0x01E - FLT_RECORD_ExtLDOs
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1F); //0x01F - FLT_RECORD_BUCKS_B
|
||||
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x20); //0x020 - FLT_RECORD_BUCKS_A
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x21); //0x021 - FLT_RECORD_ExtINPs_7_0
|
||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x2A); //0x02A - OTP_FLT_RECORD
|
||||
}
|
||||
|
||||
// Manual Command
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\vc143.pdb
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.obj
|
||||
c:\work\src\0_tool\pmic_tool\x64\release\pmic_cmd_tool.exe
|
||||
c:\work\src\0_tool\pmic_tool\x64\release\pmic_cmd_tool.pdb
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.ipdb
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.iobj
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.command.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.items.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.read.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.write.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.command.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.read.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.secondary.1.tlog
|
||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.write.1.tlog
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<ProjectOutputs>
|
||||
<ProjectOutput>
|
||||
<FullPath>C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe</FullPath>
|
||||
</ProjectOutput>
|
||||
</ProjectOutputs>
|
||||
<ContentFiles />
|
||||
<SatelliteDlls />
|
||||
<NonRecipeFileRefs />
|
||||
</Project>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
PMIC_Cmd_Tool.cpp
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\include\ftd2xx.h(2072,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
|
||||
(소스 파일 'src/PMIC_Cmd_Tool.cpp'을(를) 컴파일하는 중)
|
||||
|
||||
코드를 생성하고 있습니다.
|
||||
2 of 14 functions (14.3%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
0 functions had inline decision re-evaluated but remain unchanged
|
||||
코드를 생성했습니다.
|
||||
PMIC_Cmd_Tool.vcxproj -> C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\dll\ftd2xx.dll
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\dll\LibFT4222-64.dll
|
||||
2개 파일이 복사되었습니다.
|
||||
Creating backup at: "C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool_Build_History\20260402_1952"
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\ftd2xx.dll
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\LibFT4222-64.dll
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.pdb
|
||||
4개 파일이 복사되었습니다.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\src\PMIC_Cmd_Tool.cpp;C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.obj
|
||||
@@ -1,2 +0,0 @@
|
||||
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
|
||||
Release|x64|C:\Work\Src\0_Tool\PMIC_Tool\|
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
^C:\WORK\SRC\0_TOOL\PMIC_TOOL\PMIC_CMD_TOOL\X64\RELEASE\PMIC_CMD_TOOL.OBJ
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.IPDB
|
||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.iobj
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user