********************************************************************************
********************************************************************************
*
*  Intel(R) SATA RAID EFI Driver Integration Test Suite README
*
*  This document makes references to products developed by Intel(R). There are
*  some restrictions on how these products may be used, and what information may
*  be disclosed to others. Please read the Disclaimer section at the bottom of
*  this document, and contact your Intel field representative if you would like
*  more information.
*
********************************************************************************
********************************************************************************


********************************************************************************
*  Intel is making no claims of usability, efficacy or warranty. The INTEL(R)
*  SOFTWARE LICENSE AGREEMENT contained herein completely defines the license
*  and use of this software.
********************************************************************************


********************************************************************************
*  CONTENTS OF THIS DOCUMENT
********************************************************************************

This document contains the following sections:

1.  Overview
2.  System Requirements
3.  Executing the Test
4.  Explanation of Tests Run by RCmpSata
5.  Disclaimer
5.  Intel(R) Software License


********************************************************************************
* 1.  OVERVIEW
********************************************************************************

The Intel(R) Rapid Storage Technology is designed to provide functionality for
the Intel(R) SATA RAID Controller. This tool will report settings of the platfom
to evaluate its compliance with the Intel(R) Rapid Storage Technology product.


********************************************************************************
* 2.  SYSTEM REQUIREMENTS
********************************************************************************

1. The system must contain an Intel(R) Processor and Intel(R) Chipset.

2.  The system must support UEFI 2.1d operating system or newer.


********************************************************************************
* 3.  Executing the Test
********************************************************************************

1.  Enable the SATA RAID EFI Driver from system BIOS.

2.  There is no need to create any RAID volumes in order to execute this test.

3.  From an EFI shell, enter the following

    RCmpSata.efi

    You may have the utility redirect the results to a text file by using the
    following command:

    RCmpSata > test1.txt

********************************************************************************
* 4.  Explanation of Tests Run by RCmpSata
********************************************************************************

RCmpSata initially displays several informational sections before running tests:

    PCI Configuration Space

        The PCI Configuration Space registers of the SATA PCI device are shown.

    RAID Option ROM Version Information

        The compiled features in the Intel(R) SATA RAID EFI Driver are shown.

After the informational sections, the following tests are executed:

1. System-Provided Protocols and Tables

     1.1  UEFI Services
          Reports the presence of the required UEFI services (gBS, gRT), which must
          be provided by the system firmware.
          Severity: High

     1.2  ACPI Support Protocol
          Reports the presence of the required ACPI Support Protocol, which may
          be provided by the system firmware.
          Severity: Warning

     1.3  ACPI Table Protocol
          Reports the presence of the required ACPI Table Protocol, which must
          be provided by the system firmware.
          Severity: High

     1.4  UEFI HII Protocols
          Reports the existence of all protocols expected to be exposed which must
          be provided by the system firmware.  If any protocols are missing,
          there is a driver or system error preventing them from being installed.
          Severity: Warning

2. Driver-Provided Protocols and Tables

     2.1  EFI Driver Protocols
          Reports the existence of all protocols expected to be exposed by the
          SATA EFI Driver.  If any protocols are missing, there is a driver or
          system error preventing them from being installed.
          Severity: High

     2.2  EFI Driver Protocols for HII
          Reports the existence of all protocols expected to be exposed by the
          SATA EFI Driver related to HII.  If any protocols are missing, there is a
          driver or system error preventing them from being installed.  The driver
          can still function without the HII component.
          Severity: Warning

