SCO Driver Delivery Handbook
November 28, 2001
Version 1.05.3

Contents:

Purpose/Objective

In an attempt to keep hardware support as up-to-date as possible for SCO Operating Systems, we are moving to a paradigm where the latest version of drivers will be made available to mutual customer via SCO's WEB site on a pro-active basis.  As SCO releases updated Media Kits, the latest driver version available on the WEB will be incorporated. The drivers available on SCO's WEB site are fully supported by SCO.

While this new paradigm releases us from meeting Media Kit release deadlines, there is still an acceptance criteria which must be met for each new/updated driver received.  The purpose of this document is to define the high level requirements which comprise a hand off that will meet the acceptance criteria.  Technology Partners will be kept apprised of SCO's Media Kit releases and any specific requirements which are not covered in this document via email from their appropriate SCO liaison (i.e., Vendor Manager.)

This document does not address requirements for other driver certification programs within SCO, i.e., Test and Certified Program, Vendor Contributed Program, etc.

Documentation Change Requests

Comments, addition and subtraction request for this document should be forwarded in email to:
kathryna@sco.com.

Intended Audience

The primary audience for this document is SCO's Technology Partners and SCO's  Driver Delivery Team.

Developer's Toolkit Documentation

The developer's toolkit for the OpenServer 5 and UnixWare 7 operating systems is called:
Hardware Developers Kit (HDK)
 
The latest version of this toolkit documentation is available at: http://www .sco.com/developers/hdk/documentation

To familiarize yourself with the latest information on driver development, review the following documentation from the developer's toolkit.


Development Process Overview

In order to ensure that your hand off to SCO is complete and will meet the acceptance criteria, please follow the sequential steps outlined below. See the appropriate Appendix for additional, specific hand off requirements for driver model and Operating System.
  1. Unless otherwise instructed by your SCO liaison, install the following SCO Software:
  2. Create a working directory for your driver in the build tree on the build machine, develop and compile the driver and make an installable floppy of the driver
  3. Install the floppy on the test machine using custom or pkgadd
  4. Execute the appropriate Test Plan and prepare the Test Results Report
  5. Provide the deliverables defined below to SCO

Graphics Drivers - Development and Test Instructions

Following are development and test instructions which are ancillary to the instructions contained in the HDK and are specifically designed to assure a driver hand off which meets the acceptance criteria of this document.

UnixWare 7 Graphics Driver Development

UnixWare 7.0.1 Graphics Driver Development

UnixWare 7.1.0 Graphics Driver Development

UnixWare 7 Graphics Driver Test Plan

A.  Installation of your test machine

  • Install UnixWare 7
  • NOTE: You must have all required supplements installed.
  • Install the UnixWare and OpenServer Development Kit  (UODK) cdrom
    1. log in as root
    2. Insert the UODK cdrom into your computer and type:
    3. Press Enter to select the udk  package set.
    4. Install all of the packages or install only the X11R6 Development System
    5. Select Apply
    6. Enter your Development System license number
    7. Select Apply
    8. Select quit after the installation completes
  • Install the Hardware Developers Kit  (HDK) cdrom
    1. log in as root
    2. Insert the HDK cdrom into your computer
    3. Press Enter to select the hdk  package set.
    4. Install all of the packages or install only the X11R6 Graphics Test
    5. Select Apply
    6. Answer yes to the question  Do you want to install the Unisoft Test Suite? (default y)
    7. Press Enter to install the test suites into the default directory of /usr/src/ihvkit/display/test/xsuite
    8. Select quit after the installation completes
  • Disable Scologin
    1. scologin disable
  • Install your Video Driver on the test computer.
    1. Use the MakeProduct script on your build machine to build your Video Driver package file. You can then install the package file on the test machine using the command:
     

    B. Video Configuration

  • Video Configuration
    1. Run the Video Configuration Manager to configure your adapter.
    2. Select Add Adapter
      1. Your video adapter should be autodetected.
    3. Select OK
    4. Select Monitor
      1. Select a monitor from the list (any monitor is fine). However, if the vertical refresh rate of the monitor is listed in the grafinfo file, make sure you have a monitor attached that supports that refresh rate.
    5. Select Resolution
    6. Configure the highest resolution supported by your monitor (at 256 colors).
    7. Select OK
    8. Select Assign all function keys
    9. NOTE:  You just completed configuring all screens with your resolution selection. Now configure a different resolution and color depth to run on vt02/tty02. This is used to verify screen switching later.
    10. Select Modify
    11. Select OK
    12. Select Add Resolution
    13. Select a different resolution and a different color depth. For example, if you initially selected 1280x1024  256 colors select 1024x768  64K colors
    14. Select Specify function keys
    15. Select OK
    16. Select vt02
    17. Select OK
    18. Select OK
    19. Select OK

     C. Grafinfo file testing

  • Grafinfo file Testing
  •  D. Color, Font, Window Manager and Screen Switch testing

  • Verify Color and Fonts are displayed properly.
    1. startx
    2. /usr/bin/X11/color3 &  (or  /xtests/color3/color3)
    3. NOTE:  If color3 appears solid white (or black), try resizing the window. The colorwheel will appear after doing this. If you expose a covered portion of the color3 window and it does not redraw, resize the window again. This is a problem with color3.
    4. /usr/bin/X11/text2 -a &  (or  /xtests/fonts/text2 -a)
  • Window Manager verification
    1. Pop-up or pull-down some menus
    2. Run color3 and other windows. Move them around and resize them
    3. Watch for screen corruption
  • Screen switching verification
    1. Switch screens between vt01/tty01 and vt02/tty02 and a text screen vt03/tty03 slowly and rapidly. Use the key sequence ctrl-alt-F1, ctrl-alt-F2, ..., to switch screens.
    2. Verify color3 colormap is not corrupted during screen switches
    3. Watch for other screen corruption

    E. Desktop Verification

    1. startx
    2. Closely watch the Desktop as it is starting up. Pop-up and pull-down some menus, move and resize windows.
    3. Watch for screen corruption

     F.  Unisoft Test Suite (UTS)

  • Documentation is located in the directories:
  • Building the UTS
  • Running the UTS
  • Generate a UTS report
  •  G. Performance Test

  • To run  x11perf  (x11perf.SCO on OpenServer 5)
    1. cd  /usr/src/ihvkit/display/Xserver/tests/x11perf  (on OpenServer 5cd  /xtests/xperf/x11perf.SCO)
    2. RunTests
    3. Results are saved in summary. Detailed information is stored in the results/ directory.
  • To run  xbench
    1. cd  /usr/src/ihvkit/display/Xserver/tests/xbench
    2. RunTests
    3. Results are saved in summary. Detailed information is stored in the results/ directory.

    I.  Completion of all tests

    1. PASS/FAIL  graftest - all resolution/modes listed in the grafinfo file executed properly
    2. PASS/FAIL  Color3, Text2, Window Manager all executed properly at all color depths listed in the grafinfo file
    3. PASS/FAIL  Screen Switching executed properly
    4. UTS Archived test results summary file /usr/src/ihvkit/display/test/xsuite/results
    5. x11perf Archived test results summary file /usr/src/ihvkit/display/Xserver/tests/x11perf
    6. xbench Archived test results summary file /usr/src/ihvkit/display/Xserver/tests/xbench

    OpenServer Release 5 Graphics Drivers Development

    OpenServer Release 5 Graphics Drivers Test Plan

    A.  Installation of your test machine

  • Install OpenServer Release 5
  • Install OpenServer Release 5 Development System
  • Install the OpenServer 5, X11 Graphics Test Suite package xtests.pkg. Installation instructions are located at X11 Graphics Tests
  • .

  • Disable Scologin
  • Install your Video Driver on the test computer.
    1. Use the MakeProduct script on your build machine to build your Video Driver media image file VOL.000.000. You can then install the media image file on the test machine using custom. Make sure your driver version/release number is later then the current shipping version of the driver on the Web or in SCO product (assuming your driver has been released previously). If it is not a later version, custom will not automatically upgrade your new driver.

     B.  Video Configuration

    C.  Grafinfo file testing

    D.  Color, Font, Window Manager and Screen Switch testing

    E.  Desktop Verification

    F.  Unisoft Test Suite (UTS)

    The UTS is an automated test suite. It will find rendering errors in your XDriver and is useful for regression testing after making any changes to your XDriver. Please run the UTS at each color depth supported by your video adapter. You may have to configure additional resolution/modes/color depths on more screens using the Video Configuration Manager scoadmin video.
    The UTS is provided in compiled form. You do not need to build it.
    There are 19 FAILures that are in the core server and cannot be corrected.
  • Documentation is located in the directories:
  • Configuring the UTS. Refer to /unisoft/README.sco.uts to complete the next steps.
    1. Complete the instructions under:
    2.  
    3. Complete the instructions under:
    4.  
    5. Additional notes:
  • Generate a UTS report. Refer to /unisoft/README.sco.uts to complete this step.
    1. Complete the instructions under:

    G.  Performance Test

    Network Drivers - Development and Test Instructions

    Following are development and test instructions which are ancillary to the instructions contained in the HDK and are specifically designed to assure a driver hand off which meets the acceptance criteria of this document.

    UnixWare 7 MDI Driver Development

    UnixWare 7 MDI Drivers Testing

    Required Tests

    This section lists tests that are required for drivers that are handed off to SCO. Test results journals or output files must be submitted as part of the handoff for each of all required tests.
    1. auto_mdi
    2. auto_dlpmdi
    3. auto_drvr
    4. auto_util
    5. auto_ncard - run with the same number of adapters as specified in the MAX_BD parameter in the bcfg file(s)
    6. spm - default number of frames, submit status output for both send and receive
    7. auto_tcp
    8. auto_nfs
    9. auto_spx
    10. DDI8 hotplug drivers - your own file containing documented test results.

    Automated Testing

    Manual Testing - Pull Cable

    Configure your card under TCP/IP, go into init state 3 and run "ping -s remote_machine". While the ping is happening, pull the cable out of the card. Make sure the system still functions correctly (that is, no panics, no keyboard lockups, etc.), but the ping response stops. Reinsert the cable and assure traffic is resumed.

    UnixWare 7 MDI Drivers - Failover and Hotplug Support

    PCI HotPlug Capable Machines for UW7.1.1 and OU8.0.0

  • Machines using the Compaq hotplug controller driver (cpqhpcd)
  • Machines using the Intel hotplug controller driver (intelhpcd)

    Below are specific definitions related to PCI hotplug and failover.

    1. "PCI HotPlug" - requires a hotplug capable machine and a ddi8 MDI driver which implements the CFG_SUSPEND and CFG_RESUME subfunctions in its config(D2) routine. PCI HotPlug failover allows the system administrator to suspend your driver, power down the slot, hot-swap/hot-replace the NIC, power up the slot, and resume your driver, all without bringing the machine down. Your driver need not send up MAC_HWFAIL_IND messages to initiate such a failover. Note that a hotplug ptf is required on UnixWare 7.1.0 to support hotplug operations on network drivers.
    2. "Relaint Non-Stop Clustering" - requires that your driver be able to program multicast addresses and the unicast MAC address with the MACIOC_SETMCA and MACIOC_SETADDR ioctls. Reliant Non-Stop Clustering works with any NIC bus type and both ddi7 and ddi8 drivers.
    3. "Backup Devices" - configured via the Network Configuration Manager work with any bus type and either a ddi7 or ddi8 driver by switching to the backup device when the MDI driver sends a MAC_HWFAIL_IND message upstream.
    4. If your driver implements letters c-f above then you should change FAILOVER=false to FAILOVER=true in your bcfg file in future handoffs to SCO so that netcfg will be able to configure your adapter as a backup device. SCO will be publishing information on which drivers currently support FAILOVER as well.

    Hot Plug Test Plan/CheckList for UnixWare 7.1.1 DDI8 Drivers.

    NOTE: You must have all required supplements installed.

    Using the Hotplug Manager (examples).

    Check List for Hot Plug (DDI8) drivers:




    OpenServer 5 MDI Driver Development

    Drivers must be written in C Programming Language with as little supporting assembler code as possible

    OpenServer 5 MDI Driver Test Plan

    TBD

    ISDN Drivers - Test Instructions

    Following are test instructions specifically designed to assure a driver hand off which meets the acceptance criteria of this document.

    UnixWare 7 ISDN Driver Testing

    Configuration Testing

  • Test configuration of all supported switch types.
  • Configure PPP for outgoing and incoming calls and establish connections for PPP over ISDN.
  • Test single link BRI.
  • Test two links for BRI.
  •   ppptalk <ENTER>
            list bundle <bundle_name> | more   - you see your 
    parameter settings
            bundle <bundle_name> {
               thrashtime = 30           - 30 secs of thrashing, open 2nd 
    link
               bodpay = caller           - caller initiates 2nd link (not 
    peer)
            }
            save                         - save your changes
            reset bundle <bundle_name>   - update the active bundle
            quit
    
      ppp status link                    - to verify 2B channels are 
    running
                                           once you've loaded the 
    connection
    
  • Test as many links active as possible for PRI.
  • For multicard drivers, test simultaneous operation of as many cards as possible (up to the number supported - see MAX_BD in xxx.bcfg file).
  • Performance Testing

  • Verify transfer rates over BRI and PRI.
  • Load Testing

  • Run flood pings ping -f between the machines to stress test the links.
  • Run telnet sessions between the machines and cat a long text file. The output should be continuous without unexpected bursts.
  •   	EG: from machine_a, 
    	telnet machine_b, log in and run
    		while :
    		do 
    	   		cat /etc/termcap
    	   		sleep 1
    		done
    
  • Now run the dool and cat tests above simultaneously overnight for ISDN over PPP to verify an extended load period. The system should be stable the next morning. Run sar to determine if the system resources (user and kernel memory -r -k) are being used up.
  • Deliverables

    SCO delivers to the Technology Partner

    1. Development Environment Software
    2. Test Environment Software
    3. Developer's Toolkit Software
    4. On an on-going basis, a complete list of open bug reports against the driver(s)
    5. On an on-going basis, technical driver development memorandums
    6. Source drops whenever modifications are made to the driver source by SCO

    Technology Partner delivers to SCO

    1. Email notification to your SCO liaison upon delivery of the driver hand off which includes a completed Hand off Checklist
    2. Everything specified in the Deliverables Section of the Hand off Checklist
    Minimal acceptance criteria for drivers submitted to SCO is the receipt and approval of all items listed above. Please note that further processing of the driver by SCO will not occur unless and until all of the deliverables are received.

    SCO Driver Hand Off Processing

    Following are the steps followed for processing a hand off from the Technology Partner:
    1. Assure that the hand off is complete as specified in the Technology Partner delivers to SCO section above
    2. Review Test Results Report and verify that there are no unexplained FAIL or ABORT messages - any problems such as testsuite failures must be satisfactorily explained in the REAMDE.tests file
    3. Verify that source hand off is complete as specified in the Deliverables Section of the Hand off Checklist
    4. Do a code review on the source received (optional)
    5. Build the driver from the source received
    6. Test the driver - this may include re-running portions of the Test Suite
    7. Check driver into SCO source tree
    8. Notify the Source Code Product Administrator that this source should not be included in SCO's Source Code Product (for new drivers)
    9. Provide top-of-tree source to the Technology Partner
    10. Provide installable image of the driver to the SCO BBS Administrator for BBS placement

    11. Update the CHWP (Compatibility Hardware Web Page) as necessary

    Check List Template


    Step Task Completed by (initials)/Date
    1 Read the Driver Delivery Handbook ____________________
    2 Read the Developer's Toolkit documentation ____________________
    3 Install the SCO development and test software ____________________
    4 Install driver source in the build tree, compile it and make installable image of the driver ____________________
    5 Install the driver from the installable image onto the test machines, ran appropriate test suites and/or execute appropriate Test Plan ____________________
    6 Run additional driver specific/OS specific tests as necessary ____________________
    7 Provide the following deliverables to SCO:
    • Completed Check List (this table)
    • Completed File Verification Template
    • Completed Driver README Template
    • Test results archive for all required tests in __tar  or __cpio format (check one), including:
      • Test Suite journals, results files, or logfiles from automated tests
      • SPM logfiles
      • Test Summary Report
      • README.test file that includes explanations of exceptions and results of all manual tests
    • Complete source archive in __tar  or __cpio format (check one), including:
      • All driver source sub directories
      • All driver source files, header files, and makefiles
      • Object files and the target Driver.o built from this source
    • Completed Change Description Template
    • Hardware, board level/chip level technical specs, hardware user documentation, and hardware setup documentation/software (if applicable)

    ____________________
    ____________________
    ____________________
    ____________________



    ____________________



    ____________________
    ____________________

    File Verification Template


    Item Filename sum-r Format [check one]
    Source Archive _____________________ _____________________ ___tar -or- ___cpio
    Test Suite Results Archive _____________________ _____________________ ___tar -or ___cpio

    Driver README Template

    Driver Prefix Designation:         &nb sp;                       &nb sp;       ________________________ _

    Technology Partner's Driver Version Number: _________________________

    SCO Operating System and Version:          & nbsp;         __________ _______________

    Supported Card Models or Chipsets: _________________________________

               &nb sp;                       &nb sp;                       &nb sp;              _________________________________

               &nb sp;                       &nb sp;                       &nb sp;              ___[list all supported cards/chipsets]___

    Limitations:
    [e.g., for Graphics drivers - list any standard Intel hardware modes not supported by the driver]
    [e.g., for Network drivers - list any modifications made to CUSTOM parameters or Space.c files when testing the driver]

    Configuration Parameters:
    [List configuration parameters for each card supported by the driver, e.g., network driver hardware options]

    Additional Information:
    [List any additional and important information about the driver.  For example, this card requires DOS configuration software to be run and here is how the card should be configured under DOS]

    Change Description Template

    Change 1