[Barrelfish-users] netd is always fail to get ip from dhcp server

Pravin pravin at inf.ethz.ch
Thu Nov 22 12:23:09 CET 2012


Most of the eMAC driver code was tested only with eMAC2 for us because
it was the only working PHY we had in our SCC.  So, there might be
some mistake in defining the registers for eMAC3 that we never
spotted.   You can find all the hardware register definitions in
``devices/eMAC.dev`` file.  This file also mentions which documents
were referred to get these values (unfortunately the links to
documents are pointing to our internal website).

Other possibility is that it is an issue with our producer-consumer
code implementation (eg: functions like sp_queue_empty in
lib/procon/procon.c) which was added after implementation of eMAC
driver but was not well tested with SCC and its different cache
coherence system.  We have fixed this implementation issue and we are
in a process of testing and merging these changes to the main tree for
releasing.  So, if this issue is caused by procon library then it
should get fixed with this release.

I hope this helps!


On Tue, Nov 20, 2012 at 4:12 AM, Tangjiyuan <tangjiyuan at huawei.com> wrote:
> Environment
>     intel sccReset 1.4.2
>     Linux scctest-desktop 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7
> 21:13:52 UTC 2011 x86_64 GNU/Linux
>     Barrelfish version: release2012-11-03
> Others
>     Because only eMAC3 of scc is available, I changed all of eMAC2 to eMAC3
> in /lib/lwip/src/core/init.c and /usr/drivers/eMAC/eMAC_hwint.c
> Phenomenon
>     Hi, all
>     Every time I start barrelfish, netd is always fail to get ip from dhcp
> server.
>     And then, I found that in send_packets_on_wire() function it will return
> 0 with a probability of 98%. That is to mean in send_packets_on_wire()
> function, sp_queue_empty(spp) will return true with a probability of 98%.
> static uint64_t send_packets_on_wire(struct net_queue_manager_binding *cc)
> {
>     ... ...
>     sp_reload_regs(spp);
>     if (sp_queue_empty(spp)) {
>         return 0;
>     }
>     ... ...
> }
>     I tried many times, only three times send_packets_on_wire() function
> went normally, but it then aborted in sp_process_tx_done() function later.
>     What is the problem? Can anyone help me out? Thank you!
> menu.lst
> title   Barrelfish
> root    (nd)
> kernel  /scc/sbin/cpu loglevel=4
> module  /scc/sbin/cpu
> module  /scc/sbin/init
> # Domains spawned by init
> module  /scc/sbin/mem_serv
> module  /scc/sbin/monitor
> module  /scc/sbin/chips boot
> module  /scc/sbin/ramfsd boot
> module  /scc/sbin/skb boot
> module  /scc/sbin/spawnd boot bootscc=1
> module  /scc/sbin/startd boot
> # modules needed to start the networking
> module  /scc/sbin/eMAC core=0 device=3 servicename=eMAC3_0
> module  /scc/sbin/NGD_mng core=0 cardname=eMAC3_0
> module  /scc/sbin/netd core=0 cardname=eMAC3_0
> # RCK memory map
> # 624MB private RAM
> mmap    map     0x0             0x27000000      1
> # 1GB shared RAM (over all MCs) in the middle of address space
> mmap    map     0x80000000      0x40000000      1
> # 16MB more private RAM (bootup jump is in here, too)
> mmap    map     0xff000000      0x1000000       1
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users

More information about the Barrelfish-users mailing list