3. Intel(R) SATA RAID Controller Presence Tests

     3.1  Intel(R) Chipset Detected
          Checks for the Intel(R) Vendor ID in the MCH and ICH.
          Severity: High

     3.2  CPU Brand String
          Displays the system CPU Brand ID from the CPUID instruction for
          diagnostic purposes.
          Severity: Status Only

     3.3  CPUID
          Displays the system CPUID value from the CPUID instruction for
          diagnostic purposes.
          Severity: Status Only

     3.4  RAID Controller DevID:
          Checks for the proper Deveice ID for the Intel(R) RAID Controller.
          Severity: High

     3.5  Controller Present
          Checks for the presence of a supported SATA RAID controller PCI device.
          Severity: High

     3.6  RAID Controller Name
          Reports the name of I/O Controller.
          Severity: Status Only

     3.7  RAID SubClass Code (0x04):
          Checks for the proper SubClass Code for the Intel(R) RAID Controller.
          Severity: High

     3.8  Chipset Revision
          Checks the hardware revision of the ICH part.
          Severity: Status Only

     3.9  AIE Bit is Clear(0):
          Checks if the alternate ID enable bit is clear.
          Severity: High

     3.10 Recognized RPID
          Reports whether the SATA RAID controller has a known, supported RAID
          platform ID.  If the RPID is not available or unsupported, the EFI
          driver will not load.
          Severity: High

     3.11 RAID Platform ID
          Reports the actual RAID Platform ID (if available).  This is the Device ID
          that would be exposed if the AIE bit is set.
          Severity: Status Only

     3.12 RAID Controller Vendor ID
          Displays the PCI Vendor ID of the controller.
          Severity: Status Only

     3.13 RAID Controller DevID
          Displays the PCI Device ID of the controller.
          Severity: Status Only

     3.14 Chipset LPC ID
          Displays the LPC ID of the chipset.
          Severity: Status Only

4. Chipset AHCI Controller Settings Tests

     4.1  RAID I/O Space Enabled
          Checks that the IOSE bit in the RAID controller is enabled.
          Severity: High

     4.2  RAID Memory Space Enabled
          Checks that the MSE bit in the RAID controller is enabled.
          Severity: High

     4.3  RAID Programming Interface Set to 0
          This test is only run on ICH7 Rev0 hardware.
          Checks that the Programming Interface is set to 0. This must be written
          to 0 BEFORE the SubClass code is locked to RAID Mode. Failing this test
          will cause WHQL failures.
          Severity: Medium

     4.4  Legacy Bus Master BAR Programmed
          Checks that the LBAR in the RAID controller has been programmed.
          Severity: High

     4.5  AHCI BAR Programmed
          Checks that the ABAR in the RAID controller has been programmed. The
          RAID controller is operated through the AHCI interface once the OS
          driver takes control.
          Severity: High

     4.6  MAP Bits Set to Non-Combined (00b)
          Checks that the Port Mapping Register in the RAID controller has its
          Map Value set to 00b. The RAID controller must NOT be set to Combined
          Mode for proper RAID operation.
          Severity: High

     4.7  SATA Mode Select Set to RAID (10b)
          Checks if SATA Mode Select (SMS) bits in the MAP register are set
          properly (10b).
          Severity: High

     4.8  Port x Enable Bit Set
          Checks that the PCS register in the RAID controller has its PxE bit set
          to 1. Only ports that have been enabled can be used.
          Severity: Status Only

     4.9  SATA Device Present on Port x
          Checks that the Port Status Register has a device present and looks at the
          port signature to determine what type of device is present. 
          Severity: Status Only

5. OCF and BCFS Feature Tests

     5.1  OCF and BCFS Features
          The first column, OCF, stands for Original
          Compiled Features of the OROM and indicates what features
          were compiled for the OROM.  The 2nd column, BCFS, stands for BIOS
          Controlled Feature Set and indicates what features were enabled or
          disabled by the BIOS.  An "X" indicates compiled/enabled, a "-' indicates
          not compiled/disabled.
          Severity: Status Only

6. Version Table Tests

     6.1  Version Table (ACPI Table and Variable)
          Reports the existence of both the ACPI table and EFI variable
          containing the RST driver version table, which is used to communicate
          EFI driver supported features to the operating system driver.  If
          either table is missing or the contents of the two do not match, this
          test will fail.
          Severity: High

