User Tools

Site Tools


microtca_development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
microtca_development [2013/09/24 15:20] abunimehmicrotca_development [2014/01/16 14:17] (current) abunimeh
Line 1: Line 1:
-=== VadaTech UTC002 10 GbE to 1 GbE mode ===+==== VadaTech UTC002 10 GbE to 1 GbE mode ====
 {{ :cobo_mch_network.png?500|CoBo network access}} {{ :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): 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):
Line 51: Line 51:
  
 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}}  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:
 +<code>
 +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
 +</code>
 +
 +==== 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
 +<code>
 +#!/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"
 +</code>
 +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
 +
  
microtca_development.1380050443.txt.gz · Last modified: 2013/09/24 15:20 by abunimeh