PETH drivers

Johnson, Erik J erik.j.johnson at intel.com
Wed Nov 22 11:59:42 EST 2000


What does the console (serial) window say when
you get these failures?  If you are getting
IP_MAX_UNITS failures, then you need to recompile
vxworks with IP_MAX_UNITS set higher than 1
(it needs to be >= PETH_NUM_DEVS + 1).  The NetApp
init code registers the END driver(s) with the
IP stack and be default VxWorks only allows
one registration with the IP stack (which is
consumed by the Intel NIC/driver).  You can
see an example of how I did this in the supplied
BoardSupport/VxWorks/IXP1200EB/config.h, search
for MVR, or IP_MAX_UNITS, and then follow this
model to build your BSP (or if you are using the
supplied BSP, just define MVR and recompile)

if that is not the problem, I am at a loss.
Perhaps it is a version mis-match?  The driver
was written for VxWorks 5.4 (if I remember correctly)
maybe something changed in the END interface...?

The default routes were #ifdef'd out for the MVR
application because we were demonstrating a routing
protocol (OSPF) rather than static routes.  In addition,
the route table manager changed its interface slightly
to support the notion of virtual routers.  If you want
to add a route, simply use the rtm_mvr code.  look in
SA1_CoreLibs/rtm-mvr/, the VxWorks shell commands are
available from rtm_console.cpp/rtm_console.h if you
just want to call them "by hand", or add them into
any init code you want.

erik