7. AHCI Register Settings Tests

     7.1  HBA Port Multiplier Support Status
          Checks that the PMS bit in the HBA Capabilities Register is clear. Port
          multipliers are supported on ICH9.
          Severity: Status Only

     7.2  HBA Supports Command List Override
          Reports the status of the CAP.SCLO bit to determine if the platform
          supports Command List Override.
          Severity: High

     7.3  HBA Supports Interlock Switch
          Reports the status of the CAP.SIS bit to determine if the platform
          supports interlock switches.
          Severity: Status Only

     7.4  HBA Capabilities Register Locked
          Checks that the all the RWO bits in the HBA Capabilities Register have
          been written to by the BIOS. If BIOS wishes to use the default value,
          it must write that value to lock the register. The entire register must
          be written at once.
          Severity: Medium

     7.5  HBA Capabilities Number of Ports
          Reports the maximum number of  ports supported by the HBA silicon.
          Severity: Status Only

     7.6  AHCI Enable Bit Set Status
          Reports on the status of the AE bit in the Global HBA Control Register.
          Setting this bit disables the Legacy and Native interfaces on
          the SATA controller and enables AHCI. Enabling AHCI is necessary on ESB2
          and ICH8R systems.
          
          Severity: Status Only

     7.7  Port Implemented Bit Set for Port x
          Reports the status of the Port Implemented bit for each port. Only
          ports that have been implemented can be used.
          Severity: Status Only

     7.8  PI Bit Matches PE Bit for Port x
          Makes sure the Port Implemented and Port Enabled bits match for each
          port.
          Severity: Status Only

     7.9  Aggressive Link Power Management on Port x
          Reports status of ALPE bit in AHCI device command register.
          Severity: Status Only

     7.10 Hot Plug Support on Port x
          Reports status of HPCP bit in AHCI device command register.
          
          Severity: Status Only

     7.11 Interlock Switch Attached to Port x
          Reports status of ISP bit in AHCI device command register. Bit is
          always listed as N/A when the SIS bit in the capabilities register is
          clear.
          Severity: Status Only

     7.12 Mechanical Presence Switch State (MPSS) of Port x
          Reports status of MPSS bit indicating presence of disk
          Severity: Status Only

     7.13 ISP Requires HPCP on Port x
          A port cannot support an interlock switch if the HBA does
          not support Hot Plug. This is only tested if test 'HBA Supports
          Interlock Switch' reports "Enabled"
          Severity: Medium

     7.14 ALPE and HPCP Cannot Both be Set on Port x
          Checks that one or both of the ALPE and HPCP bits are clear. They
          cannot both be set at the same time.
          Severity: Medium

     7.15 Port x Command Register Locked
          Checks that all RWO bits in the AHCI device command register have been
          written to by the BIOS. If BIOS wishes to use the default value, it
          must write that value to lock the bits.
          Severity: Medium

     7.16 Port x Command Register ESP Bit Set
          Checks the value of the ESP bit in the Port x Command Register.
          If the bit is set, it means the port is set as an external,
          if the bit is clear, it means the port is internal. 
          Severity: Status Only

     7.17 Port x DEVSLP Register DSP Bit Set
          Checks the value of the DSP bit in the Port x DEVSLP Register.
          If the bit is set, it means the port supports Device Sleep,
          if the bit is clear, it means the port does not support Device Sleep. 
          Severity: Status Only

     7.18 Port x DEVSLP Register ADSE Bit Set
          Checks the value of the ADSE bit in the Port x DEVSLP Register.
          If the bit is set, it means the port enabled Aggressive Device Sleep,
          if the bit is clear, it means the port disabled Aggressive Device Sleep.
          Severity: Status Only

     7.19 CAP.SIS and PxCMD.ISP Agreement
          Checks that the value in CAP.SIS and the ISP bit in each port's command
          register are compatible. Test fails when: (1) CAP.SIS bit is set but
          ISP bit not set in any PxCMD register, or (2) CAP.SIS bit is clear but
          ISP bit is set in one or more PxCMD registers.
          Severity: Medium

     7.20 Software Feature Mask Bit
          Checks bit index 6 of the Vendor Capabilities Register 
          Abar+A0h.  If set, then the Software Feature Mask Bits 
          at offset C8h will be interpreted by the OROM to
          perform BIOS controlled Feature SKUing.
          Severity: Status Only

     7.21 HBA Capabilities Ext. Supports DEVSLP
          Reports the status of the CAP2.SDS of the HBA Capabilities Ext. Register to report
          if the HBA supports Device Sleep.
          Severity: Status Only

     7.22 HBA Capabilities Ext. Supports ADM
          Reports the status of the CAP2.SADM of the HBA Capabilities Ext. Register to report
          if the HBA supports Aggressive Device Sleep Management.
          Severity: Status Only

     7.23 HBA Capabilities Ext. Enabled DESO
          Reports the status of the CAP2.DESO of the HBA Capabilities Ext. Register to report
          if the HBA enabled DEVSLP Entrance from Slumber Only.
          Severity: Status Only

