Please log AMC13 test activity below, blog style (new entries at top)
2012-11-21, hill
Attempting an initial installation of the VadaTech Commercial MCH card for the uTCA crate.
Procedure:
- Install the VadaTech module in the MCH2
- Initial attempt at IPbus-based communication with the uTCA crate results in successful pinging and control of the AMC13 in MCH1 and also the AMC13 in a non-MCH slot, but unsuccessful pinging of mCTR2s
- Relevant Documents are...
- 10/100 Ethernet has the default IP address 192.168.1.252, which conflicts with our IP assignment scheme for the AMC13s.
- According to the 'Getting Started Guide', the default IP address of the GbE is 192.168.40.250. Unsuccessful ping to this address.
- Run Eric's
pinger.py
to see what I can talk to. Within the range 192.168.1.255.......1, I can only see the AMC13s. This was to check and make sure the VadaTech MCH card didn't magically take on the same IP address as the NAT MCH card
- Despite my not being able to ping the GbE, I am going to try and connect anyway, as the documentation suggests.
[cms2] /home/chill90 > ssh root@192.168.40.250
ssh: connect to host 192.168.40.250 port 22: Connection timed out
[cms2] /home/chill90 > ssh 192.168.40.250
ssh: connect to host 192.168.40.250 port 22: Connection timed out
Not surprisingly, no luck here. I get similar results if I try and access the IP address via a web browser
- Next try connecting via the 10/100 Ethernet Port at 192.168.1.252. This pings successfully!
- Eric has now take over.
- TelNet into the card successfully.
-
> telnet 192.168.1.252
- Username: root
- Password: root
- The HUB card will be running Linux. The command-line interface is based on the IPMI v2.0. The procedure to reassign the IP addresses of the ethernet ports is as follows
- Open the file
/etc/rc.d/rc.conf
for editing
- net interface 0 is the 10/100 Ethernet port. Edit
IPADDR0
and/or NETMASK0
and/or BROADCAST0
as desired
- net interface 1 is the GbE port. Edit
IPADDR1
and/or NETMASK1
and/or BROADCAST1
as desired
- Only one of either
GATEWAY0
or GATEWAY1
should be set!! The MCH will use the device with the set 'GATEWAY' value to send traffic to other subnets and networks
- Power cycle the MCH for the changes to take effect
2012-10-26, hazen
NOTE: Don't design any software to use this feature yet.
Some small details are likely to change, but the concept will remain.
Working on IP address setting by IPMI. Using Tom's recipe:
export IPMITOOLARGS="-H 192.168.1.11 -P \"\" -T 0x82 -B 0 -b 7"
# read Spartan IP address
> ipmitool $IPMITOOLARGS -t 0xa4 raw 0x32 0x34 0 0 7 4
f6 01 a8 c0
# read Virtex IP address (bus addr byte determined empirically!)
> ipmitool $IPMITOOLARGS -t 0xa4 raw 0x32 0x34 1 0 7 4
f7 01 a8 c0
Changing the address:
# set spartan address low byte to 128
> ipmitool $IPMITOOLARGS -t 0xa4 raw 0x32 0x33 0 0 7 1 0x80
# set virtex address low byte to 129
> $IPMITOOLARGS -t 0xa4 raw 0x32 0x33 1 0 7 1 0x81
[cms2] /home/hazen > ping 192.168.1.128
PING 192.168.1.128 (192.168.1.128) 56(84) bytes of data.
64 bytes from 192.168.1.128: icmp_seq=1 ttl=64 time=0.240 ms
64 bytes from 192.168.1.128: icmp_seq=2 ttl=64 time=0.060 ms
It works!
2012-09-28, eric
***This has since been fixed. There was a discrepancy between our local Makefile and the release Makefile.
Charlie has complained of ghosts in the machine.
All is OK if I do the following:
- Goto cms1, run ./periodic_12hz
- Run DCCdiagnose.exe, ttc/trig 1 (light blinks)
- Goto AMC13Tool_3 directory, run AMC13Tool
- do init.amc
- turn on triggers for a while
Attempting to reproduce the
EvN mismatch symptom described by Jeremy so Wu can
look at it by remote control. First, update mCTR2s to firmware 0.5.20.
my
AMC13Tool has dependency problems. Create a directory
AMC13Tool_4 and
copy Charlie's 11_5_5 exe and so there. That seems OK, but the stock
AMC13Tool
one gets with ". ~daqowner/dist/etc/env.sh;
AMC13Tool.exe" segfaults immediately
2012-09-14, eric and charlie
Attempting to reproduce the result below and look at uHTR spy buffer
using tools
here
.
Perl script check_xxxx.pl loops generating one software
L1A and checking using
dump_DTC.exe for
EvN errors.
Found one! AMC13 Data is
here
.
uHTR DAQ spy output:
> spy
0000 2 00ff
0001 3 ffff Event number 16777215 (0xffffff)
0002 3 8000
0003 3 03ee Orbit number 0, submodule number 1006 (0x3ee)
0004 3 6000 Format 6, BCN 0 (0x0)
0005 3 0017 Presamples 2, TP words 0
0006 3 4511 Unsuppressed 0, compact mode 1, firmware rev 0x511
0007 3 0028 Flavor 0, Pipeline length 40
0008 3 2000 NS 4 WC 0
0009 3 ffff
000a 3 0000
000b 1 ff00
This is not helpful as the
EvN is for some reason all 1's.
2012-09-13, eric and charlie
Testing V0.5.11 uCTR firmware with AMC13 V=0x17 S=0xb firmware
At 1kHz fixed trigger rate for 1s, take some data. (
here
: warning! binary file).
See that uHTR stay in sync with AMC13 but there are some strangely-corrupted events.
Starting to read file...
First EvN is 1 (0x000001)
AMC13 EvN = 0x00000012 uHTR(10) EvN = 0x00451112 !!
AMC13 EvN = 0x0000004e uHTR(4) EvN = 0x0045114e !!
AMC13 EvN = 0x00000218 uHTR(10) EvN = 0x0045111a !!
After reading 940 events, Last EvN is 940 (0x0003ac)
Note the 4511's. Here is a dump of EvN 12
AMC13 EvN = 0x00000012 uHTR(10) EvN = 0x00451112 !!
FED: 0 EvN: 000012 BcN: 1d5 OrN: 0008a747 TTS: 0/0 EvTyp: 1 CalTyp: 0 Size: 26
UHTR 4 [ 12] EvN 000012 BcN 1d5 OrN 17
0: 0412
1: 0000
2: 8000
3: bbee
4: 61d5
5: 0017
6: 4511
7: 0028
8: 2000
9: ffff
10: 0000
11: 1208
UHTR 10 [ 12] EvN 451112 BcN 1d7 OrN 04
0: 0012
1: 4511
2: bbee
3: 2000
4: 61d7
5: 0000
6: 4539
7: 2000
8: ffff
9: 0000
10: 1208
11: 0000
Note that in the 2nd uHTR payload the high byte of the 1st word is 00 (should be 0a) plus the 2nd word is 4511 (should be 0000). The 8000 word is missing, and the rest of the words
are shifted up by one. The word count in the AMC13 header (see below) is 0b instead of 0c,
with a zero fill word added (correctly) by the AMC13.
Below is a raw dump of the data from the AMC13 excerpted. (deadbeef and following word
count added by software). Note the 4511 ffff
000770 deadbeef 0000001a 1d500008 51000012
000780 008a7470 00000000 00000010 00170410
000790 00000000 00000000 0000c00c 00000000
0007a0 00000000 0000c00b 00000412 bbee8000
0007b0 001761d5 00284511 ffff2000 12080000
0007c0 45110012 2000bbee 000061d7 20004539
0007d0 0000ffff 00001208 ad8c0000 a000000d
0007e0 deadbeef 0000001a 1d500008 51000013
0007f0 008a7530 00000000 00000010 00170410
000800 00000000 00000000 0000c00c 00000000
000810 00000000 0000c00c 00000413 1bee8000
000820 001761d5 00284511 ffff2000 13080000
000830 00000a13 1bee8000 001761d5 00284511
000840 ffff2000 13080000 766b0000 a000000d
2012-08-31, hazen
Working on AMC13 "pre-ship" certification test. Firmware up through virtex=0x10 have
LSC/LDC implemented and can send DAQ data in the old "Wu" format. ]
Enable by turning on "SLINK Enable" (bit 1 in reg 1). There are secret
counters which monitor the LDC:
0x10 LDC_accept_cntr
0x11 LDC_abort_cntr
0x12 LDC_ACK_cntr
0x13 LDC_event_cntr
0x14 LDC_word_cntr
0x15 LDC_CRC_bad_cntr
0x16 LDC_SEQ_bad_cntr
0x17 LDC_wc_bad_cntr
0x18 LDC_frame_bad_cntr
0x19 LDC_buf_ovf_cntr
0x1a LDC_CMSCRC_err
2012-08-06, hazen
Download Jeremy's HEAD version from 8/2/12. Compile 3 test BIT/MCS files:
- Default (jumper/flash set IP address)
- Fixed I/P address 192.168.1.34
- Fixed I/P address 192.168.115.254
Flash the 1.34 version. Responds to ping and mCTR2tool ok.
Now try the fixed 115.254 version. Argh, the "reload" command once again doesn't work. Cycle crate power.
It works... can talk to board at above IP.
Now try flashing the "default" firmware. "reload" works.
Can still access at 115.254. Verify that SPI flash IP address is 1.32. Remove jumper J1204 and re-power.
Still at 115.254 (sigh!). Maybe messed up compiling.
Confusion: Slot 5 board had no J1204, but
was installed
in board in slot 11. Unplug slot 11 board altogether. Still get a ping response from 115.254.
Re-install J1204 jumper on slot 4 and re-power. Still get response from 115.254.
Compile new version with original code but jumper-controlled backup address changed from 115.254 to 115.240.
Program this one to flash. (J1204 is installed). Do "reload". Responds at 115.240 as expected.
Remove J1204 and re-power. Still at 115.240. Sigh.
Flash same firmware into other board. Same results.
Try setting IP address to 192.168.115.40 (maybe 115 is somehow special). No change.
Per Jeremy's request, program the 0.4.03 version from the
web page
into slot 11 board. Once again "reload" doesn't work. Power cycle. Can't access the board at all.
2012-08-02, hazen
Re-flash '2012-07-16a' version into both modules. Fix a few bugs in
AMC13DaqTest.exe so it can handle nested scripts correctly. Run a few tests with script
AMC13DaqTest/test.amc and see same event size in both mCTR. More tomorrow.
2012-08-01, hazen
Porting to ISE 14. Removed cores defined in
ipcore_dir and substitute ones from
Wu_Cores_30July.zip
e-mailed by Wu. Import into ISE 14.1 and re-compile. Compiles OK and superficially works. However, seeing some discrepancies in event length between old and new firmwares.
2012-07-16, hazen
Merged changes are here:
ctr2_merge_Wu.zip
.
Now add them to project and re-compile. Program into two mCTR2 in slots 5, 11 at IP addresses 192.168.1.32 and
192.168.1.40.
2012-07-13, hazen
Wu has made some minor changes to the code to fix the link reset problem.
His changes are here:
ctr2_Wu_Fix.zip
but
must be merged with my firmware from here:
ctr2_trunk_with_DAQ_2012-07-12a_esh.zip
.
I will start on this next week.
2012-07-12, hazen
Temporary solution to IP addressing: Assign a totally fixed address. In ctr2_uhtr1600.v just set
ip_addr to a fixed value.
Build two firmwares with addresses 192.168.1.32 and 192.168.1.40. The board now in slot 5 is 32 and slot 11 is 40.
DAQ links do not work with this firmware:
ctr2_trunk_with_DAQ_2012-07-12a_esh.zip
Will ask Wu for help.
2012-07-11, hazen
Add two lines below to UCF and recompile per Wu's suggestion:
NET "*/DAQ_Link_wu/UsrClk" TNM_NET = "DAQ_UsrClk";
TIMESPEC "TS_DAQ_UsrClk" = PERIOD "DAQ_UsrClk" 8ns HIGH 50%;
MiniCTR2 Programming:
(instructions below from MN)
1) Program the 4.02 firmware bitfile from JTAG.
2) mCTR2tool.exe 192.168.115.254 -t uhtr
3) select your device (1). Then FLASH -> PROGRAM (you'll need an MCS file)
If Wu's firmware is branched from ours after 3.01, then you can do this with Wu's firmware.
To change the IP address, use the SPICFG menu of mCTR2tool.
Here is what I did:
- Generate MCS file with "generic parallel flash" and zero offset
- mCTR2tool.exe 192.168.1.32 -t uhtr
- "FLASH" then "PROG"
Doesn't work. It's a 128M SPI flash. That works better!
IP Addressing is a problem. NAT-MCH doesn't seem to route packets to any addresses outside 192.168.1.xxx, even though the settings are now correct:
[cms2] /home/hazen/work/uHTR_Firmware > telnet 192.168.1.11
Trying 192.168.1.11...
Connected to 192.168.1.11.
Escape character is '^]'.
Welcome to NAT-MCH
nat> ifconfig
network interface nat0:
IP address: 192.168.1.11
broadcast address: 192.168.255.255
netmask: 255.255.0.0
nat>
2012-07-10, hazen
Attempting to integrate Wu's DAQ link into uHTR 4.02 release under ISE 13.3 on VirtualBox ampere.bu.edu on Eric's desktop machine.
- Rename Wu's MiniCTR.vhd to DAQ_Link_wu.vhd and put in
.../ctr2/ctr2_uhtr1600/DAQ_Path/
in project
- Edit to remove chipscope stuff
- Edit DAQ_Link.vhd to instantiate DAQ_Link_wu.vhd
- Copy and add other sources:
- Add CRC16D16.vhd
- Add Hamming.vhd
- copy
ipcore_dir
tree
- Add dataFIFO.ngc, DataBuf.ngc, TDP16_16.ngc, SDP16_16.ngc
2012-07-09, hazen
Basic DAQ event readout now seems to work. Have added several useful commands
to my new tool
AMC13DaqTest which is currently only in
~hazen/src/11_4_1
.
HOWTO record test data
Log on to CMS1 as user
daq and start
DCCdiagnose.exe to control TTC system.
Log on to CMS2 and run
AMC13DaqTest.exe. For now:
$ source ~hazen/environ.sh
$ /src/11_5_1/hcal/hcalUpgrade/amc13/bin/linux/x86_64_slc5/AMC13DaqTest.exe
cms1 (DCCdiagnose.exe) |
cms2 (AMC13DaqTest.exe) |
Notes |
ttc/trig 4 |
|
Disable TTC triggers (set to VME control only) |
|
st |
Display AMC13 status |
|
Ctrl 0: 03000001 |
Display AMC13 status |
|
LSC Link Down |
Display AMC13 status |
|
Ctrl 1: 000e0001 |
Display AMC13 status |
|
run mode |
Display AMC13 status |
|
AMC Link status: 04100410 |
Display AMC13 status |
|
Mon buffer page: 00000000 Evts: 0000000a words: 00000712 |
Display AMC13 status |
|
df test.dat |
Dump events to file |
|
en 5,11 |
Enable AMC inputs (will change to 0,10 at some point). Also resets AMC13 |
ttc/l1a 10 |
|
Generate 10 triggers |
ttc/cmd 2 |
|
Issue TTC Event Count Reset command |
You can dump the file in hex as follows:
$ od -Ax -t x8 test.dat | less
000000 00000712deadbeef 51000001c8c00008
000010 000000059af5ddb0 000e041000000010
000020 0000000000000000 000000000000c701
000030 0000c70100000000 0800800000000401
000040 0007000600058c8c 000b000a00090008
000050 000f000e000d000c 0013001200110010
000060 0017001600150014 001b001a00190018
000070 001f001e001d001c 0023002200210020
....
011af0 06f306f206f106f0 06f706f606f506f4
011b00 06fb06fa06f906f8 705f06fe06fd06fc
011b10 0000000000000a00 a00003891aca0000
2012-07-08, hazen
New firmware version 0xe. Still see problem#2 below. Investigating.
2012-07-07, hazen
Trying to reproduce a DAQ firmware problem.
Test #1 - failure to reset
(set Xilinx board to deliver fast triggers at 20kHz)
cms1 (DCCdiagnose.exe) |
cms2 (AMC13Tool.exe) |
Notes |
ttc/trig 1 |
|
Enable triggers |
ttc/trig 4 |
|
Disable triggers |
|
wv 3 410 |
Enable AMC inputs |
|
wv 1 1 |
Set run mode |
|
wv 0 1 |
Reset all |
|
rv d |
Read word count |
|
0xd 0x712 |
FAIL: Should be zero! |
|
wv 0 1 |
Reset all |
|
rv d |
Read word count |
|
0xd 0 |
Always zero 2nd time |
This fails intermittently.
Test 2 with AMC13DaqTest.exe
This fails consistently:
It is probably a software problem, but it seems that I am competing for use of the
TTC system so stop for now.
2012-07-05, hazen
Debugged AMC13 event readout code, added file dump feature to
AMC13DaqTest.cc. Discovered a firmware issue which causes data to appear incorrect after the first event, reported to Wu.
E-mailed Jeremy to ask about word order question.
2012-07-01, hazen
Install new release 11_5_0 in
daqowner. Do not set as default yet.
Oops, 11_5_0 is buggy. Update immediately to 11_5_1 and make it the default.
2012-06-29, hazen
Checked in to CVS several updates of work done with Charlie.
HyperDAQ
DTCManager.cc/hh were updated to include Charlie's new HyperDAQ. This required substantial changes to the address tables. These changes were done to the existing files AMC13_AddressTable_S6/V6.txt.
Run Control
AMC13.cc/hh were updated to add startRun(), endRun(), AMCInputEnable(), nextEventSize(), readNextEvent().
2012-06-27, rohlf
Fix
AMC13Tool to support hex version names in firmware files. Fork address tables with names
AMC13_AddressTable_S7/V8.txt.
FIXME: This address table is now incompatible with the one used by the rest of the software!
2012-06-12, hazen
First release firmware and instructions for DAQ in AMC13:
to set up L1A:
set L1a to about 20KHz
start dccdiagnose.exe
ttc/trig 4(turn off L1A)
run amc13tool
wv 3 410 (enable amc5 and amc11)
wv 1 1 (set run bit)
wv 0 1 (reset all)
ttc/cmd 0x28(reset orbit number)
ttc/trig 1 (enable L1A)
this will take 0x800 events in the memory and throw away all when the buffer is full.
In general, the initialization and read out remains basically the same as with DCC2.
2012-05-24, rohlf
Sucessfully updated Spartan firmware from v3 to v6 at point 5. This was accomplished remotely in Bat. 40 at CERN with
AMC13Tool by first writting Spartan v6 to flash at 0x000000 (its old location) as if programming the Header, power cycling the AMC13 module with the NAT tool, reprogramming the flash Header (0x000000), Golden (0x100000), Spartan (0x200000), and Virtex (0x400000), and then issuing the software command to reconfigure from flash.
2012-05-24, rohlf
Update firmware in cDAQ lab at CERN using python software. Older software (now named amc13_python_backup-23-may2012) was used to program Spartan firmware v6 into 0x0, power cycle crate, program Header (0x000000), Golden (0x100000), Spartan (0x200000), and Virtex (0x400000) where in the process a bug was discovered in programming the header due to incorrect erase of a single page, power cycling again, and verifying the configuration.
2012-04-27, hazen
Install HCAL xDAQ 11.4.0 (as daqowner) per instructions:
To install on a teststand (as daqowner) :
wget http://cmshcalweb01.cern.ch/hcalsw/release/installDAQ_11_4_0.perl
perl installDAQ_11_4_0.perl --mode=teststand
~daqowner/common/bin/pickRelease.sh (choose 11.4.0)
You can make a code-development area on a teststand or USC using
perl installDAQ_11_4_0.perl --mode=[teststand|usc]
--ownsource=${HOME}/src/11_4_0 --packages=hcalUpgrade --cvsuser=[your afs id]
You can list multiple packages, separated by commas.
2012-01-10, hazen
Trying to program a new AMC13 MMC. Plug in to crate, connect JTAG ICE 3 cable
to JTAG connector. Fails to program. Try to force power on with "pwr_on 9"
(it's in AMC slot 4) but doesn't help.
Note:
pwr_on [fru #]
pwr_off [fru #]
where [fru #] is the fru number starting with 5 to16. That means if you
want to switch on e.g. AMC2 use the command "pwr_on 6".
Remembering wisdom of Tom Gorski:
Maybe grasping at straws here, but if you look at the reset circuit for the AVR on the MMC schematic page, you see that it is important for the IPMI_ENABLE# line to be driven low, in order to release reset. You didn't say what your power situation was to the card. If you had it in a rig with an MCH trying to talk to the card, then the IPMI_ENABLE# line would indeed be zero, and the FET would not be pulling reset low, and the problem is probably somewhere else. On the other hand, if you have the card in a rig with a dumb power supply, then AVR reset will be pulled low unless a shunt is installed at JMP4. Since reset goes to the JTAG connector you might be able to check this with a voltmeter.
This should be taken care of by the uTCA backplane, no? Meanwhile, trying to program the thing in Wu's test fixture. Doesn't work. Checking to be sure jumpers are installed.
AHA ... the required ECO (soldered wire) on the T3 board was missing. Now all is OK. One can indeed program the MMC on a new board in a
MicroTCA crate.
Another observation: an AMC won't power up fully without the front panel hardware installed, as the handle switch must be depressed for the negotiation with the MMC to complete.
2011-12-06, heister
cms2: SLC5 updated, installation fine tuned,
PyChips and microHAL installed for the "daq" user, all tested and works
2011-12-06, hazen
Install 2nd NIC on cmssun2 (old Dell computer, Ubuntu 10.04 OS). Cable to AMC13 in uTCA crate.
Install IPBus test firmware from Wu. Install
PyChips. Works! (I think).
Added
AMC13FlashProgramming
page.
2011-12-02, hazen
Started this log. One dead NAT-MCH at Boston. 2nd NAT-MCH shipped from MN by Jeremy.
Reset I/P address to 192.168.1.11 and connect to CMS1. One can now do
cms1> telnet 192.168.1.11
. But, this MCH has firmware v2.0 which doesn't work with AMC13 (symptom is both red/green LEDs blink forever on AMC13 with MMC firmware V1.2).
Updating MCH firmware to V2.10 received from NAT on 9/20/11. Briefly, the procedure is:
unzip the e-mail attachement somewhere
copy the "bin" file to /tftpboot/mch on cms1.bu.edu
connect to the MCH using the USB console and type "update_firmware" and follow the prompts
type "reboot" to load the new firmware
It works! Now the AMC13 seems to be up and running with the MCH.
--
EricHazen - 02 Dec 2011