RTnet:rt e1000

From Xenomai

Jump to: navigation, search

Contents

Introduction

The Intel PRO/1000 NIC requires a longer period to detect a connection to the ethernet. This is a known issue in both, non-rt and rt driver (rt_)e1000, and may prevent you from successfully sync a slave using rt_e1000 driver with any master.

This wiki page will help you to fix this issue, presenting you two ways how to deal with it. This is only necessary when using RTnet<=v0.9.9, as from RTnet v0.9.10 on, the rt_e1000 driver is already patched with provided patch.

For further information please see synchronisation problems and rt_e1000 driver loading.

Fixes

Use one of the following to get your rt_e1000 driven RTnet slave working.

patching rt_e1000 driver

Apply the follwing patch to your RTnet sources.

Index: drivers/e1000/e1000_main.c
===================================================================
--- drivers/e1000/e1000_main.c    (Revision 1136)
+++ drivers/e1000/e1000_main.c    (Arbeitskopie)
@@ -1202,6 +1202,9 @@ e1000_open(struct rtnet_device *netdev)
         e1000_check_mng_mode(&adapter->hw))
         e1000_get_hw_control(adapter);

+    /* Wait for the hardware to come up */
+    msleep(3000);
+
     return E1000_SUCCESS;

 err_up:

editing your start script

If you are using a startup script (provided rtnet start script or own created), after loading rt_e1000 driver module, you should sleep for a while to let the connection come up.

[... snipped ...]
insmod rt_e1000.ko
sleep 3
[... snipped ...]
Personal tools
Hardware Support