[RFC] picotcp.20140530

Antony Pavlov antonynpavlov at gmail.com
Mon Jun 2 09:56:28 PDT 2014


On Mon, 2 Jun 2014 10:46:21 +0200
Sascha Hauer <s.hauer at pengutronix.de> wrote:

> On Fri, May 30, 2014 at 01:18:33PM +0400, Antony Pavlov wrote:
> > Hi All!
> > 
> > My new barebox with picotcp support brunch is pushed to github:
> > 
> >     https://github.com/frantony/barebox/tree/picotcp.20140530
> > 
> > For this version reworked content of Daniele Lacamera's push request
> > is used (see https://github.com/frantony/barebox/pull/1).
> > 
> > Changes since picotcp.20140525:
> > 
> >   * rebased over latest barebox;
> >   * the latest picotcp is used (warnings and big-endian
> >     tests fixed);
> >   * add picotcp dhcp client support by Daniele Lacamera
> >   * qemu mips malta defconfig is dropped as barebox qemu
> >     malta has no network device support (you can rebase
> >     over experimental pci branch but it is very different story ...)
> >   * other small fixes.
> 
> I tried this version. I still didn't get it working, but some
> improvements.
> 
> What I changed is:
> 
> * call eth_send() instead of edev->send directly. This makes sure the
>   carrier is initialized correctly
> * implemented pico_zalloc as memalign(32, x); memset(ptr, 0 x); Some
>   drivers (such as fec_imx.c I tested with) need bigger alignment for
>   network packets to be able to do DMA transfers.
> * move picotcp_net_init from coredevice_initcall to device_initcall.
>   In my case the poller infrastructure is not available during
>   coredevice_initcall and barebox crashes. Maybe the poller
>   infrastructure could be made more robust here, but we don't want to
>   to networking in this early stage anyway, right?
> * select POLLER is missing
> 
> With this I get:
> 
> barebox at Phytec phyCORE-i.MX27:/ ifconfig eth 192.168.23.67 255.255.0.0
> up
> Assigned ipv4 192.168.23.67 to device eth
> barebox at Phytec phyCORE-i.MX27:/ picoping 192.168.23.4
> eth0: 100Mbps full duplex link detected
> ARP: Destination Unreachable
> ARP: Destination Unreachable
> ARP: Destination Unreachable
> ARP: Destination Unreachable
> ARP: Destination Unreachable
>  ---- Ping timeout!!!

I have just used https://github.com/frantony/barebox/tree/picotcp.20140530 on real MIPS big-endian hardware.
I have not introduced any picotcp/network stack -related changes.

picoping works fine for me.

I have even used tcpdump to check that barebox (10.22.0.99) really pings my x86 host (10.22.0.1) via real world Ethernet.

Yes, it really does so:

   20:36:28.583402 IP 10.22.0.99 > 10.22.0.1: ICMP echo request, id 37314, seq 6, length 56

There is a small problem: my network interface has 'eth0' name, but ifconfig sees only 'eth' interface.

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list