?? pm5337_sys_sonet.tcl
字號:
#------------------------------------------------------------------------------# FILE NAME: PM5337_SYS_SONET.tcl## DESCRIPTION: This file includes the following procedures:# 1) SYS_SONET_ESSI_Init# 2) SYS_SONET_ESSI_Config# 3) SYS_SONET_SMART_Framing# # NOTES:## REVISION History:# Preliminary 1 - Script created# Released 2 - Updated SYS_SONET_ESSI_Config##------------------------------------------------------------------------------#------------------------------------------------------------------------------# SCRIPT NAME: SYS_SONET_ESSI_Init## DESCRIPTION: This procedure enable or disable ESSI link 1 to 4 in the # SYS_SONET subsystem. # # PARAMETERS: devID - This parameter is used to specify the device # under configuration## enable - 0 (disable), 1 (enable)## NOTES: The ESSI block must be enable in the following sequence # 1) Enable the ESSI block # 2) De-assert the ESSI block reset## The ESSI block must be disabled in the following sequence# 1) Assert the ESSI block reset# 2) Disable the ESSI block##------------------------------------------------------------------------------proc SYS_SONET_ESSI_Init {devID enable} { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ################################################ ##### Enabling or disabling ESSI link[4:1] ##### ################################################ if {$enable == 1} { # Enable the digital logic in ESSI link [4:1] ESSI_DISABLE = 0 admwrb $devID 0x000A 2 0 # Reset the digital logic in ESSI link [4:1] ESSI_RESET = 0 admwrb $devID 0x0009 2 0 } else { # Reset the digital logic in ESSI link [4:1] ESSI_DISABLE = 1 admwrb $devID 0x0009 2 1 # Enable the digital logic in ESSI link [4:1] ESSI_ENABLE = 1 admwrb $devID 0x000A 2 1 } }#------------------------------------------------------------------------------# SCRIPT NAME: SYS_SONET_ESSI_Config## DESCRIPTION: This procedure configures the ESSI links in the SYS_SONET # subsystem. # # PARAMETERS: devID # link - 0 (link 1), 1 (link 2), 2 (link 3), # 3 (link 4)# rate - 0 (622.08 Mbit/s), 1 (2.488 Gbit/s)# mode - 0 (add/drop mode), 1 (companion mode)# eq_mode - 0 (no), 1 (low), 2 (high)# rx_term - 0 (100R), 1 (50R to 1.2V)# preemphasis - 0 (off), 1 (on)# txmode4_0 - Valid values are from 01000 to 10100. See # PMC-2021098 for recommendation.# scr_descr_mode - 0 (mode 1 - default), 1 (mode 2), 2 (mode 3), # 3 (mode 4)# scr_descr_poly - 0 (1+x^6+x^7 - default), 1 (1+x^4+x^9)## NOTES: Scrambling algorithm mode 1 and polynomial PRBS-7 are the default # setting in this script.## REVISION History:# Preliminary 1 - Script created# Released 2 - Added frame delay register configuration for companion mode#------------------------------------------------------------------------------proc SYS_SONET_ESSI_Config {devID link rate mode eq_mode rx_term preemphasis txmode4_0 {scr_descr_mode 0} {scr_descr_poly 0} } { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ######################################## ##### Operation Rate Configuration ##### ######################################## ### Configuring ESSI link [N] to 2.488 Gbps or 622.08 Mbps mode### # ESSI link [N] operate at 622.08Mbps when $rate = 0, and operate # at 2.488 Gbps when $rate = 1 (Register 0x0000) # Note: Add and drop ESSI link[N] are configured to the same rate if {$link == 0} { admwrb $devID 0x0000 28 $rate admwrb $devID 0x0000 24 $rate } elseif {$link == 1} { admwrb $devID 0x0000 29 $rate admwrb $devID 0x0000 25 $rate } elseif {$link == 2} { admwrb $devID 0x0000 30 $rate admwrb $devID 0x0000 26 $rate } elseif {$link == 3} { admwrb $devID 0x0000 31 $rate admwrb $devID 0x0000 27 $rate } ######################################## ##### Operation Mode Configuration ##### ######################################## ### Configuring ESSI link [N] to Add/Drop mode or Companion mode ### # Configure ESSI link [N] to Add/Drop Mode when $mode = 0, and # to Companion mode when $mode = 1 (Reg 0x081A) if {$link == 0} { #ASSI_COMP[1] admwrb $devID 0x081A 0 $mode } elseif {$link == 1} { #ASSI_COMP[2] admwrb $devID 0x081A 1 $mode } elseif {$link == 2} { #ASSI_COMP[3] admwrb $devID 0x081A 2 $mode } elseif {$link == 3} { #ASSI_COMP[4] admwrb $devID 0x081A 3 $mode } ################################################## ##### Analog Transmitter and Receiver Enable ##### ################################################## ### Enabling analog transmitter and receiver ### # The analog receiver enable bits are located in (0x062B+0x20(n-1)) # The analog transmit enable bits are located in (0x0706+0x10(n-1), and # 0x0707+0x10(n-1) set addr_0x062B [expr 0x062B + 0x20 * ($link)] set addr_0x0706 [expr 0x0706 + 0x10 * ($link)] set addr_0x0707 [expr 0x0707 + 0x10 * ($link)] # Enable analog receiver admwrb $devID $addr_0x062B 15 1 admwrb $devID $addr_0x062B 11 1 # Enable analog transmitter admwrb $devID $addr_0x0706 7 1 admwrb $devID $addr_0x0707 15 1 ########################################## ##### Analog Receiver Configuration ##### ########################################## ### Configuring ESSI link receiver termination mode ### # ESSI receiver is terminated to 100R when $rx_term = 0, and # terminated to 50R to 1.2V when $rx_term = 1. # (Reg 0x062E + 0x20(n-1)) ### Configuring receive equalization mode ### # ESSI link receive equalization is off when $eq_mode = 0, # low when $eq_mode = 1, and high when $eq_mode = 2 # (Reg 0x062E + 0x20(n-1)) set addr_0x062E [expr 0x062E + 0x20 * ($link)] set value [expr [expr $rx_term << 15]|[expr $eq_mode << 8]] admwr $devID $addr_0x062E $value ############################################# ##### Analog Transmitter Configuration ##### ############################################# ### Enabling or Disabling Transmit Pre-emphasis ### # Transmit pre-emphasis is disable when $preemphasis is 0, and # enable when $preemphasis is 1. (Reg 0x0706 + 0x10(n-1)) set addr_0x0706 [expr 0x0706 + 0x10 * ($link)] admwrb $devID $addr_0x0706 3 $preemphasis ### Configurating Transmitter Swing Level ### # Refer to PMC-2021098 for recommended settings # (Reg 0x0707 + 0x10(n-1)) set addr_0x0707 [expr 0x0707 + 0x10 * ($link)] # Declaring txmode0 to txmode4 set txmode4 [string index $txmode4_0 0] set txmode3 [string index $txmode4_0 1] set txmode2 [string index $txmode4_0 2] set txmode1 [string index $txmode4_0 3] set txmode0 [string index $txmode4_0 4] admwrb $devID $addr_0x0707 4 $txmode4 admwrb $devID $addr_0x0707 3 $txmode3 admwrb $devID $addr_0x0707 2 $txmode2 admwrb $devID $addr_0x0707 1 $txmode1 admwrb $devID $addr_0x0707 0 $txmode0 ################################################### ##### Scrambler and Descrambler Configuration ##### ################################################### ### Scrambler and Descrambler Polynomial Configuration ### # Scrambler polynomial is set to 1+x^6+x^7 when $scr_descr_poly is 0, and # is set to 1+x^4+x^9 when $scr_descr_poly is 1. (Reg 0x0700 + 0x10(n-1)) # Descrambler polynomial is set to 1+x^6+x^7 when $scr_descr_poly is 0, and # is set to 1+x^4+x^9 when $scr_descr_poly is 1. (Reg 0x0620 + 0x20(n-1)) set addr_0x0700 [expr 0x0700 + 0x10 * ($link)] set addr_0x0620 [expr 0x0620 + 0x20 * ($link)] # Configure scrambler admwrb $devID $addr_0x0700 1 $scr_descr_poly # Configure descrambler admwrb $devID $addr_0x0620 0 $scr_descr_poly ### Descrambler Algorithm Configuration ### # Refer to register description table 18, 19, 27, 28 for details # Descrambler configuration registers: (Reg 0x0622 + 0x20(n-1), # Reg 0x0623 + 0x20(n-1), and Reg 0x0624 + 0x20(n-1)) # Scrambler configuration registers: (Reg 0x0701 + 0x10(n-1), # Reg 0x0702 + 0x10(n-1), and Reg 0x0703 + 0x10(n-1)) # Descrambler address set addr_0x0622 [expr 0x0622 + 0x20 * ($link)] set addr_0x0623 [expr 0x0623 + 0x20 * ($link)] set addr_0x0624 [expr 0x0624 + 0x20 * ($link)] # Scrambler address set addr_0x0701 [expr 0x0701 + 0x10 * ($link)] set addr_0x0702 [expr 0x0702 + 0x10 * ($link)] set addr_0x0703 [expr 0x0703 + 0x10 * ($link)] if {$rate == 1} { # De-scrambler and Scrambler Configuration for 2.488 Gbps mode if {$scr_descr_mode == 0} { admwr $devID $addr_0x0622 0x0101 admwr $devID $addr_0x0623 0x0041 admwr $devID $addr_0x0624 0x00F0 admwr $devID $addr_0x0701 0x7101 admwr $devID $addr_0x0702 0x0041 admwr $devID $addr_0x0703 0x00F0 } if {$scr_descr_mode == 1} { admwr $devID $addr_0x0622 0x0101 admwr $devID $addr_0x0623 0x0041 admwr $devID $addr_0x0624 0x00B0 admwr $devID $addr_0x0701 0x7101 admwr $devID $addr_0x0702 0x0041 admwr $devID $addr_0x0703 0x00B0 } if {$scr_descr_mode == 2} { admwr $devID $addr_0x0622 0x0084 admwr $devID $addr_0x0623 0x006E admwr $devID $addr_0x0624 0x0083 admwr $devID $addr_0x0701 0x7084 admwr $devID $addr_0x0702 0x006E admwr $devID $addr_0x0703 0x0083 } if {$scr_descr_mode == 3} { admwr $devID $addr_0x0622 0x00C1 admwr $devID $addr_0x0623 0x0041 admwr $devID $addr_0x0624 0x00B0 admwr $devID $addr_0x0701 0x70C1 admwr $devID $addr_0x0702 0x0041 admwr $devID $addr_0x0703 0x00B0 } } if {$rate == 0} { # De-scrambler and Scrambler Configuration for 622.08 Mbps mode if {$scr_descr_mode == 0} { admwr $devID $addr_0x0622 0x0101 admwr $devID $addr_0x0623 0x0041 admwr $devID $addr_0x0624 0x00CC
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -