e1000 network driver for pc386

Till Straumann strauman at slac.stanford.edu
Fri Jun 19 14:39:34 UTC 2009


This driver (and a few others) are now in the OAR CVS repository
(but not inside the main RTEMS tree [yet]):

cvs -d :pserver:anoncvs at www.rtems.com:2401/usr1/CVS co libbsdport

One reason for these drivers still being outside of the main tree
is that they require support for shared IRQs. This is currently
available for (select) PPC BSPs but not i386 (<= rtems4.9; the
CVS head does have shared IRQs AFAIK, so if you you work
with the head then you don't need libbspExt). This means
that you require a small helper library 'libbspExt' which you
can download here (again: this is only required if your BSP
doesn't have shared IRQ support).

http://www.slac.stanford.edu/~strauman/rtems/rtems_libbspExt_1.5.tgz

Unpack this in the 'libbsdport' directory and create a symlink (or rename
the libbspExt_1_5 directory)

ln -s libbspExt_1_5  libbspExt

Since you checked-out from CVS you must now use autoconf/automake
to create 'configure' & friends. You must do this *after* unpacking
libbspExt -- make sure you have up-to-date versions of autoconf/automake
(e.g., the ones that come with the RTEMS toolchain) and that they
are in your PATH, then do

chdir libbsdport
autoreconf -i

Now you are ready for building. Make sure the cross-toolchain is in your 
PATH
*before* configuring.

mkdir build-i386-rtems
chdir build-i386-rtems
../configure --with-rtems-top=<rtems_target_installdir>
make

The '<rtems_target_installdir>' points to where you installed
RTEMS, i.e., librtemscpu.a must be found in

<rtems_target_installdir>/<arch>/<bsp>/lib/librtemscpu.a

(configure checks for all installed <arch> / <bsp> combinations and
configures libbsdport for each one that is supported)

You can control where the built libraries and headers are installed
by using the standard --prefix, --exec-prefix, --libdir, ... configure
options but there is also a dedicated option

--enable-std-rtems-installdirs

which causes libraries and headers to go into

<rtems_target_installdir>/<arch>/<bsp>/lib
and
<rtems_target_installdir>/<arch>/<bsp>/lib/include

respectively, i.e., they end up where the vanilla RTEMS
libraries+headers are (you don't need --prefix or any other
option if you use --enable-std-rtems-installdirs).

More info can be found in INSTALL.

USAGE: To use these drivers your app must

- specify a device name in "rtems_bsdnet_ifconfig":
   "" (empty string acts as a wild card, i.e., the first
  suitable device + driver combination are used).
  More info can be found in libbsdport_api.h.
- specify 'libbsdport_netdriver_attach' as the 'attach'
  function in "rtems_bsdnet_ifconfig"
- link -lbsdport
- link all desired drivers that should be built into
  the application, e.g., -lif_em, -lif_fxp, ...

HTH
-- Till


lee wrote:
> Hi all...
>
> I see via the mailing list of Date: Thu, 26 Jul 2007 14:45:58 -0700,
> that Till ported a network driver for intel 82571.
>
> I see that he says one should mail him, but I think it must very early
> in the morning. Does anyone else, who is awake :), know where I can find
> this driver?
>
> Lee
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>   




More information about the users mailing list