From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27445 invoked by alias); 27 Jun 2007 16:20:55 -0000 Received: (qmail 27435 invoked by uid 22791); 27 Jun 2007 16:20:53 -0000 X-Spam-Check-By: sourceware.org Received: from mrqout1-sorbs.tiscali.it (HELO mrqout1.tiscali.it) (195.130.225.22) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 27 Jun 2007 16:20:48 +0000 Received: from 10.39.115.78 by mrq-1 with esmtp (Exim) id 1I3aG4-0002S0-Ut; Wed, 27 Jun 2007 18:20:45 +0200 Received: from ps22 (10.39.75.92) by mail-8.mail.tiscali.sys (7.3.121) id 45F14963001F8BB6 for ecos-discuss@ecos.sourceware.org; Wed, 27 Jun 2007 18:20:44 +0200 Message-ID: <19489034.1182961244153.JavaMail.root@ps22> Date: Wed, 27 Jun 2007 21:10:00 -0000 From: Michele Paselli Reply-To: Michele Paselli To: ecos-discuss@ecos.sourceware.org MIME-Version: 1.0 Content-Type: text/plain;charset="UTF-8" Content-Transfer-Encoding: 7bit xOriginalSenderIP: 194.171.252.108 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: [ECOS] Interfacing directly to the low level ethernet driver, how?? X-SW-Source: 2007-06/txt/msg00257.txt.bz2 Hi , I'm about to develop a raw ethernet driver. After spending quite a lot of time reading the forum and analyzing the code I finally decide to implement a raw I/O API as suggested by Grant Edwards here: http://www.cygwin.com/ml/ecos-discuss/2003-06/msg00017.html The problem is that I'm finding quite a lot of difficulties in interfacing my I/O driver to the low level device driver of my eth controller. My idea is to use the netdevtab entry created in the .inl file and from there be able to access the eth_drv_sc structure and all the related functions. First problem, I saw that the existing network implementations (lwip and freebsd) before initializing the device the macros: CYG_HAL_TABLE_BEGIN( __NETDEVTAB__, netdev ); CYG_HAL_TABLE_END( __NETDEVTAB_END__, netdev ); are called. Should I also use these macro? What is exactly their job? I guess they don't create an entry since for that the NETDEVTAB macro is used. Second problem, in order to use the low level eth driver (packet CYGPKG_DEVS_ETH_HRDWR) I have to include also CYGPKG_IO_ETH_DRIVERS. When I compile everything with configtool I don't get any error but when I compile my test application this is what I get: Building base.out arm-elf-gcc -g -Ifmtc_install/include base.c -Lfmtc_install/lib - Ttarget.ld -nostdlib -o base.out fmtc_install/lib/libtarget.a(io_eth_eth_drv.o): In function `eth_drv_write': /imecnl/software/common/ecos/opt/ecos/ecos-2.0.43 /packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:303: undefined reference to `start_console' /imecnl/software/common/ecos/opt/ecos/ecos-2.0.43 /packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:307: undefined reference to `end_console' fmtc_install/lib/libtarget.a(io_eth_eth_drv.o): In function `eth_drv_recv': /imecnl/software/common/ecos/opt/ecos/ecos-2.0.43 /packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:493: undefined reference to `start_console' /imecnl/software/common/ecos/opt/ecos/ecos-2.0.43 /packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:501: undefined reference to `end_console' collect2: ld returned 1 exit status make: *** [out] Error 1 I checked the various cdl files and I found out that the standalone eth i/o is automatically selected if I don't include any networking stack (but I don't want to, I want to get rid of TCP and all the upper layers). What am I doing wrong? Am I approaching the problem in a wrong way? Thanks a lot Michele _______________________________________________________ Naviga e telefona senza limiti con Tiscali Scopri le promozioni Tiscali Adsl: navighi e telefoni senza canone Telecom http://abbonati.tiscali.it/adsl/ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss