All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH v3 14/14] dm: eth: Add a bridge to a real network for sandbox
Date: Tue, 17 Feb 2015 22:02:24 -0700	[thread overview]
Message-ID: <CAPnjgZ0PuSavQpArmh-h+QpCTtv4urw8DsoH5qNDH+FE9ywBvQ@mail.gmail.com> (raw)
In-Reply-To: <CANr=Z=aCgOFMcS7oHKygar43uzmzVegnes8hYe8jds1SrQnrDw@mail.gmail.com>

Hi Joe,

On 16 February 2015 at 22:16, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Feb 15, 2015 at 9:50 AM, Simon Glass <sjg@chromium.org> wrote:
>>
>> Hi Joe,
>>
>> On 10 February 2015 at 18:30, Joe Hershberger <joe.hershberger@ni.com>
>> wrote:
>> > Implement a bridge between u-boot's network stack and Linux's raw packet
>> > API allowing the sandbox to send and receive packets using the host
>> > machine's network interface.
>> >
>> > This raw Ethernet API requires elevated privileges.  You can either run
>> > as root, or you can add the capability needed like so:
>> >
>> > sudo /sbin/setcap "CAP_NET_RAW+ep" u-boot
>>
>> Can you add a note about thsi in README.sandbox? This seems like a
>> major new feature. It was talked about a few years ago when sandbox
>> was first created.
>
> OK.  Can you maybe point me to that conversation so I can understand what
> was anticipated potentially covering more of what was expected.

All I could find was this:

http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/108687

>
>> >
>> > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
>> >
>> > ---
>> >
>> > Changes in v3:
>> > -Made the os raw packet support for sandbox eth build and work.
>> >
>> > Changes in v2:
>> > -Added the raw packet proof-of-concept patch.
>> >
>> >  arch/sandbox/dts/sandbox.dts              |   6 ++
>> >  arch/sandbox/include/asm/sandbox-raw-os.h |  16 ++++
>> >  drivers/net/Makefile                      |  11 +++
>> >  drivers/net/sandbox-raw-os.c              | 105
>> > ++++++++++++++++++++++++
>> >  drivers/net/sandbox-raw.c                 | 128
>> > ++++++++++++++++++++++++++++++
>> >  include/configs/sandbox.h                 |   1 +
>> >  6 files changed, 267 insertions(+)
>> >  create mode 100644 arch/sandbox/include/asm/sandbox-raw-os.h
>> >  create mode 100644 drivers/net/sandbox-raw-os.c
>> >  create mode 100644 drivers/net/sandbox-raw.c
>> >
>> > diff --git a/arch/sandbox/dts/sandbox.dts b/arch/sandbox/dts/sandbox.dts
>> > index ba635e8..13bd6c2 100644
>> > --- a/arch/sandbox/dts/sandbox.dts
>> > +++ b/arch/sandbox/dts/sandbox.dts
>> > @@ -188,4 +188,10 @@
>> >                 reg = <0x10002000 0x1000>;
>> >                 fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x00>;
>> >         };
>> > +
>> > +       eth at 80000000 {
>> > +               compatible = "sandbox,eth,raw";
>>
>> We normally have "vendor,device", so maybe "sandbox,raw-eth"
>
> OK
>
>> > +               reg = <0x80000000 0x1000>;
>> > +               host-raw-interface = "eth0";
>> > +       };
>> >  };
>> > diff --git a/arch/sandbox/include/asm/sandbox-raw-os.h
>> > b/arch/sandbox/include/asm/sandbox-raw-os.h
>> > new file mode 100644
>> > index 0000000..4e5d418
>> > --- /dev/null
>> > +++ b/arch/sandbox/include/asm/sandbox-raw-os.h
>> > @@ -0,0 +1,16 @@
>> > +/*
>> > + * Copyright (c) 2015 National Instruments
>> > + *
>> > + * (C) Copyright 2015
>> > + * Joe Hershberger <joe.hershberger@ni.com>
>> > + *
>> > + * SPDX-License-Identifier:    GPL-2.0+
>> > + */
>> > +
>> > +#pragma once
>>
>> We use #ifdef for this in U-Boot at present. I'm not sure why -
>> perhaps compatibility?
>
> OK
>
>> > +
>> > +int sandbox_raw_init(int *sd, void **devp, const char *ifname,
>> > +                    unsigned char *ethmac);
>> > +int sandbox_raw_send(void *packet, int length, int sd, void *device);
>> > +int sandbox_raw_recv(void *packet, int *length, int sd, void *device);
>> > +void sandbox_raw_halt(int *sd, void **devp);
>>
>> Function comments, also what is 'device'?
>
> Comments about what?  These are just the functions that implement the
> Ethernet driver ops.  Is it not sufficient to document the driver ops
> themselves (as you requested in the other patch)?

Well they seem to have different parameters:

- what is 'device'?
- what is'sd''?

I think these warrant comments.

>
>> > diff --git a/drivers/net/Makefile b/drivers/net/Makefile
>> > index 15dc431..39975b3 100644
>> > --- a/drivers/net/Makefile
>> > +++ b/drivers/net/Makefile
>> > @@ -51,6 +51,8 @@ obj-$(CONFIG_PCNET) += pcnet.o
>> >  obj-$(CONFIG_RTL8139) += rtl8139.o
>> >  obj-$(CONFIG_RTL8169) += rtl8169.o
>> >  obj-$(CONFIG_ETH_SANDBOX) += sandbox.o
>> > +obj-$(CONFIG_ETH_SANDBOX_RAW) += sandbox-raw.o
>> > +obj-$(CONFIG_ETH_SANDBOX_RAW) += sandbox-raw-os.o
>> >  obj-$(CONFIG_SH_ETHER) += sh_eth.o
>> >  obj-$(CONFIG_SMC91111) += smc91111.o
>> >  obj-$(CONFIG_SMC911X) += smc911x.o
>> > @@ -68,3 +70,12 @@ obj-$(CONFIG_XILINX_LL_TEMAC) += xilinx_ll_temac.o
>> > xilinx_ll_temac_mdio.o \
>> >  obj-$(CONFIG_ZYNQ_GEM) += zynq_gem.o
>> >  obj-$(CONFIG_FSL_MC_ENET) += fsl_mc/
>> >  obj-$(CONFIG_VSC9953) += vsc9953.o
>> > +
>> > +# sandbox-raw-os.c is built in the system env, so needs standard
>> > includes
>> > +# CFLAGS_REMOVE_sandbox-raw-os.o cannot be used to drop header include
>> > path
>> > +quiet_cmd_cc_sandbox-raw-os.o = CC $(quiet_modtag)  $@
>> > +cmd_cc_sandbox-raw-os.o = $(CC) $(filter-out -nostdinc, \
>> > +       $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ lt;
>> > +
>> > +$(obj)/sandbox-raw-os.o: $(src)/sandbox-raw-os.c FORCE
>> > +       $(call if_changed_dep,cc_sandbox-raw-os.o)
>>
>> Can we please move this to the same directory as os.c, so that all the
>> OS-specific stuff is in one place.
>
> OK
>
>
>> > diff --git a/drivers/net/sandbox-raw-os.c b/drivers/net/sandbox-raw-os.c
>> > new file mode 100644
>> > index 0000000..43fae60
>> > --- /dev/null
>> > +++ b/drivers/net/sandbox-raw-os.c
>> > @@ -0,0 +1,105 @@
>> > +/*
>> > + * Copyright (c) 2015 National Instruments
>> > + *
>> > + * (C) Copyright 2015
>> > + * Joe Hershberger <joe.hershberger@ni.com>
>> > + *
>> > + * SPDX-License-Identifier:    GPL-2.0+
>> > + */
>> > +
>> > +#include <errno.h>
>> > +#include <net/if.h>
>> > +#include <netinet/in.h>
>> > +#include <stdio.h>
>> > +#include <stdlib.h>
>> > +#include <string.h>
>> > +#include <sys/types.h>
>> > +#include <sys/ioctl.h>
>> > +#include <sys/socket.h>
>> > +#include <unistd.h>
>> > +
>> > +#include <linux/if_ether.h>
>> > +#include <linux/if_packet.h>
>> > +
>> > +int sandbox_raw_init(int *sd, void **devp, const char *ifname,
>> > +                    unsigned char *ethmac)
>> > +{
>> > +       int tempsd = 0;
>> > +       struct ifreq ifr;
>> > +
>> > +       strcpy(ifr.ifr_name, ifname);
>> > +       ifr.ifr_addr.sa_family = AF_INET;
>> > +       memset(ethmac, 0, 6);
>> > +       tempsd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
>> > +       if (tempsd < 0) {
>> > +               printf("Failed to open socket: %d %s\n", errno,
>> > +                      strerror(errno));
>> > +               return 1;
>>
>> How about:
>>
>>    return -errno
>>
>> here? That is what U-Boot tends to use now.
>
> OK
>
>
>> > +       }
>> > +       if (ioctl(tempsd, SIOCGIFHWADDR, &ifr) < 0) {
>> > +               printf("Failed to call ioctl: %s\n", strerror(errno));
>> > +               close(tempsd);
>> > +               return 1;
>> > +       }
>> > +       /*
>> > +        * This only works if the MAC address is overridden with the
>> > actual MAC
>> > +        * address of the interface being used.
>> > +        */
>> > +       memcpy(ethmac, ifr.ifr_hwaddr.sa_data, 6 * sizeof(uint8_t));
>> > +       close(tempsd);
>> > +
>> > +       *devp = malloc(sizeof(struct sockaddr_ll));
>> > +       struct sockaddr_ll *device = *devp;
>> > +       memset(device, 0, sizeof(struct sockaddr_ll));
>> > +       device->sll_ifindex = if_nametoindex(ifname);
>> > +       device->sll_family = AF_PACKET;
>> > +       memcpy(device->sll_addr, ethmac, 6);
>> > +       device->sll_halen = htons(6);
>> > +
>> > +       *sd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
>> > +       setsockopt(*sd, SOL_SOCKET, SO_BINDTODEVICE, ifname,
>> > +                  strlen(ifname) + 1);
>> > +
>> > +       return 0;
>> > +}
>> > +
>> > +int sandbox_raw_send(void *packet, int length, int sd, void *device)
>> > +{
>> > +       int retval;
>> > +
>> > +       if (!sd || !device)
>> > +               return -EINVAL;
>> > +       retval = sendto(sd, packet, length, 0,
>> > +                  (struct sockaddr *)device, sizeof(struct
>> > sockaddr_ll));
>> > +       if (retval < 0)
>> > +               printf("Failed to send packet: %d %s\n", errno,
>> > +                      strerror(errno));
>> > +       return retval;
>> > +}
>> > +
>> > +int sandbox_raw_recv(void *packet, int *length, int sd, void *device)
>> > +{
>> > +       int retval;
>> > +       int saddr_size;
>> > +
>> > +       if (!sd || !device)
>> > +               return -EINVAL;
>> > +       saddr_size = sizeof(struct sockaddr);
>> > +       retval = recvfrom(sd, packet, 1536, 0, (struct sockaddr
>> > *)device,
>> > +                         (socklen_t *)&saddr_size);
>> > +       *length = 0;
>> > +       if (retval > 0) {
>> > +               *length = retval;
>> > +               return 0;
>> > +       }
>> > +
>> > +       return retval;
>> > +}
>> > +
>> > +void sandbox_raw_halt(int *sd, void **devp)
>> > +{
>> > +       free((struct sockaddr_ll *)*devp);
>> > +       *devp = NULL;
>> > +       close(*sd);
>> > +       *sd = -1;
>> > +}
>> > diff --git a/drivers/net/sandbox-raw.c b/drivers/net/sandbox-raw.c
>> > new file mode 100644
>> > index 0000000..90e462a
>> > --- /dev/null
>> > +++ b/drivers/net/sandbox-raw.c
>> > @@ -0,0 +1,128 @@
>> > +/*
>> > + * Copyright (c) 2015 National Instruments
>> > + *
>> > + * (C) Copyright 2015
>> > + * Joe Hershberger <joe.hershberger@ni.com>
>> > + *
>> > + * SPDX-License-Identifier:    GPL-2.0+
>> > + */
>> > +
>> > +#include <asm/sandbox-raw-os.h>
>> > +#include <common.h>
>> > +#include <dm.h>
>> > +#include <fdtdec.h>
>> > +#include <malloc.h>
>> > +#include <net.h>
>> > +
>> > +DECLARE_GLOBAL_DATA_PTR;
>> > +
>> > +struct eth_sandbox_raw_priv {
>> > +       int sd;
>> > +       void *device;
>>
>> comments
>>
>> > +};
>> > +
>> > +static int sb_eth_raw_init(struct udevice *dev, bd_t *bis)
>> > +{
>> > +       debug("eth_sandbox_raw: Init\n");
>>
>> Put after declarations (perhaps removing code from decls if you like)
>> in each case.
>>
>> > +
>> > +       struct eth_sandbox_raw_priv *priv = dev->priv;
>>
>> add blank line
>>
>> > +       if (!priv)
>> > +               return -EINVAL;
>>
>> As elsewhere I don't understand why this is needed
>>
>> > +
>> > +       struct eth_pdata *pdata = dev->platdata;
>> > +       int retval;
>> > +       const char *interface = fdt_getprop(gd->fdt_blob,
>> > dev->of_offset,
>> > +                                           "host-raw-interface", NULL);
>> > +
>> > +       retval = sandbox_raw_init(&priv->sd, &priv->device, interface,
>> > +                                 pdata->enetaddr);
>> > +
>> > +       return retval;
>> > +}
>> > +
>> > +static int sb_eth_raw_send(struct udevice *dev, void *packet, int
>> > length)
>> > +{
>> > +       debug("eth_sandbox_raw: Send packet %d\n", length);
>> > +
>> > +       struct eth_sandbox_raw_priv *priv = dev->priv;
>>
>> dev_get_priv(dev) in each case
>>
>> > +
>> > +       return sandbox_raw_send(packet, length, priv->sd, priv->device);
>> > +}
>> > +
>> > +static int sb_eth_raw_recv(struct udevice *dev)
>> > +{
>> > +       struct eth_sandbox_raw_priv *priv = dev->priv;
>> > +
>>
>> remove blank line
>>
>> > +       int retval;
>> > +       uchar buffer[PKTSIZE];
>> > +       int length;
>> > +
>> > +       if (!priv)
>> > +               return 0;
>> > +       retval = sandbox_raw_recv(buffer, &length, priv->sd,
>> > priv->device);
>> > +       if (!retval && length) {
>> > +               debug("eth_sandbox_raw: received packet %d\n",
>> > +                     length);
>> > +               NetReceive(buffer, length);
>> > +       }
>> > +       return 0;
>> > +}
>> > +
>> > +static void sb_eth_raw_halt(struct udevice *dev)
>> > +{
>> > +       debug("eth_sandbox_raw: Halt\n");
>> > +
>> > +       struct eth_sandbox_raw_priv *priv = dev->priv;
>> > +
>> > +       if (!priv)
>> > +               return;
>> > +       sandbox_raw_halt(&priv->sd, &priv->device);
>> > +}
>> > +
>> > +static int sb_eth_raw_write_hwaddr(struct udevice *dev)
>> > +{
>> > +       struct eth_pdata *pdata = dev->platdata;
>> > +
>> > +       debug("eth_sandbox_raw %s: Write HW ADDR - %pM\n", dev->name,
>> > +             pdata->enetaddr);
>> > +       return 0;
>> > +}
>> > +
>> > +static const struct eth_ops sb_eth_raw_ops = {
>> > +       .init                   = sb_eth_raw_init,
>> > +       .send                   = sb_eth_raw_send,
>> > +       .recv                   = sb_eth_raw_recv,
>> > +       .halt                   = sb_eth_raw_halt,
>> > +       .write_hwaddr           = sb_eth_raw_write_hwaddr,
>> > +};
>> > +
>> > +static int sb_eth_raw_remove(struct udevice *dev)
>> > +{
>> > +       return 0;
>> > +}
>> > +
>> > +#ifdef CONFIG_OF_CONTROL
>>
>> This is always defined for sandbox.
>
> I figured it was a good pattern to use in general, but if you want me to
> prune it out of sandbox-only code I can.

I think so, it is pointless really and just clutters the code. I can't
imagine sandbox being built without device tree (famous last words!)

>
>> > +static int sb_eth_raw_ofdata_to_platdata(struct udevice *dev)
>> > +{
>> > +       struct eth_pdata *pdata = dev->platdata;
>> > +
>> > +       pdata->iobase = fdtdec_get_addr(gd->fdt_blob, dev->of_offset,
>> > "reg");
>>
>> dev_get_addr() is now available in dm/master if you prefer to use that.
>
> OK
>
>
>> > +       return 0;
>> > +}
>> > +
>> > +static const struct udevice_id sb_eth_raw_ids[] = {
>> > +       { .compatible = "sandbox,eth,raw" },
>> > +       { }
>> > +};
>> > +#endif
>> > +
>> > +U_BOOT_DRIVER(eth_sandbox_raw) = {
>> > +       .name   = "eth_sandbox_raw",
>> > +       .id     = UCLASS_ETH,
>> > +       .of_match = of_match_ptr(sb_eth_raw_ids),
>> > +       .ofdata_to_platdata =
>> > of_match_ptr(sb_eth_raw_ofdata_to_platdata),
>> > +       .remove = sb_eth_raw_remove,
>> > +       .ops    = &sb_eth_raw_ops,
>> > +       .priv_auto_alloc_size = sizeof(struct eth_sandbox_raw_priv),
>> > +       .platdata_auto_alloc_size = sizeof(struct eth_pdata),
>> > +};
>> > diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
>> > index 9df5f74..7afa3d2 100644
>> > --- a/include/configs/sandbox.h
>> > +++ b/include/configs/sandbox.h
>> > @@ -141,6 +141,7 @@
>> >
>> >  #define CONFIG_DM_ETH
>> >  #define CONFIG_ETH_SANDBOX
>> > +#define CONFIG_ETH_SANDBOX_RAW
>>
>> These should go in Kconfig. Could be a follow-on patch if that is easier.
>
> OK
>
>> >  #define CONFIG_CMD_PING
>> >
>> >  #define CONFIG_CMD_HASH
>> > --
>> > 1.7.11.5
>> >

Regards,
Simon

  reply	other threads:[~2015-02-18  5:02 UTC|newest]

Thread overview: 282+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27 23:27 [U-Boot] [RFC PATCH 0/7] Add Driver Model support to network stack Joe Hershberger
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 1/7] net: Provide a function to get the current MAC address Joe Hershberger
2015-01-28  2:33   ` Simon Glass
2015-01-28  9:45     ` Joe Hershberger
2015-01-29  1:46       ` Simon Glass
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 2/7] net: Rename helper function to be more clear Joe Hershberger
2015-01-28  2:34   ` Simon Glass
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 3/7] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-01-28  2:34   ` Simon Glass
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 4/7] net: Refactor in preparation for driver model Joe Hershberger
2015-01-28  2:34   ` Simon Glass
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 5/7] net: Add basic driver model support to Ethernet stack Joe Hershberger
2015-01-28  2:34   ` Simon Glass
2015-01-28 10:22     ` Joe Hershberger
2015-01-29  1:56       ` Simon Glass
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 6/7] net: Add network support to sandbox Joe Hershberger
2015-01-28  2:34   ` Simon Glass
2015-01-28 10:24     ` Joe Hershberger
2015-01-27 23:27 ` [U-Boot] [RFC PATCH 7/7] net: Add ARP and PING response to sandbox driver Joe Hershberger
2015-01-28  2:34   ` Simon Glass
     [not found]     ` <CANr=Z=YcT=OvcA8ggaMCrOfyS5ShjFzgK6AW9gpfsNsZqcgfPA@mail.gmail.com>
