From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43791 invoked by alias); 10 Apr 2015 11:26:24 -0000 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 Received: (qmail 43780 invoked by uid 89); 10 Apr 2015 11:26:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ig0-f179.google.com Received: from mail-ig0-f179.google.com (HELO mail-ig0-f179.google.com) (209.85.213.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 10 Apr 2015 11:26:22 +0000 Received: by igblo3 with SMTP id lo3so90151402igb.1 for ; Fri, 10 Apr 2015 04:26:20 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.42.146.71 with SMTP id i7mr2921308icv.89.1428665180181; Fri, 10 Apr 2015 04:26:20 -0700 (PDT) Received: by 10.64.72.234 with HTTP; Fri, 10 Apr 2015 04:26:20 -0700 (PDT) In-Reply-To: References: <552447CE.7090807@web.de> Date: Fri, 10 Apr 2015 11:26:00 -0000 Message-ID: From: Jerzy Dyrda To: Dennis S Cc: eCos Discussion Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes Subject: Re: Re: Re: [ECOS] How to activate ethernet driver X-SW-Source: 2015-04/txt/msg00004.txt.bz2 Hello Dennis, 2015-04-10 11:11 GMT+02:00 : [snip] We are a bit closer. > I digged a little deeper in the source code and found the function > "cyg_io_init" which iterates over the __DEVTAB__ table. I can see how it runs through > different devices like tty, flash, adc, ... but not the ethernet driver. > As far as I understand the reference manual, this SHOULD happen here too! No exactly, it seems that Ethernet driver is a different sort of devices strictly connected to network stack. I assume that this is reason why is called from network stack. Please look at lwIP stack which is much simple to analyse: ./net/lwip_tcpip/current/src/ecos/simple.c: cyg_lwip_simple_init(void) { [snip] // Initialize network devices for (t = &__NETDEVTAB__[0]; t != &__NETDEVTAB_END__; t++) { if (t->init(t)) { t->status = CYG_NETDEVTAB_STATUS_AVAIL; } else { // Device not [currently] available t->status = 0; } } similar mechanism is in BSD stack. >In the configuration tree under "I/O sub-system -> Common ethernet support" I: >1) activated "Support for stand-alone stack" Regarding "stand-alone stack" - this mode is used by Redboot and Redboot is responsible for driver initialization : ./redboot/current/src/net/net_io.c: net_init(void) { [snip] if (t->init(t)) { t->status = CYG_NETDEVTAB_STATUS_AVAIL; if (primary_net == (struct eth_drv_sc *)0) { primary_net = __local_enet_sc; } You have to use one of the existing stack FreeBSD/lwIP or build RedBoot as a target until you provide your own network stack. Best regards, jerzy > Gesendet: Donnerstag, 09. April 2015 um 15:43 Uhr > Von: "Jerzy Dyrda" > An: "Dennis S" > Cc: "eCos Discussion" > Betreff: Re: Re: [ECOS] How to activate ethernet driver > Hello Dennis, > > 2015-04-09 15:08 GMT+02:00 : > >> In my debugger I can see the "stm32_netdev" structure, which seems to >> be filled correctly except for the "status". This is set to zero, for what >> I >> do not know if it is correct? > I also don't know but the most important issue is that "stm32_eth_init" > have to be called. But to achive it you have to have properly configured > system. > Please look below. > >> Anyway.. putting a breakpoint in the beginning of "stm32_eth_init" does >> not have any effect. The program does not stop! > >> Any other suggestions? > Sorry for such basic question but do you have such packages like: > CYGPKG_IO_ETH_DRIVERS, network driver and so on? > > BTW. > Maybe in this way it will be easier. Generally if I like to add > new eth/phy driver I create eCos configuration file with using template > usually "lwIP for Ethernet" and proper hardware target. After that > I didn't have any problem with "calling" eth/phy driver. > > Could you provide information about your target? > Is it any known reference board? > Do you have HAL (BSP) for it? > > >> Gesendet: Donnerstag, 09. April 2015 um 14:15 Uhr >> Von: "Jerzy Dyrda" >> An: "Dennis S" >> Cc: "eCos Discussion" >> Betreff: Re: [ECOS] How to activate ethernet driver >> Hello Dennis, >> >> You have to add your PHY driver to the list in >> devs/eth/phy/current/cdl/phy_eth_drivers.cdl like that: >> cdl_option CYGHWR_DEVS_ETH_PHY_LAN8720A { >> display "SMSC LAN8720A" >> flavor bool >> default_value 0 >> compile -library=libextras.a LAN8720A.c >> description " >> Include support for SMSC LAN8720A" >> } >> >> and after that of course choose it. >> >> Regarding ETH driver you have to provide such entry in an code of driver : >> >> ETH_DRV_SC(stm32_sc, >> &stm32_priv_data, // Driver specific data >> "eth0", // Name for this interface >> stm32_eth_start, >> stm32_eth_stop, >> stm32_eth_control, >> stm32_eth_can_send, >> stm32_eth_send, >> stm32_eth_recv, >> stm32_eth_deliver, >> stm32_eth_poll, >> stm32_eth_int_vector); >> >> NETDEVTAB_ENTRY(stm32_netdev, >> "stm32", >> stm32_eth_init, >> &stm32_sc); >> after that init() funtion (in my case stm32_eth_init,) will be called. >> >> >> Best regards, >> jerzy >> >> 2015-04-07 23:10 GMT+02:00 Dennis S : >>> Good evening, >>> I have a question concerning the programming of the ethernet in eCos. >>> >>> The current state is, that I can use some existent functions for the >>> MAC of my Embedded System located in /devs/eth. They provide the >>> possibility to access the hardware via HAL_WRITE(). The init function >>> is used in the NETDEV_TAB macro. >>> >>> Additionally I wrote some drivers for the seperated PHY with the >>> obligatory "phy_stat" function. When I started debugging I was very >>> suprised, that either the init function of the mac nor some function >>> of the PHY driver was used (I set a brakpoint there and nothing >>> happens). >>> >>> So my question is: do I have to activate some other things to get >>> the ethernet work? What possibilities are there to check the result? >>> By the way: the plan is to use a third party TCP-stack later. >>> >>> Kind regards, >>> Dennis >>> >>> -- >>> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos >>> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss >>> -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss