The Ammasso 1100 High Performance Ethernet Adapter User’s Guide Ammasso, Inc. 345 Summer St. Boston, MA 02210 Main: 617-532-8100 Fax: 617-532-8199 http://www.ammasso.com Revision: 1.2Update 1 July 22, 2005 Copyright © 2005 Ammasso, Inc. All rights reserved.
Information in this document is subject to change without notice. This document is provided for information only. Ammasso, Inc. makes no warranties of any kind regarding the Ammasso 1100 High Performance Ethernet Adapter except as set forth in the license and warranty agreements. The Ammasso 1100 High Performance Ethernet Adapter is the exclusive property of Ammasso, Inc. and is protected by United States and International copyright laws.
Table of Contents 1 OVERVIEW 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.
.1 4.1.1 4.2 4.2.1 4.2.2 4.3 4.4 4.4.1 4.4.2 4.5 4.6 4.7 4.7.1 4.7.
7.4.3 7.4.4 7.5 7.6 7.7 7.8 7.8.1 7.8.2 7.
1 Overview 1.1 Introduction The Ammasso 1100 High Performance Ethernet Adapter is a RDMA enabled Ethernet Server adapter offering high performance for server to server networking environments. The Ammasso 1100 is also a gigabit Ethernet adapter and works within any gigabit Ethernet environment supporting existing standard wiring, switches, and other Ethernet adapters.
1.2 Theory of Operation 1.2.1 How the Ammasso Adapter Works The Ammasso 1100 is an Ethernet adapter designed to take advantage of various standard interfaces, including MPI, DAPL, and traditional BSD sockets. For use with MPI and/or DAPL, the Ammasso 1100 leverages its RDMA capabilities and uses its on-board processing engine to quickly decipher the header information, determines where the information needs to go, and handles any network processing that needs to be done without involving the host CPU.
Server 1 Network Server 2 Figure 1 Transfer of Data RDMA reduces demand on the host CPU by enabling applications to directly issue data transfer request commands to the adapter without having to execute an operating system call (referred to as "kernel bypass").
Figure 2 RDMA vs. Traditional Adapter 1.2.3 What Is MPI and Why Is It Used? The Message Passing Interface (MPI) is a library for message-passing used for efficient distributed computation.
1.3 Product Components • • • • AMSO-1100 High Performance Ethernet Adapter A .tgz archive file containing all software files The Ammasso 1100 High Performance Ethernet Adapter User’s Guide (this file) Current release notes 1.4 Specifications 1.4.1 Performance • • • • 1 Gigabit Ethernet Full duplex TCP/IP offload for RDMA Connections Full RDMAP Offload with MPA 1.4.2 Application Program Interfaces (APIs) • • • MPI – Argonne National Labs MPICH Version 1.2.
2 Hardware System Requirements and Installation 2.1 Safety and Emissions This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interferences when the equipment is operated in a commercial environment.
2.2 System Hardware Requirements • • • • • • • • Intel IA-32 and EM64T or AMD Opteron 32/64 compatible Bus Type: PCI-X 1.0 Bus Width: 64-bit Bus Slot Speed: 66/100/133 MHz Power supply voltages:+3.3 volts +/- 0.3 volts, +5.0 volts +/- 0.25 volts A single open 64-bit PCI-X slot (see section “Choosing a Slot for Maximizing Performance” below before making a choice) 256 MB RAM (minimum), 1GB (or more recommended) PCI-X compatible riser card (if installing in a system that requires a riser card) 2.
2.3.3 Adapter Insertion Procedure To install the Ammasso 1100 High Performance Ethernet Adapter into a server: 1. Power off the server and unplug the power cord. 2. Remove the cover from the server. 3. Put on an ESD-preventative wrist strap, and attach it to an unpainted, grounded metal surface. 4. Select an appropriate PCI-X connector slot in the server. NOTE: Attaching more than one card to the PCI-X bus on your computer may degrade the Ammasso 1100 Ethernet Adapter’s performance.
3 Adapter Software Installation This section provides information on installing the Ammasso adapter software. 3.1 System Software Requirements System requirements for installing the software: • Intel IA-32 and EM64T or AMD Opteron 32/64 compatible platform • Disk Space – at least 50 MB of free disk space. • Linux Operating System – see release notes for tested distributions • C compiler must be installed in order to use MPICH • Kernel source RPM installed, configured, and built (see section 3.
Enter the AMSO1100 install directory. This is where the commands, libraries, and drivers will be installed. Q2: Where would you like your config data stored? [/usr/opt/ammasso/data/] This is where the rnic_cfg file for the Ammasso installation will be stored. This file contains the network settings for the Ammasso adapter.
3.3.1 Makefile Targets The AMSO1100 package top-level Makefile supports the following targets: all: Configures and builds AMSO1100 (default target). config: Configures the AMSO1100 source tree for building. The result is a file Config.mk that contains various environment variables needed to build the product. build: Builds AMSO1100 -- depends on config target. install: Installs AMSO1100 -- depends on build target. uninstall: Uninstalls AMSO1100 if it is installed.
3.3.2 Makefile Configuration Variables The configuration file Config.mk has the following variables: GCC_PATH The command name of the compiler program to use and optionally its associated pathname. LD_PATH The command name of the loader program to use and optionally its associated pathname. PLATFORM The target build platform. Possible values are x86_32 and x86_64. KERNEL_SOURCE The pathname to the kernel source tree for the kernel you are running.
3.4 Distribution Specific Build Details The following are known issues with building on common distributions. Please refer to the Ammasso support website (www.ammasso.com/support) for an up to date list of issues. The list of packages provided below will ensure that the system will be able to take advantage of all the Ammasso 1100 features – such as being able to support 32-bit MPI applications on 64-bit platforms. 3.4.1 RedHat The following section lists RedHat distribution specific details.
For 2.4 Kernels: # make dep For 2.6 Kernels: # make prepare 3.4.2 SuSE The following section lists SuSE distribution specific details. While the exact keystrokes may vary slightly from release to release, the following are offered as guidelines for these distributions. 3.4.2.
For 2.6 Kernels: # make prepare # make 3.4.3 Kbuild When compiling against 2.6 kernels, the 'kbuild' style Makefiles allow for an O= option to specified. This option tells kbuild where to put the configured kernel files. If the kernel is configured with O=, then all external modules must be built with the same parameter. If your kernel source was built using the O= variable, you must specify make install O= when building the package.
Ammasso 1100 Commands and Utilities Man pages are available for the following commands. A short description is included here. amso_cfg(8) Configure the adapter network settings based on the configuration file. amso_mode(8) Change operating mode of an Ammasso installation from release, support (debug), or none(off). This command is used by Ammasso support personnel to turn on/off debugging information. amso_setboot(8) Provide for automatic startup of an Ammasso installation.
3.5 Configuring the Ammasso 1100 Adapter The Ammasso 1100 configuration file stores the necessary networking information for both the RDMA and Linux NetDev-style ccilnet interfaces. A single file is used to store the entire Ammasso 1100 configuration for a given system. The configuration file is located in the directory specified during the installation. This defaults to: /data/`hostname –s`/rnic_cfg.
3.5.1 Configuration Entries The rnic_cfg file entries have the following format: function amso_[type]_[rnic]_[instance] { AMSO_IPADDR=[ipaddr] AMSO_MASK=[mask] AMSO_MTU=[mtu] AMSO_GW=[gw] AMSO_BCAST=[bcast] } Where the following fields contained within brackets mean: [type] This is the type of entry being defined. Currently there are two valid types: "ccil" -- This is the mode to define a legacy interface Ethernet network.
3.5.2 Sample Configuration File NOTE: Since the configuration file is in Bourne shell script syntax, you can use the "#" comment character. Any entries that are not needed can be commented out or removed. Both the RDMA and CCIL addresses can be specified in one configuration file. The following example shows one separate IP address for both the RDMA and the CCIL interfaces. There is only one adapter and one instance of each. Note that the RDMA and CCIL addresses must never be identical.
# /bin/ping 10.40.48.53 PING 10.40.48.53 (10.40.48.53) 56(84) bytes of data. 64 bytes from 10.40.48.53: icmp_seq=1 ttl=64 time=0.889 ms To verify RDMA connectivity, use the ccping(8) command. You can only use ccping to generate a response from a remote RDMA IP address. You will need two machines with Ammasso hardware and software installed in order to verify RDMA connectivity. In this example, node-A has RDMA IP address 10.40.32.52 and node-B has RDMA IP address 10.40.32.53.
4 The Ammasso MPI Library 4.1 Overview MPICH is a portable implementation of the Message Passing Interface (MPI) standard. Currently the Ammasso 1100 supplies and supports the MPICH version 1.2.5 of MPI from Argonne National Labs. The Ammasso MPICH implementation is a fully supported port of MPICH over Ammasso’s RNIC verbs interface designed to take advantage of the Ammasso 1100’s low latency and high throughput.
Q1: Enter the AMSO1100 build path: This is the full path to the AMSO1100 source code. Ammaso’s MPICH implementation needs access to some files distributed in the AMSO1100 directory to correctly compile. This defaults to ../AMSO1100. Q2: Base directory to install mpich [/usr/opt/ammasso]: This is the directory Ammasso’s MPICH implementation will be installed into. Q3: Enter path to c compiler [/usr/bin/gcc]: This is the path to the C compiler that will be used to build MPICH C programs.
By default, Ammasso’s MPICH searches only for a FORTRAN 77 compilation suite. Standard Linux distributions install GNU’s F77 to /usr/bin/f77. If the user has installed an optional FORTRAN 90 compilation suite and wishes Ammasso’s MPICH to use it as well, the user should reply ‘y’ to this question. When the FORTRAN 90 option is selected, the default for the MPICH libraries produced is to move the F77 and F90 routines into separate libraries noted by F77 or F90 in the name.
all: Configures and builds Ammasso MPICH, this is the default target for make. config: Configures the Ammasso MPICH source tree, this rule creates the file Config. build: Builds Ammasso MPICH and depends on config target. install: Installs Ammasso MPICH and depends on build target. uninstall: Uninstall Ammasso MPICH if it is installed. clean: Cleans the Ammasso MPICH source tree of any previously built objects. binary: This will put together a binary that can be put on other machines with identical setups.
INSTALL_DIR This is the full pathname into which Ammasso MPICH will be installed. It must be an absolute pathname not relative. RSHCOMMAND This is the full pathname to the remote shell command. It must be an absolute path pathname not relative. ENABLE_SHAREDLIB This is set to ‘yes’ if we enable building of shared libraries. Otherwise, it's set to ‘no’. F90 This is the full path to the FORTRAN 90 compiler. It must be an absolute pathname not relative.
The libraries and files associated with using MPICH and the Ammasso 1100 are located in a directory within the Ammasso installation environment: /mpich-1.2.5 If you chose to install a 32b version of MPICH on a 64b system, there will be an additional directory: /mpich-1.2.5-32 Additionally, the standard MPICH examples directory is located in: /mpich-1.2.5/examples For the example used below, the cpi.c program is found in this directory.
Link it by using the following command (note that in this case, it requires the math library): # mpicc -o cpi cpi.o -lm NOTE: A Makefile is provided in the examples directory. With this Makefile, one just needs to run make to compile and link the program. This Makefile can be used as a starting point for building other MPICH applications. 4.4.
NOTE: The maximum number of instances supported on a single node is four. NOTE: When running multiple processes of a program on a single host, the processes communicate using host memory, not the Ethernet. There is an upper limit on the size of messages that can be sent between processes on the same host which depends on the number of instances on the host and the total amount of physical memory.
Process 1 on hostB Process 0 on hostA pi is approximately 3.1416009869231241, Error is 0.0000083333333309 wall clock time = 0.000263 4.6 Removing the Ammasso MPI Installation Use the mpich_uninstall command to remove the AMSO_MPICH installation. This command will not remove machines.* files in the /mpich1.2.5/share directory. These files are left on the system for use in the future if needed. # . /etc/ammasso.conf # $INSTALL_DIR/mpich-1.2.
NP is the total number of processes in the MPI run. Assuming each node runs the same number of processes, NP is computed as: NP = (NC * LP) RP is defined as the number of remote processes relative to any given MPI process in an MPI run. The remote process count is important because each MPI process connects to every remote process in the run using an RDMA Queue Pair. And each RDMA Queue Pair consumes memory. Assuming each node runs the same number of processes, RP is computed as: RP = (NC * LP) – LP.
VIADEV_MAX_RENDEZVOUS 209715200 Bytes The maximum amount of user buffer memory that will be locked down at any point in time for zero-copy IO. 4.7.1.1 VIADEV_NUM_RDMA_BUFFERS This parameter specifies how many RDMA Write buffers will be setup per connection.
Each MPI process is allowed to lock down up to VIADEV_MAX_RENDEZVOUS amount of application buffer memory. Once this limit is reached, IO buffers are evicted and unregistered on a “least recently used” basis. The default value for this parameter is 209715200 bytes (200MB). 4.7.2 Tuning suggestions Based on the default values, one can determine how much memory is being consumed by each MPI process in a run.
5 The Ammasso DAPL Library 5.1 Overview The Ammasso 1100 DAPL release is composed of one source code tar package. AMSO_DAPL.tgz is the DAPL package. This package must be installed to enable both user and kernel mode uDAPL and kDAPL applications over the Ammasso 1100 adapter. Currently, the Ammasso 1100 supports the version 1.2 uDAPL and kDAPL API specifications. Applications built against version 1.1 DAPL will need to be recompiled to run with the 1.2 DAPL libraries.
5.2.1 Makefile Targets The DAPL Makefile supports the following targets: all: Configures and builds DAPL (default target). config: Configures the DAPL source tree. This rule creates the file Config. build: Builds DAPL -- depends on config target. install: Installs DAPL -- depends on build target. uninstall: Uninstall DAPL if it is installed. clean: Cleans the DAPL tree of any previously built programs. binary: This will put together a binary that can be put on other machines with identical setups.
KERNEL_SOURCE The pathname to the kernel source tree for the kernel you are running. O Path to alternate kernel build output directory. 5.3 Configuring DAPL The DAT registry file is created as part of the 'make install' process and is copied into /etc/dat.conf. The file is created with the Ammasso DAPL provider already registered, so no modifications are needed by default. If an /etc/dat.conf file already exists at install time, the Ammasso entry will be appended into the /etc/dat.
DT_cs_Client: ========== End of Work -- Client Exiting ... This test will take a few minutes to complete. 5.4.2 kDAPL Installation Verification The kDAPL test scripts require that both the kdapl and kdapltest kernel modules are loaded. With two nodes, hostA and hostB, hostA starts the server program first: # cd /dapl-1.2/bin # ./ksrv.
on Infiniband DAPL providers that are ported to the Ammasso DAPL provider. The solution is to explicitly set local read access on memory regions which is valid for both IB and iWARP. Ammasso provides a workaround for this issue: Set CCAPI_ENABLE_LOCAL_READ=1 in your environment before executing your uDAPL application. This will set local read privileges for your application implicitly when memory regions are registered. 5.6.2 DAPL_1_1_RDMA_IOV_DEFAULTS With the release of the 1.
6 Cluster Installation 6.1 Introduction The purpose of this chapter is to provide a sample install session for the Ammasso 1100 adapter software (AMSO1100), MPICH and DAPL packages. From the install on one node, the software is then deployed to several nodes across a cluster. The steps to install on an initial node in the cluster are different than those used for the follow on cluster nodes. Both procedures are documented. This document lists steps that are specific to SuSE 9.1 64 bit systems. 6.
6.2.2 Install AMSO1100 and Build Binary for Cluster Deployment 1. Untar the AMSO1100 package on the build system. The unzip/tar-extract for this example was done in the /tmp directory but that is not a requirement. # cd /tmp # ls . AMSO1100.tgz .. gconfd-root 3Ddiag.Yp3238 hps.test # # tar zxf AMSO1100.tgz # ls . AMSO1100 .. AMSO1100.tgz 3Ddiag.Yp3238 gconfd-root # .ICE-unix .X11-unix .qt YaST2-02308-zPffTu sysconfig-update hps.test .ICE-unix .qt sysconfig-update .X11-unix YaST2-02308-zPffTu 2.
/etc/init.d/rc5.d/S06amso1100 /etc/init.d/rc5.d/K16amso1100 /etc/init.d/amso1100 # ls /etc/ammasso.conf /etc/ammasso.conf # cat /etc/ammasso.conf INSTALL_DIR=/usr/opt/ammasso RNIC_CFG=/usr/opt/ammasso/data/app64-01 IS_INSTALLED=1 # # ls /usr/opt/ammasso . .. bin data fw lib lib64 man release support scripts # ls /usr/opt/ammasso/data . .. app64-01 default # ls /usr/opt/ammasso/data/app64-01 . .. mode rnic_cfg # tail -12 /usr/opt/ammasso/data/app64-01/rnic_cfg function amso_rdma_0_0 { AMSO_IPADDR=10.
6.2.3 Install MPICH and Build Binary for Cluster Deployment 1. Use the tar(1) command to unarchive the MPICH package on the build system. The unzip/tar-extract for this example was shown using the /tmp directory but that is not a requirement. However placing the directory at the same location as the AMSO1100 build directory allows the configuration to automatically find it. # cd /tmp # ls . AMSO1100.tgz .ICE-unix YaST2-02308-zPffTu .. AMSO_MPICH.tgz .qt 3Ddiag.
INSTALL_DIR='/usr/opt/ammasso/mpich-1.2.5' RSHCOMMAND='/usr/bin/rsh' ENABLE_SHAREDLIB='no' F90='' F90FLAGS='' F90_LDFLAGS='' PLATFORM='native' CUSTOM_CFLAGS='' BPROC='no' # 3. Build MPICH. # make ...... output from make, takes approximately five minutes ...... 4. Install MPICH. This step needs to be done as the root user. # make install ...... output of install ...... # ls /usr/opt/ammasso/ . .. bin data fw lib support lib64 man mpich-1.2.5 release scripts MPICH is now installed on the build system.
Overwrite existing mpich installation (y or n)? [no] y ...... output of install ...... Created binary self-extracting image --> /tmp/AMSO_MPICH/image-mpich1.2.5.bin # # ls . Build .. Config image-mpich-1.2.5.bin Installed Makefile mpich_cset scripts mpich-1.2.5 image-mpich-1.2.5.bin is a shell script and binary image for installation on cluster nodes. Save this file to a safe location that can be used to distribute to the cluster nodes. # cp image-mpich-1.2.5.bin /tmp 6.2.
3. Build an AMSO_DAPL binary package for install on the cluster nodes. # ls . .. Build Config Installed Makefile dapl-1.2 dapl_cset etc scripts # make binary Created binary self-extracting image --> /tmp/AMSO_DAPL/image-dapl-1.2.bin # ls . Build Installed dapl-1.2 etc scripts .. Config Makefile dapl_cset image-dapl-1.2.bin image-dapl-1.2.bin is a shell script and binary image for installation on cluster nodes. Save this file to a safe location that can be used to distribute to the cluster nodes.
# /tmp/ammasso1100.bin –d /usr/opt/ammasso/data/app64-02 Ammasso 1100 binary installer created on .... Using /usr/opt/ammasso/data/app64-02 as the configuration directory. Installation complete. Reboot the system to activate the AMSO1100 board and its software # ls /usr/opt/ammasso . .. bin data fw lib lib64 man release scripts starcore_cset support # ls /usr/opt/ammasso/data . .. app64-02 default rnic_cfg.example # ls /usr/opt/ammasso/data/app64-02/ . .. mode 4. Set the IP settings for the cluster node.
5. On each cluster node, install the MPICH software. This step needs to be done as the root user. Copy or transfer the image-mpich-1.2.5.bin script to the /tmp directory of the cluster node system. This can be done, for example, using scp(1) or rcp(1), for example: # scp foo:/tmp/image-mpich-1.2.5.bin /tmp # cd /tmp/ # ls image* image-mpich-1.2.5.bin # /tmp/image-mpich-1.2.5.bin Ammasso Mpich binary installer created on .... Mpich has been installed into /usr/opt/ammasso/mpich-1.2.5. # ls /usr/opt/ammasso .
AMSO1100, MPICH, and DAPL are now installed on the cluster node system. Repeat the above steps for each node in the cluster. Set RDMA and CCILNET addresses and reboot the systems. 6.4 Cluster Deployment For deployment on a large number of clusters, a cluster administrator will want to script an installation procedure with: 1) an uninstall of previous Ammasso release software 2) an install of ammasso1100.bin, image-mpich-1.2.5.bin, and image-dapl-1.2.
7 Using the Ammasso 1100 with PXE Boot PXE boot is a way to boot and load x86 based servers with a system image (or any other type of program) that is served from another computer on the network. It is especially useful when a unique operating system kernel image needs to be replicated across a number of servers. Another use is if an operating system kernel image needs to be loaded on remote servers that you do not have physical access to or which don't have an alternative boot device.
1. A target machine that is PXE capable. The Ammasso 1100 card must be selected as the network boot device. 2. The Ammasso driver, ccil.{o,ko}, compiled against the kernel that will be PXE booted. 3. A ramdisk image that contains the Ammasso driver and utilities. The following files are required for the ramdisk to load. The Ammasso 1100 needs to have firmware loaded to it prior to loading the driver.
5. A system configured to be a PXE boot server. This system must be running DHCP (dynamic host configuration protocol), TFTP (trivial file transfer protocol), and will need to have a remote file service available (such as NFS - network file system). 7.3 BIOS Settings When the motherboard is initialized, it locates all option ROMs and executes BIOS code in each ROM if it is enabled in the BIOS. If PXE is enabled in your motherboard’s BIOS, the Ammasso option ROM will begin to execute the PXE support.
To simplify building, all applications are shown to be linked statically. For the next few steps we assume that the shell variables, BUSYBOX and MODUTILS, have been set to the path of the sources for their namesakes. The variable INITRD should be set to a temporary directory where the ramdisk will be built. 7.4.1 Configuring and Building BusyBox Applications BusyBox is configured like the Linux kernel, using: # make config or: # make menuconfig Once the .
7.4.3 Populating the Ramdisk Create an initrd directory structure to be used for the ramdisk. For this example, the initrd directory structure is shown below: # ls ${INITRD} bin ccore dev etc linuxrc mnt modules proc sbin share var Copy the BusyBox files: # cp -a ${BUSYBOX}/_install/bin/* ${INITRD}/bin # cp -a ${BUSYBOX}/_install/sbin/* ${INITRD}/sbin Copy insmod from modutils: # cp ${MODUTILS}/insmod/insmod.
insmod /modules/net/ccil.o Example 3 [FC 3, 2.6.9-1.667smp]: # load insmod insmod insmod insmod the drivers /modules/net/sunrpc.ko /modules/net/lockd.ko /modules/net/nfs.ko /modules/net/ccil.
# Display the routing table route -n # Mount what will become the root filesystem mount -t nfs -o nolock,rsize=8192,wsize=8192,hard,intr ${NFSDIR} /mnt # We don't need these anymore, and they will get remounted later, anyway umount /dev/pts umount /proc # Switch the mount points - the NFS mounted FS will become / cd /mnt pivot_root . initrd # Mount all mount –a echo 256 > /proc/sys/kernel/real-root-dev # Return, and init on the newly mounted filesystem will continue # the boot process. 7.4.
There needs to be one entry for each MAC address in the "group" section of the file. A sample dhcpd.conf configuration file is shown here: authoritative; ddns-update-style interim; option domain-name "ammasso.com"; shared-network lab { # cn0 subnet subnet 10.40.48.0 netmask 255.255.240.0 { option routers 10.40.48.1; option broadcast-address 10.40.63.255; option domain-name-servers 10.40.48.1; option subnet-mask 255.255.240.0; use-host-decl-names true; host sqa-14-cn0 { fixed-address 10.40.48.
7.7 Building PXELINUX In this example, we use PXE to boot Linux with PXELINUX from the syslinux package. This can be obtained from the following website: http://www.kernel.org/pub/linux/utils/boot/syslinux/ To build PXELINUX, you will need nasm(1), an x86 assembler; which can be obtain from the following website: http://sourceforge.net/projects/nasm You only need to build pxelinux.0. To build it: # make pxelinux.0 Copy pxelinux.0 to your /tftpboot directory on your TFTP server.
7.8.1 Configure a Root File System The idea behind a diskless node is to use the distribution that has been installed on a remote server via NFS. We used a two step process to create the root file system for a client on the server. 1. Copy all files from the distribution installed on a disk into a directory on the server. NFSROOT=/NFSroot/clients/OS/client1. The directory /NFSroot/clients/OS/client1 is the distribution root directory.
7.9 Updating the Ammasso 1100 Option ROM Image The Ammasso 1100 network adapter was factory flashed with an option ROM image. If you are updating from a previous release, this image will need to be updated (see HOWTO_UPDATE.txt for more specifics on updating the software and hardware). Ammasso provides utilities which allow this image to be updated by the user. The ccflash2 utility can be used to update images on the Ammasso 1100 network adapter.
Appendix A: Support Obtaining Additional Information Additional information, the latest software revisions, and documentation is always available at the Ammasso Customer Support website located at: http://www.ammasso.com/support Contacting Ammasso Customer Support If you have a question concerning your Ammasso 1100 High Performance Ethernet Adapter or driver software, refer to the technical documentation supplied with your Ammasso 1100 Adapter. If you need further assistance, contact your Ammasso supplier.
Appendix B: Warranty Ammasso High Performance Server Adapter LIMITED LIFETIME HARDWARE WARRANTY Ammasso warrants to the original owner that its adapter product will be free from defects in material and workmanship. This warranty does not cover the adapter product if it is damaged in the process of being installed or improperly used.
AMMASSO'S TOTAL LIABILITY FOR ALL CLAIMS UNDER THIS AGREEMENT SHALL NOT EXCEED THE PRICE PAID FOR THE PRODUCT. THESE LIMITATIONS ON POTENTIAL LIABILITIES WERE AN ESSENTIAL ELEMENT IN SETTING THE PRODUCT PRICE. AMMASSO NEITHER ASSUMES NOR AUTHORIZES ANYONE TO ASSUME FOR IT ANY OTHER LIABILITIES.