18 Dec, 2015

1 commit


20 Nov, 2015

1 commit


30 Oct, 2015

5 commits


29 Oct, 2015

11 commits

  • As we don't modify the 'name' parameter, so change it to const.

    Signed-off-by: Josh Wu
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Josh Wu
     
  • The loop should check all ethenet devices, not only the first device,
    to set each specified ethaddr, or it'll cause failure when we use other
    devices.

    Signed-off-by: Gong Qianyu
    Acked-by: Joe Hershberger

    Gong Qianyu
     
  • Timeout handler should be stopped after reception of DHCPACK. If "autoload"
    is not set, the handler is immediately replaced by the TFTP handler,
    otherwise it may trigger before the next boot stage begins.

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • eth_rx() in the main reception loop may trigger sending a packet which
    is already timed out (or will immediately) upon reception of an ARP reply.
    As long as the ARP reply is pending, the timeout handler of a packet
    should be postponed.
    Happens on TFTP with bad network (e.g. WLAN).

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • net_start_again() will be called from net_loop() if state is NETLOOP_FAIL.

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • Pad has no len byte, so the normal parsing code fails.

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • RFC1542, 3.2:
    "The 'secs' field of a BOOTREQUEST message SHOULD represent the
    elapsed time, in seconds, since the client sent its first BOOTREQUEST
    message. Note that this implies that the 'secs' field of the first
    BOOTREQUEST message SHOULD be set to zero."

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • Rename check_packet to check_reply_packet to make its function more
    obvious.
    The check for DHCP_* values is completely off, as it should
    compare against DHCP option 53 (Message Type). Only valid value for
    any Bootp/DHCP reply is BOOTREPLY.

    Signed-off-by: Stefan Brüns
    Acked-by: Joe Hershberger

    Stefan Brüns
     
  • This fixes the error when STATUS_LED_BOOT is not defined.

    Signed-off-by: Thomas Chou
    Acked-by: Joe Hershberger

    Thomas Chou
     
  • If CONFIG_CMD_DHCP is enabled, the vci (vendor-class-identifier) string
    isn't inserted into the bootp-packet during SPL stage because the

    CONFIG_BOOTP_VCI_STRING
    instead
    CONFIG_SPL_NET_VCI_STRING

    We fix this with testing for CONFIG_SPL_BUILD and testing for existing
    CONFIG_SPL_NET_VCI_STRING.

    Signed-off-by: Hannes Schmelzer
    Acked-by: Joe Hershberger
    Reviewed-by: Tom Rini

    Hannes Petermaier
     
  • TFTP source and destination port variable names are
    'tftpsrcp' and 'tftpdstp' in the code, but 'tftpsrcport'
    and 'tftpdstport' in the README file. Fix the README.

    Add environment variable 'tftptimeoutcountmax'. As per the
    comments about the global variable tftp_timeout_count_max,
    make sure tftptimeoutcountmax is nonnegative.

    Introduce configuration option CONFIG_NET_TFTP_VARS,
    which controls whether environment variables tftpblocksize,
    tftptimeout, and tftptimoueoutcountmax are read by the TFTP
    client code. CONFIG_NET_TFTP_VARS defaults to y but can be
    set to n by targets with to tight size contraints.

    Make bf527-ezkit set CONFIG_NET_TFTP_VARS to n to keep the
    target size below limit.

    Albert ARIBAUD \(3ADEV\)
     

30 Sep, 2015

