]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
18 months agocmd: sf/nand: Print and return failure when 0 length is passed
Ashok Reddy Soma [Tue, 16 May 2023 11:52:36 +0000 (05:52 -0600)]
cmd: sf/nand: Print and return failure when 0 length is passed

For sf commands, when '0' length is passed for erase, update, write or
read, there might be undesired results. Ideally '0' length means nothing to
do.

So print 'ERROR: Invalid size 0' and return cmd failure when length '0' is
passed to sf commands. Same thing applies for nand commands also.

Example:

ZynqMP> sf erase 0 0
ERROR: Invalid size 0
ZynqMP> sf write 10000 0 0
ERROR: Invalid size 0
ZynqMP> sf read 10000 0 0
ERROR: Invalid size 0
ZynqMP> sf update 1000 10000 0
ERROR: Invalid size 0
ZynqMP>

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
18 months agoscripts/Makefile.lib: change spelling of $(srctree)/arch/$(ARCH)/dts in dtc_cpp_flags
Rasmus Villemoes [Tue, 16 May 2023 09:17:56 +0000 (11:17 +0200)]
scripts/Makefile.lib: change spelling of $(srctree)/arch/$(ARCH)/dts in dtc_cpp_flags

Currently, all in-tree .dts files (apart from some under test/ and
tools/), reside in arch/$ARCH/dts. However, in the linux kernel tree,
dts files for arm64 boards, and probably in the not too distant
future [1], arm boards as well, live in subdirectories of that.

For private forks, using a vendor or project subdirectory is also more
convenient to clearly separate private code from upstream - in the
same way that code under board/ is also split and easy to maintain.

In order to prepare for us to follow suit and do the splitting of the
in-tree .dts files, and to make life a little easier for private forks
that already place dts files not directly in arch/$ARCH/dts, change
the $(srctree)/arch/$(ARCH)/dts path to instead refer to the directory of
the .dts file being compiled. This should be a no-op for all existing
cases.

[1] https://lore.kernel.org/lkml/20220328000915.15041-1-ansuelsmth@gmail.com/

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
18 months agosemihosting: create file in smh_fs_write_at()
Heinrich Schuchardt [Fri, 12 May 2023 22:47:03 +0000 (00:47 +0200)]
semihosting: create file in smh_fs_write_at()

If a file does not exist, it should be created.

Fixes: f676b45151c3 ("fs: Add semihosting filesystem")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
18 months agoarm: set alignment properly for asm funcs
Sam Edwards [Fri, 12 May 2023 22:31:05 +0000 (16:31 -0600)]
arm: set alignment properly for asm funcs

ARM requires a 4-byte alignment on all ARM code (though this
requirement is relaxed to 2-byte for some THUMB code) and we
should be explicit about that here.

GAS has its own fix for this[1] that forces proper alignment
on any section containing assembled instructions, but this is
not universal: Clang's and other gaslike assemblers lack this
implicit alignment. Whether or not this is considered a bug in
those assemblers, it is better to ask directly for what we want.

[1]: https://sourceware.org/bugzilla/show_bug.cgi?id=12931

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
18 months agocmd: fs: document where 'size' stores its result
Baruch Siach [Sun, 7 May 2023 10:48:06 +0000 (13:48 +0300)]
cmd: fs: document where 'size' stores its result

Make it a little bit easier for the user to utilize the 'size' command.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Simon Glass <sjg@chromium.org>
18 months agocli: avoid buffer overrun
Heinrich Schuchardt [Tue, 2 May 2023 02:34:09 +0000 (04:34 +0200)]
cli: avoid buffer overrun

Invoking the sandbox with

    /u-boot -c ⧵0xef⧵0xbf⧵0xbd

results in a segmentation fault.

Function b_getch() retrieves a character from the input stream. This
character may be > 0x7f. If type char is signed, static_get() will
return a negative number and in parse_stream() we will use that
negative number as an index for array map[] resulting in a buffer
overflow.

Reported-by: Harry Lockyer <harry_lockyer@tutanota.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
18 months agospl: Correct checking of configuration node
Bin Meng [Mon, 1 May 2023 03:35:26 +0000 (11:35 +0800)]
spl: Correct checking of configuration node

Per the fit_conf_get_node() API doc, it returns configuration node
offset when found (>=0).

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
18 months agocmd: fdt: Correct checking of configuration node
Bin Meng [Mon, 1 May 2023 03:35:25 +0000 (11:35 +0800)]
cmd: fdt: Correct checking of configuration node

fit_conf_get_node() returns a negative value on error.

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
18 months agoefi: Correct .efi rules
Simon Glass [Sun, 30 Apr 2023 01:21:47 +0000 (19:21 -0600)]
efi: Correct .efi rules

These files should have both 'always' and 'targets' so that dependencies
are detected correctly.

When only 'always' is used, the target is built every time, although I am
not quite sure why.

Make sure each has both 'always' and 'targets' to avoid this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
18 months agoacpi: Put the version numbers in a central place
Simon Glass [Sun, 30 Apr 2023 01:21:46 +0000 (19:21 -0600)]
acpi: Put the version numbers in a central place

At present two acpi files are built every time since they use a version
number from version.h

This is not necessary. Make use of the same technique as for the version
string, so that they are build only when they change.

Signed-off-by: Simon Glass <sjg@chromium.org>
18 months agoMakefile: Fix incorrect FORCE deps on env rules
Simon Glass [Sun, 30 Apr 2023 01:21:45 +0000 (19:21 -0600)]
Makefile: Fix incorrect FORCE deps on env rules

These rules run on every build even if nothing has changed. The FORCE
dependency is only needed for if_changed, not for cmd. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
18 months agofastboot: Only call the bootm command if it is enabled
Samuel Holland [Mon, 20 Feb 2023 06:14:58 +0000 (00:14 -0600)]
fastboot: Only call the bootm command if it is enabled

This fixes an error with trying to link against do_bootm() when
CONFIG_CMD_BOOTM is disabled.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
18 months agoMerge branch '2023-05-31-cleanup-unaligned-access-macros' into next
Tom Rini [Wed, 31 May 2023 20:30:16 +0000 (16:30 -0400)]
Merge branch '2023-05-31-cleanup-unaligned-access-macros' into next

To quote the author:

There are two versions of get/set_unaligned, get_unaligned_be64,
put_unaligned_le64 etc in U-Boot causing confusion (and bugs).

