Intel(R) 3100 Chipset driver support for RHEL 4.0 Update1.

Linux Driver Release Notes

Overview:
=========
This document describes Linux software support for SATA, SMBUS, WDT and EDMA
devices integrated into the Intel integrated MCH and ICH chipset.

Bill of Materials
=================
   ReleaseNotes.txt                           - Release notes - this file
   Intel_ESB2_WML_RHEL4_U1.patch              - Kernel patch
   Intel_ESB2_SATA_AHCI_RHEL4_U1_IA32_dd.img  - AHCI driver floppy image
   ReleaseNotes.txt                           - WatchDog Timer release notes
   iwdt.c                                     - WatchDog Timer Driver
   iwdt.h                                     - WatchDog Timer Driver
   Makefile                                   - Makefile to build wdt driver
   iwdtdemo.c                                 - WatchDog timer demo application
   dma_api.h                                  - EDMA Driver
   dma.c                                      - EDMA Driver
   dma.h                                      - EDMA Driver
   dma_internals.h                            - EDMA Driver
   dma_list.h                                 - EDMA Driver
   dma_list.h                                 - EDMA Driver
   Makefile                                   - Makefile to build edma driver
   ReleaseNotes.txt                           - EDMA release notes

   Directory Tree:
   ---------------

   Linux_Release
   |   
   +---ReleaseNotes.txt
   |   
   +---patches
   |       Intel_ESB2_SATA_AHCI_RHEL4_U1_IA32_dd.img
   |       Intel_ESB2_WML_RHEL4_U1.patch
   |
   \---sources
       |       
       |       
       +---wdt
       |   |   
       |   +---ReleaseNotes.txt
       |   |       
       |   +---driver
       |   |       iwdt.c
       |   |       iwdt.h
       |   |       Makefile
       |   |
       |   \---demoapp
       |           iwdtdemo.c
       |
       |
       \---edma
               dma_api.h
               dma.c
               dma.h
               dma_internals.h
               dma_list.h
               Makefile
               ReleaseNotes.txt

 

Scope:
======
This documentation and associated software is designed for use on 
the Intel's 'Mt. Arvon' Customer Reference Board with a WDT-enabled 
system bios.

It has been validated using following Linux Distribution/Kernel Versions:

Distribution                            Kernel
====================================    ======
RedHat EL 4.0 Advanced server Update1   2.6.9 
Redhat EL 4.0 Work Station Update1      2.6.9

Special instructions to install Linux with AHCI support:
========================================================
  1. Start with fresh Linux install. 
  2. Set CMOS "Advanced"->"IDE Configuration" to "Enhanced" and "AHCI".
  3. When you set configuration as AHCI, RHEL 4.0 U1 kernel doesn't recognize
     any of the SATA drives. So you can to use USB CD-ROM drive to install
     the OS.
  4. Connect SATA hard disk to SATA0 port. Attach USB CD-ROM to a USB port.
  5. Before starting the installation, run the below dd command on any linux
     system to create a driver floppy disk.
       dd if=Intel_ESB2_SATA_AHCI_RHEL4_U1_IA32_dd.img of=/dev/fd0
     Above command creates the necessary driver disk for Linux AHCI support.
     Use this floppy as below.
  6. Start the system and make sure the CMOS settings are 
       BIOS version: MTAVA006 or later.
       "CPU Configuration"->"Speed Stepping"->"Disabled" (workaround for ACPI
                                                          support),
       "IDE Configuration"->"Enhanced" + "AHCI"
       "Boot Order"       -> CDROM, HARDDISK
  7. Start installing Linux from USB CD-ROM. Make sure to type "linux dd" 
     when you get the interactive prompt. This is to tell the installation 
     program to read a driver from the disk. Then it will prompt to insert
     the floppy.
  8. Continue Linux installation and reboot.
  9. System will comeup with AHCI support. Run "lspci" to verify SATA is 
     running in AHCI mode.

How to apply the patch:
=======================
 1. Install Linux sources

    a. Get RHEL4-AS/WS Update 1 Source Disk 4
    b. From some directory on your Linux target system:
         mkdir cdrom
         mkdir temp
         mount /dev/cdrom cdrom
         cp cdrom/EULA temp
         cp cdrom/GPL temp
         cp cdrom/RPM-GPG-KEY temp
         cp cdrom/TRANS.TBL temp
         cp cdrom/SRPMS/kernel-2.6.9-5.EL.src.rpm temp
         cd temp
         rpm --import RPM-GPG-KEY
         rpm -i kernel-2.6.9-11.EL.src.rpm
         cd /usr/src/redhat/SPECS/
         rpmbuild -bp --target=i686 kernel-2.6.spec
         cd /usr/src
         ln -s /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 linux

    The source tree is at /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9

  2. Apply patch
         cd /usr/src/linux
         cp <Intel_ESB2_WML_RHEL4_U1.patch> .
         patch -p1 < Intel_ESB2_WML_RHEL4_U1.patch

  3. Build Linux kernel
         cd /usr/src/linux
         make menuconfig
            Note on menuconfig: 
                  No special menuconfiguration is required. All required
                  drivers for WhitmoreLake chipset were included in the
                  default configuration. After you get into the menu save 
                  the config and close the menu. The saved config for current
                  menuconfig uses the default configuration which saved 
                  as part of the OS installation.
         make

  4. Install new kernel and reboot
         sudo make modules_install install
         reboot

Loading I2C drivers:
====================
  modprobe i2c-core
  modprobe i2c-i801
  modprobe i2c-dev

Useful I2C utilities:
=====================

  i2cdetect 0
   scans i2c bus 0 and lists addresses of devices found on bus 0

  i2cdump 0 dev_addr b
   reads/displays all registers in device at dev_addr. 
      example: i2cdump 0 0x30 b

  i2cset bus dev_addr reg value
   writes <value> to <reg> in device @ <dev_addr>...
      example: i2cset 0 0x30 0x00 0xFF
      writes 0xFF to reg=0x00 in device @ addr=0x30 on i2c bus 0

  For more information on these utilities read their respective man pages.

WDT driver:
===========
   For WDT driver 'cd sources/wdt' and go through the 'ReleaseNotes.txt' for 
   the WDT driver.

EDMA driver:
===========
   For EDMA driver 'cd sources/edma' and go through the 'ReleaseNotes.txt' for 
   the EDMA driver.

Errata:
=======
   1) Plextor SATA DVD Drive - PX-712SA: This drive isn't supported in AHCI
      mode on Linux by the manufacturer. This could be potentially a hw issue
      or ATAPI isn't working (or supported) in Linux kernel in AHCI mode.