2 commits

  • This patch introduces CONFIG_NETCONSOLE as an option to the
    Kconfig system.

    Joe Hershberger pointed out that it may not be entirely free of
    problems, as many boards predating the driver model define this
    symbol directly via include files. In case they're not properly
    migrated, their NetConsole might 'vanish' if they start to use
    CONFIG_NET or CONFIG_NETDEVICES.

    Signed-off-by: Bernhard Nortmann
    Acked-by: Joe Hershberger

    Bernhard Nortmann
     
  • The previous eth_device struct returned by eth_get_dev() allowed
    code to directly query the state member field. However, with
    CONFIG_DM_ETH this data gets encapsulated (i.e. private), and
    eth_get_dev() returns a udevice struct 'abstraction' instead.

    This breaks legacy code relying on the former behaviour - e.g.
    netconsole.
    (see http://lists.denx.de/pipermail/u-boot/2015-June/216528.html)

    The patch introduces a method to retrieve the ethernet device
    state in a 'clean' and uniform way, supporting both legacy code
    and driver model. The new function eth_is_active() accepts a
    device struct pointer and tests it for ETH_STATE_ACTIVE.

    Signed-off-by: Bernhard Nortmann
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Bernhard Nortmann
     

09 Sep, 2015

3 commits

  • When given a device name string, we should test to see if it is
    really an alias like "eth#".

    Signed-off-by: Bin Meng
    Acked-by: Joe Hershberger

    Bin Meng
     
  • With driver model, board_eth_init() or cpu_eth_init() is not a must.
    Thus we don't need print a misleading "Net Initialization Skipped".

    Signed-off-by: Bin Meng
    Acked-by: Joe Hershberger

    Bin Meng
     
  • Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
    causes the following error message when trying to load a file using 'tftp'
    command via a tftp server.

    TFTP error: 'Unsupported option(s) requested' (8)

    This is due to with commit 620776d changes, the tftp option 'timeout'
    value is now set to zero which is an invalid value as per RFC2349 [1].
    Valid values range between "1" and "255" seconds, inclusive. With some
    tftp servers that strictly implement the RFC requirement, it reports
    such an error message.

    Revert commit 620776d for RFC compliance.

    [1] https://www.ietf.org/rfc/rfc2349.txt

    Signed-off-by: Bin Meng
    Acked-by: Joe Hershberger

    Bin Meng
     

07 Sep, 2015

1 commit


22 Aug, 2015

2 commits

  • Current behavior is that if CTRL+C is pressed command returns 0 that was
    successful which is not correct behavior.
    The easiest test case is "tftpboot 80000 uImage && echo yes"
    and press CTRL+C. Then the second command is called which is incorrect.

    Error log:
    zynq-uboot> tftpb 80000 uImage && echo yes
    Gem.e000b000:7 is connected to Gem.e000b000. Reconnecting to
    Gem.e000b000
    Gem.e000b000 Waiting for PHY auto negotiation to complete....... done
    Using Gem.e000b000 device
    TFTP from server 192.168.0.102; our IP address is 192.168.0.101
    Filename 'uImage'.
    Load address: 0x80000
    Loading: ################
    Abort
    yes
    zynq-uboot>

    This patch adds -EINTR return value when CTRL+C is pressed.

    Signed-off-by: Michal Simek
    Reviewed-by: Tom Rini
    Acked-by: Joe Hershberger

    Michal Simek
     
  • Adjust timouts and retry counts to be suitable for loaded ethernet
    network. With 5 seconds timeout, 10 retries maximum, tftp is
    impossible even on local network with single full-speed TCP
    connection.

    100msec timeout should be suitable for most networks tftp is used on,
    that is local ethernets. Timeout count really needs to be way higher,
    as lost packets are normal when TCP is running over the same network.

    Enforce 10msec minimum.

    Signed-off-by: Pavel Machek
    Acked-by: Joe Hershberger

    Pavel Machek
     

13 Aug, 2015

1 commit

  • CONFIG_TFTP_TSIZE should limit a tftp downloads progress to 50 '#'
    chars. Make this work also for small files.

    If the file size is small, i.e. smaller than 2 tftp block sizes the
    number of '#' can get much larger. i.e. with a 1 byte file 65000
    characters are printed, with a 512 byte file around 500.

    When using CONFIG TFTP BLOCKSIZE together with CONFIG_IP_DEFRAG the
    issue is more notable.

    Signed-off-by: Max Krummenacher
    Signed-off-by: Marcel Ziswiler
    Reviewed-by: Marek Vasut
    Acked-by: Joe Hershberger

    Max Krummenacher
     

22 Jul, 2015

2 commits

  • Some drivers may want to implement this method for some of their devices but
    not for others. So it is not possible to just leave the operation out of
    the table. Drivers could get around this by masquerading as two separate
    drivers but that seems unpleasant.

    Allow the driver to return an error when it does not want to process the
    write_hwaddr() method.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Some devices can take a long time to work out whether they have a new packet
    or now. For example the ASIX USB Ethernet dongle can take 5 seconds to do
    this, since it waits until it gets a new packet on the wire before allowing
    the USB bulk read packet to be submitted.

    At present with driver mode the Ethernet receive code reads 32 packets. This
    can take a very long time if we must wait for all 32 packets. The old code
    (before driver model) worked by reading a single set of packets from the USB
    device, then processing all the packets with in. It would be nice to use
    the same behaviour with driver model.

    Add a flag to the receive method which indicates that the driver should try
    to find a packet if available, by consulting the hardware. When the flag is
    not set, it should just return any packet data it has already received. If
    there is none, it should return -EAGAIN so that the loop will terminate.

    Signed-off-by: Simon Glass

    Simon Glass
     

09 Jul, 2015

1 commit

  • Instead of selecting REGEX when NET is enabled, make it the default, but
    allow boards that are tiny to disable it and lose functionality on all
    but the first Ethernet adapter.

    cm-bf548, bf538f-ezkit, and bf533-stamp need this. None appear to have
    more than one Ethernet interface.

    Signed-off-by: Joe Hershberger

    Joe Hershberger
     

02 Jun, 2015

1 commit


21 May, 2015

3 commits


20 May, 2015

2 commits


06 May, 2015

2 commits


19 Apr, 2015

2 commits

  • At present even with driver model is used there is still much manual init
    of related devices: PHY, environment and board init. Until these requirements
    are dealt with in another way we need to keep them around.

    Break out the init portion of the legacy eth_initialize() into a separate
    function and call it from both the legacy and driver model eth_initialize()
    functions.

    Signed-off-by: Simon Glass
    Acked-by: Joe Hershberger

    Simon Glass
     
  • When SNTP is enabled and DATE is not, to_tm() is not built in. It could
    be defined when TIMESTAMP is defined, so check for that.

    Signed-off-by: Joe Hershberger
    Acked-by: Simon Glass

    Joe Hershberger