kernelInit problem - VxWorks

This is a discussion on kernelInit problem - VxWorks ; Hi All, I am using Tornado-2.0/VxWorks-5.4 on Intel IXP 1200 Evaluation System, I am trying write a device driver for a plx9054 pci card on it. Does anyone out there have experience of this device under vxWorks ? Recently I ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: kernelInit problem

  1. kernelInit problem

    Hi All, I am using Tornado-2.0/VxWorks-5.4 on Intel IXP 1200
    Evaluation System, I am trying write a device driver for a plx9054 pci
    card on it. Does anyone out there have experience of this device under
    vxWorks ?

    Recently I have a problem, the kernelInit could not be executed well
    when I have the plx9054 card into the slot ,and the boot is failed.
    I've initialised it's registers as defined in the manual and BAR0 to
    BAR3 registers are correctly set by the host software on boot. But
    the DrvNum is still -1 after iosDrvInstall Finished.

    Does the pci device conflict with the END device (Intel 82559)'s
    resource?

    Any help greatly appreciated....


  2. Re: kernelInit problem

    On Fri, 02 Mar 2007 04:27:43 -0800, cygager wrote:

    > Hi All, I am using Tornado-2.0/VxWorks-5.4 on Intel IXP 1200
    > Evaluation System, I am trying write a device driver for a plx9054 pci
    > card on it. Does anyone out there have experience of this device under
    > vxWorks ?
    >
    > Recently I have a problem, the kernelInit could not be executed well
    > when I have the plx9054 card into the slot ,and the boot is failed.
    > I've initialised it's registers as defined in the manual and BAR0 to
    > BAR3 registers are correctly set by the host software on boot. But
    > the DrvNum is still -1 after iosDrvInstall Finished.
    >
    > Does the pci device conflict with the END device (Intel 82559)'s
    > resource?


    iosDrvInstall() failures are not due to device conflicts or errors in
    initializing the registers of the device. They are caused by lack of
    memory--you are trying to install a driver and have run out of room for
    VxWorks to do so. Under Workbench & VxWorks 6.3 there are kernel
    configurator items which define the max number of device drivers and the
    max number of files open at once. I recently had to change these for our
    project because of iosDrvInstall() errors. Under Tornado, I don't know
    where exactly to point you. Both values are parameters to the I/O system
    initialization routine iosInit().


    ~Dave~

  3. Re: kernelInit problem

    On Mar 3, 6:24 pm, Dave wrote:
    > On Fri, 02 Mar 2007 04:27:43 -0800, cygager wrote:
    > > Hi All, I am using Tornado-2.0/VxWorks-5.4 on Intel IXP 1200
    > > Evaluation System, I am trying write a device driver for a plx9054 pci
    > > card on it. Does anyone out there have experience of this device under
    > > vxWorks ?

    >
    > > Recently I have a problem, the kernelInit could not be executed well
    > > when I have the plx9054 card into the slot ,and the boot is failed.
    > > I've initialised it's registers as defined in the manual and BAR0 to
    > > BAR3 registers are correctly set by the host software on boot. But
    > > the DrvNum is still -1 after iosDrvInstall Finished.

    >
    > > Does the pci device conflict with the END device (Intel 82559)'s
    > > resource?

    >
    > iosDrvInstall() failures are not due to device conflicts or errors in
    > initializing the registers of the device. They are caused by lack of
    > memory--you are trying to install a driver and have run out of room for
    > VxWorks to do so. Under Workbench & VxWorks 6.3 there are kernel
    > configurator items which define the max number of device drivers and the
    > max number of files open at once. I recently had to change these for our
    > project because of iosDrvInstall() errors. Under Tornado, I don't know
    > where exactly to point you. Both values are parameters to the I/O system
    > initialization routine iosInit().
    >
    > ~Dave~


    thanks Dave, I've checked my code, and solve the problem. I copyed
    the usrConfig.c to the BSP directory and added the driver install and
    device creation code. Now, my device had installed correctly. But I
    still cannot boot my vxworks image. The boot process was break when
    the "muxDevStart " was executed. I checked my program many times and
    the devices were all configed well, but the 82559 card could not
    initialized properly. Could you tell me why does this happen? Still
    the PCI device conflict problem?


  4. Re: kernelInit problem

    On Mon, 05 Mar 2007 05:15:41 -0800, cygager wrote:

    > On Mar 3, 6:24 pm, Dave wrote:
    >>
    >> iosDrvInstall() failures are not due to device conflicts or errors in
    >> initializing the registers of the device. They are caused by lack of
    >> memory--you are trying to install a driver and have run out of room for
    >> VxWorks to do so. Under Workbench & VxWorks 6.3 there are kernel
    >> configurator items which define the max number of device drivers and the
    >> max number of files open at once.
    >>

    > thanks Dave, I've checked my code, and solve the problem. I copyed
    > the usrConfig.c to the BSP directory and added the driver install and
    > device creation code. Now, my device had installed correctly.


    If you've just moved the code and made the changes you describe, you have
    _not_ solved the problem. You just moved it to a device that attempts to
    install after your code, and will now fail. Until you either increase the
    max number of device drivers (or decrease the number of device drivers you
    attempt to install), at least one install will fail. As an example,
    consider a small array with room for three members. If I try to install
    members 1 - 4 in order, the array will be {1,2,3}. If I change the order,
    and install 4 then 1 - 3, the array will be {4,1,2}. In either case, one
    member will not be installed.


    ~Dave~

  5. Re: kernelInit problem

    On Mar 9, 9:24 am, Dave wrote:

    Maybe I had a improper estimation at first. It's not the iosDrvInstall
    problem. I've checked the driver number which is 20, I think is big
    enough for my system.

    Though I could not boot vxWorks image by now, I had already installed
    my device correctly and I have gotten my device installation
    information,DrvNum=2.

    The boot process is failed when the muxDevLoad & muxDevStart executed.

    here are my boot message from the COM

    9054 was Found! pciBus=0 pciDevice=7
    9054 intConnect ERROR
    9054 sysMmuMapAdd ok
    membaseCsr=0x02201000 memLength=0xffffff00 iobaseCsr=0x00000000 irq=18
    syseeVPciInit debug initialized
    pciBus=0 pciDevice=6
    membaseCsr=0x02200000 iobaseCsr=02100000 irq=18
    sysHwInit Finished
    sysHwInit2 Finished
    9054 driver install OK! plxDrvNum=2 plx9054Create OK!
    muxDevLoad muxDevStart ERROR

    I add the follow code in sysLib.c sysHwInit2, intConnect failed, too.
    Is this the key point?(INT_VEC_PIL=18)

    #if defined(INCLUDE_9054)
    intConnect((void*)INT_VEC_PIL, pciInt, INT_VEC_PIL);
    intEnable(INT_VEC_PIL);
    #endif


+ Reply to Thread