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