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

📄 pm5337_line_sonet_lopp.tcl

📁 用于EOS芯片的驱动程序, 供参考 参考
💻 TCL
📖 第 1 页 / 共 3 页
字号:
#------------------------------------------------------------------------------# FILE NAME: PM5337_LINE_SONET_LOPP.tcl## DESCRIPTION: 	This file includes the following procedures:#               1) LINE_SONET_LO_Payload_Config#               2) LINE_SONET_LO_Trace_Config#               3) LINE_SONET_LO_BER_Config#               4) LINE_SONET_LO_MAPS_Config#			# NOTES:## REVISION History:# Preliminary 1 - Script created#------------------------------------------------------------------------------#------------------------------------------------------------------------------# SCRIPT NAME:  LINE_SONET_LO_Payload_Config## DESCRIPTION:   #               # PARAMETERS:   devID     - This parameter is used to specify the device #                           under configuration #          #               interface - 1 (interface 1), 2 (interface 2)##               payload   - STS-1, STS-3c, STS-12c, VT15, VT2, VT3, #                           VT6, AU3/C3, AU4/C4, AU4-4c, AU3/TU11, #			    AU3/TU12, AU3/TU2, AU4/TU11, AU4/TU12, #		 	    AU4/TU2, AU4/TU3## NOTES:##------------------------------------------------------------------------------proc LINE_SONET_LO_Payload_Config {devID interface payload} {  source /home/apps/indirect.tcl    source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl        ############################################  ##### Configure Low Order Playload     #####  ############################################  ### Set proper register address to modify based on interface  ###    # Defining LOPP  top level registers: n = 6 or 8  set addr_1660 [expr (0x1660 + (($interface-1)*0x0200))]    set addr_1661 [expr (0x1661 + (($interface-1)*0x0200))]  set addr_1662 [expr (0x1662 + (($interface-1)*0x0200))]   set addr_1663 [expr (0x1663 + (($interface-1)*0x0200))]  set addr_1664 [expr (0x1664 + (($interface-1)*0x0200))]  set addr_1665 [expr (0x1665 + (($interface-1)*0x0200))]  set addr_1666 [expr (0x1666 + (($interface-1)*0x0200))]   set addr_1667 [expr (0x1667 + (($interface-1)*0x0200))]   set addr_1668 [expr (0x1668 + (($interface-1)*0x0200))]  set addr_1669 [expr (0x1669 + (($interface-1)*0x0200))]   set addr_166A [expr (0x166A + (($interface-1)*0x0200))]  set addr_166B [expr (0x166B + (($interface-1)*0x0200))]  set addr_166C [expr (0x166C + (($interface-1)*0x0200))]   set addr_166D [expr (0x166D + (($interface-1)*0x0200))]   set addr_166E [expr (0x166E + (($interface-1)*0x0200))]                                         set addr_HOPtr [expr (0x1760 + (($interface-1)*0x0200))]       # Set VTPA_EN to '1'  admwrb $devID $addr_1662 3 1    # Set the incoming payload configuration    if {$payload == "VT6" || $payload == "AU3/TU2"} {     ### STS-1 with VT6 or AU3 with TU2 ###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 0, OTUG3 = 0        admwr $devID $addr_1660 0x0000    admwr $devID $addr_1661 0x0000        set activetu 1      } elseif {$payload == "VT3"} {      ### STS-1 with VT3 ###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 0, OTUG3 = 0        admwr $devID $addr_1660 0x0000    admwr $devID $addr_1661 0x0000      set activetu 2   } elseif {$payload == "VT2" || $payload == "AU3/TU12"} {      ### STS-1 with VT2 or AU3 with TU12 ###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 0, OTUG3 = 0        admwr $devID $addr_1660 0x0000    admwr $devID $addr_1661 0x0000      set activetu 3   } elseif {$payload == "VT15" || $payload == "AU3/TU11"} {      ### STS-1 with VT1.5 or AU3 with TU11###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 0, OTUG3 = 0        admwr $devID $addr_1660 0x0000    admwr $devID $addr_1661 0x0000      set activetu 4    } elseif {$payload == "AU4/TU2"} {      ### AU4 with TU2 ###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 1, OTUG3 = 1        admwr $devID $addr_1660 0xF000    admwr $devID $addr_1661 0x000F      set activetu 1      } elseif {$payload == "AU4/TU12"} {      ### AU4 with TU12 ###        # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 1, OTUG3 = 1        admwr $devID $addr_1660 0xF000    admwr $devID $addr_1661 0x000F      set activetu 3  } elseif {$payload == "AU4/TU11"} {     ### AU4 with TU11 ###          # Configure LOPP MTSB Level    # ITU3 = 0, ITUG3 = 1, OTUG3 = 1        admwr $devID $addr_1660 0xF000    admwr $devID $addr_1661 0x000F      set activetu 4      } elseif {$payload == "STS-1" || $payload == "STS-3c" || $payload == "STS-12c" || $payload == "AU3/C3" || $payload == "AU4/C4" || $payload == "AU4-4c"} {       ### STS-1 with No VT or STS-3c or STS-12c or AU3/C3 ###    # or AU4/C4 or AU4-4c        # Configure LOPP MTSB Level    # ITU3 = 1, ITUG3 = 0, OTUG3 = 0        admwr $devID $addr_1660 0x0FFF    admwr $devID $addr_1661 0x0000        ### Select Bypass path    admwr $devID $addr_1664 0x0000         set activetu 0       } elseif {$payload == "AU4/TU3"} {      ### AU4/TU3 ###        # Configure LOPP MTSB Level    # ITU3 = 1, ITUG3 = 1, OTUG3 = 1        admwr $devID $addr_1660 0xFFFF    admwr $devID $addr_1661 0x000F        ### Select Tributary path ###    admwr $devID $addr_1664 0x0FFF        set activetu 0      }    # If there is VT on data stream, perform following configuration.  if {$activetu != 0} {      ### Select Tributary path ###    admwr $devID $addr_1664 0x0FFF        # VTPI block VT/TU types configuration    for {set stm1 1} {$stm1 <= 4} {incr stm1} {      for {set tug3 1} {$tug3 <= 3} {incr tug3} {        for {set tug2 1} {$tug2 <= 7} {incr tug2} {          #for {set tu 1} {$tu <= $activetu} {incr tu} {                        # Declare VTPI indirect address register address offset             # in Hex (1n00H); n= 6 or 8            set indaddr [expr 0x1600 + 0x0200 * ($interface-1)]                    # Set tributary type in indirect data register #1             if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} {              set value 0x0000                         }            if {$payload == "VT3"} {              set value 0x0800            }                      if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} {              set value 0x1000            }                      if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} {              set value 0x1800            }                              if {$interface == 1} {              # Writing to register 0x1601                            admindwr $devID LINE_SONET::LOPP::VTPI_1 $value 0x1601 $stm1 $tug3 $tug2 1                          } elseif {$interface == 2} {              # Writing to register 0x1801                            admindwr $devID LINE_SONET::LOPP::VTPI_2 $value 0x1801 $stm1 $tug3 $tug2 1                          }          #}        }      }    }    #puts "rtop<br>"    # RTOP336 block VT/TU types Configuration    for {set stm1 1} {$stm1 <= 4} {incr stm1} {      for {set tug3 1} {$tug3 <= 3} {incr tug3} {        for {set tug2 1} {$tug2 <= 7} {incr tug2} {          #for {set tu 1} {$tu <= $activetu} {incr tu} {                          # Declare RTOP indirect address register address offset             # in Hex (1n81H); n= 6 or 8            set indaddr [expr 0x1681 + 0x0200 * ($interface-1)]            set rd2clr 1                        # Set tributary type in indirect data register #1            if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} {              set value 0x0000            }            if {$payload == "VT3"} {              set value 0x0002            }                      if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} {              set value 0x0004            }                      if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} {              set value 0x0006            }                                if {$interface == 1} {              admindwr $devID LINE_SONET::LOPP::RTOP336_1 $value 0x1682 $stm1 $tug3 $tug2 1             } elseif {$interface ==2} {              admindwr $devID LINE_SONET::LOPP::RTOP336_2 $value 0x1882 $stm1 $tug3 $tug2 1             }          #}        }      }     }   #puts "rttb<br>"    # RTTB336 block VT/TU types Configuration    for {set stm1 1} {$stm1 <= 4} {incr stm1} {      for {set tug3 1} {$tug3 <= 3} {incr tug3} {        for {set tug2 1} {$tug2 <= 7} {incr tug2} {          #for {set tu 1} {$tu <= $activetu} {incr tu} {                          # Declare RTTB indirect address register address offset            # in Hex (1n01H); n= 7 or 9            set indaddr [expr 0x1701 + 0x0200 * ($interface-1)]            set rd2clr 1                        # Set tributary type in indirect data register #1            if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} {              set value 0x0000            }            if {$payload == "VT3"} {              set value 0x1000            }                      if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} {              set value 0x2000            }                      if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} {              set value 0x3000            }                              if {$interface == 1} {              admindwr $devID LINE_SONET::LOPP::RTTB336_1 $value 0x1702 $stm1 $tug3 $tug2 1              } elseif {$interface ==2} {              admindwr $devID LINE_SONET::LOPP::RTTB336_2 $value 0x1902 $stm1 $tug3 $tug2 1             }          #}        }      }    }    # VTPA block VT/TU types Configuration    #puts "vtpa<br>"    # Set pointer to 522H        admwr $devID $addr_HOPtr 0x6A0A      for {set stm1 1} {$stm1 <= 4} {incr stm1} {      for {set tug3 1} {$tug3 <= 3} {incr tug3} {        for {set tug2 1} {$tug2 <= 7} {incr tug2} {          #for {set tu 1} {$tu <= $activetu} {incr tu} {                        # Declare VTPA indirect address register address offset             # in Hex (1n40H); n= 7 or 9            set indaddr [expr 0x1740 + 0x0200 * ($interface-1)]                    # Set tributary type in indirect data register #1            if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} {              set value 0x0000            }            if {$payload == "VT3"} {              set value 0x0200            }                      if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} {              set value 0x0400            }                      if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} {              set value 0x0600            }                             if {$interface == 1} {              admindwr $devID LINE_SONET::LOPP::VTPA_1 $value 0x1741 $stm1 $tug3 $tug2 1             } elseif {$interface ==2} {              admindwr $devID LINE_SONET::LOPP::VTPA_2 $value 0x1941 $stm1 $tug3 $tug2 1             }          #}        }      }    }          }    }#------------------------------------------------------------------------------# SCRIPT NAME:	LINE_SONET_LO_Trace_Config## DESCRIPTION:	This procedure configures the RTTB336 blocks for#               a specified tributary in the LOPP.#		# PARAMETERS:	devID     - This parameter is used to specify the device #                           under configuration ##               interface - 1 or 2##               itumode   - '0' Telecordia mode, '1' ITU-T mode##		length16  - '0' for 64 bytes or '1' for 16 bytes##		sync      - '0' synchronization, '1' no synchronization##		stm1      - 1 to 4 (STS-3/STM1 #1~#4)##		tug3      - 1 to 3 (TUG3 #1~#3)##		tug2      - 1 to 7 (TUG2 #1~#7)##		tu        - 1 to 4 (TU #1~#4)##               enable    - '1' to enable or '0' to disable## NOTE:	      Default expected trace message is#             0 1 2 3 4 5 6 7 8 9 A B C D E##------------------------------------------------------------------------------proc LINE_SONET_LO_Trace_Config {devID interface itumode length16 sync stm1 tug3 tug2 tu enable} {  source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl     ### Define indirect address register and indirect data register address value ###   set iaddr_addr [expr 0x1701 + (0x0200 * ($interface-1))]  set idata_addr [expr 0x1702 + (0x0200 * ($interface-1))]  set trace_iaddr_addr [expr 0x1720 + (0x0200 * ($interface-1))]  set trace_idata1_addr [expr 0x1721 + (0x0200 * ($interface-1))]  set trace_idata2_addr [expr 0x1722 + (0x0200 * ($interface-1))]  set trace_idata3_addr [expr 0x1723 + (0x0200 * ($interface-1))]  set trace_idata4_addr [expr 0x1724 + (0x0200 * ($interface-1))]           if {$enable == 1} {      ############################################################################    ##### Set RTTB336 Indirect Tributary Configuration and Status Register #####    ############################################################################        if {$devID != -1} {      # Note when devID is set to -1, the device read and device write function      # will not be performed.  Instead, the primitive command will be displayed       # on the console.  Hence the following Read-Modify-Write procedure will not      # be performed wht devID is set to -1.            ##### Read Initial Register Value #####          # 1. Poll Busy Bit      Poll_BUSY_Bit $devID $iaddr_addr 15          # 2. Specify which tributary to read      set RWB 1      set iaddr_value [expr [expr $RWB << 14]|[expr $stm1 << 8]|[expr $tug3 << 6]|[expr $tug2 << 3]|$tu]      admwr $devID $iaddr_addr $iaddr_value          # 3. Poll Busy Bit      Poll_BUSY_Bit $devID $iaddr_addr 15          # 4. Read register content      set init_value [admrd $devID $idata_addr]       set init_value 0x0              ##### Write Settings to Register #####      # 1. Poll Busy Bit      Poll_BUSY_Bit $devID $iaddr_addr 15          # 2. Write setting to indirect data register      set idata_value [expr [expr $init_value & 0xF73F]|[expr $itumode << 11]|[expr $sync << 7]|[expr $length16 << 6]]         admwr $devID $idata_addr $idata_value         # 3. Specify which tributary to write      set RWB 0      set iaddr_value [expr [expr $RWB << 14]|[expr $stm1 << 8]|[expr $tug3 << 6]|[expr $tug2 << 3]|$tu]      admwr $devID $iaddr_addr $iaddr_value        } else {          # Display message on console      puts "Note: Performing Read-Modify-Write on RTTP 336 indirect register 0x1702 <br>"      puts "      for STM1= $stm1 TUG3= $tug3 TUG2= $tug2 TU= $tu , the following bits are set: <br>"      puts "      ITUMODE= $itumode LENGTH16= $length16 NOSYNC= $sync <br> <br>"      puts "See LINE_SONET_LO_Trace_Config for details. <br>"    }       #################################################    ##### Set Expected Trace for First 16 Bytes #####    #################################################        ### Step 1 ###    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -