Linux® Device Driver Programmer's Guide - Porting to SGI® Altix® Systems

Document Number: 007-4520-007

Front Matter

| List of Figures | List of Examples | List of Tables |


Table of Contents

New Features in This Guide

About This Guide
Related Resources
Obtaining Publications
Reader Comments

1. Introduction
Legacy Functionality
Special Architectural Considerations
Porting a Driver to Altix Systems -- A Quick Start Guide

2. Architecture
System Components
System Memory Address Space
Memory Access

3. PCI-X Device Attachment
PX-brick with BaseIO (IX-brick)
PX-brick Expansion
PCI-X Implementation

4. PCI System Initialization

5. Finding Your PCI Device
Physical Location of Your PCI Device
Logical Address of Your PCI Device
Physically Locating Your PCI Device Information
Programmatically Locating Your PCI Device

6. PCI/PCI-X Configuration Space

7. PCI-X I/O and Memory Resources
Anatomy of a PIO Address
PIO Addresses
Flow of PIO Operation
PIO Address Translation from CPU to PCI Bus
PCI-X PIO Resource Management
PIO Write (Posted) Synchronization
PIO Read Flushing Posted DMA Buffers

8. PCI-X Interrupt Mechanism
Interrupt Architecture
Interrupt Request (IRQ) Management
Driver Interrupt Registration

9. PCI-X Direct Memory Access (DMA)
Types of DMA Mappings
Anatomy of a Mapped DMA Address
PCI-X DMA Address Management
PCI-X DMA Mapped Routines

10. Device Driver Memory Usage
Device Driver Memory Allocation
Allocating Page Boundary Memory
Allocating Page Boundary Memory on Specific Nodes
Allocating Byte-Range Memory
Accessing the User Memory Area
Disabling Validity Checking
Directly Mapping User Virtual Addresses

11. Time Management
Interval Timer Counter (ITC)
Delaying Execution -- Short Delay
Delaying Execution -- Long Delay

12. Building Linux Kernels and Modules
Default Configuration File
Building a New Linux Kernel
Booting Your New Linux Kernel
Rebuilding Modules
Downloading SGI Altix RPMs
Building New Modules

A. Memory Operation Ordering on SGI Altix Systems
Memory Ordering
Release Semantics
Acquire Semantics
Memory Fencing

Index