In this patch-set, I'm trying to fix that with a single unified version of
the access macros to be used across all archs. This work is inspired by
similar changes in this Linux kernel by Arnd Bergman,
https://lore.kernel.org/lkml/20210514100106.3404011-1-arnd@kernel.org/

18 months agoasm-generic: simplify unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:38 +0000 (14:22 +0200)]
asm-generic: simplify unaligned.h

The get_unaligned()/put_unaligned() implementations are more
complex than necessary.

Move everything into one file and use a more compact implementation based
on packed struct access and byte swapping macros.

This patch is based on the Linux kernel commit 803f4e1eab7a
("asm-generic: simplify asm/unaligned.h") by Arnd Bergmann.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agolinux/unaligned: remove unused access_ok.h
Jens Wiklander [Mon, 22 May 2023 12:22:37 +0000 (14:22 +0200)]
linux/unaligned: remove unused access_ok.h

linux/unaligned/access_ok.h is unused, so remove it.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agofs/btrfs: use asm/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:36 +0000 (14:22 +0200)]
fs/btrfs: use asm/unaligned.h

Use asm/unaligned.h instead of linux/unaligned/access_ok.h for unaligned
access. This is needed on architectures that doesn't handle unaligned
accesses directly.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agopowerpc: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:35 +0000 (14:22 +0200)]
powerpc: use asm-generic/unaligned.h

Powerpc configurations are apparently able to do unaligned accesses. But
in an attempt to clean up and handle unaligned accesses in the same way
we ignore that and use the common asm-generic/unaligned.h directly
instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agom68k: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:34 +0000 (14:22 +0200)]
m68k: use asm-generic/unaligned.h

M68k essentially duplicates the content of asm-generic/unaligned.h, with
an exception for non-Coldfire configurations. Coldfire configurations
are apparently able to do unaligned accesses. But in an attempt to clean
up and handle unaligned accesses in the same way we ignore that and use
the common asm-generic/unaligned.h directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Angelo Dureghello <angelo@kernel-space.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agomips: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:33 +0000 (14:22 +0200)]
mips: use asm-generic/unaligned.h

Mips essentially duplicates the content of asm-generic/unaligned.h, so use
that file directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agosh: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:32 +0000 (14:22 +0200)]
sh: use asm-generic/unaligned.h

Sh essentially duplicates the content of asm-generic/unaligned.h, so use
that file directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
18 months agoarm: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:31 +0000 (14:22 +0200)]
arm: use asm-generic/unaligned.h

Arm duplicates the content of asm-generic/unaligned.h, so use that file
directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
19 months agoMerge branch '2023-05-31-code-cleanups' into next
Tom Rini [Wed, 31 May 2023 16:32:38 +0000 (12:32 -0400)]
Merge branch '2023-05-31-code-cleanups' into next

- Correct some header double-inclusion guards and remove some dead (or
  in the case of ti816x, unmaintained) code.

19 months agoinclude: Remove unused header files
Tom Rini [Tue, 16 May 2023 16:34:47 +0000 (12:34 -0400)]
include: Remove unused header files

As part of various code clean-ups we have on occasion missed removing
unused header files.  None of these files are referenced anywhere else
at this point.

Signed-off-by: Tom Rini <trini@konsulko.com>
19 months agofaraday: remove orphaned header file
Andre Przywara [Mon, 15 May 2023 13:52:14 +0000 (14:52 +0100)]
faraday: remove orphaned header file

Commit 11232139e399 ("nds32: Remove the architecture") removed the nds32
architecture, and with it the last user of the Faraday AHB controller
header file.

Consequently remove that header file as well.

This was found because the inclusion guard was misspelled.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agoexynos: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:13 +0000 (14:52 +0100)]
exynos: fix header inclusion guard

It seems like the header inclusion guard for the Exynos pinctrl header
was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agofreescale: vsc3316_3308: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:12 +0000 (14:52 +0100)]
freescale: vsc3316_3308: fix header inclusion guard

It seems like the header inclusion guard for some Freescale crosspoint
switch header was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agoarm: uniphier: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:11 +0000 (14:52 +0100)]
arm: uniphier: fix header inclusion guard

It seems like the header inclusion guard for some Uniphier DDR PHY
header was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agoimx: fix header inclusion guards
Andre Przywara [Mon, 15 May 2023 13:52:10 +0000 (14:52 +0100)]
imx: fix header inclusion guards

It seems like the header inclusion guards for some IMX related headers
were misspelled or got out of sync.

Make the preprocessor symbols for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agoarm: Remove ti816x_evm board and ti816x SoC support
Tom Rini [Thu, 11 May 2023 18:07:24 +0000 (14:07 -0400)]
arm: Remove ti816x_evm board and ti816x SoC support

This platform is currently unmaintained and untested, so remove it.
Further, as it is the only TI816X SoC example, remove related files as
well.

