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
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 -
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
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
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
-
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
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
02 Jun, 2015
1 commit
-
NET_RANDOM_ETHADDR depends on lib/rand.c. This patch adds dependency to
Kconfig to ensure that library is also compiled.Remove the definitions from Blackfin boards' include/configs.
Signed-off-by: Michal Simek
Acked-by: Joe Hershberger
21 May, 2015
3 commits
-
When the ethaddr is changed in the env, update the device pdata at the
same time (only if it is probed for the DM case; only if registered for
the non-DM case). Again this gets us closer to completely non-polled
env needed to simplify the net_loop.This requires that the NET feature select the REGEX feature.
Signed-off-by: Joe Hershberger
-
The bootfile env var is already kept up to date by the callback in net.c
so there is no need to poll it too.Signed-off-by: Joe Hershberger
-
Instead of checking for changes to the env each time we enter the
net_loop, use the env callbacks to update the values of the variables.
Don't update the variables when the source was programmatic, since the
variables were the source of the new value.Signed-off-by: Joe Hershberger
Reviewed-by: Simon Glass
20 May, 2015
2 commits
-
Implement the random ethaddr fallback in eth.c so it is in a common
place and not reimplemented in each board or driver that wants this
behavior.Signed-off-by: Joe Hershberger
Reviewed-by: Simon Glass -
When the ethaddr changes in the env, the hardware should also be updated
so that MAC filtering will work properly without resetting U-Boot.Also remove the manual calls to set the hwaddr that was included in a
few drivers as a result of the framework not doing it.Reported-by: Michal Simek
Signed-off-by: Joe Hershberger
Tested-by: Michal Simek
06 May, 2015
2 commits
-
When setting the date, support driver model RTC also.
Signed-off-by: Simon Glass
Acked-by: Joe Hershberger -
Rename this function so that it is clear that it is provided by the RTC.
Also return an error when it cannot function as expected. This is unlikely
to occur since it works for dates since 1752 and many RTCs do not support
such old dates. Still it is better to be accurate.Signed-off-by: Simon Glass
Acked-by: Heiko Schocher
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 -
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