Platform Notes: The Sun Quad FastEthernet Device Driver

Setting the qfe Driver Parameters

You can set the qfe device driver parameters in three ways (ndd, /etc/system, and qfe.conf), depending on your needs. To set parameters that are valid until you reboot the system, use the ndd utility. Using ndd is a good way to test parameter settings.

To set parameters so they remain in effect after you reboot the system
  1. Add the parameter values to the /etc/system file when you want to set parameters for all devices in the system.

  2. Create a /kernel/drv/qfe.conf file and add parameter values to the this file when you need to set a particular parameter for a device in the system.

Setting Parameters Using the ndd Utility

Use the ndd utility to set parameters that are valid until you reboot the system. The ndd utility supports any networking driver, that implements the Data Link Provider Interface (DLPI).

The following sections describe how you can use the qfe driver and the ndd utility to modify (with the -set option) or display (without the -set option) the parameters for each SUNW,qfe device.

Identifying Device Instances

Before you use the ndd utility to get or set a parameter for a qfe device, you must specify the device instance for the utility since there will be at least four SUNW,qfe devices.

To Specify the Device Instance for the ndd Utility
  1. Check the /etc/path_to_inst file to identify the instance associated with a particular device.

    For Sun Quad FastEthernet PCI adapter:


    # grep qfe /etc/path_to_inst
    "/pci@1f,2000/pci@2/SUNW,qfe@0,1" 0 "qfe"
    "/pci@1f,2000/pci@2/SUNW,qfe@1,1" 1 "qfe"
    "/pci@1f,2000/pci@2/SUNW,qfe@2,1" 2 "qfe"
    "/pci@1f,2000/pci@2/SUNW,qfe@3,1" 3 "qfe"

    In the preceding example, the four SUNW,qfe@x,1 instances are from a Sun Quad FastEthernet PCI adapter installed in slot 2. For clarity, the instance numbers are bold.

    For Sun Quad FastEthernet SBus adapter:


    # grep qfe /etc/path_to_inst
    "/sbus@1f,0/SUNW,qfe@1,8c10000" 1 "qfe"
    "/sbus@1f,0/SUNW,qfe@1,8c00000" 0 "qfe"
    "/sbus@1f,0/SUNW,qfe@1,8c30000" 3 "qfe"
    "/sbus@1f,0/SUNW,qfe@1,8c20000" 2 "qfe"

    In the preceding example, the four SUNW,qfe@1 instances are from a Sun Quad FastEthernet SBus adapter installed in slot 1. For clarity, the instance numbers are bold.

  2. Use the instance number to select the device.


    # ndd -set /dev/qfe instance instance#
    

    The device remains selected until you change the selection.

Noninteractive and Interactive Modes

You can use the ndd utility in two modes:

In noninteractive mode, you invoke the utility to execute a specific command. Once the command is executed, you exit the utility. In interactive mode, you can use the utility to get or set more than one parameter value. Refer to the ndd(1M) man page for more information.

To Use the ndd Utility in Noninteractive Mode

This section describes how to modify and display parameter values.

  1. To modify a parameter value, use the -set option.

    If you invoke the ndd utility with the -set option, the utility passes value, which must be specified down to the named /dev/qfe driver instance, and assigns it to the parameter:


    # ndd -set /dev/qfe parameter_value

  2. To display the value of a parameter, specify the parameter name (and omit the value).

    When you omit the -set option, a query operation is assumed and the utility queries the named driver instance, retrieves the value associated with the specified parameter, and prints it:


    # ndd /dev/qfe parameter

To Use the ndd Utility in Interactive Mode
  1. To modify a parameter value in interactive mode, specify ndd /dev/qfe, as shown below.

    The ndd utility then prompts you for the name of the parameter:


    # ndd /dev/qfe
    name to get/set? parameter_name_or_?

    After entering the parameter name, or ? to view all parameters, the ndd utility prompts you for the parameter value.

  2. To list all the parameters supported by the qfe driver, type ndd /dev/qfe \?.


    # ndd /dev/qfe \? 
    ?                             (read only)
    transceiver_inuse             (read only)
    link_status                   (read only)
    link_speed                    (read only)
    link_mode                     (read only)
    ipg1                          (read and write)
    ipg2                          (read and write)
    use_int_xcvr                  (read and write)
    pace_size                     (read and write)
    adv_autoneg_cap               (read and write)
    adv_100fdx_cap                (read and write)
    adv_100hdx_cap                (read and write)
    adv_10fdx_cap                 (read and write)
    adv_10hdx_cap                 (read and write)
    autoneg_cap                   (read only)
    100fdx_cap                    (read only)
    100hdx_cap                    (read only)
    10fdx_cap                     (read only)
    10hdx_cap                     (read only)
    lp_autoneg_cap                (read only)
    lp_100fdx_cap                 (read only)
    lp_100hdx_cap                 (read only)
    lp_10fdx_cap                  (read only)
    lp_10hdx_cap                  (read only)
    instance                      (read and write)
    lance_mode                    (read and write)
    ipg0                          (read and write)
    # 

Setting Forced Mode

This section describes how to set forced mode (not capable of auto-negotiation).

To Select One Local Transceiver Capability and Set Forced Mode
  1. Select one of the four capabilities (adv_100fdx_cap, adv_100hdx_cap, adv_10fdx_cap, or adv_10hdx_cap), and set its value to 1.

    If you select more than one of the local transceiver capabilities, the driver selects the one that is highest in the priority order (see the footnote from Table 2-5).

  2. Set the local transceiver capabilities advertised by the hardware to forced mode = 0, which is not capable of auto-negotiation: adv_autoneg_cap 0

    Use the ndd utility as described in "To Use the ndd Utility in Interactive Mode".

Auto-Negotiation Mode

This section describes how to select at least one of the four local transceiver capabilities and set the mode to auto-negotiation.

To Set the Mode to Auto-Negotiation
  1. Select at least one of the five capabilities (adv_100fdx_cap, adv_100hdx_cap, adv_10fdx_cap, adv_10hdx_cap) that you want to advertise to the remote system, and set its value to 1.

  2. Set the local transceiver capabilities advertised by the hardware to 1, the auto-negotiation setting: adv_autoneg_cap 1

    Use the ndd utility as described in "To Use the ndd Utility in Interactive Mode".