PETH drivers

Servio Lima servio at andrew.cmu.edu
Thu Nov 23 08:16:46 EST 2000


Hi,

In the compilation process of Vxworks , I've found several flags specified
in the Makefile , defs files and  rules files that needs to be declared
first. These flags have null values and they cause the whole make process to
stop abruptly.  For example:

partialImage.o: $(LDDEPS) $(PRJ_OBJS) $(EXTRA_MODULES) $(COMPONENT_LIBS)
$(LIBS) $(PRJ_OBJS_FILE)
 - @ $(RM) $@

flags like the Tornado source directory are not defined. Whats the procedure
for giving values to them?

Regards,
Servio


"Johnson, Erik J" wrote:

> 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