-------- 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