Software
How do I load a new version of the ICE Option Tree in Linux?
You will need to get the current version of the ICE option tree from this website's software page. If you are able to download the version directly to the platform on which you are using it, then skip to step 4. If you copy the version of the Option Tree you need to a CD, then start with step one.
Step 1: Mount Installation Disk
Insert the CD into the machine, and at the prompt type:
mount /media/cdrom
Step 2: Verify the File
Change directories to verify the file on the disk, at the prompt type:
cd /media/cdrom
and then type ls to verify the file is there and you know the file name.
Step 3: Change to Installation Directory
Change directories to where you would like to install the option tree. For example:
cd /midas/opt
Step 4: Copy File
Copy the file from the midas option tree directory, type:
cp /media/cdrom/filename .
(Make sure to include the period at the end.)
If you were able to download the version directly then you just need to copy it to the midas/opt directory.
Step 5: Unzip File
Unzip the file, type:
unzip filename
Step 6: Update Link
You will want to redo the icexxx link to point to the new version of the option tree. Type:
rm icexxx
Then type:
ln -s ice(current version you just downloaded i.e. ice342-07) <space> icexxx
Type:
ls -l
and you should see a link has been established between icexxx and your new current version.
For NeXtMidas users
Start Next Midas - Type:
nms
Then type:
nm
Once in a Next Midas shell, type:
make all ice
This will rebuild the option tree using the version you just established.
Please note: This step assumes you have defined $ICEROOT to the icexxx link)
For X-midas users
Start X-midas - Type:
xms
Then type
xm
Once in a X-midas shell, type:
xm opt ice [filename] # The current version you just established xmpath ice xmbopt
This will rebuild the option tree using the version you just established.
What version of the ICE Option Tree can I use with the ICE-PIC5XL, and how do I flash the card with the new version?
The ICE-PIC5XL is in production, and a few select customers have been using the card for over a year now. Some of the card's capabilities are still being developed, and the card will only work with a 318 (or higher) versions of the option tree available from this website.
When you receive a PIC5XL it will be flashed with the most current version of the ICE option tree. If a new release of the option tree is posted and you would like to upgrade to this new version you will need to reflash your PIC5XL with the new version. To do so please follow the following steps:
Step 1: Set the JTAG Jumper
Make sure the jtag jumper is in the J6 position. This allows the card to be flashed with the new version of the ICE option tree from the PCI bus.
Note: when the jumper is in this position the card is capable of storing classified data. To check the card for non-baseline data please refer to questions 4.
Step 2: Copy the ICE Option Tree
Load the new version of the ICE option tree on to your platform, and point the icexxx link to this new version.
Step 3: Detect the PIC Card
When using NextMidas and/or X-midas enter a shell. From the prompt you will want to type
pic detect
This will tell you a couple of pieces of information. First it should tell you the PIC card is being detected in your platform. For example, the first line displayed should read as follows:
CARD #0 Type=PIC5
(If it does not display this or just returns you to the prompt then the card is not being detected and other troubleshooting needs to take place first)
The other piece of information pic detect will tell you that is important is in the last line. Which should read something like this:
Firmware Proc=318 IOC=00 SoC Ver=318 Sig=SS
Module Signatures
The important part of this line is the Sig=. Sig stands for signature and there are three versions (SS, HH, SH) based on what I/O modules you are using:
| Signature | Module(s) |
|---|---|
| SS | Low speed modules (E2Ds, D2Es, A2D-r8s, and D2A-r8s) |
| HH | High speed modules (UDP-CPR, SONETs, A2D-r9s, and D2A-r9s) |
| SH | This is for when you have a low speed and a high speed module on the same card |
This is important to verify because when you reflash the card you will want to flash it with the correct signature, so please remember this before proceeding to step 4.
Step 4: Flash the Card
Once you have verified the card is being detected by the platform and you know the card signature you can now flash the card. To do this type:
picd loadflash pic1 icepic5_xx
Keep in mind that pic1 is a generic card alias. If you have given your card a different alias you will need to substitute it in for pic1. Also, where I have put xx in this line you will need to put in whatever signature (SS, HH, or SH) you discovered the card originally had when you did pic detect in step 3. You will be asked if you want to proceed, and if you do please type Y and hit return. The load usually takes 3-4 minutes.
Please note: For NextMidas users, once you say yes to the load there will be a series of dots that scroll across your screen as the load takes place. For X-midas users there is NOT a series of dots and the prompt will just sit there while the load is taking place. This usually take 2-3 minutes. After the load finishes it will return you to the X-midas prompt.
Every once in a while the card will detect and error with the load, and this will be signified with a lower case r. Usually followed by an upper case R that it was corrected. If this happens the system can also get confused and could start scrolling a bunch or rrrrrrrrrs. If this happens you can control c out of the loadflash, then up arrow and repeat the loadflash command and all should be good.
Step 5: Check for Errors
Very Important: Once the flash has finished please verify that the flash loaded with zero errors.
If you did get errors, do not power down the system, you will need to repeat the loadflash command and loadflash the card until it comes back with zero errors.
If there are zero errors you will need to power down your unit completely, and then power it back up for the new flash to take.
What version of the ICE Option Tree can I use with the ICE-PIC6, and how do I flash the card with a new version?
The ICE-PIC6 is in production, and a few select customers have been using the card since the beginning of 2008. Some of the card's capabilities are still being developed, and the card will only work with an ICE320 (or higher) version of the option tree available from this website. When you receive a PIC6 it will be flashed with the most current version of the ICE option tree. If a new release of the option tree is posted and you would like to upgrade to this newer version you will need to reflash your PIC6 with the new version. To do so please follow these steps:
Step 1: Set the JTAG Jumper
Make sure the jtag jumper is in the right hand position (As seen below). This allows the card to be reflashed with the new version of the ICE option tree. (Please note, when the jumper is in this position the card is capable of storing classified data. To check the card for non-baseline data please refer to questions 4)
Step 2: Copy the ICE Option Tree
Load the new version of the ICE option tree on to your platform, and point the icexxx link to this new version. (Make sure to build the Option Tree)
Step 3: Detect the PIC Card
When using NextMidas and/or X-midas enter a shell. From the prompt you will want to type
pic detect
This will tell you a couple of pieces of information. First it should tell you the PIC card is being detected in your platform. For example, the first line displayed should read as follows:
CARD #0 Type=PIC6
(If it does not display this or just returns you to the prompt then the card is not being detected and other troubleshooting needs to take place first)
The other piece of information pic detect will tell you that is important is in the last line. Which should read something like this:
Firmware Proc=320 IOC=00 SoC Ver=320 Sig=SS
Module Signatures
The important part of this line is the Sig=. Sig stands for signature and there are a few versions (SS, HH, SH, DD, HHN) based on what I/O modules you are using.
| Signature | Module(s) |
|---|---|
| SS | Low speed modules (E2Ds, D2Es, A2D-r8s, and D2A-r8s) |
| HH | High speed modules (UDP-CPR, SONETs, D2A-r9s, and A2D-r13) |
| SH | This is for when you have a low speed and a high speed module on the same card |
| DD | This is for when you are using a DR2D module |
| HHN | This is for use with the new A2D-r11 |
This is important to verify because when you reflash the card you will want to flash it with the correct signature, so please remember this before proceeding to step 4.
Step 4: Flash the Card
Once you have verified the card is being detected by the platform and you know the card signature you can now flash the card. To do this type
picd loadflash pic1 icepic6_xx
Keep in mind that pic1 is a generic card alias. If you have given your card a different alias you will need to substitute it in for pic1. Also, where I have put xx in this line you will need to put in whatever signature (SS, HH, SH, DD, HHN) you discovered the card originally had when you did pic detect in step 3. You will be asked if you want to proceed, and if you do please type Y and hit return. The load usually takes 2 minutes. Please note - For NextMidas users, once you say yes to the load there will be a series of dots that scroll across your screen as the load takes place. For X-Midas users there is NOT a series of dots and the prompt will just sit there while the load is taking place. After the load finishes it will return you to the X-Midas prompt.
Every once in a while the card will detect and error with the load, and this will be signified with a lower case r. Usually followed by an upper case R that it was corrected. If this happens the system can also get confused and could start scrolling a bunch or rrrrrrrrrs. If this happens you can control c out of the loadflash, then up arrow and repeat the loadflash command and all should be good.
Step 5: Check for Errors
Very Important: Once the flash has finished please verify that the flash loaded with zero errors.
If you did get errors, do not power down the system, you will need to repeat the loadflash command and loadflash the card until it comes back with zero errors.
If there are zero errors you will need to power down your unit completely, and then power it back up for the new flash to take.
How do I loadflash a PIC5XL or PIC6 from another card?
This section regards loadflashing a card that has been dumbified (dumb card) from a card that is up and running (smart card).
Step 1: Smart Card
Make sure jtag jumper is removed. (PIC5XL remove the jumper from the j6 position. PIC6 remove the jumper from the JVE position.) This enables the smart card to be able to load the dumb card. Please see below for jumper location.
Step 2: Dumb Card
Make sure jumper is in the loadflash enable position. (PIC5XL j6 position. PIC6 JVE right two pin position)
Step 3: Cable Connections
Install the 14-pin jtag ribbon cable on the jtag ports of the smart card and dumb card.
WARNING!!!!! When using a PIC5XL make sure the cable is orientated correctly. If holding a PIC5XL card in your hand with the PCI fingers pointed down. Pin 1 on the jtag port is the upper most right pin closest to the jumper. Make sure that pin 1 on the jtag cable (usually signified by a red or black stripe on the cable) lines up with pin1. If it is not lined up correctly when connected to the board it could short the system.
If using a PIC6 the jtag port is the 14 pins just above the JVE jumper and it is keyed
Step 4: Card Installation
Install both cards in your system making sure the jtag cable is still connected.
Step 5: Power Up
Once the cards have been installed power up your system.
Note: At this point your system may only see the smart card.
Step 6: Picd Reset
At the Xmidas or NextMidas prompt type:
picd reset “smart card alias”
Step 7: Loadflash
At the prompt type:
picd loadflash “smart card alias” "dumb card load file"
You will be asked weather you really want to proceed, type Y. This will start the load process for the e-prom. The load takes approximately 3 - 4 minutes. The dumb card is being loaded through the smart card using the jtag cable.
Every once in a while the card will detect and error with the load, and this will be signified with a lower case r. Usually followed by an upper case R that it was corrected. If this happens the system can also get confused and could start scrolling a bunch or rrrrrrrrrs. If this happens you can control c out of the loadflash, then up arrow and repeat the loadflash command and all should be good.
Step 8: Error Check
Once the load is complete check to see that it says at the bottom “Flash loaded with 0 errors” If it says this then the load was successful. Please note that every once in a while it will come back and say there were errors. If this happens repeat step 7 and check again to see if it loaded with or without any errors.
Step 9: Finishing Up
If there were 0 errors power the system down. You can then remove the jtag cable from both cards. You can also re-install the jumper on the smart card (j6 position for a PIC5XL, or the right position of the JVE on a PIC6). The dumb card should be good now. An indication of this will be a green flashing LED at the front of the card when it is powered up.
Note jumper setting for smart card and dumb card
For further questions please contact ICE at 703-934-4879.
Can I do independent decimation with an ICE card?
Yes, but to do independent decimation you need to add the ITDEC flag to your hardware config file. When using this flag you can use all 8 channels on a PIC4T independently, but please keep in mind this is an all or nothing flag.
How can I check my PIC5XL or PIC6 for non-baseline data?
The Series-5 and 6 cards use a reprogrammable Flash to allow field upgrades to the PCI interface. To insure the E-PROM still contains only the baseline code from the ICE factory, the following procedures are provided to read-back the E-PROM contents and calculate its 32-bit CRC. For instance, for the 318 release the baseline CRCs are as follows:
ICEPIC5_SS = 0x1125a600 ICEPIC5_HH = 0x7b431d74 ICEPIC5_SH = 0x69d3f94e ICEPIC5_SSR = 0x3f03634c ICEPIC5_HHR = 0x08a4e708
For future releases make sure to check the current release notes for the current CRCs.
NeXtMidas or X-Midas
If you are using NextMidas or X-Midas please follow these steps:
Type:
picd checkflash <card name>
This will run the checkflash on the e-prom and the result will be a CRC. Please check the CRC with the CRCs provided with the current release notes.
- If they match then the e-prom does not have any non-baseline data stored on it.
- If it is different then there is non-baseline data stored on the e-prom.
- If you would like to clear this data for security purposes please reflash the card. (See question 2)
Other
If you are not using NextMidas or Xmidas please follow these steps:
Make sure the test program file has been built completely. Please see the ICEROOT/test/readme.txt file
Type
pic detect
This will tell you the number based index of the cards in the system, i.e. even though you might call your card pic1 in NeXtMidas or X-Midas, it might be in slot 0 of the computer identified in the system bios, which means the number for the card is 0).
Then type
$ICEROOT/test/test pic # checkflash
Where # is the card number identified during pic detect.
This will run the checkflash and provide you with a CRC to check with the baseline CRCs listed above. Again, if they match then the e-prom does not have any non-baseline data stored on it. If it is different then there is non-baseline data stored on the e-prom. If you would like to clear this data for security purposes please reflash the card. (See question 1.2)
Hardware
What is the maximum rate for an E2D?
100mhz
How many I/O modules can be installed on a PIC4T, PIC4X, or PIC5XL?
Each card can be populated with up to two I/O modules. In addition to the I/O modules the PIC4X can be populated with up to one processor module, and the PIC5XL can be populated with up to two processor modules.
Why won't my card reset?
If your card won't reset there is a chance you have a card that has not been upgraded with a particular diode. There were a series of PIC4T, PIC4X/MBT4 cards shipped to our customers we later discovered had a SHARC/PPC anomaly. Since this has been discovered every board shipped from ICE has been marked to signify it is good or has been upgraded. Symptoms of the anomaly are the board failing PIC TEST, or not being able to reset the board.
You can tell if your board does NOT have the anomaly, or if it has been upgraded by two markings on the board. The first marking is easily identified if your board is removed from the system. If the rev number of the board is colored red then the board is up to date and does not have the anomaly. (Figures 2.3a and 2.3b) The second location is easily located if the board is still installed in a system. Locate the PCI plate which should be viewable from the back of your system. The top screw on the PCI plate should be colored red signifying the board is good. (Figure 2.3c)
Which I/O modules are available for the ICE-PIC5XL or PIC6?
As of 04/17/09 the following modules are in production and available for the PIC5XL or PIC6:
ICE-A2D-r8, ICE-A2D-r13, ICE-D2A-r9, ICE-SONET-r4, ICE-SONET-r5, ICE-E2D-r5, ICE-D2E-r5, ICE-UDP-r5-CPR and FBR
ICE-DR2D, ICE-A2D-r11, ICE-LV2D-r5, ICE-D2LV-r5
What do the dip switches/Jumpers on the side of the card do?
The edge connector has 1 SMB connector to provide an external clock for output modules or a signal for synchronizing multiple cards. There are 3 dip switches for configuring the external clock/sync connector:
- J1 - close for on board 50 ohm termination, open for high impedance
- J2 - close for multi-board signaling (external sync), open for clock
- J3 - close for DC coupled TTL clock, open for AC coupled 1Vpp sinusoid clock
- J4 (PIC6 only) - Backwards Capability Mode
The standard configuration when the cards are shipped from ICE is J1 closed with J2 and J3 open (J4 open on PIC6).
Note: on some early (PIC3 or earlier) models the dip switches are just jumpers. To synchronize acquisition/playback between multiple cards, J2 must be in place (closed) for both the master and slaves. The Master asserts the XSOE flags to drive the line. The J1 terminators should be open. Add J3 for 2.5V 10kohm pull-up/dn and diode protection on the input/output. One on-board crystal X2 is socketed for an optional user supplied reference clock. This clock can be used for driving A2D or D2E modules at fixed rates or for special IOC code rates. By default, X2 is a 100MHz clock for maximum bandwidth A2DR7 clocking.
What is the recommended clock level for an A2D-r7?
1Vp-p, 3 dBm
What are the connections on the A2D-r7?
Two A2D-r7s on a PIC Card:
What are the technical specifications on the programmable clock on the ICE-PIC4T?
The programmable clock on the ICE-PIC4T can be used from 100KHz -105MHz. It will settle to within 1000ppm of the desired rate.
What are the clocking options on the SlimPIC-a?
C-clock = 64MHz, I-Clock = 40MHz, and an external clock. (Both C and I are accurate within 100 ppm) If you use an external clock please keep in mind it must be a square wave between 0 - 3.3v.
Warning: Anything over 3.3v could ruin the front end of the card since there is no comparator on board. The input impedance is 50 ohm.