> -----Original Message-----
> From: Servio Lima [mailto:servio at andrew.cmu.edu]
> Sent: Wednesday, November 22, 2000 4:48 AM
> To: Johnson, Erik J; ixp1200 at CS.Princeton.EDU
> Subject: Re: PETH drivers
> 
> 
> Hi,
> 
> I still get the same error , even reducing the number of PETH devices:
> -> NetApp_GigInit
> 
> STATUS OF intConnect = 0
> BigMacDriver CTOR OctalMacNumber = 0
> status = 0
> status = ffffffff
> Failed to load Pseudo Ethernet driver number 0
> Failed to load Pseudo Ethernet driver number 1
> Failed to load Pseudo Ethernet driver number 2
> Failed to load Pseudo Ethernet driver number 3
> value = -1341915136 = 0xb0040000
> 
> Some hints:
>  I am compiling the vxworks_mvr application using Tornado with the
> following flags:
> ccarm
> -g -mcpu=strongarm110 -mapcs-32 -ansi -nostdinc -DRW_MULTI_THREAD
> -D_REENTRANT -mno-sched-prolog -fno-builtin -fvolatile -w 
> -Wall -pedantic
> -I. -IC:/Tornado/target/h -Ic:\ixp1200\include
> -Ic:\ixp1200\SA1_CoreLibs\libd -Ic:\ixp1200\msgq
> -Ic:\ixp1200\SA1_CoreLibs\GigaMAC_GC82547EB
> -Ic:\ixp1200\SA1_CoreLibs\debug_1200 -Ic:\ixp1200\utils -DCPU=ARMSA110
> -DOS=VXWORKS -DIOSTYLE=HARDWARE -DVX_WORKS -DVXWORKS -DROUTE
> -DFBUS_DEV0_TYPE=0 -DFBUS_DEV1_TYPE=1 -DMAC_21440 -DMAC_GC82547EB
> -DWB_SVR -DFBUS_DEVICE_COUNT=2 -D__unix  -DRTM_MVR -DROUTE  -DPETH_DRV
> -DPETH_NUM_DEVS=4
> 
> 
> That are the same flags found in  vxworks_mvr.mak makefile
> Any suggestions?
> 
> In addition , I'd like to know exactly where the route for 
> port 18 should
> be inserted in the fixed routing table that is implemented in
> \Ixp1200\SA1_Corelibs\app1200\net_app.cpp, because there is a
> preprocessor directive that banned the insertion of a route 
> in the place
> where other routes are added. An extracted portion of the 
> code  explains
> this:
> 
> #ifdef ROUTE
> #ifndef RTM_MVR  ------------------> it is assumed that if 
> MVR is used a
> new    route can not be inserted??
>  rt_add("1.1.1.1", "255.0.0.0", 1);
> ....etc
> 
> 
> Thanks in advance,
> Servio
> 
> 
> 
> 
> "Johnson, Erik J" wrote:
> 
> > Sorry, I missed the last part of your email.
> > The PETH driver ASSUMES it gets packets from port 18,
> > you don't need to instantiate that many drivers.
> > Simply instantiate drivers for the ports you want to
> > logically represent to VxWorks (e.g, just the first
> > 4 10/100 ports).  Then each driver will enqueue for
> > the transmit port associated with its instance,
> > all will receive from port 18 and demultiplexing will
> > be done based on the ingress port number within the
> > packet descriptor.  Note, you should be loading the
> > MVRRefdes microcode with this driver since it has
> > modifications to the microcode that allow the core to
> > properly enqueue on the outgoing (transmit) queues.
> >
> > erik
> >
> > > -----Original Message-----
> > > From: Servio Lima [mailto:servio at andrew.cmu.edu]
> > > Sent: Tuesday, November 21, 2000 2:23 PM
> > > Cc: ixp1200 at CS.Princeton.EDU
> > > Subject: PETH drivers
> > >
> > >
> > >
> > > Hi,
> > > Does anyone has experience using Pseudo Ethernet drivers for
> > > StrongArm-Microengine
> > > communications?
> > > I got the following problem each time I compile with the
> > > -DPETH_DRV flag on
> > > (using Tornado Workbench):
> > >
> > > -> ld < my_rtmmvr.out
> > > Loading C:/project2/ARMSA110gnu/rtmmvr.out |
> > > value = 3275480 = 0x31fad8
> > > -> NetApp_GigInit
> > >
> > > STATUS OF intConnect = 0
> > > BigMacDriver CTOR OctalMacNumber = 0
> > > status = 0
> > > status = ffffffff
> > > Failed to load Pseudo Ethernet driver number 0
> > > Failed to load Pseudo Ethernet driver number 1
> > > Failed to load Pseudo Ethernet driver number 2
> > > Failed to load Pseudo Ethernet driver number 3
> > > Failed to load Pseudo Ethernet driver number 4
> > > Failed to load Pseudo Ethernet driver number 5
> > > Failed to load Pseudo Ethernet driver number 6
> > > Failed to load Pseudo Ethernet driver number 7
> > > Failed to load Pseudo Ethernet driver number 8
> > > Failed to load Pseudo Ethernet driver number 9
> > > Failed to load Pseudo Ethernet driver number 10
> > > Failed to load Pseudo Ethernet driver number 11
> > > Failed to load Pseudo Ethernet driver number 12
> > > Failed to load Pseudo Ethernet driver number 13
> > > Failed to load Pseudo Ethernet driver number 14
> > > Failed to load Pseudo Ethernet driver number 15
> > > Failed to load Pseudo Ethernet driver number 16
> > > Failed to load Pseudo Ethernet driver number 17
> > > Failed to load Pseudo Ethernet driver number 18
> > > Failed to load Pseudo Ethernet driver number 19
> > >
> > > Exception number 16: Task: 0x3bff74 (t31)
> > >
> > > Data abort
> > > Program Counter:   0xcc294
> > > Status Register:   0x60000013
> > > 8e6c8    _vxTaskEntry   +28 : 3ff64 ()
> > > 40008    _wdbFuncCallLibInit+128: _NetApp_GigInit ()
> > > cc358    _NetApp_GigInit+c  : _NetApp_Init__Fv ()
> > >
> > > Data abort
> > > Exception address: 0x000cc294
> > > Current Processor Status Register: 0x60000013
> > > Task: 0x3bff74 "t31"
> > > value = 0 = 0x0
> > >
> > >
> > > I am using -DPETH_NUM_DEVS=20, that is 20 PETH devices,
> > > because I want to use port
> > > No. 18 for the StrongArm-uengine communication.
> > >
> > > Basically the problem is the invocation of the function:  
>  cookie =
> > > muxDevLoad(pethDrvNum, pethEndLoad, pethInitStr, 0, NULL);
> > > that can be found in \IXP1200\SA1_CoreLibs\app_1200\net_app.cpp
> > >
> > > My  goal is to transmit a packet from the StronArm to the
> > > uengine and viceversa. I
> > > think I should enable the PETH functionality first, but if
> > > anyone knows of
> > > another method for doing the same, please let me know ASAP.
> > >
> > > Any help would be appreciated.
> > >
> > > Regards,
> > > Servio Lima7
> > >
> > >
> 
> 




More information about the ixp1200 mailing list