10. EFI Fast Boot Support

    10.1  Fast Boot
          Verifies Phase Handoff Information Table (PHIT) Handoff Block (HOB) is published by
          BIOS so RST UEFI driver can determine boot mode.
          Severity: Status Only

    10.2  Fast Boot ACPI Table
          Verifies Fast Boot ACPI table has been published by RST UEFI driver.
          Severity: Status Only

16. Remapping Tests

    16.1  Remap Enabled on LPT/WPT
          Verifies Remap has been enabled and at least one remapped disk is present.
          Severity: Status Only

    16.2  PCIe Memory BAR Remapped on LPT/WPT
          Set to '1' if a PCIe device is present and remapping of its memory BAR register
          space is enabled. Cleared to '0' if there is no PCIe device present or the
          remapping of its memory BAR register space is disabled.
          Severity: Status Only

    16.3  Remap Enabled on SPT
          Verifies Remap has been enabled and at least one remapped disk is present.
          Severity: Status Only

    16.4  PCIe Memory BAR Remapped on SPT
          Set to 1 if NVM Remap device is present and remapping of its memory BAR register
          space is enabled. Cleared to 0 if there is no NVM Remap device present or
          remapping of its memory BAR register space is disabled.
          If Cycle Router Enabled, display related information from MMIO space.
          Severity: Status Only

    16.5  AHCI Ctrl Extended Config
          If Cycle Router Enabled, display link and port config from AHCI Ctrl Extended Config Space
          Severity: Status Only

    16.6  Remapped Device
          If Cycle Router Enabled, display link and port config from AHCI Ctrl Extended Config Space
          Severity: Status Only

17. FFS Tests

    17.1  RstCacheMpbProtocol Discovery
          Determines if RstCacheMpbPorotocol has been published by RST UEFI driver and prints out values if it is.
          Severity: Status Only


*********************************************************************************
* DISCLAIMER
*********************************************************************************

Information in this document is provided in connection with
Intel products. Except as expressly stated in the INTEL
SOFTWARE LICENSE AGREEMENT contained herein, no license,
express or implied, by estoppel or otherwise, to any
intellectual property rights is granted by this document.
Except as provided in Intel's Terms and Conditions of Sale
for such products, Intel assumes no liability whatsoever,
and Intel disclaims any express or implied warranty,
relating to sale and/or use of Intel products, including
liability or warranties relating to fitness for a particular
purpose, merchantability or infringement of any patent,
copyright or other intellectual property right. Intel
products are not intended for use in medical, lifesaving,
or life sustaining applications.


*********************************************************************************
* Intel Corporation disclaims all warranties and liabilities
* for the use of this document, the software and the
* information contained herein, and assumes no
* responsibility for any errors which may appear in this
* document or the software, nor does Intel make a commitment
* to update the information or software contained herein.
* Intel reserves the right to make changes to this document
* or software at any time, without notice.
*********************************************************************************

