PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Figures, Tables, and Listings

Chapter 1 PCI Bus Overview

Figure 1-1 PCI system architecture for Power Macintosh

Table 1-1 Comparison of NuBus and the PCI bus

Table 1-2 PCI options chosen for Power Macintosh

Table 1-3 Bridge support for PCI cycle types

Table 1-4 Commands between PowerPC processor and PCI bus

Table 1-5 PowerPC processor to PCI maximum bandwidth summary

Table 1-6 PCI master to system memory maximum bandwidth summary

Table 1-7 Bridge master errors

Table 1-8 Bridge target errors


Chapter 2 Data Formats and Memory Usage

Figure 2-1 Big-endian and little-endian addressing

Figure 2-2 Big-endian to big-endian bus transfer

Figure 2-3 Sample frame buffer format

Table 2-1 Power Macintosh memory allocations

Listing 2-1 Endian addressing mode test


Chapter 3 Introduction to the NewWorld Architecture

Table 3-1 Snag keys supported by Macintosh Open Firmware


Chapter 4 Startup and System Configuration

Figure 4-1 PCI configuration register map

Figure 4-2 PCI-to-PCI bridge register map

Table 4-1 PowerPC processor addressing


Chapter 5 PCI Open Firmware Drivers

Table 5-1 Open Firmware common symbols

Table 5-2 Forth number base commands

Table 5-3 Forth stack commands

Table 5-4 Forth arithmetic commands

Table 5-5 Forth conditional commands

Table 5-6 Forth commands for loop operations

Table 5-7 Forth commands for keyboard operations

Table 5-8 Forth Memory mapping commands

Table 5-9 Commonly used Open Firmware user interface commands

Table 5-10 SGR escape sequence parameters

Table 5-11 Color table values

Listing 5-1 Example of printenv output

Listing 5-2 Minimal PCI SCSI card FCode support

Listing 5-3 Minimal network FCode driver support

Listing 5-4 Minimal display FCode driver support


Chapter 6 Native Driver Overview

Figure 6-1 New system model

Figure 6-2 Typical role of the Name Registry

Figure 6-3 Uniprocessing and multiprocessing execution


Chapter 7 Finding, Initializing, and Replacing Drivers

Listing 7-1 File-based driver sorting

Listing 7-2 Enabling PCI spaces

Listing 7-3 Getting a device's logical address


Chapter 8 Writing Native Drivers

Table 8-1 Kind and execution levels for Device Manager requests

Table 8-2 Reserved unit numbers

Table 8-3 Driver gestalt codes

Table 8-4 DCE bits in dCtlflags word

Table 8-5 DriverGestalt selectors

Table 8-6 DriverGestalt selector four character codes and constants

Listing 8-1 Typical driver description

Listing 8-2 Driver handler for DoDriverIO

Listing 8-3 Initialization, finalization, and termination handlers

Listing 8-4 Enabling PCI spaces

Listing 8-5 Device probing

Listing 8-6 Managing open and close commands

Listing 8-7 Sample driver read routine

Listing 8-8 Sample driver control routine

Listing 8-9 Sample driver status routine


Chapter 9 Driver Loader Library

Figure 9-1 Position of Driver Loader Library

Figure 9-2 Driver Loader Library functions

Listing 9-1 Finding file-based driver candidates

Listing 9-2 Unloading a driver

Listing 9-3 Using the LookupDrivers function


Chapter 10 Name Registry

Figure 10-1 Using name properties

Figure 10-2 Typical Name Registry structure

Table 10-1 Reserved Name Registry property names

Table 10-2 Gestalt properties

Listing 10-1 A typical device tree

Listing 10-2 Adding a name entry to the Name Registry

Listing 10-3 Finding and removing child entries

Listing 10-4 Using RegistryEntrySearch

Listing 10-5 Obtaining an entry ID

Listing 10-6 Obtaining a parent entry

Listing 10-7 Updating or creating a property

Listing 10-8 Iterating through properties

Listing 10-9 Obtaining a property value

Listing 10-10 Saving a property to disk

Listing 10-11 Sample code to fetch virtual memory gestalt

Listing 10-12 Adding a name entry to the Name Registry

Listing 10-13 Retrieving the value of a property

Listing 10-14 Removing a device entry from the Name Registry

Listing 10-15 Listing names and properties


Chapter 11 Driver Services Library

Figure 11-1 IOPreparationTable structure

Table 11-1 BlockMove versions

Table 11-2 Services available to drivers

Listing 11-1 Adding a 'sysz' resource to the system heap

Listing 11-2 Disposing of a property

Figure 11-2 Interrupt source tree example

Listing 11-3 Interrupt registration


Chapter 12 Expansion Bus Manager

Table 12-1 Typical NVRAM space allocations

Listing 12-1 Sample NVRAM manipulation code

Listing 12-2 Determining power consumption


Chapter 13 Graphics Drivers

Figure 13-1 Luminosity and electron beam strength

Figure 13-2 Gamma table structure

Figure 13-3 Examples of gamma table correction

Table 13-1 Implementing VESA DPMS modes with SetSync

Table 13-2 Sample csConnectTaggedType and csConnectTaggedData values


Chapter 14 Network Drivers

Figure 14-1 Packet formats recognized by the CSMA/CD driver

Figure 14-2 Message for enabling a SNAP

Figure 14-3 Message for enabling a group SAP


Chapter 15 SCSI Drivers

Listing 15-1 SIM descripto


Appendix A Big-Endian and Little-Endian Addressing

Figure A-1 Neutral descriptor layout

Figure A-2 Big-endian descriptor layout

Figure A-3 Little-endian descriptor layout

Figure A-4 Byte swapping in NuBus

Figure A-5 Little-endian memory image

Figure A-6 Big-endian memory image

Figure A-7 Big-endian RGB 16-bit pixel format

Figure A-8 Little-endian RGB 16-bit pixel format

Figure A-9 Little-endian descriptor in memory

Figure A-10 Little-endian descriptor with big-endian addresses

Figure A-11 Descriptor swizzled by little-endian processing mode0

Listing A-1 Field value initializer

Listing A-2 Endian mode determination code


Appendix B Graphic Memory Formats

Figure B-1 1-bit-per-pixel formats

Figure B-2 16-bits-per-pixel formats

Figure B-3 24- and 32-bits-per-pixel formats

Figure B-4 YUV pixel formats

Listing B-1 C structures for pixel formats


Appendix C PCI Header Files

Table C-1 Header files for Macintosh PCI development

Table C-2 PCI-related functions and data structures


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)