-------- Original Message --------
Subject: Xorg driver selection based on VIS_GETIDENTIFIER [PSARC/2008/294
FastTrack timeout 05/07/2008]
Date: Wed, 30 Apr 2008 14:43:28 -0700 (PDT)
From: Alan Coopersmith <alan.coopersm...@sun.com>
To: PSARC-ext at Sun.COM
CC: Alan.Coopersmith at Sun.COM

I am sponsoring this fast-track for myself and have set the timeout for
next Wednesday, May 7, 2008.    This case requests a micro/patch release
binding.

        -Alan Coopersmith-           alan.coopersmith at sun.com
         Sun Microsystems, Inc. - X Window System Engineering


Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         Xorg driver selection based on VIS_GETIDENTIFIER
    1.2. Name of Document Author/Supplier:
         Author:  Alan Coopersmith
    1.3  Date of This Document:
        30 April, 2008
4. Technical Description

Currently when no xorg.conf is present, the Xorg integrated in Solaris
uses these heuristics to generate the list of device drivers to try
running for a specific device - once the list is generated, each is
tried in order until one reports that it successfully loaded and
initialized the device.

1) The PCI vendor id & device id is mapped to a driver name using heuristics
   found in the Xorg binary.   This driver may be a module that uses further
   checks to determine a more specific driver to load - for instance, if the
   PCI vendor id is 0x1002, the "ati" module is loaded, which then uses the
   device id to determine whether the "atimisc" (Mach64), "r128" (Rage), or
   "radeon" drivers is most appropriate for this device, without having to
   hardcode all the ATI device ids into the X server.

2) The file specified by -dev command line option ("/dev/fb" if -dev is
   not specified) is opened, and the VIS_GETIDENTIFIER ioctl is called to
   get the device identifier string from the kernel device driver.

   This string is traditionally an all caps vendor identifier (stock
   ticker symbol or similar) followed by a lower case driver name.

   For most x86 devices this will be "SUNWtext" from the vgatext driver.
   The nvidia accelerated driver on x86 returns "NVDAnvda".   SPARC devices
   include "SUNWffb", "SUNWm64", "SUNWkfb", and other similar names.

   If the string returned is "NVDAnvda", the "nvidia" driver is used instead
   of whatever driver name was found by step 1.

   [This step is a Sun addition, since VIS_GETIDENTIFIER is Solaris specific.]

3) A platform specific list of fallback devices is checked:
        SPARC:  wsfb
        x86: fbdev [not shipped on Solaris], vesa, vga

On the SPARC platform, where unlike x86, all graphics devices have kernel
drivers which can identify them, we need to expand the use of the
VIS_GETIDENTIFIER ioctl to load the right driver module.

This case thus adds to the above step 2 these additional heuristics:

        If the device identifier consists of a sequence of uppercase letters
        followed by non-uppercase-letter characters, the driver string
        will be split into two portions - the "vendor" portion
        consisting of the initial all-uppercase string, and the "device"
        portion consisting of the remainder of the string.

        The Xorg driver module names consisting of the vendor string and
        device string will be used in that order as the list of drivers
        instead of whatever driver was found in step 1.

For instance, given a VIS_GETIDENTIFIER result of "SUNWm64" on a SPARC
system, the list of driver modules tried will be, in this order:
        SUNW_drv.so
        m64_drv.so
        wsfb_drv.so

The existing hardcoding of NVDAnvda to the nvidia driver module will remain
for compatibility, but no further hardcoded driver names are planned, and
any future x86 kernel video device drivers will be recommended to chose a
VIS_GETIDENTIFIER string that works with the new heuristics.

Imported Interfaces:
--------------------
VIS_GETIDENTIFIER               Uncommitted     PSARC 1993/133 & visual_io(7I)

Exported Interfaces:
--------------------
Autoloading of vendor & device modules                  Uncommitted

6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                X Consolidation (Desktop C-Team)
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


-- 
        -Alan Coopersmith-           alan.coopersmith at sun.com
         Sun Microsystems, Inc. - X Window System Engineering


Reply via email to