Signed-off-by: Tom Rini <trini@konsulko.com>
19 months agoconfigs: Resync with savedefconfig
Tom Rini [Thu, 18 May 2023 20:05:49 +0000 (16:05 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
19 months agoMerge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next
Tom Rini [Thu, 18 May 2023 18:02:39 +0000 (14:02 -0400)]
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next

- USB and SPL related Kconfig clean-up / re-organization

19 months agoMerge branch 'next_gpio' of https://source.denx.de/u-boot/custodians/u-boot-sh into...
Tom Rini [Wed, 17 May 2023 00:24:44 +0000 (20:24 -0400)]
Merge branch 'next_gpio' of https://source.denx.de/u-boot/custodians/u-boot-sh into next

- gpio: renesas: Simplify .request/.rfree callbacks

19 months agoMerge branch '2023-05-16-remove-misuse-of-env-is-nowhere' into next
Tom Rini [Wed, 17 May 2023 00:24:21 +0000 (20:24 -0400)]
Merge branch '2023-05-16-remove-misuse-of-env-is-nowhere' into next

To quote the author:

When using a list of writeable variables, the initial values come from
the built-in default environment since commit 5ab81058364b
("env: Complete generic support for writable list"). Remove unnecessary
misuse of the env is nowhere driver as default environment.

19 months agousb: gadget: Add and use matching SPL USB ethernet gadget Kconfig symbols
Marek Vasut [Sat, 6 May 2023 14:42:40 +0000 (16:42 +0200)]
usb: gadget: Add and use matching SPL USB ethernet gadget Kconfig symbols

Define SPL_USB_ETH_RNDIS symbol to make it possible to select USB
gadget ethernet support in SPL and U-Boot separately in Kconfig .
Make use of the new symbols in gadget Makefile and move the rndis.o
just below the now merged USB_ETHER symbol in Makefile.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agousb: Move SPL_USB_GADGET and related Kconfig symbols to drivers/usb/
Marek Vasut [Sat, 6 May 2023 14:42:39 +0000 (16:42 +0200)]
usb: Move SPL_USB_GADGET and related Kconfig symbols to drivers/usb/

To avoid piling up all the various Kconfig symbols in one place, i.e.
common/spl/Kconfig, move the USB Kconfig symbols into drivers/usb/ .
This commit moves SPL_USB_GADGET and related symbols. Fix typo and
rename SPL_USB_GADGET to "USB Gadget Support in SPL" .

Update the gadget Makefile to match the symbol changes.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agousb: Move SPL_USB_STORAGE Kconfig symbol to drivers/usb/
Marek Vasut [Sat, 6 May 2023 14:42:38 +0000 (16:42 +0200)]
usb: Move SPL_USB_STORAGE Kconfig symbol to drivers/usb/

To avoid piling up all the various Kconfig symbols in one place, i.e.
common/spl/Kconfig, move the USB Kconfig symbols into drivers/usb/ .
This commit moves SPL_USB_STORAGE and matching SYS_USB_FAT_BOOT_PARTITION .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agousb: Move SPL_USB_HOST Kconfig symbol to drivers/usb/
Marek Vasut [Sat, 6 May 2023 14:42:37 +0000 (16:42 +0200)]
usb: Move SPL_USB_HOST Kconfig symbol to drivers/usb/

To avoid piling up all the various Kconfig symbols in one place, i.e.
common/spl/Kconfig, move the USB Kconfig symbols into drivers/usb/ .
This commit moves SPL_USB_HOST and updates help text of both USB_HOST
and SPL_USB_HOST .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
19 months agogpio: renesas: Simplify .request/.rfree callbacks
Pali Rohár [Tue, 2 Aug 2022 10:06:55 +0000 (12:06 +0200)]
gpio: renesas: Simplify .request/.rfree callbacks

Remove identify wrapper functions.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
19 months agoenv: Remove misuse of env is nowhere leftover
Stefan Herbrechtsmeier [Tue, 2 May 2023 10:23:05 +0000 (12:23 +0200)]
env: Remove misuse of env is nowhere leftover

When using a list of writeable variables, the initial values come from
the built-in default environment since commit 5ab81058364b
("env: Complete generic support for writable list"). Remove leftover of
misuse of the env is nowhere driver as default environment.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
19 months agopowerpc/mpc85xx: socrates: Remove misuse of env is nowhere driver
Stefan Herbrechtsmeier [Tue, 2 May 2023 10:23:04 +0000 (12:23 +0200)]
powerpc/mpc85xx: socrates: Remove misuse of env is nowhere driver

When using a list of writeable variables, the initial values come from
the built-in default environment since commit 5ab81058364b
("env: Complete generic support for writable list"). Remove unnecessary
misuse of the env is nowhere driver as default environment.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
19 months agoimx6q: acc: Remove misuse of env is nowhere driver
Stefan Herbrechtsmeier [Tue, 2 May 2023 10:23:03 +0000 (12:23 +0200)]
imx6q: acc: Remove misuse of env is nowhere driver

When using a list of writeable variables, the initial values come from
the built-in default environment since commit 5ab81058364b
("env: Complete generic support for writable list"). Remove unnecessary
misuse of the env is nowhere driver as default environment.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
19 months agoimx6: aristainetos: Remove misuse of env is nowhere driver
Stefan Herbrechtsmeier [Tue, 2 May 2023 10:23:02 +0000 (12:23 +0200)]
imx6: aristainetos: Remove misuse of env is nowhere driver

When using a list of writeable variables, the initial values come from
the built-in default environment since commit 5ab81058364b
("env: Complete generic support for writable list"). Remove unnecessary
misuse of the env is nowhere driver as default environment.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
19 months agoMerge branch '2023-05-15-build-system-updates' into next
Tom Rini [Mon, 15 May 2023 19:26:54 +0000 (15:26 -0400)]
Merge branch '2023-05-15-build-system-updates' into next

- Bring in a few kbuild changes from upstream Linux to fix running the
  checker (make C=1/C=2), and clean up some of the logic related to how
  choose what device trees to build.

19 months agoFix sparse checks processing
Christophe Leroy [Fri, 5 May 2023 08:39:39 +0000 (10:39 +0200)]
Fix sparse checks processing

A lot of errors are encountered when building with sparse checking
activated (make C=1 or make C=2).

Many of them are fixed in Linux.

Resynchronise Makefile and include/linux/build_bug.h with Linux
kernel sources by porting the following Linux commits into u-boot:
6c49f359ca14 ("kbuild: disable sparse warnings about unknown attributes")
80591e61a0f7 ("kbuild: tell sparse about the $ARCH")
8788994376d8 ("linux/build_bug.h: change type to int")
527edbc18a70 ("build_bug.h: remove most of dummy BUILD_BUG_ON stubs for Sparse")
c60d3b79423a ("build_bug.h: remove negative-array fallback for BUILD_BUG_ON()")
14e83077d55f ("include: drop pointless __compiler_offsetof indirection")

Also revert commit aa9e891c63 ("include/linux/stddef.h: avoid
'warning: preprocessor token offsetof redefined'") because the
error it creates is worse than the warning it is trying to fix.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
19 months agokbuild: Allow DTB overlays to built from .dtso named source files
Rasmus Villemoes [Thu, 4 May 2023 12:26:44 +0000 (14:26 +0200)]
kbuild: Allow DTB overlays to built from .dtso named source files

[Linux commit 363547d2191c]

Currently DTB Overlays (.dtbo) are build from source files with the same
extension (.dts) as the base DTs (.dtb). This may become confusing and
even lead to wrong results. For example, a composite DTB (created from a
base DTB and a set of overlays) might have the same name as one of the
overlays that create it.

Different files should be generated from differently named sources.
 .dtb  <-> .dts
 .dtbo <-> .dtso

We do not remove the ability to compile DTBO files from .dts files here,
only add a new rule allowing the .dtso file name. The current .dts named
overlays can be renamed with time. After all have been renamed we can
remove the other rule.

[Import notes: Adapt to U-Boot by using the cmd_dtco function instead
of cmd_dtc just like the current .dts -> .dtbo rule.]

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agokbuild: add dtc as dependency on .dtb files
Rasmus Villemoes [Thu, 4 May 2023 12:26:43 +0000 (14:26 +0200)]
kbuild: add dtc as dependency on .dtb files

[Linux commit b8fc5b2157b1]

If dtc is rebuilt, we should rebuild .dtb files with the new dtc.

[Import notes: Back then there was no .dtbo rule in Linux's
Makefile.lib, but the current .dtbo rules in Linux also have the
$(DTC) dependency, so also add it to our .dtbo rule.]

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoscripts/Makefile.dts: tweak logic for deciding which dtbs to build
Rasmus Villemoes [Thu, 4 May 2023 11:33:08 +0000 (13:33 +0200)]
scripts/Makefile.dts: tweak logic for deciding which dtbs to build

The idea in 3609e1dc5f4d (dts: automatically build necessary .dtb
files) was fine, but the implementation was suboptimal due to some
misunderstandings on my part (and possibly defects in some defconfig
files):

- Sometimes DEFAULT_DEVICE_TREE is not included in OF_LIST or
  SPL_OF_LIST

- SPL_OF_LIST is not always a subset of OF_LIST

- While SPL_OF_LIST governs the list of dtbs relevant to SPL (i.e.,
  may be built into an
  SPL-with-bunch-of-dtbs-to-choose-between-at-runtime), those dtbs are
  not actually _built_ during the SPL build phase, i.e. when $(SPL_)
  would expand to SPL_. fdtgrep runs on the artifacts produced during
  the ordinary U-Boot build.

Tweak the logic so that we simply add the union of all dtbs mentioned
in either DEFAULT_DEVICE_TREE, OF_LIST and SPL_OF_LIST to dtb-y. That
should, for real, ensure that we always build all the dtbs that is
relevant to the current board, and should in turn enable us to
massively simplify arch/*/dts/Makefile.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Tested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoscripts: dtc-version: support git version strings too
Martin Hundebøll [Wed, 3 May 2023 10:23:39 +0000 (12:23 +0200)]
scripts: dtc-version: support git version strings too

Building dtc from git causes the version number to start with a 'v'
(e.g. v1.7.0). printf then fails to parse 'v1' as a decimal value, and
prints '000700' instead of '010700'. Subsequently, the build fails,
because '000700' is less than the required '010400' version.

Signed-off-by: Martin Hundebøll <martin@geanix.com>
19 months agoMerge branch '2023-05-11-CONFIG_IS_ENABLED-vs-IS_ENABLED-cleanups' into next
Tom Rini [Thu, 11 May 2023 17:02:03 +0000 (13:02 -0400)]
Merge branch '2023-05-11-CONFIG_IS_ENABLED-vs-IS_ENABLED-cleanups' into next

- Bring in some of the clean-ups to use IS_ENABLED rather than
  CONFIG_IS_ENABLED to make the code less error-prone.

19 months agopower: pmic: add dm style definitions if not CONFIG_IS_ENABLED(POWER_LEGACY)
Troy Kisky [Mon, 13 Mar 2023 21:31:44 +0000 (14:31 -0700)]
power: pmic: add dm style definitions if not CONFIG_IS_ENABLED(POWER_LEGACY)

This avoids an error in converting to CONFIG_IS_ENABLED(DM_PMIC).
Many boards SPL code needs these definitions to compile, even if
the functions are not linked.

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoarm: mach-imx: use CONFIG_$(SPL_)SATA instead of CONFIG_SATA
Troy Kisky [Mon, 13 Mar 2023 21:31:42 +0000 (14:31 -0700)]
arm: mach-imx: use CONFIG_$(SPL_)SATA instead of CONFIG_SATA

This avoid an error with enable_sata_clock when
defined(CONFIG_SATA) is changed to CONFIG_IS_ENABLED(SATA).

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agowandboard: use CONFIG_IS_ENABLED(SATA) instead of ifdef CONFIG_SATA
Troy Kisky [Mon, 13 Mar 2023 21:31:41 +0000 (14:31 -0700)]
wandboard: use CONFIG_IS_ENABLED(SATA) instead of ifdef CONFIG_SATA

Prepare for linking setup_sata only when CONFIG_SATA/CONFIG_SPL_SATA
is defined.

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
19 months agosolidrun: mx6cuboxi: use CONFIG_IS_ENABLED(SATA) instead of ifdef CONFIG_SATA
Troy Kisky [Mon, 13 Mar 2023 21:31:40 +0000 (14:31 -0700)]
solidrun: mx6cuboxi: use CONFIG_IS_ENABLED(SATA) instead of ifdef CONFIG_SATA

Prepare for linking setup_sata only when CONFIG_SATA/CONFIG_SPL_SATA
is defined.

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agofreescale: common: pfuze: define pfuze_mode_init only if defined(CONFIG_DM_PMIC)
Troy Kisky [Mon, 13 Mar 2023 21:31:38 +0000 (14:31 -0700)]
freescale: common: pfuze: define pfuze_mode_init only if defined(CONFIG_DM_PMIC)

pfuze_mode_init calls pmic_reg_read which is only available from

obj-$(CONFIG_$(SPL_TPL_)DM_PMIC) += pmic-uclass.o

Prepare for conversion of defined(CONFIG_DM_PMIC) to
CONFIG_IS_ENABLED(DM_PMIC).

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agom53menlo: define ft_board_setup only if CONFIG_IS_ENABLED(OF_LIBFDT)
Troy Kisky [Mon, 13 Mar 2023 21:31:37 +0000 (14:31 -0700)]
m53menlo: define ft_board_setup only if CONFIG_IS_ENABLED(OF_LIBFDT)

The function ft_board_setup calls do_fixup_by_path_string
which is only available on CONFIG_IS_ENABLED(OF_LIBFDT).
This prepares for the conversion.

ft_board_setup is only called from image-fdt which is linked by
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += image-fdt.o

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoofnode: fdt_support definitions needed if OF_CONTROL is enabled
Troy Kisky [Mon, 13 Mar 2023 21:31:35 +0000 (14:31 -0700)]
ofnode: fdt_support definitions needed if OF_CONTROL is enabled

With the use of CONFIG_IS_ENABLED in code, instead of at the preprocessor
level, these defines are still needed if OF_CONTROL is enabled.

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoconfig_distro_bootcmd: remove booting environment variables from SPL environment
Troy Kisky [Mon, 13 Mar 2023 21:31:34 +0000 (14:31 -0700)]
config_distro_bootcmd: remove booting environment variables from SPL environment

SPL environments don't need commands that they can never use.
Avoid errors with CONFIG_IS_ENABLED conversions by skipping them now.

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agox86: cpu: qemu: qemu: remove SPL use with CONFIG_IS_ENABLED
Troy Kisky [Mon, 13 Mar 2023 21:31:33 +0000 (14:31 -0700)]
x86: cpu: qemu: qemu: remove SPL use with CONFIG_IS_ENABLED

CONFIG_IS_ENABLED(SPL_X86_32BIT_INIT)
would check for CONFIG_SPL_SPL_X86_32BIT_INIT for SPL builds

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agocmd: nvedit: remove error check, handle with Kconfig
Troy Kisky [Mon, 13 Mar 2023 21:31:24 +0000 (14:31 -0700)]
cmd: nvedit: remove error check, handle with Kconfig

Avoid error messages when SPL,TPL,VPL build don't
have the environment options of the main build.
This is needed when defined(CONFIG_ENV_IS_IN_xxx) is changed
to CONFIG_IS_ENABLED(ENV_IS_IN_xxx).

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
19 months agoMerge branch 'master' into next
Tom Rini [Mon, 8 May 2023 18:31:04 +0000 (14:31 -0400)]
Merge branch 'master' into next

19 months agoPrepare v2023.07-rc2
Tom Rini [Mon, 8 May 2023 18:16:32 +0000 (14:16 -0400)]
Prepare v2023.07-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
19 months agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 8 May 2023 17:43:35 +0000 (13:43 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
19 months agoboard: ti: am64x: Add support for AM64B SK
Judith Mendez [Thu, 6 Apr 2023 06:19:01 +0000 (11:49 +0530)]
board: ti: am64x: Add support for AM64B SK

The AM64x SR2.0 SK board uses "AM64B-SKEVM" as the EEPROM identifier.
This board is similar to the AM64x SKEVM except that it has a new
PMIC that will be enabled in the future and consequently could use a
different device tree file in the future.

For now we treat the board same as an AM64x SK.

Signed-off-by: Judith Mendez <jm@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
19 months agocommon: spl: spl: Remove video driver before u-boot proper
Nikhil M Jain [Mon, 10 Apr 2023 08:49:13 +0000 (14:19 +0530)]
common: spl: spl: Remove video driver before u-boot proper

Add method to remove video driver before loading u-boot proper. When
bootstage changes from SPL to u-boot proper, noo method is called to
remove video driver, and at u-boot proper if video driver is not
enabled, the video driver starts displaying garbage on the screen,
because there is no reserved space for video and the frame buffer gets
u-boot proper data written.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
19 months agoboard: ti: am62x: evm: Add necessary functions to call splash screen
Nikhil M Jain [Mon, 10 Apr 2023 08:49:12 +0000 (14:19 +0530)]
board: ti: am62x: evm: Add necessary functions to call splash screen

To enable splash screen on AM62x at a53 SPL setup DRAM, set page table,
enable cache to allow copying of bmp image to frame buffer and display
it using splash_display.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
19 months agoboard: ti: am62x: am62x: Change splashimage and splashsource
Nikhil M Jain [Mon, 10 Apr 2023 08:49:11 +0000 (14:19 +0530)]
board: ti: am62x: am62x: Change splashimage and splashsource

Change splashimage which is bmp image loadaddr to 0x80200000 since stack
is situated at 0x80477660 as splash framework requires bmp image to be
present above stack.

Change splashsource to sf to support loading bmp image from ospi flash
memory.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
19 months agoconfigs: am62x_evm_a53_defconfig: Changes in memory to support SPL splash screen
Nikhil M Jain [Mon, 10 Apr 2023 08:49:10 +0000 (14:19 +0530)]
configs: am62x_evm_a53_defconfig: Changes in memory to support SPL splash screen

To enable splash at A53 SPL, need to do memory map changes which
involves locate stack above malloc and have enough space to load bmp
image above stack. To load a 1920X1200 image a minimum of 8.8MB space is
needed, to support it move malloc down to 0x80b80000 from 0x80480000 and
bss to 0x80c80000 to have 1MB buffer between malloc and BSS.

Observed SPL size 195KB, CONFIG_SPL_SIZE_LIMIT set to 256KB.
Observed stack size 1904Bytes, CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK set
to 2KB.
CONFIG_SPL_SYS_REPORT_STACK_F_USAGE config sets stack above the malloc
and reports for stack overflow.

Memory map at A53 SPL before splash screen
0x80000000+---------------------+
          |    Empty 512 KB     |
          |                     |
0x80080000+---------------------+
          |     Text Base       |
          |       352 KB        |
          |                     |
0x800D8000+---------------------+
          |                     |
          |                     |
          |    Empty 3.6MB      |
          |                     |
          |                     |
0x80477660+---------------------+
          |    Stack 2 KB       |
0x80477e60+---------------------+
          |     GD 416 Bytes    |
0x80478000+---------------------+
          |    Malloc 352 KB    |
          |                     |
0x80480000+---------------------+
          |                     |
          |                     |
          |                     |
          |                     |
          |   Empty 5.5 MB      |
          |                     |
          |                     |
          |                     |
          |                     |
0x80a00000+---------------------+
          |                     |
          |      BSS 512 KB     |
          |                     |
0x80a80000+---------------------+
          |                     |
          |                     |
          |                     |
          |                     |
          |   Empty 5.5 MB      |
          |                     |
          |                     |
          |                     |
          |                     |
0x81000000+---------------------+FIT Image load address

New memory map with splash screen at SPL
0x80000000+---------------------+
          |    Empty 512 KB     |
          |                     |
0x80080000+---------------------+
          |     Text Base       |
          |       352 KB        |
          |                     |
0x800D8000+---------------------+
          |    Empty 1.1MB      |
          |                     |
0x80200000+---------------------+
          |                     |
          |                     |
          |                     |
          |   BMP Image Load    |
          |                     |
          |       9.4 MB        |
          |                     |
          |                     |
          |                     |
          |                     |
          |                     |
          |                     |
0x80b77660+---------------------+
          |     Stack 2KB       |
0x80b77e60+---------------------+
          |    GD 416 Bytes     |
0x80b78000+---------------------+
          |                     |
          |    Malloc 352KB     |
0x80b80000+---------------------+
          |                     |
          |     Empty 1 MB      |
          |                     |
0x80c80000+---------------------+
          |     BSS 512 KB      |
          |                     |
0x80d00000+---------------------+
          |                     |
          |                     |
          |    Empty 3.0 MB     |
          |                     |
          |                     |
          |                     |
0x81000000+---------------------+FIT Image load addressi

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
19 months agobtrfs: fix offset when reading compressed extents
Dominique Martinet [Tue, 18 Apr 2023 06:41:55 +0000 (15:41 +0900)]
btrfs: fix offset when reading compressed extents

btrfs_read_extent_reg correctly computed the extent offset in the
BTRFS_COMPRESS_NONE case, but did not account for the 'offset - key.offset'
part correctly in the compressed case, making the function read
incorrect data.

In the case I examined, the last 4k of a file was corrupted and
contained data from a few blocks prior, e.g. reading a 10k file with a
single extent:
btrfs_file_read()
 -> btrfs_read_extent_reg
    (aligned part loop, until 8k)
 -> read_and_truncate_page
   -> btrfs_read_extent_reg
      (re-reads the last extent from 8k to the end,
      incorrectly reading the first 2k of data)

This can be reproduced as follow:
$ truncate -s 200M btr
$ mount btr -o compress /mnt
$ pat() { dd if=/dev/zero bs=1M count=$1 iflag=count_bytes status=none | tr '\0' "\\$2"; }
$ { pat 4K 1; pat 4K 2; pat 2K 3; }  > /mnt/file
$ sync
$ filefrag -v /mnt/file
File size of /mnt/file is 10240 (3 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       2:       3328..      3330:      3:             last,encoded,eof
$ umount /mnt

Then in u-boot:
=> load scsi 0 2000000 file
10240 bytes read in 3 ms (3.3 MiB/s)
=> md 2001ff0
02001ff002020202 02020202 02020202 02020202  ................
0200200001010101 01010101 01010101 01010101  ................
0200201001010101 01010101 01010101 01010101  ................

(02002000 onwards should contain '03' pattern but went back to 01,
start of the extent)

After patch, data is read properly:
=> md 2001ff0
02001ff002020202 02020202 02020202 02020202  ................
0200200003030303 03030303 03030303 03030303  ................
0200201003030303 03030303 03030303 03030303  ................

Note that the code previously (before commit e3427184f38a ("fs: btrfs:
Implement btrfs_file_read()")) did not split that read in two, so
this is a regression even if the previous code might not have been
handling offsets correctly either (something that booted now fails to
boot)

Fixes: a26a6bedafcf ("fs: btrfs: Introduce btrfs_read_extent_inline() and btrfs_read_extent_reg()")
Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
19 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-marvell
Tom Rini [Mon, 8 May 2023 13:10:39 +0000 (09:10 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-marvell

- cmd: tlv_eeprom: Misc cleanups & improvements (Josua)

19 months agocmd: tlv_eeprom: enable 'dev' subcommand before 'read'
Josua Mayer [Fri, 5 May 2023 08:20:49 +0000 (11:20 +0300)]
cmd: tlv_eeprom: enable 'dev' subcommand before 'read'

Move the handler for "tlv_eeprom dev X" command to the beginning of
do_tlv_eeprom, to allow using it before issuing a "read" command for
currently selected eeprom.

Also remove the check if eeprom exists, since that can only work after
the first execution of read_eeprom triggered device lookup.
Instead accept values up to the defined array size (MAX_TLV_DEVICES).

Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
19 months agocmd: tlv_eeprom: handle -ENODEV error from read_eeprom function
Josua Mayer [Fri, 5 May 2023 08:20:48 +0000 (11:20 +0300)]
cmd: tlv_eeprom: handle -ENODEV error from read_eeprom function

When tlv eeprom does not exist, return error code instead of quietly
making up tlv structure in memory.

Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
19 months agocmd: tlv_eeprom: remove use of global variable has_been_read
Josua Mayer [Fri, 5 May 2023 08:20:47 +0000 (11:20 +0300)]
cmd: tlv_eeprom: remove use of global variable has_been_read

has_been_read is only used as an optimization for do_tlv_eeprom.
Explicitly use and set inside this function, thus making read_eeprom
stateless.

Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
19 months agocmd: tlv_eeprom: remove use of global variable current_dev
Josua Mayer [Fri, 5 May 2023 08:20:46 +0000 (11:20 +0300)]
cmd: tlv_eeprom: remove use of global variable current_dev

Make tlv_eeprom command device selection an explicit parameter of all
function calls.

Signed-off-by: Josua Mayer <josua@solid-run.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
19 months agoMerge branch 'for-2023.07-2' of https://source.denx.de/u-boot/custodians/u-boot-mpc8xx
Tom Rini [Sun, 7 May 2023 13:44:27 +0000 (09:44 -0400)]
Merge branch 'for-2023.07-2' of https://source.denx.de/u-boot/custodians/u-boot-mpc8xx

This pull request adds misc fixes for cssi boards and activates
CPM relocation in order to enable the use of SCC4 in
QMC (QUICC Multi-Channel) mode.

19 months agoMerge branch '2023-05-05-networking-updates'
Tom Rini [Sat, 6 May 2023 14:34:34 +0000 (10:34 -0400)]
Merge branch '2023-05-05-networking-updates'

- Cleanup NFS support, add NFSv1 support, assorted IPv6 improvements,
  PHY cleanups and improvements, ksz9477, ldpaa and rtl8169
  improvements, overall network performance improvements.

19 months agonet: phy: Request rgmii-id phy reset gpio as output
Stefan Herbrechtsmeier [Tue, 2 May 2023 12:50:43 +0000 (14:50 +0200)]
net: phy: Request rgmii-id phy reset gpio as output

Request the reset gpio of the rgmii-id phy as output to be consistent
with the eth-phy-uclass driver.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
19 months agonet: rtl8169: add minimal support for 8125B variant
Eugen Hristev [Tue, 25 Apr 2023 13:06:58 +0000 (16:06 +0300)]
net: rtl8169: add minimal support for 8125B variant

Add minimal support for 8125B version.
Changes are based on the Linux driver.
Tested on Radxa Rock 5B Rk3588 board.

Connection to a laptop worked fine in 100 Mbps mode.
1000 Mbps mode is not working at the moment.

Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agotest: eth: IPv6 network discovery unit test
Ehsan Mohandesi [Sat, 22 Apr 2023 00:08:23 +0000 (17:08 -0700)]
test: eth: IPv6 network discovery unit test

Test router advertisement validation and processing functions.

Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
19 months agotest/py: IPv6 network discovery test
Ehsan Mohandesi [Sat, 22 Apr 2023 00:08:22 +0000 (17:08 -0700)]
test/py: IPv6 network discovery test

Test the IPv6 network discovery feature if indicated by boardenv file.

Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
19 months agonet: ipv6: Add support for default gateway discovery.
Ehsan Mohandesi [Sat, 22 Apr 2023 00:08:21 +0000 (17:08 -0700)]
net: ipv6: Add support for default gateway discovery.

In IPv6, the default gateway and prefix length are determined by receiving
a router advertisement as defined in -
https://www.rfc-editor.org/rfc/rfc4861.

Add support for sending router solicitation (RS) and processing router
advertisements (RA).

If the RA has prefix info option and following conditions are met, then
gatewayip6 and net_prefix_length of ip6addr env variables are initialized.
These are later consumed by IPv6 code for non-local destination IP.

- "Router Lifetime" != 0
- Prefix is NOT link-local prefix (0xfe80::/10)
- L flag is 1
- "Valid Lifetime" != 0

Timing Parameters:
- MAX_RTR_SOLICITATION_DELAY (0-1s)
- RTR_SOLICITATION_INTERVAL (4s) (min retransmit delay)
- MAX_RTR_SOLICITATIONS (3 RS transmissions)

The functionality is enabled by CONFIG_IPV6_ROUTER_DISCOVERY and invoked
automatically from net_init_loop().

Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com>
Tested-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>Reviewed-by:
Tested-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
Tested-by: Sergei Antonov <saproj@gmail.com>
Reviewed-by: Sergei Antonov <saproj@gmail.com>
19 months agonet: phy: Make phy_interface_is_rgmii a switch statement
Nishanth Menon [Fri, 14 Apr 2023 22:06:45 +0000 (17:06 -0500)]
net: phy: Make phy_interface_is_rgmii a switch statement

Recent commit 75d28899e3e9 ("net: phy: Synchronize PHY interface modes
with Linux") reordered the enum definitions. This exposed a problem
in range checking functions to identify the interface type. Though
this specific api wasn't impacted (all the RGMII definitions remained
within range), this experience should be used to never to have to face
this kind of challenge again.

While it is possible for the phy drivers to use the enums directly,
drivers such as dp83867, dp83869, marvell, micrel_ksz90x1 etc use this
api.

Reported-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: phy: Drop phy_interface_is_sgmii
Nishanth Menon [Fri, 14 Apr 2023 22:06:44 +0000 (17:06 -0500)]
net: phy: Drop phy_interface_is_sgmii

Recent commit 75d28899e3e9 ("net: phy: Synchronize PHY interface modes
with Linux") reordered the enum definitions. This caused the range of
enums that this api was checking to go bad.

There aren't anymore users of phy_interface_is_sgmii, so, just drop
it. Also the protocols are so very different that it makes no sense to
provide a helper wrapper in the hope of reuse for phy drivers.

Reported-by: Tom Rini <trini@konsulko.com>
Suggested-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Suggested-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/all/20230414103852.38705065@dellmb/
Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: phy: dp83867: Explicitly check against sgmii
Nishanth Menon [Fri, 14 Apr 2023 22:06:43 +0000 (17:06 -0500)]
net: phy: dp83867: Explicitly check against sgmii

dp83867 driver only supports sgmii and not all the newer protocols.
Drop the usage of the generic phy_interface_is_sgmii function and just
matchup to the specific mode supported.

Reported-by: Tom Rini <trini@konsulko.com>
Suggested-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Suggested-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/all/b82ac325-4818-8e72-054b-640268dbf806@mailbox.org/
Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: share fastboot boot handle logic between transports
Dmitrii Merkurev [Wed, 12 Apr 2023 18:49:31 +0000 (19:49 +0100)]
net: share fastboot boot handle logic between transports

Introduce reboot, boot and continue commands support to
TCP fastboot by moving existing UDP logic into the common module.

Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Simon Glass <sjg@chromium.org>
Сс: Joe Hershberger <joe.hershberger@ni.com>
Сс: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agonet: add fastboot TCP support
Dmitrii Merkurev [Wed, 12 Apr 2023 18:49:30 +0000 (19:49 +0100)]
net: add fastboot TCP support

Known limitations are
1. fastboot reboot doesn't work (answering OK but not rebooting)
2. flashing isn't supported (TCP transport only limitation)

The command syntax is
fastboot tcp

Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Simon Glass <sjg@chromium.org>
Сс: Joe Hershberger <joe.hershberger@ni.com>
Сс: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agonet: support being a TCP server to unblock TCP fastboot
Dmitrii Merkurev [Wed, 12 Apr 2023 18:49:29 +0000 (19:49 +0100)]
net: support being a TCP server to unblock TCP fastboot

Make following changes to unblock TCP fastboot support:

1. Implement being a TCP server support
2. Introduce dedicated TCP traffic handler (get rid of UDP signature)
3. Ensure seq_num and ack_num are respected in net_send_tcp_packet
function (make sure existing wget_cmd code is reflected with the fix)

Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Simon Glass <sjg@chromium.org>
Сс: Joe Hershberger <joe.hershberger@ni.com>
Сс: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: dhcp6: Add a sandbox test for dhcp6
Sean Edmond [Tue, 11 Apr 2023 17:48:48 +0000 (10:48 -0700)]
net: dhcp6: Add a sandbox test for dhcp6

Requires proper environment with DHCP6 server provisioned.

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: dhcp6: pxe: Add DHCP/PXE commands for IPv6
Sean Edmond [Tue, 11 Apr 2023 17:48:47 +0000 (10:48 -0700)]
net: dhcp6: pxe: Add DHCP/PXE commands for IPv6

Adds commands to support DHCP and PXE with IPv6.

New configs added:
- CMD_DHCP6
- DHCP6_PXE_CLIENTARCH
- DHCP6_PXE_DHCP_OPTION
- DHCP6_ENTERPRISE_ID

New commands added (when IPv6 is enabled):
- dhcp6
- pxe get -ipv6
- pxe boot -ipv6

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agonet: dhcp6: Add DHCPv6 (DHCP for IPv6)
Sean Edmond [Tue, 11 Apr 2023 17:48:46 +0000 (10:48 -0700)]
net: dhcp6: Add DHCPv6 (DHCP for IPv6)

Adds DHCPv6 protocol to u-boot.

Allows for address assignement with DHCPv6 4-message exchange
(SOLICIT->ADVERTISE->REQUEST->REPLY).  Includes DHCPv6 options
required by RFC 8415.  Also adds DHCPv6 options required
for PXE boot.

Possible enhancements:
- Duplicate address detection on DHCPv6 assigned address
- IPv6 address assignement through SLAAC
- Sending/parsing other DHCPv6 options (NTP, DNS, etc...)

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agophy: realtek: don't duplicate genphy_startup
Rasmus Villemoes [Tue, 28 Mar 2023 21:21:08 +0000 (23:21 +0200)]
phy: realtek: don't duplicate genphy_startup

rtl8211e_startup() is an exact copy of genphy_startup(). Use that
instead of duplicating it.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
19 months agophy: broadcom: don't duplicate genphy_startup
Rasmus Villemoes [Tue, 28 Mar 2023 21:12:47 +0000 (23:12 +0200)]
phy: broadcom: don't duplicate genphy_startup

Functionally, bcm_cygnus_startup() is an exact copy of
genphy_startup().

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
19 months agonet: phy: gmii2rgmii: Support external rgmii-id phy
Stefan Herbrechtsmeier [Wed, 22 Mar 2023 08:42:47 +0000 (09:42 +0100)]
net: phy: gmii2rgmii: Support external rgmii-id phy

Read the phy mode of the external phy from the device tree if available
and check that it is a RGMII variant.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
19 months agonet: add NFSv1 support
Thomas RIENOESSL [Fri, 10 Mar 2023 09:51:55 +0000 (10:51 +0100)]
net: add NFSv1 support

NFSv1 support added by Christian Gmeiner, Thomas Rienoessl,
September 27, 2018. As of now, NFSv3 is the default choice.
if the server does not support NFSv3, we fall back to
versions 2 or 1.

Signed-off-by: Thomas RIENOESSL <thomas.rienoessl@bachmann.info>
19 months agonfs: handle rpc errors for mount calls
Thomas RIENOESSL [Fri, 10 Mar 2023 09:51:54 +0000 (10:51 +0100)]
nfs: handle rpc errors for mount calls

Signed-off-by: Thomas RIENOESSL <thomas.rienoessl@bachmann.info>
19 months agonfs: factor out generic reply error handling
Thomas RIENOESSL [Fri, 10 Mar 2023 09:51:53 +0000 (10:51 +0100)]
nfs: factor out generic reply error handling

Signed-off-by: Thomas RIENOESSL <thomas.rienoessl@bachmann.info>
19 months agonfs: convert supported_nfs_versions bitfield to an enum
Thomas RIENOESSL [Fri, 10 Mar 2023 09:51:52 +0000 (10:51 +0100)]
nfs: convert supported_nfs_versions bitfield to an enum

Prep. work to support nfs v1.

Signed-off-by: Thomas RIENOESSL <thomas.rienoessl@bachmann.info>
19 months agoLet the EQoS in imx8mp handle fixed-phy too.
Elmar Psilog [Mon, 20 Feb 2023 15:03:15 +0000 (16:03 +0100)]
Let the EQoS in imx8mp handle fixed-phy too.

Without that patch it lost track to the node to scan
speed and duplex.
Patch was created by Marek Vasut, just tested by me.

Signed-off-by: Elmar Psilog <epsi@gmx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
19 months agonet: ipv6: IPv6 environment variable cleanup
Sean Edmond [Thu, 16 Feb 2023 04:38:36 +0000 (20:38 -0800)]
net: ipv6: IPv6 environment variable cleanup

Fix "setenv gatewayip6".

Synchronize IPv6 local variables with environment variables
in netboot_update_env()

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
19 months agodrivers: net: fsl-mc: fix MAC address fixup procedure
Ioana Ciornei [Thu, 9 Feb 2023 16:07:04 +0000 (18:07 +0200)]
drivers: net: fsl-mc: fix MAC address fixup procedure

In the process of adopting CONFIG_DM_ETH on the DPAA2 based platforms,
interfaces which were previously defined as "xgmii" were transitioned to
be defined as "xfi" in the DTS.
See the commit below for reference:
commit 87274918f2f4 ("arm: dts: ls2088ardb: add DPMAC and PHY nodes")

Then Vladimir's commit replaced all occurrences of "xfi" with
"10gbase-r" in an effort to make U-Boot work with the same device tree
as Linux.
commit 77b11f760416 ("net: replace the "xfi" phy-mode with "10gbase-r"")

These changes to the phy_interface_t of an Ethernet port meant that the
mc_fixup_mac_addrs() function was no longer capable to properly fixup
the MAC addresses. The problem arises from the fact that the hardcoded
information about an interface (wriop_get_enet_if()) was no longer
matching any actual device.

For example, the function tried to search for "DPMAC1@xgmii1" by name
using eth_get_dev_by_name() when only "DPMAC1@10gbase-r" was available.

This function removes the need to rely on the hardcoded information by
iterating through all the UCLASS_ETH devices which are DPAA2 and request
a fixup for each of them.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
19 months agodrivers: net: ldpaa: export driver name and API to get DPMAC id
Ioana Ciornei [Thu, 9 Feb 2023 16:07:03 +0000 (18:07 +0200)]
drivers: net: ldpaa: export driver name and API to get DPMAC id

Export the ldpaa_eth_get_dpmac_id() function so that it can be used from
other drivers, especially by fsl-mc which will need it the next patch.
Also, create a macro for the Ethernet ldpaa driver name and export it as
well.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>