==== VadaTech UTC002 10 GbE to 1 GbE mode ==== {{ :cobo_mch_network.png?500|CoBo network access}} CoBo (and its FRU) is designed to have two physically independent 1GbE connections to AMC PORT0 and PORT4. VadaTech 10GbE switch (connected to AMCs PORT 4) inside UTC002 has to be configured to allow its 10GbE ports to accept 1GbE (only) connections. Therefore, in order for CoBo 1GbE connection (on PORT4) to work on VadaTech's UTC002 10GbE switch the following has to be performed (once): **If the following is not performed CoBo physical GbE link on PORT4 will fail.** **//__NOTE:__// Default username and password is ''root''** 1- Connect your workstation (must have 192.168.40.x IP) to GbE0 or GbE1 on UTC002 frontpanel 2- ssh to MCH ssh root@192.168.40.250 3- use the serial link to connect to VadaTech UTC002 Broadcom 10gbe switch, at the prompt type: vt set rs232sel=0 export TERM=vt100; stty rows 1024 cols 80 minicom -w -o ttyS2 4- press enter to see login prompt ''10GbE_Mgmt login:'' 4- edit /etc/rc.d/rc.local ''vi /etc/rc.d/rc.local'' 5- append the following: axel_1g_port 15 # (AMC 01) axel_1g_port 7 # (AMC 02) axel_1g_port 0 # (AMC 03) axel_1g_port 8 # (AMC 04) axel_1g_port 16 # (AMC 05) axel_1g_port 13 # (AMC 06) axel_1g_port 19 # (AMC 07) axel_1g_port 11 # (AMC 08) axel_1g_port 3 # (AMC 09) axel_1g_port 4 # (AMC 10) axel_1g_port 12 # (AMC 11) axel_1g_port 17 # (AMC 12) 6- save /etc/rc.d/rc.local 7- shutdown the whole chassis and restart it back again. 8- The operating system (or temac driver) running on CoBo has to **switch off auto-negotiation** on that ethernet interface. For example, on Linux I patched the kernel to do that. See {{:cobo_linux_patch.txt|:cobo.patch}} 9- To physically isolate the 10GbE and the 1GbE switches. Disconnect the 1GbE switch from the 10GbE by typing: A- login to 10GbE switch using ssh or rs232 (as indicated above) B- when you see the prompt type cli C- in CLI type set-port-state 16 disable D- then type save-config ==== VadaTech UTC008 JSM (JTAG) ==== For debugging purposes it is useful to connect the JTAG port on a CoBo installed in a chassis to your workstation. VadaTech's JSM makes this process easier. 1- Connect your JTAG Xilinx platform cable USB to the JSM module 2- Copy the script below to a local file #!/bin/bash # Author: Faisal Abu-Nimeh # Data: 20140115 # functions function createBsd(){ cat <<- _EOF_ > /tmp/jsm.bsd entity generated_ds26900cfg is generic (PHYSICAL_PIN_MAP : string := "X_PACKAGE"); port (TCK: in bit; TDI: in bit; TDO: out bit; TMS: in bit); use STD_1149_1_2001.all; attribute Component_Conformance of ds26900cfg : entity is "STD_1149_1_2001"; attribute PIN_MAP of ds26900cfg : entity is PHYSICAL_PIN_MAP; constant X_PACKAGE:PIN_MAP_STRING := "TCK : 1," & "TDI : 2," & "TDO : 3," & "TMS : 4"; attribute Tap_Scan_In of TDI: signal is true; attribute Tap_Scan_Mode of TMS: signal is true; attribute Tap_Scan_Out of TDO: signal is true; attribute Tap_Scan_Clock of TCK: signal is (1.0e06, BOTH); attribute Instruction_Length of ds26900cfg: entity is 5; attribute Instruction_Opcode of ds26900cfg: entity is "BYPASS (11111)"; attribute Instruction_Capture of ds26900cfg: entity is "XXX01"; attribute Boundary_Length of ds26900cfg: entity is 1; attribute Boundary_Register of ds26900cfg: entity is "0 (BC_1, *, control, 0)"; end ds26900cfg; _EOF_ echo 'Done writing bsd file' } function createSVF() { echo "SVF to $1" cat <<- _EOF_ > /tmp/jsm.svf TRST OFF; ENDIR IDLE; ENDDR IDLE; STATE RESET; STATE IDLE; SIR 5 TDI (00) SMASK (1f) ; SDR 8 TDI (00) SMASK (ff) TDO (C0) MASK (ff) ; SIR 5 TDI (03) SMASK (1f) ; SDR 8 TDI (0A) SMASK (ff) TDO (00) MASK (00) ; SIR 5 TDI (01) SMASK (1f); SDR 5 TDI (01) SMASK (1f) TDO (00) MASK (00); SIR 5 TDI (02) SMASK (1f); SDR 5 TDI (0$1) SMASK (1f) TDO (00) MASK (00); _EOF_ echo 'Done writing svf file' } function createStep1() { cat <<- _EOF_ > /tmp/step1 setMode -bs addDevice -p 1 -file "/tmp/jsm.bsd" assignFile -p 1 -file "/tmp/jsm.svf" setCable -port auto Play quit _EOF_ echo 'Done writing step1 file' } function createStep2() { echo "Step2 to $1" cat <<- _EOF_ > /tmp/step2 setMode -bs setCable -port auto addDevice -p 1 -file "$1" program -p 1 quit _EOF_ echo 'Done writing step2 file' } function pause(){ read -p "$*" } if [ "$#" -lt 1 ]; then echo "Usage: $0 AMC_SLOT_NUMBER [FPGA_BIT_FILE]" echo " AMC_SLOT_NUMBER: is between 1 and 12" echo " FPGA_BIT_FILE: bit file to program fpga (optional)" echo "e.g. $0 3 uCoBo-131217.bit" echo " this command will program CoBo in AMC slot 3 with the bit specified" exit 1 fi SLOTNUM=`printf "%X" "$1"` BITPATH=`readlink -f "$2"` echo 'Creating bsd file' createBsd echo "Creating svf file for slot $SLOTNUM" createSVF $SLOTNUM pause 'Turn CFG and FTM_REQ on (up), then press [ENTER]' echo 'creating/running Xilinx Impact Step1' createStep1 impact -batch < /tmp/step1 pause 'Turn CFG off (down), then press [ENTER]' if [ "$#" -eq 2 ]; then echo "creating/running Xilinx Impact Step2 $BITPATH" createStep2 $BITPATH impact -batch < /tmp/step2 fi echo "Done" 3- chmod +x connectCoBo.sh 4- ./connectCoBo.sh 1 5- or to download an fpga bit file ./connectCoBo.sh 1 myfile.bit 6- follow the prompt when asked to set the CFG and FTM_REQ switches