2015-01-29  1:58       ` Simon Glass
2015-01-28  2:33 ` [U-Boot] [RFC PATCH 0/7] Add Driver Model support to network stack Simon Glass
2015-02-03  0:38 ` [U-Boot] [RFC PATCH v2 0/8] " Joe Hershberger
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 1/8] net: Provide a function to get the current MAC address Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 2/8] net: Rename helper function to be more clear Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 3/8] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 4/8] net: Refactor in preparation for driver model Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 5/8] net: Add basic driver model support to Ethernet stack Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-11  6:25       ` Joe Hershberger
2015-02-13  5:20         ` Simon Glass
2015-02-14  2:43           ` Joe Hershberger
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 6/8] net: Add network support to sandbox Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 7/8] net: Add ARP and PING response to sandbox driver Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-03  0:38   ` [U-Boot] [RFC PATCH v2 8/8] net: Add actual networking support to sandbox's driver Joe Hershberger
2015-02-07  1:25     ` Simon Glass
2015-02-11  1:30   ` [U-Boot] [RFC PATCH v3 0/14] Add Driver Model support to network stack Joe Hershberger
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 01/14] dm: core: Allow seq numbers to be resolved before probe Joe Hershberger
2015-02-11  4:39       ` Simon Glass
2015-02-11  6:08         ` Joe Hershberger
2015-02-13  5:14           ` Simon Glass
2015-02-14  2:33             ` Joe Hershberger
2015-02-15 15:59               ` Simon Glass
2015-02-17  4:17                 ` Joe Hershberger
2015-02-18  5:02                   ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 02/14] test: dm: Reorder the objects to build Joe Hershberger
2015-02-11  4:39       ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 03/14] net: Provide a function to get the current MAC address Joe Hershberger
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 04/14] net: Rename helper function to be more clear Joe Hershberger
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 05/14] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 06/14] net: Refactor in preparation for driver model Joe Hershberger
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 07/14] dm: eth: Add basic driver model support to Ethernet stack Joe Hershberger
2015-02-15 15:49       ` Simon Glass
2015-02-17  4:37         ` Joe Hershberger
2015-02-18  5:02           ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 08/14] dm: eth: Add network support to sandbox Joe Hershberger
2015-02-15 15:49       ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 09/14] dm: eth: Add ARP and PING response to sandbox driver Joe Hershberger
2015-02-15 15:49       ` Simon Glass
2015-02-17  4:46         ` Joe Hershberger
2015-02-18  5:02           ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 10/14] test: dm: eth: Add tests for the eth dm implementation Joe Hershberger
2015-02-15 15:50       ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 11/14] dm: eth: Add support for aliases Joe Hershberger
2015-02-15 15:50       ` Simon Glass
2015-02-17  5:04         ` Joe Hershberger
2015-02-18  5:02           ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 12/14] dm: eth: Add support for ethprime env var Joe Hershberger
2015-02-15 15:50       ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 13/14] dm: eth: Add testing for netretry " Joe Hershberger
2015-02-15 15:50       ` Simon Glass
2015-02-11  1:30     ` [U-Boot] [RFC PATCH v3 14/14] dm: eth: Add a bridge to a real network for sandbox Joe Hershberger
2015-02-15 15:50       ` Simon Glass
2015-02-17  5:16         ` Joe Hershberger
2015-02-18  5:02           ` Simon Glass [this message]
2015-02-19 23:44             ` Joe Hershberger
2015-02-20 19:33               ` Simon Glass
2015-02-25  0:02     ` [U-Boot] [RFC PATCH v4 0/23] Add Driver Model support to network stack Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 01/23] test: dm: Reorder the objects to build Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 02/23] common: Make sure arch-specific map_sysmem() is defined Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-01 21:16           ` Joe Hershberger
2015-03-02  2:24             ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 03/23] net: Provide a function to get the current MAC address Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 04/23] net: Rename helper function to be more clear Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 05/23] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 06/23] net: Refactor in preparation for driver model Joe Hershberger
2015-03-01 18:08         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 07/23] net: Change return codes from net/eth.c to use errorno constants Joe Hershberger
2015-02-26  0:53         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 08/23] net: Use int instead of u8 for boolean flag Joe Hershberger
2015-02-26  0:53         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 09/23] net: Remove the bd* parameter from net stack functions Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 10/23] net: Make netretry actually do something Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-01 21:53           ` Joe Hershberger
2015-03-02  2:24             ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 11/23] net: Access mapped physmem in net functions Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 12/23] dm: eth: Add basic driver model support to Ethernet stack Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-01 21:45           ` Joe Hershberger
2015-03-02  2:26             ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 13/23] sandbox: eth: Add network support to sandbox Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 14/23] sandbox: eth: Add ARP and PING response to sandbox driver Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 15/23] test: dm: eth: Add tests for the eth dm implementation Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 16/23] dm: eth: Add support for aliases Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-01 22:04           ` Joe Hershberger
2015-03-02  2:23             ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 17/23] dm: eth: Add support for ethprime env var Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-01 22:06           ` Joe Hershberger
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 18/23] test: dm: eth: Add testing for ethrotate " Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 19/23] sandbox: eth: Add ability to disable ping reply in sandbox eth driver Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 20/23] test: dm: net: Add a test of the netretry behavior Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 21/23] sandbox: eth: Add a bridge to a real network for sandbox Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-02  7:17           ` Joe Hershberger
2015-03-02 15:48             ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 22/23] sandbox: Enable DHCP and IP defrag Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-02-25  0:02       ` [U-Boot] [RFC PATCH v4 23/23] sandbox: eth: Add support for using the 'lo' interface Joe Hershberger
2015-03-01 18:07         ` Simon Glass
2015-03-02  7:18           ` Joe Hershberger
2015-03-02 22:16             ` Simon Glass
2015-03-01 16:13       ` [U-Boot] [RFC PATCH v4 0/23] Add Driver Model support to network stack Simon Glass
2015-03-01 22:12         ` Joe Hershberger
2015-03-02  2:23           ` Simon Glass
2015-03-03 22:29         ` Joe Hershberger
2015-03-03 23:14           ` Simon Glass
2015-03-03 23:32             ` Joe Hershberger
2015-03-03 23:40               ` Simon Glass
2015-03-04  2:40       ` [U-Boot] [PATCH v5 0/27] " Joe Hershberger
2015-03-04  2:40         ` [U-Boot] [PATCH v5 01/27] test: dm: Reorder the objects to build Joe Hershberger
2015-03-04  2:40         ` [U-Boot] [PATCH v5 02/27] common: Make sure arch-specific map_sysmem() is defined Joe Hershberger
2015-03-04 19:18           ` Simon Glass
2015-03-04  2:40         ` [U-Boot] [PATCH v5 03/27] net: Provide a function to get the current MAC address Joe Hershberger
2015-03-04  2:40         ` [U-Boot] [PATCH v5 04/27] net: Rename helper function to be more clear Joe Hershberger
2015-03-04  2:40         ` [U-Boot] [PATCH v5 05/27] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 06/27] net: Refactor in preparation for driver model Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 07/27] net: Change return codes from net/eth.c to use errorno constants Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 08/27] net: Use int instead of u8 for boolean flag Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 09/27] net: Remove the bd* parameter from net stack functions Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 10/27] net: Make netretry actually do something Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 11/27] net: Access mapped physmem in net functions Joe Hershberger
2015-03-04 18:34           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 12/27] cmd: net: Clean up return codes Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 13/27] dm: eth: Add basic driver model support to Ethernet stack Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 14/27] net: Clean up network stack names used in DM drivers Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 15/27] dm: eth: Pass the packet pointer as a parameter to recv Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-10 23:28             ` Joe Hershberger
2015-03-10 23:31               ` Simon Glass
2015-03-10 23:41                 ` Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 16/27] sandbox: eth: Add network support to sandbox Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 17/27] sandbox: eth: Add ARP and PING response to sandbox driver Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 18/27] test: dm: eth: Add tests for the eth dm implementation Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 19/27] dm: eth: Add support for aliases Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 20/27] dm: eth: Add support for ethprime env var Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 21/27] test: dm: eth: Add testing for ethrotate " Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 22/27] sandbox: eth: Add ability to disable ping reply in sandbox eth driver Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 23/27] test: dm: net: Add a test of the netretry behavior Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 24/27] sandbox: eth: Add a bridge to a real network for sandbox Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 25/27] sandbox: Enable DHCP and IP defrag Joe Hershberger
2015-03-04  2:41         ` [U-Boot] [PATCH v5 26/27] sandbox: eth: Add support for using the 'lo' interface Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-04  2:41         ` [U-Boot] [PATCH v5 27/27] net: Improve error handling Joe Hershberger
2015-03-04 18:35           ` Simon Glass
2015-03-10 23:10             ` Joe Hershberger
2015-03-11 23:43         ` [U-Boot] [PATCH v6 0/27] Add Driver Model support to network stack Joe Hershberger
2015-03-11 23:43           ` [U-Boot] [PATCH v6 01/27] test: dm: Reorder the objects to build Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 02/27] common: Make sure arch-specific map_sysmem() is defined Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 03/27] net: Provide a function to get the current MAC address Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 04/27] net: Rename helper function to be more clear Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 05/27] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 06/27] net: Refactor in preparation for driver model Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 07/27] net: Change return codes from net/eth.c to use errorno constants Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 08/27] net: Use int instead of u8 for boolean flag Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 09/27] net: Remove the bd* parameter from net stack functions Joe Hershberger
2015-03-20 23:01             ` Simon Glass
2015-03-22  3:42               ` Joe Hershberger
2015-03-22 21:09                 ` Simon Glass
2015-03-11 23:44           ` [U-Boot] [PATCH v6 10/27] net: Make netretry actually do something Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 11/27] net: Access mapped physmem in net functions Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 12/27] cmd: net: Clean up return codes Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 13/27] dm: eth: Add basic driver model support to Ethernet stack Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 14/27] net: Clean up network stack names used in DM drivers Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 15/27] dm: eth: Pass the packet pointer as a parameter to recv Joe Hershberger
2015-03-20 12:10             ` Simon Glass
2015-03-11 23:44           ` [U-Boot] [PATCH v6 16/27] sandbox: eth: Add network support to sandbox Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 17/27] sandbox: eth: Add ARP and PING response to sandbox driver Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 18/27] test: dm: eth: Add tests for the eth dm implementation Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 19/27] dm: eth: Add support for aliases Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 20/27] dm: eth: Add support for ethprime env var Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 21/27] test: dm: eth: Add testing for ethrotate " Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 22/27] sandbox: eth: Add ability to disable ping reply in sandbox eth driver Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 23/27] test: dm: net: Add a test of the netretry behavior Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 24/27] sandbox: eth: Add a bridge to a real network for sandbox Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 25/27] sandbox: Enable DHCP and IP defrag Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 26/27] sandbox: eth: Add support for using the 'lo' interface Joe Hershberger
2015-03-11 23:44           ` [U-Boot] [PATCH v6 27/27] net: Improve error handling Joe Hershberger
2015-03-20 12:17           ` [U-Boot] [PATCH v6 0/27] Add Driver Model support to network stack Simon Glass
2015-03-20 12:45             ` Joe Hershberger
2015-03-20 13:21             ` Tom Rini
2015-03-20 14:33               ` Joe Hershberger
2015-03-22 22:16                 ` Simon Glass
2015-03-22 22:08           ` [U-Boot] [PATCH v7 " Joe Hershberger
2015-03-22 22:08             ` [U-Boot] [PATCH v7 01/27] test: dm: Reorder the objects to build Joe Hershberger
2015-03-23 16:01               ` Simon Glass
2015-03-22 22:08             ` [U-Boot] [PATCH v7 02/27] common: Make sure arch-specific map_sysmem() is defined Joe Hershberger
2015-03-23 16:03               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 03/27] net: Provide a function to get the current MAC address Joe Hershberger
2015-03-23 16:03               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 04/27] net: Rename helper function to be more clear Joe Hershberger
2015-03-23 16:03               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 05/27] net: Remove unneeded "extern" in net.h Joe Hershberger
2015-03-23 16:03               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 06/27] net: Refactor in preparation for driver model Joe Hershberger
2015-03-23 16:04               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 07/27] net: Change return codes from net/eth.c to use errorno constants Joe Hershberger
2015-03-23 16:04               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 08/27] net: Use int instead of u8 for boolean flag Joe Hershberger
2015-03-23 16:04               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 09/27] net: Remove the bd* parameter from net stack functions Joe Hershberger
2015-03-23 16:04               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 10/27] net: Make netretry actually do something Joe Hershberger
2015-03-23 16:04               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 11/27] net: Access mapped physmem in net functions Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 12/27] cmd: net: Clean up return codes Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 13/27] dm: eth: Add basic driver model support to Ethernet stack Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 14/27] net: Clean up network stack names used in DM drivers Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 15/27] dm: eth: Pass the packet pointer as a parameter to recv Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 16/27] sandbox: eth: Add network support to sandbox Joe Hershberger
2015-03-23 16:05               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 17/27] sandbox: eth: Add ARP and PING response to sandbox driver Joe Hershberger
2015-03-23 16:06               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 18/27] test: dm: eth: Add tests for the eth dm implementation Joe Hershberger
2015-03-23 16:06               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 19/27] dm: eth: Add support for aliases Joe Hershberger
2015-03-23 16:06               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 20/27] dm: eth: Add support for ethprime env var Joe Hershberger
2015-03-23 16:06               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 21/27] test: dm: eth: Add testing for ethrotate " Joe Hershberger
2015-03-23 16:07               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 22/27] sandbox: eth: Add ability to disable ping reply in sandbox eth driver Joe Hershberger
2015-03-23 16:07               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 23/27] test: dm: net: Add a test of the netretry behavior Joe Hershberger
2015-03-23 16:07               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 24/27] sandbox: eth: Add a bridge to a real network for sandbox Joe Hershberger
2015-03-23 16:07               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 25/27] sandbox: Enable DHCP and IP defrag Joe Hershberger
2015-03-23 16:08               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 26/27] sandbox: eth: Add support for using the 'lo' interface Joe Hershberger
2015-03-23 16:08               ` Simon Glass
2015-03-22 22:09             ` [U-Boot] [PATCH v7 27/27] net: Improve error handling Joe Hershberger
2015-03-23 16:08               ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ0PuSavQpArmh-h+QpCTtv4urw8DsoH5qNDH+FE9ywBvQ@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.