Platform Notes: The Sun Quad FastEthernet Device Driver

Setting Parameters Using the /kernel/drv/qfe.conf File

You can also specify the properties described in the section, "Setting Parameters in the /etc/system File", on a per-device basis by creating a qfe.conf file in the /kernel/drv directory. The properties set in the qfe.conf file override the parameters set in the /etc/system file. Use a qfe.conf file when you need to set a particular parameter for a device in the system. The parameters you set are read and write parameters that are listed in "Driver Parameter Values and Definitions".

The man pages for prtconf(1M), system(4) and driver.conf(4) include additional details.

To Set Driver Parameters on a Sun Quad FastEthernet PCI adapter
  1. Obtain the hardware path names for the qfe devices in the device tree.

    Typically the path names and the associated instance numbers will be present in the /etc/path_to_inst file.


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

    • In the above lines:

    • The first part within the double quotes specifies the hardware node name in the device tree.

    • The second number is the instance number.

    • The last part in double quotes is the driver name.

    • In the device path name, the last component after the last / character and before the @ character is the device name.

    • The path name before the last component is the parent name.

    • The comma-separated numbers after the @ character at the end represent the device and function numbers, which are together referred to as unit-address.

    To identify a PCI device unambiguously in the qfe.conf file, use the name, parent name, and the unit-address for the device. Refer to the pci(4) man page for more information about the PCI device specification.

    In the first line of the previous example:

    • Name = SUNW,qfe

    • Parent = /pci@1f,2000/pci@2

    • Unit-address = 0,1

    In the second line in the previous example:

    • Name = SUNW,qfe

    • Parent = /pci@1f,2000/pci@2

    • Unit-address = 1,1

    In the third line in the previous example:

    • Name = SUNW,qfe

    • Parent = /pci@1f,2000/pci@2

    • Unit-address = 2,1

    In the fourth line in the previous example:

    • Name = SUNW,qfe

    • Parent = /pci@1f,2000/pci@2

    • Unit-address = 3,1

    1. For example, set the ipg1 and ipg2 parameters for the above four devices in the /kernel/drv/qfe.conf file.


      name = "SUNW,qfe" parent = "/pci@1f,2000/pci@2" unit-address = "0,1" ipg1=20 ipg2=10;
      name = "SUNW,qfe" parent = "/pci@1f,2000/pci@2" unit-address = "1,1" ipg1=20 ipg2=10;
      name = "SUNW,qfe" parent = "/pci@1f,2000/pci@2" unit-address = "2,1" ipg1=20 ipg2=10;
      name = "SUNW,qfe" parent = "/pci@1f,2000/pci@2" unit-address = "3,1" ipg1=20 ipg2=10;

    2. Save the qfe.conf file.

    3. Save and close all files and programs, and exit the windowing system.

    4. Halt and reboot the system by typing init 6 at the superuser prompt.

To Set Driver Parameters on a Sun Quad FastEthernet SBus adapter
  1. Invoke the prtconf -v command and pipe the output to the more command ( prtconf -v | more ) or redirect the output of the command to a file ( prtconf -v > filename) and print the redirected file.

  2. Find the section in the prtconf -v output for SUNW,qfe,instance #0, or SUNW,qfe,instance #1, and so on.

    The output for SUNW,qfe,instance #0 for a Sun Ultra 1 Creator Series system follows:


    SUNW,qfe, instance #0
                Driver software properties:
                    name <pm_norm_pwr> length <4>
                        value <0x00000001>.
                    name <pm_timestamp> length <4>
                        value <0x30743b26>.
                Register Specifications:
                    Bus Type=0xe, Address=0x8c00000, Size=108
                    Bus Type=0xe, Address=0x8c02000, Size=2000
                    Bus Type=0xe, Address=0x8c04000, Size=2000
                    Bus Type=0xe, Address=0x8c06000, Size=2000
                    Bus Type=0xe, Address=0x8c07000, Size=20

  3. Become superuser.

  4. Create the qfe.conf file in the /kernel/drv directory using a text editor and add lines appropriate for the parameter you are setting. Use the following example for setting ipg1 and ipg2 parameters:

    1. Specify name="qfe" and class="sbus".

    2. Use the reg property to specify the device, 0xe in this case. Use the value following Bus Type in the prtconf -v output.

    3. Type the addresses followed by the specified sizes. Precede each size with 0x and leading zeros, as indicated in the following screen.

    4. Set ipg1 and ipg2. Type a semicolon ( ; ) after the last value.

      In this example, these parameters are set to 20 and 10, respectively.


      name="qfe" class="sbus"
      reg=0xe,0x8c00000,0x00000108,0xe,0x8c02000,0x00002000,0xe,
      0x8c04000,0x00002000,0xe,0x8c06000,0x00002000,0xe,0x8c07000,
      0x00000020
      ipg1=20 ipg2=10;

  5. Save the qfe.conf file.

  6. Save and close all files and exit all programs; exit the windowing system.

  7. Halt and reboot the system by typing init 6 at the # prompt.