* Third-party brands and names may be claimed as the 
  property of others.


Copyright (C) Intel Corporation.  All rights reserved.


*********************************************************************************
* INTEL SOFTWARE LICENSE AGREEMENT
********************************************************************************
INTEL SOFTWARE LICENSE AGREEMENT (Alpha / Beta, Organizational Use)

IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING. 

Do not use or load this software and any associated materials (collectively, 
the "Software") until you have carefully read the following terms and 
conditions. By loading or using the Software, you agree to the terms of 
this Agreement. If you do not wish to so agree, do not install or use the 
Software.

The Software contains pre-release "alpha" or "beta" code, which may not be 
fully functional and which Intel Corporation ("Intel") may substantially 
modify in producing any "final" version of the Software.  Intel can provide 
no assurance that it will ever produce or make generally available a "final" 
version of this Software.

LICENSE. This Software is licensed for use only in conjunction with Intel 
component products.  Use of the Software in conjunction with non-Intel 
component products is not licensed hereunder. You may copy the Software 
onto your organization's computers for your organization's use, and you 
may make a reasonable number of back-up copies of the Software, subject 
to these conditions: 
1. You may not copy, modify, rent, sell, distribute or transfer any part of 
the Software, except as provided in this Agreement, and you agree to prevent 
unauthorized copying of the Software.
2. You may not reverse engineer, decompile or disassemble the Software. 
3. You may not sublicense the Software.
4. The Software may contain the software or other property of third party 
suppliers, some of which may be identified in, and licensed in accordance 
with, an enclosed "license.txt" file or other text or file. 

OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software 
remains with Intel or its suppliers. The Software is copyrighted and 
protected by the laws of the United States and other countries, and 
international treaty provisions. You may not remove any copyright notices 
from the Software.  Intel may make changes to the Software, or to items 
referenced therein, at any time and without notice, but is not obligated 
to support or update the Software. Except as otherwise expressly provided, 
Intel grants no express or implied right under Intel patents, copyrights, 
trademarks or other intellectual property rights. You may transfer the 
Software only if the recipient agrees to be fully bound by these terms 
and if you retain no copies of the Software.

LIMITED MEDIA WARRANTY.  If the Software has been delivered by Intel on 
physical media, Intel warrants the media to be free from material physical 
defects for a period of (90) ninety days after delivery by Intel. If such 
a defect is found, return the media to Intel for replacement or alternate 
delivery of the Software, as Intel may select.

EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS 
PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND, 
INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT OR FITNESS FOR 
A PARTICULAR PURPOSE.  Intel does not warrant or assume responsibility 
for the accuracy or completeness of any information, text, graphics, 
links or other items contained within the Software.

LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE 
LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST 
PROFITS, BUSINESS INTERRUPTION OR LOST INFORMATION) ARISING OUT OF THE 
USE OF OR THE INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED 
OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR 
LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL 
DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE OTHER 
LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION. 

TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time 
if you violate its terms. Upon termination, you will immediately destroy the 
Software or return all copies of the Software to Intel.
 
APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the 
laws of California, excluding its principles of conflict of laws and the 
United Nations Convention on Contracts for the Sale of Goods. You may not 
export the Software in violation of applicable export laws and regulations. 
Intel is not obligated under any other agreements, unless they are in writing 
and signed by an authorized representative of Intel.

GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED 
RIGHTS." Use, duplication or disclosure by the Government is subject to 
restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or 
their successors. Use of the Software by the Government constitutes 
acknowledgment of Intel's proprietary rights therein. Contractor or 
Manufacturer is Intel Corporation, 2200 Mission College Blvd., 
Santa Clara, CA 95052.
SLA-ALPHABETA-ORG.DOC/RBK/01-21-00


