?? pm5337_pdh.tcl
字號:
#------------------------------------------------------------------------------# FILE NAME: PM5337_PDH.tcl## DESCRIPTION: This file includes the following procedures:# 1) PDH_Init# 2) PDH_DS1_E1_Config# 3) PDH_EC1_Config# 4) PDH_DS3_E3_Config# 5) PDH_M13_Config # NOTES:## REVISION History:# Preliminary 1 - Script created# Released 2 - Updated PDH_DS3_E3_Config##------------------------------------------------------------------------------#------------------------------------------------------------------------------# SCRIPT NAME: PDH_Init## DESCRIPTION: This script enables the PDH subsystem and de-assert the reset# bits for each mega blocks.# # PARAMETERS: devID - This parameter is used to specify the device # under configuration## NOTES: ##------------------------------------------------------------------------------proc PDH_Init {devID} { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ################################## ##### Enabling PDH Subsystem ##### ################################## # Assert PDH subsystem reset in top level admwrb $devID 0x0009 5 1 # Enable PDH subsystem in top level admwrb $devID 0x000A 5 0 # De-assert PDH subsystem reset in top level admwrb $devID 0x0009 5 0 ######################################### ##### Enabling PDH Subsystem Blocks ##### ######################################### # De-assert PDH_SONET_TOP Reset for all Blocks admwr $devID 0xC000 0x00000000 # Enable PDH_SONET_TOP for all blocks admwr $devID 0xC001 0x00000000 ###################################################### ##### Recommended PDH Subsystem Default Settings ##### ###################################################### # Set VTPA_PDH to normal operation mode admwrb $devID 0xC003 3 1 # Set High Order Pointer on Add Direction to 0d522 admwr $devID 0xC007 0x0000020A }#------------------------------------------------------------------------------# SCRIPT NAME: PDH_DS1_E1_Config## DESCRIPTION: This script configures the DS1 or E1 interfaces in the PDH # subsystem.# # PARAMETERS: devID - This parameter is used to specify the device # under configuration# # lineintf - 0 (SBI-TR mode), 1 (Serial Interface)## mode - Valid values are 0, 1, 2, 3, 4 and 5. See notes for details.## datapath - 0 (DS1/E1 traffic is from/to DS1/E1 Demapper/Mapper)# 1 (DS1/E1 traffic is from/to M31/M13 Mux)## NOTES: # 1) When datapath = 0:## Mode PDH SONET/SDH# ----------------------------------# 0 DS1 AU3/TU11 (VT1.5) # 1 E1 AU3/TU12# 2 DS1 AU3/TU12 (VT2)# 3 DS1 AU4/TU11# 4 DS1 AU4/TU12# 5 E1 AU4/TU12## 2) When datapath = 1:## Mode PDH # -----------------# 0 DS1 # 1 E1 ## 3) The FRMR-DE1 and TRAN-DE1 are bypassed, the T1 and E1 will pass# through the interface unmodified.##------------------------------------------------------------------------------proc PDH_DS1_E1_Config {devID lineintf mode datapath {t1_framing 0} {jpn 0} {e1_framing 0} {crc 0}} { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ######################################################################### ##### Configuring top level bit to process the proper payload types ##### ######################################################################### if {$mode == 0} { # Mode 0: Mapping/demapping DS1 to/from AU3/TU11 (VT1.5) admwrb $devID 0xC058 18 0 ;# TUG3EN admwrb $devID 0xC0D0 3 0 ;# VT2 admwrb $devID 0xC0D0 2 0 ;# E1DS1B } elseif {$mode == 1} { # Mode 1: Mapping/demapping E1 to/from AU3/TU12 admwrb $devID 0xC058 18 0 ;# TUG3EN admwrb $devID 0xC0D0 3 0 ;# VT2 admwrb $devID 0xC0D0 2 1 ;# E1DS1B } elseif {$mode == 2} { # Mode 2: Mapping/demapping DS1 to/from AU3/TU12 (VT2) admwrb $devID 0xC058 18 0 ;# TUG3EN admwrb $devID 0xC0D0 3 1 ;# VT2 admwrb $devID 0xC0D0 2 0 ;# E1DS1B } elseif {$mode == 3} { # Mode 3: Mapping/demapping DS1 to/from AU4/TU11 admwrb $devID 0xC058 18 1 ;# TUG3EN admwrb $devID 0xC0D0 3 0 ;# VT2 admwrb $devID 0xC0D0 2 0 ;# E1DS1B } elseif {$mode == 4} { # Mode 4: Mapping/demapping DS1 to/from AU4/TU12 (VT2) admwrb $devID 0xC058 18 1 ;# TUG3EN admwrb $devID 0xC0D0 3 1 ;# VT2 admwrb $devID 0xC0D0 2 0 ;# E1DS1B } elseif {$mode == 5} { # Mode 5: Mapping/demapping E1 to/from AU4/TU12 (VT2) #puts "mode 5: mapping" admwrb $devID 0xC058 18 1 ;# TUG3EN admwrb $devID 0xC0D0 3 0 ;# VT2 admwrb $devID 0xC0D0 2 1 ;# E1DS1B } ######################################## ##### Configuring DS1/E1 Data Path ##### ######################################## if {$datapath == 0} { # Drop DS1/E1 data stream is from/to DS1/E1 Mapper admwr $devID 0xC0D5 0x00000000 # Add DS1/E1 data stream is from/to DS1/E1 Mapper admwr $devID 0xC0D6 0x00000000 } elseif {$datapath == 1} { # Drop DS1/E1 data stream is from/to M31/M13 mux admwr $devID 0xC0D5 0x0FFFFFFF # Add DS1/E1 data stream is from/to M31/M13 mux admwr $devID 0xC0D6 0x0FFFFFFF } ############################################### ##### DS1/E1 Line Interface Configuration ##### ############################################### # SBI Configuration # if {$lineintf == 0} { # Set DS1/E1 Interface to SBI-TR Mode admwrb $devID 0x0000 15 1 } ### Serial Interface Configuration ### if {$lineintf == 1} { ### i) Set DS1/E1 Interface to Serial Interface Mode ### admwrb $devID 0x0000 15 0 ### ii) Configure Serial Interface polarity ### # - See register 0xC0D0, DDE1_RISEN [7:0] and ADE1_RISEEN [7:0]. # ADE1_D[7:0], DDE1_D[7:0], ADE1_LVC[7:0], DDE1_LVC[7:0] are # sampled at the falling edge by default. ### iii) SIPO Configuration ### # Enable all 8 serial add links Poll_BUSY_Bit $devID 0xCB94 0 admwr $devID 0xCB93 0x000000FF # Master Bus Control Configuration if {$mode == 0 || $mode == 2 || $mode == 3 || $mode == 4} { # Serial link contains 8 T1 streams. admwr $devID 0xCBA3 0x00000008 } elseif {$mode == 1 || $mode == 5} { # Serial link contains 8 E1 streams. admwr $devID 0xCBA3 0x00000009 } ### iv) PISO Configuration ### # Enable all 8 serial drop links admwr $devID 0xCBC8 0x000000FF # Enable link overrun auto reset admwr $devID 0xCBCF 0x000000FF # Set CLK_MODE[1:0] to 10b admwr $devID 0xCBD0 0x48 admwr $devID 0xCBD1 0x48 admwr $devID 0xCBD2 0x48 admwr $devID 0xCBD3 0x48 admwr $devID 0xCBD4 0x48 admwr $devID 0xCBD5 0x48 admwr $devID 0xCBD6 0x48 admwr $devID 0xCBD7 0x48 # Set DEPTH[3:0] to 0100b admwr $devID 0xCBE8 0x42 admwr $devID 0xCBE9 0x42 admwr $devID 0xCBEA 0x42 admwr $devID 0xCBEB 0x42 admwr $devID 0xCBEC 0x42 admwr $devID 0xCBED 0x42 admwr $devID 0xCBEE 0x42 admwr $devID 0xCBEF 0x42 } ####################################### ##### DS1/E1 Framer Configuration ##### ####################################### # Set T1 framing mode if {$mode == 0 || $mode == 2 || $mode == 3 || $mode == 4} { # spe = 1 specifies drop path # spe = 2 specifies add path # index = 1 to 28 specifies the T1 index for {set spe 0x1} {$spe <= 0x2} {incr spe} { for {set index 1} {$index <= 0x1C} {incr index} { set index [format "0x%04X" $index] set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC12 0 0 $spe $index] & 0xFC7F)]; if {$t1_framing == 0} { #D4 set val [expr ($val | 0x0000)] } elseif {$t1_framing == 1} { #SLC96 set val [expr ($val | 0x0100)] } elseif {$t1_framing == 2} { #Transparent set val [expr ($val | 0x0080)] } elseif {$t1_framing == 3} { #ESF set val [expr ($val | 0x0600)] } set val [format "0x%04X" $val] #puts $val admindwr $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR $val 0xCC12 0 0 $spe $index # [AL] Removed autoyellow alarm as this causes confusion. April 20, 2005. # set jpn bit and autoyellow #set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC13 0 0 $spe $index] & 0x7ff7)]; #set val [expr ($val | ($jpn << 15) | 1 << 3)] #admindwr $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR $val 0xCC13 0 0 $spe $index # Configure JPN bit set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC13 0 0 $spe $index] & 0x7ff7)]; set val [expr ($val | ($jpn << 15))] admindwr $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR $val 0xCC13 0 0 $spe $index } } } # Set E1 framer to transparent mode (unframed) if {$mode == 1 || $mode == 5} { # spe = 1 specifies drop path # spe = 2 specifies add path # index = 1 to 21 specifies the T1 index for {set spe 1} {$spe <= 2} {incr spe} { for {set index 1} {$index <= 21} {incr index} { set index [format "0x%04X" $index] set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC12 0 0 $spe $index] & 0xF47F)]; if {$e1_framing == 1} { #PMC31 set val [expr ($val | 0x0100)] } elseif {$e1_framing == 0} { #PMC30 set val [expr ($val | 0x0000)] } set val [expr ($val | ($crc << 7) | ($crc << 11) | 1 << 9)] set val [dec2hex $val] #puts $val admindwr $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR $val 0xCC12 0 0 $spe $index # [AL] Removed auto yellow alarm as this causes confusion. April 20, 2005. #set autoyellow #set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC13 0 0 $spe $index] & 0xfff6)]; #set val [expr ($val | 0x1 << 3)] set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR 0xCC13 0 0 $spe $index] & 0xfff6)]; if {$e1_framing == 2} { set val [expr ($val | 0x1)]; } admindwr $devID PDH_SONET::DE1_SLICE::DS1E1_FRMR $val 0xCC13 0 0 $spe $index } } } ################################# ### DS1/E1 TRAN Configuration ### ################################# if {$mode == 0 || $mode == 2 || $mode == 3 || $mode == 4} { # spe = 1 specifies drop path # spe = 2 specifies add path # index = 1 to 28 specifies the T1 index for {set spe 1} {$spe <= 2} {incr spe} { #set spe 1 for {set index 1} {$index <= 28} {incr index} { set index [format "0x%04X" $index] set val [expr ([admindrd $devID PDH_SONET::DE1_SLICE::DS1E1_TRAN 0xCDF5 $spe $index] & 0xFFF0)]; if {$t1_framing == 0} { #D4 set val [expr ($val | 0x00)] } elseif {$t1_framing == 1} { #SLC96 set val [expr ($val | 0x04)] } elseif {$t1_framing == 2} { #Transparent set val [expr ($val | 0x02)] } elseif {$t1_framing == 3} { #ESF set val [expr ($val | 0x01)] } #first set jpn bit set val [expr ($val | ($jpn << 3))]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -