
See this note about DEC Firmware first
The Linux driver is compiled for linux-2.0.xx, and will not compile or work under and linux-1.2.x kernels. The kernel interfaces have changed after 1.3.69 (and will continue to change knowing linux).
You should be running an ELF-based kernel in order to load the Myricom-compiled objects. You will need the most recent MILO that has a bug fix for DEV_Select.
From axp-kernel-list-request@redhat.com Wed Mar 5 14:44:19 1997 From: David Mosberger-TangTo: axp-kernel-list@redhat.com Subject: MILO + myrinet PCI card works now! Anyhow, the solution to this problem is simple: in MILO-2.0.28, file devices.c around line 294, there is code that looks like this: max_devsel = PCI_STATUS_DEVSEL_FAST; for (dev = bus->devices; dev; dev = dev->sibling) { u16 status; pcibios_read_config_word(bus->number, dev->devfn, PCI_STATUS, &status); status &= PCI_STATUS_DEVSEL_MASK; if (status > max_devsel) { max_devsel = status; } } max_devsel >>= 9; the last line should be changed into: max_devsel = 2 - (max_devsel >> 9); and then all should work fine. Dave R., did you have a chance to put this fix into the current MILO sources already? I'm sorry to keep causing you more work... ;-( --david
AlphaBIOS booting note
[from a customer with DEC LX boards] From help-handler Fri Mar 27 12:34:48 1998 Date: Fri, 27 Mar 1998 15:34:22 -0500 (EST) Now that we've plugged in 65 cards in Alphas, it seems that the boot sequence is: 1) First time you boot with the card in, it says "swapping to palcode" and then hangs for quite a while, or, in a few cases, infinitely. 2) Subsequent boots hang for 2 minutes at the same place 3) The machines that hung infinitely in #1 get better if you take the cards out and put them back in. If you look in the AlphaBIOS config stuff the card is visible, but apparently it isn't fully seated. This seems more mysterious than getting cards to work on x86 machines, so you might want to mention this workaround in your non-existant alpha docs...
Warning - Hackery Alert: The Alpha driver is optimized to avoid the use of function calls to access the PCI board via programmed I/O. This improves the performance of the driver and allows the same API source code to run unchanged on Alphas and Intel boxes. This is accomplished using the following in MYRI_HOME/src/intel_linux/module/init.c
#ifdef dec_linux /* FIX this won't work for all arch */ #includeThe problem is that this address offset is different for different Alphas and this hack will not even work on a "Jensen" machine. There are other include files and other DENSE_MEM defines for different Alpha boxes.#define PCI_OFFSET LCA_DENSE_MEM #endif
linux/include/asm/apecs.h:#define APECS_DENSE_MEM (IDENT_ADDR + 0x0300000000UL) linux/include/asm/cia.h:#define CIA_DENSE_MEM (IDENT_ADDR + 0x8600000000UL) linux/include/asm/lca.h:#define LCA_DENSE_MEM (IDENT_ADDR + 0x0300000000UL)
You will need the most recent modules package. The one we're
using is modules-1.3.57.tar.gz. The Alpha distributions
seem a bit confused when it come to being able to compile
the programs insmod, rmmod, lsmod. We have provided a distribution
on our web site for these programs as insmod-bfd-0.2.axp.tar.gz.
If you need help installing the Myrinet board in a Miata in one of the primary slots, see SRM modifications in the dec_osf1 install procedures.
Before installing the driver, you need to configure the Myrinet software and tools for your site. This is done with the script myri.INIT. Please see the section on Configuring Software for more information. You only need to run myri.INIT once after untarrring the software distribution.
To install the driver, first be sure you have the programs insmod, lsmod etc. installed.
Also, please be sure that your
/usr/include/linux/autoconf.h
file is correctly set up. We look in that file to determine
how to access the Myrinet card depending on the PCI bridge chip
(e.g. PYXIS, APECS etc). Then
cd [...]/myrinet/src/intel_linux/module |
You will need to be root to run the make install command.
Run the following commands. The driver will need to be recompiled for your particular flavor of Alpha.
make clean make make installShould install the linux driver. Edit the Makefile to change the
ifconfigcommand and theroutecommand to use an appropriate IP address and hostname for your network. Then
make net |
To load the driver upon reboot, put the make install and make net commands into /etc/rc.d/rc.local
After completing the driver install procedure you need to configure the Myrinet software and tools for your site. This is done with the script myri.INIT. Please see the section on Configuring Software for more information. You only need to run myri.INIT once after untarrring the software distribution.
Attention:
Linux 2.0.x kernels have a hard time allocating blocks of memeory that
are larger than 1 page. The Myrinet MTU is greater than 2 pages. Under
heavy load, the driver may be unable to provide buffers to the LANai
and the system will be unable to receive messages. You can eliminate this
problem by recompiling the Myrinet driver with
-DSMALL_BUFFER # -DSMALL_BUFFER for an MTU less than 4096 bytes # WARNING - this will not be able to interoperate with # other Myrinet drivers with larger MTUdefined in the CFLAGS. This will make your Linux Myrinet driver incompatible with Myrinet drivers on other architectures.