User Tools

Site Tools


microtca_development

VadaTech UTC002 10 GbE to 1 GbE mode

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.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

microtca_development.txt · Last modified: 2014/01/16 14:17 by abunimeh