xilinx: versal-net: Add support for timer and start it
Add support for starting timer by setting up time stamp generator
registers. This is done only for EL3 i.e. mini U-Boot case.
For other cases, it will be done TF-A.
Add COUNTER_FREQUENCY and IOU_SWITCH_DIVISOR0 to Kconfig so that they
can be tuned as required.
Jay Buddhabhatti [Tue, 10 Jan 2023 07:23:44 +0000 (08:23 +0100)]
clk: versal: Return error in case if clock setup failed
Currently probe is getting success even if clock setup is failed
because of that u-boot is trying to access invalid clocks. So return
error if clock setup failed.
Neal Frager [Wed, 21 Dec 2022 07:54:46 +0000 (07:54 +0000)]
makefile: add multi_dtb_fit dep
With certain gcc compilers, the u-boot.itb is built immediately after dtb
generation. If CONFIG_MULTI_DTB_FIT is used, it is possible that the
fit-dtb.blob is not finished in time.
This patch adds a necessary dependency to guarantee that the fit-dtb.blob
is built before attempting to build the u-boot.itb.
Nobody seems interested and able to keep this board supported, and
xilinx_zynqmp_virt_defconfig is supposed to be enough for any zynqmp board.
See the discussion at: https://lore.kernel.org/u-boot/CAPnjgZ3hHbyiFf=_Lp-Wz_XOWBkV-3vK4Q3xp=7bcERw-spNpA@mail.gmail.com/T/#m76d726f1ab3f7074c8105c9a2af2110ac7d18708
The commit c55ac51a550c ("usb: dwc3: Program GFLADJ") hopefully fixed
issues around fladj logic. This DT property was used in Xilinx stack only
that's why remove because it is not needed anymore.
Harini Katakam [Mon, 12 Dec 2022 14:14:18 +0000 (15:14 +0100)]
arm64: zynqmp: Enable TI phy reset via GPIO
Add DT property to support reset of TI PHY connected to GEM.
This is present in RevA DT but needs to be extended RevB/1.0/1.1
versions which are built on top.
Harini Katakam [Mon, 12 Dec 2022 14:14:17 +0000 (15:14 +0100)]
arm64: zynqmp: Describe TI phy as ethernet phy ID on ZCU102 RevB & up
TI phy requires a reset before PHY address detection to make sure
correct strapping via MIO is detected. Facilitate the same using
ethernet-phy-id compatible string. GPIO reset entry will be added in
a separate commit.
This support is present in RevA but needs to be extended to RevB/1.0/1.1
versions which are built on top.
Michal Simek [Mon, 12 Dec 2022 14:06:13 +0000 (15:06 +0100)]
arm64: zynqmp: Remove unused USB DT properties
xlnx,usb-polarity, xlnx,usb-reset-mode and snps,mask_phy_reset are not
documented in dt binding and also there is no code associated with them
that's why remove them.
Michal Simek [Fri, 9 Dec 2022 12:56:40 +0000 (13:56 +0100)]
arm64: zynqmp: Align gpio-key node names with dtschema
The node names should be generic and DT schema expects certain pattern
(e.g. with key/button/switch).
It is based on kernel commit (228e8a88b1915a2b467c83d8d0976605f1272fae).
Michal Simek [Fri, 9 Dec 2022 12:56:38 +0000 (13:56 +0100)]
arm64: zynqmp: Added GEM reset definitions
The Cadence GEM/MACB driver now utilizes the platform-level reset on the
ZynqMP platform. Add reset definitions to the ZynqMP platform device
tree to allow this to be used.
Linux upstream commit (e461bd6f43f4e568f7436a8b6bc21c4ce6914c36).
There are currently no platform that are both CONFIG_SYS_NS16550_MEM32
and not (per how the logic was prior to being broken in 0478dac62a9a
("kbuild: Remove uncmd_spl logic")) enabled in CONFIG_DM_SERIAL. We drop
this line out now so that platforms which do use
CONFIG_SYS_NS16550_MEM32 and depending on stage may or may not have
DM_SERIAL set.
Jagan Teki [Sun, 8 Jan 2023 16:17:34 +0000 (21:47 +0530)]
board: rockchip: Fix binman_init failure on EVB-RK3568
For some newer SoCs like RK3568, the Rockchip has not released
any DDR drivers yet so idbloader needs to create manually using
DDR binaries offered by rkbin. This indeed no requirement to
enable TPL in the U-Boot source code.
If we mark TPL disabled and mark BINMAN enabled by default then
there would be an issue of binman_init failure during board
relocation. This is true as binman failed to find the top-level
node like u-boot-tpl here.
Here is the boot issue observed in Radxa-CM3 RK3566 board,
This might be fixed via binman node in rockchip-u-boot.dtsi however
disable BINMAN_FDT for evb-rk3568 defconfig for now as we are at the
end of the release cycle.
Fixes: 05713d570762 ("rockchip: generate u-boot-rockchip.bin with binman
for ARM64 boards") Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Marek Vasut [Thu, 5 Jan 2023 01:26:03 +0000 (02:26 +0100)]
distro_bootcmd: Fix copy-paste error
The "SCRIPT FAILED" string is copied from scan_dev_for_scripts script,
update it so it prints "EXTLINUX FAILED" instead in scan_dev_for_extlinux
script.
Roger Quadros [Tue, 20 Dec 2022 10:22:03 +0000 (12:22 +0200)]
mtd: rawnand: omap_elm: u-boot driver model support
Support u-boot driver model. We still retain
support legacy way of doing things if ELM_BASE
is defined in <asm/arch/hardware.h>
We could completely get rid of that if all
platforms defining ELM_BASE get rid of that definition
and enable CONFIG_SYS_NAND_SELF_INIT and are verified
to work.
Roger Quadros [Tue, 20 Dec 2022 10:21:59 +0000 (12:21 +0200)]
mtd: rawnand: omap_gpmc: support u-boot driver model
Adds driver model support.
We need to be able to self initialize the NAND controller/chip
at probe and so enable CONFIG_SYS_NAND_SELF_INIT.
Doing so requires nand_register() API which is provided by nand.c
and needs to be enabled during SPL build via CONFIG_SPL_NAND_INIT.
But nand.c also provides nand_init() so we need to get rid of nand_init()
in omap_gpmc driver if CONFIG_SPL_NAND_INIT is set.
Roger Quadros [Tue, 20 Dec 2022 10:21:57 +0000 (12:21 +0200)]
mtd: rawnand: nand_base: Allow base driver to be used in SPL without nand_bbt
nand_bbt.c is not being built with the nand_base driver during SPL
build. This results in build failures if we try to access any nand_bbt
related functions.
Tom Rini [Sat, 7 Jan 2023 23:02:26 +0000 (18:02 -0500)]
pylibfdt: Allow version normalization to fail
In some cases, we might not have the sic portion of setuputils
available. Make our import and use of this be done in try/except blocks
as this is done to suppress a run-time warning that is otherwise
non-fatal.
Reported-by: Pali Rohár <pali@kernel.org> Fixes: 141659187667 ("pylibfdt: Fix disable version normalization") Signed-off-by: Tom Rini <trini@konsulko.com>
Pali Rohár [Sat, 7 Jan 2023 21:55:26 +0000 (22:55 +0100)]
common/memsize.c: Check for overflow in get_effective_memsize() only for mpc85xx
This reverts commit 777aaaa706bc ("common/memsize.c: Fix
get_effective_memsize() to check for overflow") for non-mpc85xx platforms.
The changes to this generic function, which is intended to help with
32bit platforms with large amounts of memory has unintended side effects
(which in turn lead to boot failures) on other platforms which were
previously functional.
For now do overflow check only for powerpc mpc85xx platform. It is needed
to prevent crashing of P1/P2 boards with 4GB DDR module in 32-bit mode.
Fixes: 777aaaa706bc ("common/memsize.c: Fix get_effective_memsize() to check for overflow") Signed-off-by: Pali Rohár <pali@kernel.org>
Tom Rini [Sat, 7 Jan 2023 17:32:42 +0000 (12:32 -0500)]
Merge tag 'efi-2023-01-rc5-4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-01-rc5-4
UEFI:
* correct the vexpress loaddr which collides with memory used by EFI
* consider the EFI memory map for LMB memory reservation
* avoid RWX section warnings for .data section of *_efi.so files
Tom Rini [Fri, 6 Jan 2023 16:53:26 +0000 (11:53 -0500)]
Merge tag 'u-boot-at91-2023.04-a' of https://source.denx.de/u-boot/custodians/u-boot-at91 into next
First set of u-boot-at91 features for the 2023.04 cycle:
This feature set includes the new DM-based NAND flash driver (old non-DM
driver is still kept for backwards compatibility), and the move to DM
NAND flash driver for sam9x60ek board. Feature set also includes
devicetree alignment for sama7g5 with Linux, devicetree alignment on USB
with Linux for all boards (sama5, sam9x60), chip id for sama7g5, minor
configs and tweaks.
Tom Rini [Fri, 6 Jan 2023 13:16:15 +0000 (08:16 -0500)]
Merge tag 'u-boot-stm32-20230106' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
- stm32mp: Fix board_get_usable_ram_top(): workaround to avoid issue after the
commit 777aaaa706b ("common/memsize.c: Fix get_effective_memsize() to check
for overflow") because the effective DDR effective size is reduce by 4KiB
and sometime the board hang on boot
- Bring in a number of important regression fixes for among others,
uniphier, PXE booting, socrates, imx7d-pico, rockchip video and
rzg2_beacon as well as making the python version warning fix more
portable.
Adam Ford [Wed, 4 Jan 2023 18:05:43 +0000 (12:05 -0600)]
arm: rmobile: rzg2_beacon: Enable alternative Ethernet PHY
Due to the part shortage, the AR8031 PHY was replaced with a
Micrel KSZ9131. Enabling both config options keeps backward
compatibility with either platform, and both appear to be
auto-detected.
Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Marek Vasut <marek.vasut+renesas@gmail.com>
The QSPI is accessed via the RPC-IF, but the compatible flags
previously used a different name. This compatibel name was changed
which broke the ability to access the QSPI. Fix this by removing
the custom naming reference.
Fixes: 68083b897b57 ("renesas: Fix RPC-IF compatible values") Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Marek Vasut <marek.vasut+renesas@gmail.com>
On Arch Linux based systems python setuptools does not contain
"setuptools.extern" hence it is failing with the following
error-message:
"
ModuleNotFoundError: No module named 'setuptools.extern'
"
According to a eschwartz `setuptools.extern` is not a public API and
shall not be assumed to be present in the setuptools package. He
mentions that the setuptools project anyway wants to drop this. [1]
Use the correct solution introduced by python setuptools developers to
disable normalization. [2]
[1] https://bbs.archlinux.org/viewtopic.php?id=259608
[2] https://github.com/pypa/setuptools/pull/2026 Fixes: 440098c42e73 ("pylibfdt: Fix version normalization warning") Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
Marek Vasut [Wed, 14 Dec 2022 06:45:18 +0000 (07:45 +0100)]
cmd: pxe_utils: Limit fdtcontroladdr usage to non-fitImage
Commit d5ba6188dfb ("cmd: pxe_utils: Check fdtcontroladdr in label_boot")
forces '$fdtcontroladdr' DT address as a third parameter of bootm command
even if the PXE transfer pulls in a fitImage which contains configuration
node with its own DT that is preferrable to be passed to Linux. Limit the
$fdtcontroladdr fallback utilization to non-fitImages, since it is highly
likely a fitImage would come with its own DT, while single-file images do
need a separate DT.
Fixes: d5ba6188dfb ("cmd: pxe_utils: Check fdtcontroladdr in label_boot") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Tested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Peter Hoyes <peter.hoyes@arm.com> Tested-by: Peter Hoyes <peter.hoyes@arm.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Superseded by "cmd: pxe_utils: Limit fdtcontroladdr usage to non-fitImage"
which is less heavy-handed approach and retains part of the original
behavior for non-fitImage.
Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Jagan Teki [Mon, 2 Jan 2023 18:23:45 +0000 (23:53 +0530)]
rockchip: Fix the broken Video out for rk3288 boards
Video out on RK3288 boards has been broken since from few
releases due to the adding of reset support on vop but
missed enabling DM_RESET on associated boards.
This patch fixes those RK3288 boards.
Cc: Simon Glass <sjg@chromium.org> Cc: Lin Huang <hl@rock-chips.com> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: Michael Trimarchi <michael@amarulasolutions.com> Cc: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> Fixes: <9749d2ea29e1> ("rockchip: video: vop: Add reset support") Reported-by: Manoj Sai <abbaraju.manojsai@amarulasolutions.com> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Dai Okamura [Fri, 9 Dec 2022 11:38:27 +0000 (20:38 +0900)]
i2c: uniphier-f: correct error recovery
The uniphier i2c block can recognize some handshake errors.
But driver handles all error detections as no error if no timeout.
So this makes unrecoverable state.
This replaces the return values with the right ones to tell the i2c
framework the errors:
- EDEADLK for arbitration lost error
- ENODATA for no answer error
Fabio Estevam [Sat, 31 Dec 2022 16:25:14 +0000 (13:25 -0300)]
imx7d-pico: Fix the name of the u-boot.dtsi file
Since commit 2f96d4dd95f8 ("imx7s/d: synchronise device trees with linux")
the imx7d-pico board no longer boots.
The reason is that prior to the above commit there was an explicit
inclusion of arch/arm/dts/imx7d-pico-u-boot.dtsi inside imx7d-pico.dtsi.
After the syncing with the Linux upstream dtsi, this u-boot.dtsi inclusion
is gone and the board fails to boot.
U-Boot uses the imx7d-pico-pi.dtb file, so rename the u-boot.dtsi to
imx7d-pico-pi-u-boot.dtsi which gets included automatically by U-Boot
standard make logic and makes the board boot again.
Pali Rohár [Wed, 28 Dec 2022 18:18:39 +0000 (19:18 +0100)]
powerpc/mpc85xx: socrates: Re-enable building u-boot-socrates.bin
U-Boot build system builds final U-Boot binary for socrates board in custom
file u-boot-socrates.bin (instead of standard u-boot.bin). Output target
file u-boot-socrates.bin is generated by binman as defined in board binman
config file arch/powerpc/dts/socrates-u-boot.dtsi.
But binman was disabled in commit 5af42eafd7e1 ("Makefile: Reduce usage of
custom mpc85xx u-boot.bin target") for all mpc85xx boards which do not use
standard powerpc binman config file arch/powerpc/dts/u-boot.dtsi and boards
which do not require binman at all.
The only such mpc85xx board is socrates. So since that commit, U-Boot does
not final binary for socrates board anymore.
Fix this issue by re-enabling binman for socrates board. And build process
starts again producing u-boot-socrates.bin binary.
Note that build process for this socrates board always produce u-boot.bin
binary which is broken and not usable for socrates board. Long term
solution should be to disable building broken binary u-boot.bin and then
renaming u-boot-socrates.bin to u-boot.bin, or switching to use common
powerpc binman config file arch/powerpc/dts/socrates-u-boot.dtsi (if it is
possible).
Marek Vasut [Thu, 5 Jan 2023 01:22:22 +0000 (02:22 +0100)]
arm: stm32mp: Fix board_get_usable_ram_top() again
Do not access gd->ram_size and assume this is actual valid RAM size. Since commit 777aaaa706b ("common/memsize.c: Fix get_effective_memsize() to check for overflow")
the RAM size may be less than gd->ram_size , call get_effective_memsize() to get
the limited value instead.
The aforementioned commit makes STM32MP15xx boards with 1 GiB of DRAM
at 0xc0000000 hang on boot, which is a grave defect.
Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Maxim Cournoyer [Tue, 20 Dec 2022 05:28:46 +0000 (00:28 -0500)]
patman: add '--get-maintainer-script' argument
This makes it possible to configure a project to use some other
location or script than the default scripts/get_maintainer.pl one used
in the U-Boot and Linux projects. It can be configured via a .patman
configuration file and accepts arguments, as documented.
Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Maxim Cournoyer [Tue, 20 Dec 2022 05:38:41 +0000 (00:38 -0500)]
patman: additionally honor a local .patman config file
This enables versioning a project specific patman configuration file.
It also makes it possible to declare the project name, which is not a
useful thing to do in $HOME/.patman. A new test is added, along
updated documentation.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Maxim Cournoyer [Mon, 19 Dec 2022 22:32:43 +0000 (17:32 -0500)]
patman: hide the 'test' command unless test data is available
Some tests would fail when the test data is not available, so it
doesn't make much sense to expose the action when patman is running
outside of the u-boot git checkout.
Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Maxim Cournoyer [Mon, 19 Dec 2022 22:32:41 +0000 (17:32 -0500)]
patman: rename main script to __main__.py
This allows running the package as a Python module, like e.g.:
$ python -m patman
It also prevents Pytest from attempting to parse main.py, which
would cause errors.
Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Fix up main.py in __init__.py: Signed-off-by: Simon Glass <sjg@chromium.org>
Maxim Cournoyer [Mon, 19 Dec 2022 22:32:40 +0000 (17:32 -0500)]
patman: invoke the checkpatch.pl script with '--u-boot' and '--strict'
This resolves 10 out of 11 test failures seen when running './patman
test' from the 'tools/patman' subdirectory. This was caused by the
.checkpatch.conf configuration file at the root of the project not
being picked up. Make the test suite of patman independent from it by
always invoking the checkpatch.pl script with the minimally required
arguments for the test suite to pass.
Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Maxim Cournoyer [Sat, 17 Dec 2022 01:45:29 +0000 (20:45 -0500)]
patman: locate README.rst via importlib
Rationale: this is more robust than assumptions about the file
hierarchy layout of the installation of patman, for example on non
file-hierarchy standard (FHS) systems such as Guix System or Nix OS.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Sergiu Moga [Wed, 4 Jan 2023 14:03:18 +0000 (16:03 +0200)]
reset: at91: Add reset driver for basic assert/deassert operations
Add support for at91 reset controller's basic assert/deassert
operations. Since this driver conflicts with the
SYSRESET driver because they both bind to the same RSTC node,
implement a custom bind hook that would manually bind the
sysreset driver, if enabled, to the same RSTC DT node.
Furthermore, delete the no longer needed compatibles from the
SYSRESET driver and rename it to make sure than any possible
conflicts are avoided.
Sergiu Moga [Wed, 4 Jan 2023 14:04:16 +0000 (16:04 +0200)]
ARM: dts: sama7g5ek: Add pinctrl, gpio and phy properties for USB
Add the required pinctrl, gpio and phy properties required by the
USB DT nodes of the sama7g5ek boards. Since these have not yet been
defined in upstream Linux, place them in the U-Boot specific DT file.
Sergiu Moga [Wed, 4 Jan 2023 14:04:15 +0000 (16:04 +0200)]
ARM: dts: sama7g5: Add USB and UTMI DT nodes
Define the USB and UTMI DT nodes for the sama7g5 SoC's. Since these have
not yet been defined in upstream Linux, place them in the U-Boot specific
DT file.
Signed-off-by: Sergiu Moga <sergiu.moga@microchip.com> Reviewed-by: Marek Vasut <marex@denx.de>
Tom Rini [Wed, 4 Jan 2023 13:50:24 +0000 (08:50 -0500)]
Merge tag 'efi-2023-01-rc5-3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc5-3
Documentation:
* Describe building documentation
UEFI:
* Add .data section to aarch64 EFI binaries and correct section flags
* Correct sorting of capsules when updating
* Populate console handles in system table
Other:
* Fix description of eth_env_[gs]et_enetaddr() return value
* Avoid endless loop in sound play command
efi_loader: populate console handles in system table
The fields ConsoleInHandle, ConsoleOutHandle, ConsoleErrHandle must point
to the handles with the respective console protocols. Failure to do so
leads to an error in the EFI Shell:
No SimpleTextInputEx was found. CTRL-based features are not usable.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
While our EFI binaries execute without problems on EDK II they crash on
a Lenovo X13s. Let our binaries look more like what EDK II produces:
* move all writable data to a .data section
* align sections to 4 KiB boundaries (matching EFI page size)
* remove IMAGE_SCN_LNK_NRELOC_OVFL from .reloc section flags
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Marek Vasut [Sun, 18 Dec 2022 07:05:02 +0000 (08:05 +0100)]
doc: Fix eth_env_[gs]et_enetaddr() return value
Per env/common.c, eth_env_get_enetaddr() returns the same return
values as is_valid_ethaddr(), i.e. true if valid, false otherwise.
Per env/common.c, eth_env_set_enetaddr() may return -EEXIST is the
ethaddr is already set. Fix both.
Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>