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

📄 pm5337_pdh.tcl

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