Forum Stats

  • 3,760,441 Users
  • 2,251,707 Discussions
  • 7,871,127 Comments

Discussions

Additional PCI IDE controller does not work

807559
807559 Member Posts: 50,786
edited Nov 5, 2006 5:11PM in Solaris on x86
I have an on-board IDE controller but I have several disks. So I bought an additional PCI IDE controller. However, Solaris 10 does not recognize it and doesn't see any disks on it. (reports "driver not attached "for the device).

Is there a way to make the external PCI controller work?
«13

Comments

  • 807559
    807559 Member Posts: 50,786
    Basic installation should include:

    - install new hardware

    - perform a Solaris "reconfiguration" boot using the "-r" boot option
    (or run "devfsadm -v" as root)



    Compatible PCI-IDE controllers should be detected using the
    following line from /boot/solaris/devicedb/master:
    pciclass,0101 pci-ide msd pciclass ata.bef "IDE controller"
    If the devfsadm command does not recognize the new ide
    controller or the disks attached to it, check "prtconf -pv" output
    and verify that the new pci ide controller device does indeed
    report a pci "class-code" starting with 000101..
  • 807559
    807559 Member Posts: 50,786
    Thanks for the reply. The reported class code is 00010400. This is controller based on IT8212 chip and has some RAID functionality. I don't need RAID, I would just like to use it as normal IDE controller. Is there any way make Solaris "try to use" it as a normal controller?

    I don't suppose adding a line in /boot/solaris/devicedb/master would help?
  • 807559
    807559 Member Posts: 50,786
    Indeed, "pciclass,0104" is a PCI mass storage RAID controller
    (that probably uses IDE disks).

    Solaris does not know which driver should be used with this device.
    Is there any way make Solaris "try to use" it as a
    a normal controller?

    I don't suppose adding a line in
    /boot/solaris/devicedb/master would help?
    That depends if your PCI mass storage raid controller is fully
    compatible with a PCI IDE controller. In case it is compatible,
    try to add an extra "ata.bef" line to /boot/solaris/devicedb/master,
    using the vendor-id / device-id listed in prtconf -pv output,
    similar to the entries for the "Silicon Image 3xxx SATA Controllers"
    pciVVVV,DDDD pci-ide msd pci ata.bef "IDE RAID Controller (IT8212)"
    where VVVV is the vendor-id and DDDD the device-id from
    prtconf -pv output.

    No guarantee that this will work. In fact the system could become
    unbootable because the Solaris "ata" driver does not work with
    your RAID hardware. In that case you could boot from the Solaris
    installation CD/DVD, and remove the extra IDE RAID entry from
    the master file, to recover the system.
  • 807559
    807559 Member Posts: 50,786
    No luck. However, I can't find why it doesn't work, i.e. what went wrong when the driver tryed to attach to device. It just says "driver not attached". And dmesg doesn't mention anything.

    I guess I'll have to give up. Thanks very much for your help!
  • 807559
    807559 Member Posts: 50,786
    Doen an "IDE RAID Controller (IT8212)" appear in the DCA's
    hardware list, when you interrupt the boot process by pressing the
    "ESC" key?


    Are there leading 0's in the pci vendor or device id? AFAIR, these
    need to be omitted. I.e. you must use "pci47,11", not "pci0047,0011".


    If everything works, the Solaris "pci-ide" driver should attach to the
    PCI hardware node, there should be one or two "ide" nodes with
    driver "ata" below the "pci-ide" node (an ide bus), and "cmdk" or
    "sd" nodes below "ide" (cmdk for an attached ATA disk, sd for
    ATAPI device).


    At least that's what I remember from my Solaris 10 x86 "Promise
    IDE controller" experiments:

    http://groups.yahoo.com/group/solarisx86/message/16140
  • 807559
    807559 Member Posts: 50,786
    Hi, I'm having a similar problem and hope there is a solution. In my case, I bought one of the "reported to work" IDE controllers - the adaptec ASH-1233.

    The board is not being recognized by Solaris. Running Nevada build 27a.

    I followed the directions that Juergen Keil posted, and the directions on bigadmin associated with the card. That includes adding a line to devicedb/master:

    pci1095,680 pci-ide msd pci ata.bef "Silicon Image 680 PATA Controller"

    Then touching /reconfigure and doing a reboot.
    The device is not found and reported in /var/adm/messages. It is shown by prtconv -pv though, with the matching identifier (pci1095,680).

    So the device exists but isn't found by Solaris Nevada b27a. Thanks for any advice...

    --Peter
  • 807559
    807559 Member Posts: 50,786
    The format of the /boot/solaris/devicedb/master file is like this:
    <id> <name> <type> <bus> <driver> <description> <parameters>

    In short:
    <name> is the name of the driver
    Is it "pci-ide"? I doubt it, as I don't find such a driver "pci-ide" under the list of drivers of SUN.
    Visit docs.suncom, and download the:
    man pages section 7: Device and Network Interfaces
    There you find the only driver: ata

    <driver> - as I remember, is actually not the driver, but some preconfiguration program, which decorates a device node and does other manipulations before a driver <name> attaches.

    So I guess your line in master should look like this:
    pci1095,680 ata msd pci ata.bef "Headache: Why SUN can't do it for me?"
  • 807559
    807559 Member Posts: 50,786
    Another way to try is this:
    pci1095,680 ata msd pci none "Whine: Why do we suffer?"

    Note that none is a "legitimate" value.
    It means that no "bef" module should be launched before driver attaches.

    Try this also with <name> set to pci-ide, and all other combinations.
    Of course do peruse the mentioned manual section 7, try and locate other possible candidates among drivers. Put them for <name>.
    But I have found only one.
  • 807559
    807559 Member Posts: 50,786
    <name> is the name of the driver
    Is it "pci-ide"? I doubt it, as I don't find
    such a driver "pci-ide" under the list of drivers of
    SUN.
    % ls -l /platform/i86pc/kernel/drv/pci-ide
    -rwxr-xr-x 1 root sys 17388 Okt 4 01:41 /platform/i86pc/kernel/drv/pci-ide
    Visit docs.suncom, and download the:
    man pages section 7: Device and Network
    Interfaces

    There you find the only driver: ata
    IDE controllers are special. The "pci-ide" module should be used with
    them (it seems), and pci-ide will create child device nodes for
    each ide channel available on the controller and these child
    device nodes will use the "ata" driver.
    So I guess your line in master should look
    like this:
    pci1095,680 ata msd pci ata.bef
    No, I don't think so. My master file for solaris 10 x86 contains this:

    pciclass,0101 pci-ide msd pciclass ata.bef "IDE controller"
    pci1095,3112 pci-ide msd pci ata.bef "Silicon Image 3112 SATA Controller"
    pci1095,3114 pci-ide msd pci ata.bef "Silicon Image 3114 SATA Controller"
    pci1095,3512 pci-ide msd pci ata.bef "Silicon Image 3512 SATA Controller"



    But this is a problem about Solaris Express (snv_27) anyway,
    which is using newboot and grub. And as far as I know,
    boot/solaris/devicedb/master isn't used by the newboot code
    any more.

    It seems adding new pci-ide controllers to snv_27 now works
    by defining a "pci-ide" property:

    http://cvs.opensolaris.org/source/xref/on/usr/src/uts/i86pc/io/pci/pci_boot.c#is_pciide
    http://cvs.opensolaris.org/source/xref/on/usr/src/uts/i86pc/io/pci/pci_boot.c#check_pciide_prop



    Try to edit the snv_27a grub kernel boot command line, and add

    -B pci-ide=pci1095,680

    (In case there already is a "-B bootargs" option present, append
    the "pci-ide=pci1095,680" part, separated by a comma)

    On an installed snv_27 system, you can probably make this a
    permanent change with something like
    "eeprom pci-ide=pci1095,680".
  • 807559
    807559 Member Posts: 50,786
    Thanks much Juergen, that did the trick!

    --Peter
This discussion has been closed.