IBM* PCI Hot-Plug Controller Driver v1.02 for SUSE 8.0/RedHat 2.1 Advanced Server /RedHat 7.3 and Installation Instructions. Readme.txt Version 1.04 CONTENTS --------- 1.0 Hot-Plug PCI Installation Overview for SUSE 8.0 and RedHat 2.1 Advanced Server/Redhat 7.3 1.1 Overview 1.2 Limitations 1.3 Dependencies: 2.0 Change History 3.0 Installation and Setup Instructions for SUSE 8.0 and RedHat 2.1 Advanced Server/Redhat 7.3 3.1 Kernel configuration 3.1.1 For SUSE 8.0 3.1.2 For RedHat 2.1 Advanced Server 3.1.3 For RedHat 7.3 3.2 Driver installation 4.0 How to perform Hotplug PCI Operations (command-line) 4.1 Required steps in Hotplug Operations 4.1.1 Removing an adapter 4.1.2 Adding a new adapter to an empty slot 4.1.3 Changing the state of attention LED 4.1.4 Other files in the slot directory 4.2 Warnings about incorrect usage of Hotplug PCI. 5.0 Installation and Setup instructions for Graphical User Interface 6.0 Troubleshooting hot plug PCI operations 6.1 Basic Troubleshooting 6.2 Attention Indicator LED 6.3 Interrupt handling 1.0 Hot-Plug PCI Installation Overview for SUSE 8.0 and RedHat 2.1 Advanced Server/Redhat 7.3 1.1 Overview The Hot Plug PCI support for SUSE 8.0 and RedHAt 2.1 Advanced Server/RedHat 7.3 provided by IBM is compliant with many different specifications including full compliance with the PCI Hot-Plug v2.2 specification. The IBM Hot Plug PCI system support consists of an interlock switch and a set of two LED's for each hot plug PCI slot. One LED will remain on when power is ON to the given slot. The other LED will indicate that attention is required to that slot or will be used to indicate which slot was chosen for a hotplug action. Slots that do not have these devices are NOT hot plug slots. All hotplug operations must be controlled through a command line interface provided by the Linux kernel. IN NO CASE SHOULD PHYSICAL HOT PLUG OPERATIONS BE DONE WITHOUT FIRST REMOVING POWER FROM THE SLOT. IF A SLOT DOES NOT HAVE A LATCH,DO NOT REMOVE THE ADAPTER. DOING SO CAN CAUSE SERIOUS DAMAGE TO THE SYSTEM AND ADAPTER. The order of events in any hot-plug operation are: - Load the kernel PCI hotplug core driver. - Mount the PCI hotplug file system. - Load the IBM PCI hotplug controller driver to provide hot plug PCI support. - For hot-add operation, open the latch and insert an adapter and any necessary cabling. Close latch. - At command prompt, echo the requested values into the hotplug file system to power on or power off the desired PCI slots. - For hot-remove operation, When the adapter power is OFF, open the latch and remove, an adapter and any necessary cabling. Close latch. NOTE: The power to a slot cannot be turned ON until the latch is closed for the given slot. The position of the latch (opened or closed) is not important if no adapter is in the given slot. - If selected, the adapter power is turned ON and the adapter is configured. At this point, you may need to manually load the drivers associated with the newly added adapter card. 1.2 Limitations - Cannot load the IBM PCI hotplug controller driver multiple times within same boot session. If the driver is loaded, adapters are hot-added or hot-removed, then the driver is unloaded and re-loaded, erroneous behavior will occur. - This driver supports (1)single x-Series e-Server 440 systems and RXE100, Multiple e-Server systems require additional software; (2) x-Series e-Server 235; - This driver Will not support onboard PCI-PCI bridges. Additionally, only adapters cards with a single bus behind its onboard bridge are supported. - This driver does not support hot-adding/removing a nested bridge device, a bridge by itself, or any graphical devices. - This driver will not function properly if there is no APIC in the system. - Opening the latch while the adapter card is active may cause the system to reboot or hang. Under no circumstances should the latch be opened while power is applied to an active PCI slot. - Multi-function PCI devices are supported as long as the multi-function capability is not provided with or through a PCI-to-PCI bridge. - Devices that are not PCI v2.2 compliant or that do not implement the PCI presence detection pins are not supported. - Non-PCI devices are not hot pluggable. 1.3 Dependencies: - All files that are required by the Hotplug controller driver are provided in the standard SUSE 8.0/ RedHat 2.1 Advanced Server system and included RPM (ibmphp-[suse/redhat]-[8.0/2.1AS]-'VERSION_NUMBER'-src.rpm). - For RedHat 7.3, the Hotplug controller driver is provided in the standard RedHat 7.3 applying the latest kernel errata, and included source RPM 2.0 Change History of ibmphp ------------------------------ ************************* * ibmphp v0.5 * * June, 2002 * ************************* - Added support for x-Series 235 - Fixed some bugs - Release of binary RPM for RedHat 7.3 ************************* * v0.2 Changes * * March/April, 2002 * ************************* - Added bus speed limitations - Fixed polling - Added support for RXE100 - Release of RPMs for Suse 8.0 ************************* * v0.1 Changes * * January 14, 2002 * ************************* - Made formatting changes to comply with the Linux community. - Updated the readme file to remove incorrect information as well as to add additional instructions and clarifications. ************************* * v1.00 Changes * * December 14, 2001 * ************************* - Original Release 3.0 Installation and Setup Instructions for SUSE 8.0 ----------------------------------------- NOTE: To successfully install provided RPM, make sure that the source code for linux tree is installed on the system. You can get the source code by finding the correct RPM kernel-source-'VERSION-NUMBER'.rpm. 3.1 Kernel configuration ------------------------- 3.1.1 For SUSE 8.0 -------------- If SUSE 8.0 is installed on IBM x-series 440/235, the kernel options 64GB-SMP are selected, therefore, before installing ibmphp RPM, you will need to do the following: rpm -qa | grep kernel Sample result (NOTE: Results will vary with different kernel versions): kernel-source-2.4.18.SuSE-35 SuSE is configured with the Yast tool. Use it install the appropriate kernel source files. After installation configure the kernel sources by executing the following commands: cd /lib/modules/`uname -r`/build cp -f /boot/vmlinuz.version.h /lib/modules/`uname -r`/build/include/linux/version.h cp -f /boot/vmlinuz.config /lib/modules/`uname -r`/build/.config make cloneconfig make dep 3.1.2 For RedHat 2.1 Advanced Server ------------------------------------ rpm -qa | grep kernel Sample result (NOTE: Results will vary with different kernel versions): kernel-headers-2.4.2-2 kernel-source-2.4.2-2 kernel-smp-2.4.2-2 kernel-2.4.2-2 Note: On x-Series 440, make sure you are running summit kernel. NOTE: NORMALLY THE STEPS OUTLINED BELOW WILL WORK, UNFORTUNATELY, THIS PROCESS IS BROKEN ON REDHAT ADVANCED SERVER 2.1, AND THEREFORE WE ARE PROVIDING A BINARY RPM DIRECTLY. YOU CAN SKIP THIS SECTION AND STEPS 1 AND 2A IN THE SECTION 3.2: DRIVER INSTALLATION. Make sure that kernel-headers and kernel-source rpm packages are present and that they match your kernel version number. Once you have the appropriate kernel sources installed you will need to configure them. Execute the following commands: cd /lib/modules/`uname -r`/build make mrproper make menuconfig Go down in the list and choose an option 'Load an Alternate Configuration File', and choose ONE of the following configurations (depending on your hardware configuration) (exact file names may vary): Typing 'uname -r' and `uname -m` at command prompt might help you decide which configuration file you should load. configs/kernel-2.4.9-i586.config configs/kernel-2.4.9-i586-smp.config configs/kernel-2.4.9-i686-enterprise.config configs/kernel-2.4.9-i686-summit.config Choose and save configuration file. Execute the following command: make dep 3.1.3 For RedHat 7.3 ------------------------------------- Install RedHat 7.3 and latest kernel errata using RPM. Make sure you install kernel-source and rpm-build packages, and that they match your kernel version number. Type the following commands at the prompt: rpm -qa | grep kernel rpm -qa | grep rpm Sample result (NOTE: Results will vary with different kernel versions): kernel-smp-2.4.18-3 kernel-source-2.4.18-3 Once you have the appropriate kernel sources installed, you will need to configure them. Execute the following commands: cd /lib/modules/`uname -r`/build make mrproper ls configs Examples of config files you might see: configs/kernel-2.4.18-i686.config configs/kernel-2.4.18-i686-smp.config NOTE: Combination of `uname -r` and `uname -m` will help you decide which configuration file you should copy. Then copy the configuration file: cp configs/ .config Go to the directory where ibmphp RPM is stored. Type the following to extract a file: rpm2cpio ibmphp-src-redhat-'VERSION_NUMBER'-7.3.i386.rpm | cpio -ivd ./usr/src/redhat/SOURCES/Makefile.script Make sure your bash version is > 2.0. You can verify that by typing bash --version at the prompt. Type the following to launch the script: ./usr/src/redhat/SOURCES/Makefile.script Note: This script modifies the Makefile in /lib/modules/`uname -r`/build directory to match your running kernel. The command above (rpm2cpio) created a file tree in the directory where your RPM is contained. To remove it, type command: rm -rf ./usr MAKE SURE YOU ARE IN THE SAME DIRECTORY YOU WERE WHILE YOU ISSUED RPM2CPIO COMMAND, AND NOTICE THE LEADING . (dot) IN FRONT OF /usr, IMPORTANT: Make sure you are NOT in the / directory. cd /lib/modules/`uname -r`/build make oldconf