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 ...
-
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.... 
-
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~
-
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?
-
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~
-
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