⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm5337_sys_sonet.tcl

📁 用于EOS芯片的驱动程序, 供参考 参考
💻 TCL
📖 第 1 页 / 共 2 页
字号:
#------------------------------------------------------------------------------# 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 + -