27 Mar, 2016
1 commit
-
In rare circumstances two dhcp clients may generate the same
bootp ID. If this happens it is vital that the client also checks
the hw address in the received response to prevent IP address conflicts.Signed-off-by: Anton Persson
27 Feb, 2016
1 commit
-
There is currently one config option (CONFIG_NET_RETRY_COUNT) that
is available to tune the retries of the network stack.
Unfortunately, it is global to all protocols, and the value is
interpreted differently in all of them.Add a new environment variable that directly sets the retry period for
BOOTP timeouts. If this new value is not set, the period is still derived
from the default number of retries, or from CONFIG_NET_RETRY_COUNT if
defined. When both the new variable is set and CONFIG_NET_RETRY_COUNT
is defined, the variable has precedence.Signed-off-by: Alexandre Messier
06 Feb, 2016
1 commit
-
This fixes the following error when building microblaze-generic:
net/eth-uclass.c: In function 'eth_post_probe':
net/eth-uclass.c:466:18: error: 'gd' undeclared (first use in this function)
ops->start += gd->reloc_off;Fixes: db9391e1 ("net: Move driver-model code into its own file")
Signed-off-by: Simon Glass
Acked-by: Joe Hershberger
29 Jan, 2016
8 commits
-
Add the bootfile name in the DHCP Request packet, in addition
to it already being sent in the DHCP Discover.This is needed by some DHCP servers so that the bootfile name is
properly returned by the server to the client in the DHCP Ack, as
expected by U-Boot.Signed-off-by: Alexandre Messier
-
Rename this file to make it clear it is for the old networking drivers
and not for use with driver model.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Acked-by: Joe Hershberger -
Every other uclass is in its own file. Create a new eth-uclass.c file and
move the driver-model code into it, so that networking is consistent.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Acked-by: Joe Hershberger -
Move eth_current_changed(), eth_set_current(), eth_mac_skip() and
eth_get_name() into the common file.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Acked-by: Joe Hershberger -
Move the functions which set ethernet environment variables to the common
file.Signed-off-by: Simon Glass
Acked-by: Joe Hershberger -
Only half of the init is actually common. Move that part into a new common
file and call it from driver-model and legacy code. More common functions
will be added in future patches.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Acked-by: Joe Hershberger -
We should avoid weak functions with driver model. Existing boards that use
driver model don't need them, so let's kill them off.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Acked-by: Joe Hershberger -
When doing `dhcp`, there is a bad dhcp server in my network
which always reply dhcp request with yiaddr 0, which cause
uboot can not successfully get ipaddr from the good dhcp server.
But the Linux PC can get the ip address even if there is a bad
dhcp server. This patch is to fix that even if there is a bad
dhcp server, uboot can still get ipaddr and tftp work ok.The way is to ignore the packets from the bad dhcp server by filtering
out the yiaddr whose value is 0.Signed-off-by: Peng Fan
Cc: Joe Hershberger
Reviewed-by: Wolfgang Denk
Acked-by: Joe Hershberger
08 Jan, 2016
4 commits
-
In many parts of the computing world having a unique MAC address
sitting in some on-NIC storage is considered the normal case.
Remove the warning to not scare the user unnecessarily.
This applies to Highbank/Midway and ARM's Juno, for instance.
Besides that this fixes the formatting on Midway, for instance,
which currently looks like:
...
Net: xgmac0
Warning: xgmac0 using MAC address from net device
, xgmac1
Warning: xgmac1 using MAC address from net device
...Signed-off-by: Andre Przywara
-
Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout)
Check the arp timeout and adjust the timeout start time before the call
to eth_recv() so that the sandbox driver has the opportunity to adjust
the sandbox timer after the new start time has been recorded.Also, change the adjustment amount by 11 seconds instead of exactly the
10 seconds that the ping timout is expecting since the timeout check is
looking for the time elapsed to be greater than but not equal to the
specified delay.Signed-off-by: Joe Hershberger
Reviewed-by: Stefan Brüns
Acked-by: Simon Glass -
When 'ethrotate' variable is set to 'no' and 'ethact' variable
is already set to an ethernet device, we should stick to 'ethact'.Signed-off-by: Bin Meng
Acked-by: Joe Hershberger
Acked-by: Simon Glass
Tested-by: Simon Glass -
In eth_current_changed(), the call to eth_get_dev() below has a side
effect of rotating ethernet device if uc_priv->current == NULL. This
is not what we want when 'ethrotate' variable is 'no'.Signed-off-by: Bin Meng
Acked-by: Joe Hershberger
Acked-by: Simon Glass
Tested-by: Simon Glass
18 Dec, 2015
1 commit
-
All ethernet operation needs to be updated for architectures which
requires MANUAL_RELOC.Signed-off-by: Michal Simek
Acked-by: Joe Hershberger
20 Nov, 2015
1 commit
-
The console includes a global variable and several functions that are only
used by a small subset of U-Boot files. Before adding more functions, move
the definitions into their own header file.Signed-off-by: Simon Glass
30 Oct, 2015
5 commits
-
eth_get_dev() can return NULL which means device_probe() fails for
that ethernet device. Add return value check in various places or
U-Boot will crash due to NULL pointer access.With this commit, 'dm_test_eth_act' test case passes.
Signed-off-by: Bin Meng
Acked-by: Joe Hershberger -
platdata->enetaddr was assigned to a value in dev_probe() last time.
If we don't clear it, for dev_probe() at the second time, dm eth
will end up treating it as a MAC address from ROM no matter where it
came from originally (maybe env, ROM, or even random). Fix this by
clearing platdata->enetaddr when removing an Ethernet device.Signed-off-by: Bin Meng
Acked-by: Joe Hershberger -
The net_boot_file_name buffer is used as storage for the bootfilename
command line argument to network boot commands such as tftp and nfs.Increase the size of this buffer to 1024 bytes as the current size of
128 bytes is restrictive for arbitrary paths on the server.Signed-off-by: Jacob Stiffler
Acked-by: Joe Hershberger -
If Option 52 in the vendor option field signals overloading
of the file and/or sname fields, these field may contain
additional options. Formatting of file/sname contained options
is the same as in the vendor options field, but without the
leading magic.Signed-off-by: Stefan Brüns
Acked-by: Joe Hershberger -
If 'file' is overloaded, it is wrong to get or put the bootfile name
from it/to it.Signed-off-by: Stefan Brüns
Acked-by: Joe Hershberger
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 -
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 -
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 -
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 -
net_start_again() will be called from net_loop() if state is NETLOOP_FAIL.
Signed-off-by: Stefan Brüns
Acked-by: Joe Hershberger -
Pad has no len byte, so the normal parsing code fails.
Signed-off-by: Stefan Brüns
Acked-by: Joe Hershberger -
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 -
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 -
This fixes the error when STATUS_LED_BOOT is not defined.
Signed-off-by: Thomas Chou
Acked-by: Joe Hershberger -
If CONFIG_CMD_DHCP is enabled, the vci (vendor-class-identifier) string
isn't inserted into the bootp-packet during SPL stage because theCONFIG_BOOTP_VCI_STRING
instead
CONFIG_SPL_NET_VCI_STRINGWe 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 -
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.
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 -
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
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 -
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 -
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
07 Sep, 2015
1 commit
-
This change gives the ability to reuse the header file by other
subsystems (like e.g. dfu).Without this change compilation error emerges for the legacy update.c file.
Signed-off-by: Lukasz Majewski
Acked-by: Joe Hershberger
22 Aug, 2015
1 commit
-
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