Xilinx IP core drivers for RTEMS- diff attached

Robert S. Grimes rsg at alum.mit.edu
Wed Dec 20 17:01:54 UTC 2006



gregory.menke at gsfc.nasa.gov wrote:
> Given the above, I'd like to regenerate the diff with xilemac moved back
> into the gen405 bsp, which makes sense given the old_exceptions and the
> assumptions about the driver that the bsp makes.  I'll try to get a new
> patch out in a day or so...
Thanks, and I'll be sure to try that out and let you know how that goes.
> and please accept my apologies for the broken diffs...
>   
No apology needed - you're doing me and others a great favor as it is!
-Bob
> Regards,
>
> Greg
>
>
>
> Robert S. Grimes writes:
>  > Yes,
>  > 
>  > It looks like $SOURCEDIR/c/src/libchip/network/xilemac.h (only xilemac.h
>  > I was able to find in source tree) is not making it into
>  > $BUILDIDR/powerpc-rtems/gen405/lib/include/libchip. 
>  > 
>  > I attempted to fix that by copying the file.  However, when I did that,
>  > I got a problem about infinite include nesting; seems the file was
>  > including itself?  Perhaps I am confused, but there is an include
>  > directive in xilemac.h like this
>  > #include <libchip/xilemac.h>
>  > 
>  > If I comment that out, the infinite nesting problem goes away, but is
>  > replaced by these
>  > 
>  > In file included from ../../../../.././gen405/lib/include/bsp.h:73,
>  >                  from
>  > ../../../../../../../rtems-4.6.99.3/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c:31:
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:234: error:
>  > 'NUM_XILEMAC_UNITS' undeclared here (not in a function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilFifoRead32':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:270: error:
>  > 'XEM_PFIFO_RXDATA_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:270: error: (Each
>  > undeclared identifier is reported only once
>  > ./../../../.././gen405/lib/include/libchip/xilemac.h:270: error: for
>  > each function it appears in.)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilFifoWrite32':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:309: error:
>  > 'XEM_PFIFO_TXREG_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:318: error:
>  > 'DRIVER_PREFIX' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:327: error:
>  > 'XEM_PFIFO_TXDATA_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilGetWrFifo32VacancyBytes':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:363: error:
>  > 'XEM_PFIFO_TXREG_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilFifoRead64':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:385: error:
>  > 'XEM_PFIFO_RXDATA_OFFSET' undeclared (first use in this function)
>  > ./../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilFifoWrite64':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:440: error:
>  > 'XEM_PFIFO_TXREG_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:445: error:
>  > 'DRIVER_PREFIX' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:452: error:
>  > 'XEM_PFIFO_TXDATA_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilGetWrFifo64VacancyBytes':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:507: error:
>  > 'XEM_PFIFO_TXREG_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilGetWrFifoVacancyBytes':
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:533: error:
>  > 'DRIVER_PREFIX' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h: In function
>  > 'xilEmacStop':
>  > ./../../../.././gen405/lib/include/libchip/xilemac.h:548: error:
>  > dereferencing pointer to incomplete type
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:551: error:
>  > dereferencing pointer to incomplete type
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:551: error:
>  > 'XEM_ECR_OFFSET' undeclared (first use in this function)
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:555: error:
>  > dereferencing pointer to incomplete type
>  > ../../../../.././gen405/lib/include/libchip/xilemac.h:559: error:
>  > dereferencing pointer to incomplete type
>  >  
>  > and so on, especially the deref pointer errors.
>  > 
>  > Seems something else is missing wrt the Xilinx definitions...
>  > 
>  > Thanks,
>  > -Bob
>  > 
>  > gregory.menke at gsfc.nasa.gov wrote:
>  > > Hi Robert,
>  > >
>  > > Its likely something missing from the patch since I had a strip out a
>  > > lot of test things from the diff.  I'll have a look at get back to you.
>  > >
>  > > OTOH I continue to have problems with automake/autoconf occasionally
>  > > generating makefiles that need editing because its unclear which
>  > > versions work and which won't and RTEMS stays so close to the
>  > > toolchain's bleeding edge that its hard to tell.  So there is some
>  > > possiblity that automake/autoconf issues could be causing trouble.
>  > >
>  > > Greg
>  > >
>  > >
>  > > Robert S. Grimes writes:
>  > >  > Hi Greg,
>  > >  > 
>  > >  > I attempt to build using your patches on a clean install of 4.6.99.3,
>  > >  > and I get this error:
>  > >  > 
>  > >  >     Making all in powerpc
>  > >  >     make[5]: Entering directory
>  > >  >     `/cygdrive/c/Home/ll/etill/rtems-4.6.99.3/tools/b-rtems-4.6.99.3/powerpc-rtems/c/gen405/lib/
>  > >  >     libcpu/powerpc'
>  > >  >     if powerpc-rtems-gcc --pipe -B../../../../.././lib/
>  > >  >     -B../../../../.././gen405/lib/ -specs bsp_specs -qrtems -DPACKAGE_NA
>  > >  >     ME=\"rtems-c-src-lib-libcpu-powerpc\"
>  > >  >     -DPACKAGE_TARNAME=\"rtems-c-src-lib-libcpu-powerpc\"
>  > >  >     -DPACKAGE_VERSION=\"4.6.99.3\
>  > >  >     " -DPACKAGE_STRING=\"rtems-c-src-lib-libcpu-powerpc\ 4.6.99.3\"
>  > >  >     -DPACKAGE_BUGREPORT=\"rtems-bugs at rtems.com\"  -I. -I../.
>  > >  >     ./../../../../../rtems-4.6.99.3/c/src/lib/libcpu/powerpc  -isystem
>  > >  >     ../../../../.././gen405/lib/include -I../../../../../
>  > >  >     ../../rtems-4.6.99.3/c/src/lib/libcpu/powerpc/old-exceptions  -Wall
>  > >  >     -mcpu=403 -D_OLD_EXCEPTIONS -Dppc405 -O4 -fno-keep-i
>  > >  >     nline-functions -g -MT
>  > >  >     old-exceptions/old_exceptions_rtems_cpu_rel-cpu.o -MD -MP -MF
>  > >  >     "old-exceptions/.deps/old_exception
>  > >  >     s_rtems_cpu_rel-cpu.Tpo" -c -o
>  > >  >     old-exceptions/old_exceptions_rtems_cpu_rel-cpu.o `test -f
>  > >  >     'old-exceptions/cpu.c' || echo
>  > >  >      '../../../../../../../rtems-4.6.99.3/c/src/lib/libcpu/powerpc/'`old-exceptions/cpu.c;
>  > >  >     \
>  > >  >     then mv -f
>  > >  >     "old-exceptions/.deps/old_exceptions_rtems_cpu_rel-cpu.Tpo"
>  > >  >     "old-exceptions/.deps/old_exceptions_rtems_cpu_re
>  > >  >     l-cpu.Po"; else rm -f
>  > >  >     "old-exceptions/.deps/old_exceptions_rtems_cpu_rel-cpu.Tpo"; exit 1; fi
>  > >  >     In file included from
>  > >  >     ../../../../../../../rtems-4.6.99.3/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c:31:
>  > >  >     ../../../../.././gen405/lib/include/bsp.h:73:29: error:
>  > >  >     libchip/xilemac.h: No such file or directory
>  > >  >     make[5]: *** [old-exceptions/old_exceptions_rtems_cpu_rel-cpu.o] Error 1
>  > >  >     make[5]: Leaving directory
>  > >  >     `/cygdrive/c/Home/ll/etill/rtems-4.6.99.3/tools/b-rtems-4.6.99.3/powerpc-rtems/c/gen405/lib/l
>  > >  >     ibcpu/powerpc'
>  > >  > 
>  > >  > The "xilemac.h" file certainly does exist!  It seems there's an include
>  > >  > path problem.  I'm going to try and track it down, but I thought you might:
>  > >  >   - know what I did wrong (if it's my mistake), or
>  > >  >   - want to know (if it's a patch problem).
>  > >  > 
>  > >  > I will let you know what I find on my end.
>  > >  > 
>  > >  > Thanks!
>  > >  > -Bob
>  > >  > 
>  > >  > gregory.menke at gsfc.nasa.gov wrote:
>  > >  > > Hi,
>  > >  > >
>  > >  > > I finally got back to some long-needed config management on the gen405
>  > >  > > bsp.  I assembled the diffs against 4.6.99.3, the file is attached for
>  > >  > > review.
>  > >  > >
>  > >  > > I hesitate to just check them in as some of the changes related to
>  > >  > > uarts, fpu and memory map are highly idiosyncratic and I don't want to
>  > >  > > mess up other people's work.  I think a compromise patch might make the
>  > >  > > most sense, where I set up a diff that preserves the general character
>  > >  > > of the bsp; base addresses, etc.. but gets in the updated drivers.
>  > >  > >
>  > >  > > Our bsp was peculiar in that the 405 units have 4 uarts and no fpu at
>  > >  > > all, meaning, the entire toolchain has to be compiled with -msoft-float
>  > >  > > to ensure nothing at all in newlib or above uses fp registers- the
>  > >  > > va_args are problematic since the ppc ABI allows fpu registers to be
>  > >  > > used when handing variable arguments.  I think it is this issue that
>  > >  > > generally forces all PPC tasks to be floating point- its quite an
>  > >  > > annoying architectural property.
>  > >  > >
>  > >  > > So I'd like to propose that folks interested in the Virtex 4 gen405 bsp
>  > >  > > family have a look at the diffs and respond with issues & changes and
>  > >  > > hopefully I can commit something that doesn't cause too much trouble.
>  > >  > >
>  > >  > > If folks' email systems won't pass the attachment, then please email me
>  > >  > > and I'll resend directly.
>  > >  > >
>  > >  > > Thanks,
>  > >  > >
>  > >  > > Greg
>  > >  > >
>  > >  > >   
>  > >  > > ------------------------------------------------------------------------
>  > >  > >
>  > >  > > _______________________________________________
>  > >  > > rtems-users mailing list
>  > >  > > rtems-users at rtems.com
>  > >  > > http://rtems.rtems.org/mailman/listinfo/rtems-users
>  > >  > >   
>  > >  > 
>  > >
>  > >
>  > >   
>  > 
>
>
>   



More information about the users mailing list