Innovative Computer Engineering
Software FAQ:(updated 011/21/08)
These are a compilation of questions our customers have asked over time, and as more questions are asked they will be added to this page.
1) How do I load a new version of the the ICE Option Tree in Linux?
4) How do I loadflash a PIC5XL or PIC6 from another card ?
5) Can I do independent decimation with an ICE card ?
6) How can I check my PIC5XL or PIC6 for non-baseline data ? (Security check)
1) How do I load a new version of the 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 you are using it on then follow 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 - Insert the cd into the machine, and at the prompt type - mount /media/cdrom
Step 2 - Change directories to verify the file is 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 directories to where you would like to install the option tree. For example - cd /midas/opt
Step 4 - Copy the file from the cd to 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 the file, type - unzip filename
Step 6 - 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 ice317) space icexxx Type - ls -l and you should see a link has been established between icexxx and your new current version.
Step 7 - For Next Midas 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 icexxxx 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) followed by xmpath ice followed by xmbopt . This will rebuild the option tree using the version you just established.
2) 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) 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. (**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**)
jtag jumper in the J6 position
Step 2) Load the new version of the ICE option tree on to your platform, and point the icexxx link to this new version.
Step 3) 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
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. SS is for low speed modules (i.e. E2Ds, D2Es, A2D-r8s, and D2A-r8s) HH is for high speed modules (UDP-CPR, SONETs, A2D-r9s, and D2A-r9s) SH 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) 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.**
Step 5) ***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.
3) 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) 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**)
(Jumper setting)
Step 2) 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) 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
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. SS is for low speed modules (i.e. E2Ds, D2Es, A2D-r8s, and D2A-r8s) HH is for high speed modules (UDP-CPR, SONETs, A2D-r9s, D2A-r9s, and A2D-r10s) SH is for when you have a low speed and a high speed module on the same card, DD is for when you are using DR2D module, and HHN 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) 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.**
Step 5) ***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.
4) How do I loadflash a PIC5XL or PIC6 from another card ?
(For 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 - 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***
PIC5XL jtag cable
PIC6 jtag cable
Step 4 - Install both cards in your system making sure the jtag cable is still connected.
Step 5 - Once the cards have been installed power up your system. Note – at this point your system may only see the smart card.
Step 6 - At the Xmidas or NextMidas prompt type – picd reset “smart card alias”
Step 7 - 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.
Step 8 - 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 - 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.
PIC5XL to PIC5XL
PIC5XL to PIC6 
PIC6 to PIC6 
***Note jumper setting for smart card and dumb card***
For further questions please contact ICE at 703-934-4879, or info@ice-online.com
4) 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.
5) 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.**
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)
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