Jonas Karlman [Mon, 26 Jun 2023 19:43:06 +0000 (19:43 +0000)]
rockchip: Restore support for boot scripts in legacy image format
Use of CONFIG_SPL_FIT_SIGNATURE=y cause CONFIG_LEGACY_IMAGE_FORMAT=n as
default, this prevent boot scripts in legacy image format from working
and was an unintended change in the listed fixes commits:
Wrong image format for "source" command
Add CONFIG_LEGACY_IMAGE_FORMAT=y to defconfig for affected boards to
restore support for boot scripts in legacy image format.
Fixes:
3bf8e4080763 ("board: rockchip: add Radxa ROCK5B Rk3588 board")
Fixes:
cf777572ca31 ("rockchip: rockpro64: Use SDMA to boost eMMC performance")
Fixes:
6e2b8344d60c ("rockchip: rock-pi-4: Use SDMA to boost eMMC performance")
Fixes:
1bf49d5a4a7c ("rockchip: rk3566-radxa-cm3-io: Update defconfig")
Fixes:
703c170b40f2 ("rockchip: rk3568-evb: Update defconfig")
Fixes:
68000f750acd ("rockchip: rk3568-rock-3a: Update defconfig")
Fixes:
6fb02589a608 ("rockchip: rk3588-evb: Update defconfig")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tom Rini [Sat, 1 Jul 2023 20:11:51 +0000 (16:11 -0400)]
Merge tag 'efi-2023-07-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-07-rc6
Documentation:
* man-pages for the loads and saves commands
UEFI:
* fix implementation of allow_unaligned() for armv7 and arm11
Marek Vasut [Sat, 1 Jul 2023 15:26:19 +0000 (17:26 +0200)]
ARM: arm11: Add C wrapper for allow_unaligned()
Rename current assembler implementation of allow_unaligned() to
arm11_arch_cp15_allow_unaligned() and add it into arm11.h header,
then add C wrapper of allow_unaligned().
This fixes misbehavior when linking U-Boot, where the CPU specific
allow_unaligned() implementation was ignored and instead the
__weak allow_unaligned() implementation from lib/efi_loader/efi_setup.c
was used, which led to "data abort" just before booting Linux via tftp,
in efi_dp_from_file() -> path_to_uefi() -> utf16_put() .
The problem is triggerd by
c7c0ca37673 ("efi_loader: fix efi_dp_from_file()") .
Adding the wrapper fixes the problem.
Fixes:
d47a774680d ("arm: arm11: allow unaligned memory access")
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sat, 1 Jul 2023 15:26:18 +0000 (17:26 +0200)]
ARM: armv7: Add C wrapper for allow_unaligned()
Rename current assembler implementation of allow_unaligned() to
v7_arch_cp15_allow_unaligned() and add it into armv7.h header,
then add C wrapper of allow_unaligned().
This fixes misbehavior when linking U-Boot on ARMv7a i.MX6Q, where the
CPU specific allow_unaligned() implementation was ignored and instead the
__weak allow_unaligned() implementation from lib/efi_loader/efi_setup.c
was used, which led to "data abort" just before booting Linux via tftp,
in efi_dp_from_file() -> path_to_uefi() -> utf16_put() .
The problem is triggerd by
c7c0ca37673 ("efi_loader: fix efi_dp_from_file()") .
Adding the wrapper fixes the problem.
Fixes:
78f90aaeecc ("arm: armv7: allow unaligned memory access")
Signed-off-by: Marek Vasut <marex@denx.de>
Heinrich Schuchardt [Sun, 25 Jun 2023 21:22:44 +0000 (23:22 +0200)]
doc: fix typo loady in loadb man-page
%s/loady/loadb/
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Heinrich Schuchardt [Sun, 25 Jun 2023 13:14:03 +0000 (15:14 +0200)]
doc: saves man-page
Provide a man-page for the saves command.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Heinrich Schuchardt [Sun, 25 Jun 2023 11:40:23 +0000 (13:40 +0200)]
doc: loads man-page
Provide a man-page for the loads command.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Eduard Strehlau [Tue, 27 Jun 2023 16:57:49 +0000 (13:57 -0300)]
smegw01: Fix wrong symbol override
board_mmc_get_env_part() is not called as the default implementation
of mmc_get_env_part() is used.
Fix this problem by directly calling mmc_get_env_part() instead.
Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Tom Rini [Mon, 26 Jun 2023 19:19:54 +0000 (15:19 -0400)]
CI: Azure: Split keymile jobs out
Currently the PowerPC build job in Azure will hit the maximum time limit
for a build and stop. Looking at the job, the easiest path to reducing
it is to move Keymile vendor boards to their own job and exclude them
from the PowerPC one (and while at this, the ls102 job).
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Ken Sloat [Tue, 11 Apr 2023 20:05:31 +0000 (16:05 -0400)]
board: freescale: imx93_evk: Fix MMC environment offset boot conflict.
Currently, the imx93_evk is configured with CONFIG_ENV_IS_IN_MMC and the
chosen environment offset in the config is 0x400000. Unless the user
programs the associated fuses, this offset is the default secondary boot
image offset used by the i.MX 93 ROM bootloader. With certain
combinations of environmental variables, the CRC and beginning of the
environment can potentially falsely appear as a valid boot image
container header. If the expected "sw_version" offset within this
mistaken boot image container is greater than the primary's, the ROM
bootloader can skip booting of the primary image altogether and attempt
to boot with the content of the environment data. This will then hang
the system.
To fix this, move the environment from 0x400000 to 0x700000 reserving up
to 3 MB at 0x400000 for any actual secondary user image container.
Signed-off-by: Ken Sloat <ken.s@variscite.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Tom Rini [Thu, 29 Jun 2023 13:52:48 +0000 (09:52 -0400)]
Merge tag 'u-boot-rockchip-
20230629' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
- rockchip inno phy fix;
- pinctrl driver in SPL arort in specific case;
- fix IO port voltage for rock5b-rk3588 board;
Eugen Hristev [Fri, 23 Jun 2023 10:05:27 +0000 (13:05 +0300)]
board: rockchip: rock5b-rk3588: fix description
Update description with correct specifications
Fixes:
3bf8e4080763 ("board: rockchip: add Radxa ROCK5B Rk3588 board")
Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Jonas Karlman [Thu, 8 Jun 2023 10:59:38 +0000 (10:59 +0000)]
pinctrl: rockchip: Fix Data Abort exception in SPL
Using CONFIG_ARMV8_SPL_EXCEPTION_VECTORS=y and CONFIG_OF_LIVE=y triggers
a Data Abort exception from unaligned memory access when the pinctrl
driver iterate node properties, e.g. for UART2 on RK3568.
setting mux of GPIO0-24 to 1
setting mux of GPIO0-24 to 1
"Synchronous Abort" handler, esr 0x96000021
elr:
000000000000e554 lr :
000000000000e54c
x 0:
0000000000000a5c x 1:
0000000000000a5c
x 2:
0000000000000007 x 3:
0000000000000065
x 4:
0000000000000007 x 5:
0000000000022d4e
x 6:
0000000000000a7c x 7:
00000000000227a4
x 8:
0000000000021cf0 x 9:
0000000000000a7c
x10:
0000000000021cf0 x11:
0000000000021cf0
x12:
00000000003fda1c x13:
0000000000000007
x14:
00000000003fd9ec x15:
000000000001c0ff
x16:
0000000007000000 x17:
00000000fdccd028
x18:
00000000003fde20 x19:
0000000000000018
x20:
0000000000020670 x21:
0000000000000000
x22:
00000000003fdb00 x23:
00000000003fef90
x24:
0000000000020688 x25:
0000000000000000
x26:
0000000000000001 x27:
00000000003ffc50
x28:
0000000000000000 x29:
00000000003fda60
Code:
b94083e1 97ffd508 93407c01 37f81260 (
f9401038)
Resetting CPU ...
Fix this by replacing the loop to access node properties with use of
ofnode_for_each_prop instead of the current ifdef.
Also continue to next prop instead of aborting at first sign of an
unknown property.
This fixes the Data Abort exception and also pinconf of e.g. pull and
drive in SPL, e.g. for UART2 on RK3568.
setting mux of GPIO0-24 to 1
setting mux of GPIO0-24 to 1
setting pull of GPIO0-24 to 5
setting mux of GPIO0-25 to 1
setting mux of GPIO0-25 to 1
setting pull of GPIO0-25 to 5
Fixes:
e7ae4cf27a6d ("pinctrl: rockchip: Add common rockchip pinctrl driver")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Ondrej Jirman [Thu, 25 May 2023 13:27:08 +0000 (15:27 +0200)]
pinephone-pro: Fix I/O port voltage (GPIO3D4A is 1.8V)
This fixes access to camera sensor over I2C during probe time in
the kernel. (Kernel will fix I/0 port voltage by itself, but the
timing depends on probe order of the drivers, so the fix can
come after the camera sensor driver already failed to probe.)
Signed-off-by: Ondrej Jirman <megi@xff.cz>
Cc: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Eugen Hristev [Mon, 22 May 2023 08:39:58 +0000 (11:39 +0300)]
phy: rockchip: inno-usb2: fix phy reg=0 case
The support for #address-cells=2 has a loophole: if the reg is actually 0,
but the #address-cells is actually 1, like in such case below:
syscon {
#address-cells = <1>;
phy {
reg = <0 0x10>;
};
};
then the second u32 of the 'reg' is the size, not the address.
The code should check for the parent's #address-cells value, and not
assume that if the first u32 is 0, then the #address-cells is 2, and the
reg property is something like
reg = <0 0xff00 0x10>;
Fixed this by looking for the #address-cells value and retrieving the
reg address only if this is ==2.
To avoid breaking anything I also kept the check `if reg==0` as some DT's
may have a wrong #address-cells as parent and even if this commit is
correct, it might break the existing wrong device-trees.
Fixes:
d538efb9adcf ("phy: rockchip: inno-usb2: Add support #address_cells = 2")
Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tom Rini [Tue, 27 Jun 2023 13:39:58 +0000 (09:39 -0400)]
Merge branch 'riscv-fixes' of https://source.denx.de/u-boot/custodians/u-boot-riscv
Bin Meng [Tue, 27 Jun 2023 01:24:56 +0000 (09:24 +0800)]
riscv: Fix alignment of RELA sections in the linker scripts
In current linker script both .efi_runtime_rel and .rela.dyn sections
are of RELA type whose entry size is either 12 (RV32) or 24 (RV64).
These two are arranged as a continuous region on purpose so that the
prelink-riscv executable can fix up the PIE addresses in one loop.
However there is an 'ALIGN(8)' between these 2 sections which might
cause a gap to be inserted between these 2 sections to satisfy the
alignment requirement on RV32. This would break the assumption of
the prelink process and generate an unbootable image.
Fixes:
9a6569a043d3 ("riscv: Update alignment for some sections in linker scripts")
Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Rick Chen <rick@andestech.com>
Heinrich Schuchardt [Mon, 1 May 2023 12:57:08 +0000 (14:57 +0200)]
MAINTAINERS: update SiFive HiFive Unmatched maintainers
Email account pragnesh.patel@sifive.com does not exist anymore.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Yanhong Wang [Fri, 28 Apr 2023 01:28:20 +0000 (09:28 +0800)]
board: starfive: Fixed errors reported when executing get_maintainer.pl
Fixed errors reported when executing 'scripts/get_maintainer.pl -f
configs/starfive_visionfive2_defconfig'.
Invalid MAINTAINERS address: 'startfive'
Signed-off-by: Yanhong Wang <yanhong.wang@starfivetech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Tom Rini [Mon, 26 Jun 2023 15:44:06 +0000 (11:44 -0400)]
Prepare v2023.07-rc5
Signed-off-by: Tom Rini <trini@konsulko.com>
Tom Rini [Mon, 26 Jun 2023 15:43:56 +0000 (11:43 -0400)]
configs: Resync with savedefconfig
Rsync all defconfig files using moveconfig.py
Signed-off-by: Tom Rini <trini@konsulko.com>
Eduard Strehlau [Mon, 26 Jun 2023 14:31:36 +0000 (11:31 -0300)]
smegw01: Fix duplicate bootcmd
Two conflicting bootcmds were included in the environment.
Streamline to defining the bootcmd only in the env file.
Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Tom Rini [Sun, 25 Jun 2023 01:36:19 +0000 (21:36 -0400)]
Merge branch '2023-06-23-assorted-important-fixes'
- Merge in a few important fixes. This includes a (partial) regression
fix, updating documentation and some sanity checking around image
loading.
Marek Vasut [Sun, 28 May 2023 21:00:30 +0000 (23:00 +0200)]
imx: hab: Simplify the mechanism
The current mechanism is unnecessarily complex. Simplify the whole mechanism
such that the entire fitImage is signed, IVT is placed at the end, followed
by CSF, and this entire bundle is also authenticated. This makes the signing
scripting far simpler.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sun, 28 May 2023 23:29:20 +0000 (01:29 +0200)]
imx: hab: Fix a couple of build warnings with DEBUG enabled
In case the DEBUG is enabled, these three lines warn about cast of
pointer to integer of different size, add the missing casts to fix
the warnings.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Mon, 29 May 2023 12:04:06 +0000 (14:04 +0200)]
spl: spl_legacy: Add extra address checks
Check whether the loaded image or entry point does not overlap SPL.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Fri, 23 Jun 2023 19:56:27 +0000 (21:56 +0200)]
ARM: imx: Add weak default reset_cpu()
Add weak default reset_cpu() implementation needed by e.g. panic().
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Fri, 23 Jun 2023 22:34:54 +0000 (00:34 +0200)]
ARM: at91: Switch sama5d2_icp_mmc to simple malloc in SPL
To avoid SRAM overflow in the SPL build, use simple malloc implementation.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Fri, 23 Jun 2023 18:49:21 +0000 (20:49 +0200)]
mips: cpu: Use plain puts() in restart handler
This removes dependency on fprintf() , which is not available
in SPL unless full printf support is enabled.
Signed-off-by: Marek Vasut <marex@denx.de>
Mingli Yu [Mon, 19 Jun 2023 06:22:50 +0000 (14:22 +0800)]
mkimage: Use PATH_MAX for path length
Fixed when build xilinx_zynqmp in long directory ( >256):
| /buildarea1/testtest/wr_build/wr1023test_secureboot/test1-what/test2-what/test3-what/test4-what/test5-what/test6-what/test7-what/test8-what/test9-what/test10-what/test11-what/test12-what/build/tmp-glibc/work/xilinx_zynqmp-wrs-linux/u-boot-xlnx/1_v2023.01-xilinx-v2023.1+gitAUTOINC+
40a08d69e7-r0/build/fitImage-linux: Image file name (uboot-mkimage) too long, can't create tmpfile.
| Error: Bad parameters for FIT image type
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Tom Rini [Tue, 20 Jun 2023 20:00:20 +0000 (16:00 -0400)]
doc: statistics: Re-generate the last 3 releases
With some changes to our mapping files in gitdm, re-generate the last
few releases worth of statistics to correctly reflect contributions. We
only go back this far to try and find a balance between highlighting
contributions and still being reviewable.
Signed-off-by: Tom Rini <trini@konsulko.com>
Simon Glass [Sat, 17 Jun 2023 10:49:48 +0000 (11:49 +0100)]
menu: Re-enable the ANSI codes
The intent here was to allow ANSI codes to be disabled, since it was
proving impoosible to test operation of the menu code when it kept moving
the cursor. Unfortunately this ended up in the patch.
Correct this by enabling ANSI again.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Pali Rohár <pali@kernel.org>
Reported-by: Mark Kettenis <mark.kettenis@xs4all.nl>
Reported-by: Frank Wunderlich <frank-w@public-files.de>
Fixes:
32bab0eae51b ("menu: Make use of CLI character processing")
Tested-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Tom Rini [Fri, 23 Jun 2023 18:23:11 +0000 (14:23 -0400)]
Merge tag 'doc-2023-07-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request doc-2023-07-rc6
* move FIT documentation to HTML
* man-pages for the bind, bootm, and unbind commands
Simon Glass [Fri, 23 Jun 2023 12:22:14 +0000 (13:22 +0100)]
doc: Improve documentation for the bootm command
Reformat and rewrite the documentation for this command.
This is a complicated command, so further improvements are welcome.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:13 +0000 (13:22 +0100)]
doc: Bring in the command-syntax extensions
Bring this file into the documentation. For now it is not in the correct
format for a command, but it is valid rST. Futher work will improve this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:12 +0000 (13:22 +0100)]
doc: Add signing to the FIT spec
Move this properties into the main spec.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:11 +0000 (13:22 +0100)]
doc: Move external FIT docs into the main body
Rather than having this as an addition to the end, move this into the
main body of the spec, rewriting as needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:10 +0000 (13:22 +0100)]
doc: Expand FIT tables to include all values
Add tables which include all values for type, algo, arch, algo and
compression.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:09 +0000 (13:22 +0100)]
doc: Tidy up the format docs to be more generic
Avoid reference to uImage which is the old format. Drop the historical
language at the top and rewrite a few other sections. Correct the
U-Boot filename which is now in the boot/ directory.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:08 +0000 (13:22 +0100)]
doc: Bring in the FIT overlay information
Bring this file into the documentation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:07 +0000 (13:22 +0100)]
doc: Bring in the FIT howto
Bring this file into the documentation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:06 +0000 (13:22 +0100)]
doc: Bring in FIT signature files
Bring these files into the documentation.
Fix 'wtih' and 'it' typos and repeated 'could' while we are here.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:05 +0000 (13:22 +0100)]
doc: Bring in FIT x86 boot
Bring this file into the documentation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:04 +0000 (13:22 +0100)]
doc: Bring in the FIT examples
Convert these to rST format and add them to the index.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:03 +0000 (13:22 +0100)]
doc: Reformat the FIT documentation to make it nicer
Fix up headings and tables to read better.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:02 +0000 (13:22 +0100)]
doc: Convert FIT source-file format to rST
Move this document and convert it to rST. Make minimal changes, enough
for it to build successfully.
Future patches will tidy this up.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 23 Jun 2023 12:22:01 +0000 (13:22 +0100)]
doc: Move FIT into its own directory
Create a new usage/fit directory which will house information about FIT.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Heinrich Schuchardt [Wed, 21 Jun 2023 19:24:55 +0000 (21:24 +0200)]
doc: bind man-page
provide a man-page for the bind command
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Heinrich Schuchardt [Fri, 16 Jun 2023 15:11:49 +0000 (17:11 +0200)]
doc: unbind man-page
Provide a man-page for the unbind command.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tom Rini [Wed, 21 Jun 2023 18:42:50 +0000 (14:42 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-usb
Teik Heng Chong [Wed, 21 Jun 2023 03:13:58 +0000 (11:13 +0800)]
usb: dwc2: Fix the write to W1C fields in HPRT register
Fix the write to the HPRT register which treat W1C fields
as if they were mere RW. This leads to unintended clearing of such fields
This bug was found during the testing on Simics model. Referring to
specification DesignWare Cores USB 2.0 Hi-Speed On-The-Go (OTG)
Databook (3.30a)"5.3.4.8 Host Port Control and Status Register (HPRT)", the
HPRT.PrtPwr is cleared by this mistake. In the Linux driver (contrary to
U-Boot), HPRT is always read using dwc2_read_hprt0 helper function which
clears W1C bits. So after write back those bits are zeroes.
Signed-off-by: Teik Heng Chong <teik.heng.chong@intel.com>
Xavier Drudis Ferran [Wed, 21 Jun 2023 07:13:07 +0000 (09:13 +0200)]
cmd: usb: Prevent reset in usb tree/info command
Commands causing reset in some configs:
When bootflow scan is run, this will cause a UCLASS_BOOTDEV device to
be added as sibling of those UCLASS_BLK devices found in the search
chain defined in environment variable "boot_targets", until boot
succeeds from some device. This can happen automatically as part of
the default boot process on some boards (example: Rock Pi 4) depending
on the board configuration (DISTRO_DEFAULTS, BOOTSTD, BOOTCOMMAND,
etc.) because they have bootcmd=bootflow scan.
If boot doesn't succeed from any device, and usb is in boot_targets,
and an usb storage device is plugged to some usb port at boot time,
its UCLASS_MASS_STORAGE device will have a UCLASS_BOOTDEV device as
child, besides a UCLASS_BLK child.
If once the boot fails the user enters at the U-Boot shell prompt:
usb info
or
usb tree
The code in cmd/usb.c will eventually recurse into the UCLASS_BOOTDEV
device and pass a null usb_device pointer to usb_show_tree_graph() or
usb_show_info() (because it has no parent_priv_).
This causes a reset. The expected behaviour would be to ignore the
UCLASS_BOOTDEV device, continue listing the usb information and return
to the prompt.
Minimal test:
Another way to trigger this reset as a minimal test or on boards with
a different bootcmd would be:
- make sure "usb" is in environment variable boot_targets (might need
setenv boot_targets usb; and/or saveenv and reset), then, with a usb
storage device plugged to a usb port, run:
=> usb reset ; bootflow scan ; usb info
Solution:
Fix it (twice) by checking for null parent_priv_ and adding
UCLASS_BOOTDEV to the list of ignored class ids before the recursive
call.
This prevents the current particular problem with UCLASS_BOOTDEV, even
in case it ever gets some parent_priv_ struct which is not an
usb_device, despite being the child of a usb_device->dev. And it also
prevents possible future problems if other children are added to usb
devices that don't have parent_priv_ because they are not part of the
usb tree, just abstractions of functionality (like UCLASS_BLK and
UCLASS_BOOTDEV are now).
Signed-off-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-by: Marek Vasut <marex@denx.de>
Tom Rini [Mon, 19 Jun 2023 13:18:40 +0000 (09:18 -0400)]
Merge tag 'u-boot-at91-fixes-2023.07-a' of https://source.denx.de/u-boot/custodians/u-boot-at91
First set of u-boot-atmel fixes for the 2023.07 cycle:
This small fixes set includes one init fix for scmi clocks and a missing
gpio_request for pm9g45.
Tom Rini [Fri, 16 Jun 2023 23:05:52 +0000 (19:05 -0400)]
Merge tag 'efi-2023-07-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-07-rc5
Documentation:
* man-page for imxtract
* correct EVT_DM_POST_INIT_F description
UEFI:
* bootm: don't call booti_setup for EFI images
* simplify efi_disk_remove
* fix tests that failed when executed repeatedly
Clément Léger [Tue, 30 May 2023 09:05:16 +0000 (11:05 +0200)]
ARM: at91: don't initialize clocks if scmi clock driver is enabled
Because clock devices are initialized by the SCMI server, if
CONFIG_CLK_SCMI is defined.
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
Ilko Iliev [Tue, 13 Jun 2023 15:09:58 +0000 (17:09 +0200)]
board: pm9g45: add missing gpio_request()
This fixes the following run time error message:
set_dir_flags: error: gpio PIOD3 not reserved
set_dir_flags: error: gpio PIOC14 not reserved
Signed-off-by: Ilko Iliev <iliev@ronetix.at>
Ilias Apalodimas [Tue, 13 Jun 2023 13:23:06 +0000 (16:23 +0300)]
efi_selftests: fix protocol repeated selftesting
Running the protocols selftest more than one times fails with
=> setenv efi_selftest 'manage protocols' && bootefi selftest
Testing EFI API implementation
Selected test: 'manage protocols'
Setting up 'manage protocols'
Setting up 'manage protocols' succeeded
Executing 'manage protocols'
Executing 'manage protocols' succeeded
Tearing down 'manage protocols'
Tearing down 'manage protocols' succeeded
Summary: 0 failures
=> bootefi selftest
Testing EFI API implementation
Selected test: 'manage protocols'
Setting up 'manage protocols'
lib/efi_selftest/efi_selftest_manageprotocols.c(88):
ERROR: InstallProtocolInterface failed
lib/efi_selftest/efi_selftest.c(89):
ERROR: Setting up 'manage protocols' failed
Tearing down 'manage protocols'
Tearing down 'manage protocols' succeeded
Summary: 1 failures
The reason is that we don't set the handles to NULL after deleting and
freeing them. As a result the subsequent protocol installation will try
to use an existing handle which we just removed that from our object list.
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Ilias Apalodimas [Mon, 12 Jun 2023 15:35:58 +0000 (18:35 +0300)]
efi_loader: simplify efi_disk_remove
Instead of discovering the ID of the device and call two different
functions for a block device or a partition, we can rewrite
efi_disk_remove() and handle the minor differences between the two
variants internally. As a results we can simplify efi_disk_remove()
a lot and get rid of the extra efi_disk_delete_raw/blk calls.
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
If a handle is not found, return 0 to let the device be removed.
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Ilias Apalodimas [Wed, 14 Jun 2023 06:55:48 +0000 (09:55 +0300)]
efi_selftests: fix controllers repeated selftesting
Running the controller selftest more than one times fails with
=> setenv efi_selftest 'controllers' && bootefi selftest
Testing EFI API implementation
Selected test: 'controllers'
Setting up 'controllers'
Setting up 'controllers' succeeded
Executing 'controllers'
Executing 'controllers' succeeded
Summary: 0 failures
=> bootefi selftest
Testing EFI API implementation
Selected test: 'controllers'
Setting up 'controllers'
lib/efi_selftest/efi_selftest_controllers.c(280):
ERROR: InstallProtocolInterface failed
lib/efi_selftest/efi_selftest.c(89):
ERROR: Setting up 'controllers' failed
Summary: 1 failures
There are multiple reason for this. We don't uninstall the binding
interface from the controller handle and we don't reset the handle
pointers either. So let's uninstall all the protocols properly and
reset the handles to NULL on setup().
While at it add a forgotten check when uninstalling protocols from the
handle_controller and make sure the number of child controllers is 0
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Heinrich Schuchardt [Thu, 15 Jun 2023 11:40:05 +0000 (13:40 +0200)]
test: correct architecture in EFI FIT test
On arm64 the its we use to generate the test FIT image has
arch = "arm";
We should use "arm64" here which is mapped to IH_ARCH_ARM64 via
uimage_arch[].
Fixes:
8391f955494e ("test/py: Create a test for launching UEFI binaries from FIT images")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Heinrich Schuchardt [Tue, 13 Jun 2023 06:18:27 +0000 (08:18 +0200)]
bootm: don't call booti_setup for EFI images
On the arm64 architecture booti_setup() is called for EFI FIT images.
This function call fails because EFI images typically do not have a
kernel signature.
Check that the operating system property "os" of the image is "linux"
before invoking booti_setup().
Fixes:
487b5fa6deb1 ("bootm: Handle kernel_noload on arm64")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Heinrich Schuchardt [Sat, 10 Jun 2023 19:25:18 +0000 (21:25 +0200)]
efi_selftest: ReinstallProtocolInterface test
Test ReinstallProtocolInterface() more rigorously.
Replacing the sole installed protocol interface must not result in deleting
the handle and creating a new one.
Check which interface is actually installed before and after
ReinstallProtocolInterface().
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Heinrich Schuchardt [Fri, 2 Jun 2023 20:18:23 +0000 (22:18 +0200)]
Makefile: clean lib/efi_loader/helloworld_efi.S
lib/efi_loader/helloworld_efi.S is a generated file and shall be removed by
'make clean'.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Bin Meng [Mon, 12 Jun 2023 06:12:13 +0000 (14:12 +0800)]
doc: event: Correct EVT_DM_POST_INIT_F description
EVT_DM_POST_INIT_F only works in U-Boot proper, not SPL.
Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Polish the wording a bit
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Heinrich Schuchardt [Tue, 13 Jun 2023 19:02:01 +0000 (21:02 +0200)]
doc: man-page for imxtract
Provide a man-page for the imxtract command.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tom Rini [Wed, 14 Jun 2023 19:50:04 +0000 (15:50 -0400)]
Merge branch '2023-06-14-assorted-fixes'
- Fix some issues Coverity Scan reported in IPv6, SPL EXTn support fix,
two small bootstd fixes, one Kconfig dependency fix, and fix booting
on Pinephone Pro
Sean Edmond [Thu, 18 May 2023 19:35:41 +0000 (12:35 -0700)]
net: dhcp6: Fix VCI string
Change VCI string from "U-boot" to "U-Boot".
Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Sean Edmond [Thu, 18 May 2023 19:35:40 +0000 (12:35 -0700)]
net: ipv6: Fix CID 453851 and CID 436278
CID 453851 : sprintf() shouldn't copy from/to tmp
CID 436278 : DHCP6 option_len should be checked before use
Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Peter Robinson [Sun, 11 Jun 2023 17:18:34 +0000 (18:18 +0100)]
rockchip: Pinephone Pro: Add DDR RAM type config
Add the RAM_ROCKCHIP_LPDDR4 to fix the Pinephone Pro booting.
When the configs were updated in
26f92be07e2 it somehow broke
the PPP boot process so let's fix it.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
CC: Jagan Teki <jagan@edgeble.ai>
CC: Kever Yang <kever.yang@rock-chips.com>
Jonas Karlman [Fri, 9 Jun 2023 14:59:01 +0000 (14:59 +0000)]
bootstd: Fix relative path use in extlinux bootmeth
Using relative path in a /boot/extlinux/extlinux.conf file fails to load
linux kernel.
Using a /boot/extlinux/extlinux.conf file:
LABEL test
LINUX ../linux/Image
Result in following error:
Retrieving file: ../linux/Image
Skipping test for failure retrieving kernel
Boot failed (err=-14)
However, using sysboot cmd successfully load kernel using same file:
sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/../linux/Image
Fix relative path using bootmeth extlinux by supplying bootfile path
instead of subdir path in the call to pxe_setup_ctx, same as done in the
sysboot command.
Fixes:
31aefaf89a5b ("bootstd: Add an implementation of distro boot")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
Simon Glass [Wed, 22 Feb 2023 21:06:23 +0000 (14:06 -0700)]
bootstd: Make BOOTSTD_FULL depend on BOOTSTD
Move BOOTSTD_FULL down in the file so that it can be enabled only when
BOOTSTD is enabled. This prevents a build error if BOOTSTD is disabled
but BOOTSTD_FULL is enabled.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Eugen Hristev [Wed, 17 May 2023 10:41:24 +0000 (13:41 +0300)]
net: rtl8169: add depends on PCI
The rtl8169 driver uses calls to dm_pci_bus_to_phys,
which are compiled under CONFIG_PCI.
Without CONFIG_PCI, this happens:
drivers/net/rtl8169.o: in function `rtl_recv_common':
drivers/net/rtl8169.c:555: undefined reference to `dm_pci_bus_to_phys'
It is only natural that this driver depends on CONFIG_PCI then.
The device does not work connected in another way anyway, and the driver
does not assume anything else at this moment.
Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Mayuresh Chitale [Tue, 2 May 2023 16:10:20 +0000 (21:40 +0530)]
spl: ext: Use partition size for mount
Since commit
9905cae65e03 ("fs: ext4: check the minimal partition size
to mount"), a valid size needs to be provided when mounting
an ext filesystem. Fix the spl ext driver to use the parition size
instead of 0 when mounting the filesystem.
Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Tom Rini [Mon, 12 Jun 2023 17:45:09 +0000 (13:45 -0400)]
Prepare v2023.07-rc4
Signed-off-by: Tom Rini <trini@konsulko.com>
Tom Rini [Sun, 11 Jun 2023 20:23:32 +0000 (16:23 -0400)]
Merge branch 'master_reserved' of https://source.denx.de/u-boot/custodians/u-boot-sh
Detlev Casanova [Fri, 9 Jun 2023 15:19:08 +0000 (11:19 -0400)]
renesas: rcar: Apply ATF overlay for reserved-memory
The function fdtdec_board_setup() is called early and adds the overlay
from ATF to the u-boot device tree. That is necessary so that u-boot
doesn't use reserved memory.
Linux also needs to know about that reserved memory so the overlay from
ATF needs to be aplied on the linux device tree as well.
This commit makes sure that the ATF overlay is applied to both device trees.
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Adam Ford <aford173@gmail.com>
Tom Rini [Thu, 8 Jun 2023 22:23:06 +0000 (18:23 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Thu, 8 Jun 2023 22:22:32 +0000 (18:22 -0400)]
Merge branch 'master_soc/fixes' of https://source.denx.de/u-boot/custodians/u-boot-sh
Hai Pham [Fri, 27 Jan 2023 13:10:31 +0000 (14:10 +0100)]
pinctrl: renesas: r8a779a0: Remove incorrect AVB[01] pinmux configuration
AVB[01]_{MAGIC,MDC,MDIO,TXCREFCLK} are registered as both
PINMUX_SINGLE(fn) and PINMUX_IPSR_GPSR(fn) in the pinmux_data array.
The latter are correct, hence remove the former.
Without this fix, the Ethernet PHY is not operational on the MDIO bus.
Ported from Linux kernel commit
a145c9a8674ac8fbfa1595276e1b6cbfc5139038 .
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: LUU HOAI <hoai.luu.ub@renesas.com>
Fixes:
741a7370fc3b8b54 ("pinctrl: renesas: Initial R8A779A0 (V3U) PFC support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/6fd217b71e83ba9a8157513ed671a1fa218b23b6.1674824958.git.geert+renesas@glider.be
---
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Hai Pham <hai.pham.ud@renesas.com>
Cc: LUU HOAI <hoai.luu.ub@renesas.com>
Cc: Marek Vasut <marek.vasut+renesas@mailbox.org>
Hai Pham [Tue, 4 May 2021 10:43:23 +0000 (17:43 +0700)]
ARM: rmobile: Identify R-Car D3 R8A77995 r1.1 SoC
Add support to identify R8A77995 r1.1 SoC.
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
[Marek: Slight update to commit message, spell out the SoC model]
Hiroyuki Yokoyama [Wed, 26 Sep 2018 09:14:41 +0000 (18:14 +0900)]
ARM: rmobile: Identify R-Car M3-W R8A7796 r1.1/1.2 SoC
r8a7796 cpu revision v1.2 has the same information as revision v1.1.
This patch fixes revision display at startup to "rev 1.1/1.2".
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
[Marek: Slight update to commit message, spell out the SoC model]
Sam Edwards [Thu, 8 Jun 2023 18:45:42 +0000 (12:45 -0600)]
usb: musb-new: sunxi: remove unused define
This is a remnant from when the USB controller driver managed
the reset signal itself. A patch from the very end of 2018 changed
this driver to delegate reset (and clock) management to the proper
control unit driver, but left this unused define behind.
Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tom Rini [Thu, 8 Jun 2023 02:05:16 +0000 (22:05 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-sunxi
A small late pull request for Allwinner. The main feature is just a DT
update, matching the v6.4 Linux kernel DT files. This also enables a
board (LCTech Pi F1C200s) which got its .dts file merged into Linux.
Plus a tiny typo fix from Sam.
Gitlab CI passed, briefly tested on an H616 board and the new LCTech Pi.
Sam Edwards [Fri, 12 May 2023 21:22:14 +0000 (15:22 -0600)]
sunxi: Fix typo in include guard
Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Andre Przywara [Tue, 11 Apr 2023 22:56:14 +0000 (23:56 +0100)]
sunxi: defconfig: Add Lctech Pi F1C200s board
The Lctech Pi F1C200s (also previously known under the Cherry Pi brand)
is a small development board with the Allwinner F1C200s SoC. This is the
same as the F1C100s, but with 64MB instead of 32MB co-packaged DRAM.
Add a defconfig for this board, enabling the most basic features. This
uses the new 64MB memory map, which avoids the very tight memory map we
use for the 32MB F1C100s board(s).
The devicetree file is already in the tree, courtesy of the previous
Linux repo sync.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Andre Przywara [Sun, 2 Apr 2023 00:17:07 +0000 (01:17 +0100)]
sunxi: dts: arm/arm64: update devicetree files from Linux-v6.4-rc2
Sync the devicetree files from the official Linux kernel tree, v6.4-rc2.
This is covering both 64-bit and 32-bit Allwinner SoCs with Arm Ltd.
cores, we skip the new RISC-V bits for now, as sunxi RISC-V support
is still work in progress.
Among smaller cosmetic changes, this adds a SATA regulator node which we
need in U-Boot to get rid of hard-coded GPIOs.
Also this updates the Allwinner F1C100s DTs, enabling USB support, and
also adds the DTs for two new boards.
As before, this omits the non-backwards compatible changes to the R_INTC
controller, to remain compatible with older kernels.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Xavier Drudis Ferran [Mon, 5 Jun 2023 15:06:57 +0000 (17:06 +0200)]
phy: rockchip-inno-usb2: Implement clock operations for usb2phy clock
This clock doesn't seem needed but appears in a phandle list used by
ehci-generic.c to bulk enable it. The phandle list comes from linux,
where it is needed for suspend/resume to work [1].
My tests give the same results with or without this patch, but Marek
Vasut found it weird to declare an empty clk_ops [2].
So I adapted the code from linux 6.1-rc8 so that it hopefully works
if it ever has some user. For now, without real use, it seems to
at least not give any errors when called.
Link: [1] https://lkml.kernel.org/lkml/1731551.Q6cHK6n5ZM@phil/T/
[2] https://patchwork.ozlabs.org/project/uboot/patch/Y5IWpjYLB4aXMy9o@localhost/
Cc: Simon Glass <sjg@chromium.org>
Cc: Philipp Tomsich <philipp.tomsich@vrull.eu>
Cc: Kever Yang <kever.yang@rock-chips.com>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Sean Anderson <seanga2@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Christoph Fritz <chf.fritz@googlemail.com>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # rk3399, rk3328, rv1126
Xavier Drudis Ferran [Mon, 5 Jun 2023 15:05:53 +0000 (17:05 +0200)]
phy: rockchip-inno-usb2: Add usb2phy clock provider of 480MHz clock
arch/arm/dts/rk3399.dtsi has a node
usb_host0_ehci: usb@
fe380000 {
compatible = "generic-ehci";
with clocks:
clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
<&u2phy0>;
The first 2 refer to nodes with class UCLASS_CLK, but &u2phy0
has class UCLASS_PHY.
u2phy0: usb2phy@e450 {
compatible = "rockchip,rk3399-usb2phy";
Since clk_get_bulk() only looks for devices with UCLASS_CLK,
it fails with -ENODEV and then ehci_usb_probe() aborts.
The consequence is peripherals connected to a USB 2 port (e.g. in a
Rock Pi 4 the white port, nearer the edge) not being detected.
They're detected if CONFIG_USB_OHCI_GENERIC is selected in Kconfig,
because ohci_usb_probe() does not abort when one clk_get_by_index()
fails, but then they work in USB 1 mode.
rk3399.dtsi comes from linux and the u2phy0 was added[1] to the clock
list in:
commit
b5d1c57299734f5b54035ef2e61706b83041f20c
Author: William wu <wulf@rock-chips.com>
Date: Wed Dec 21 18:41:05 2016 +0800
arm64: dts: rockchip: add u2phy clock for ehci and ohci of rk3399
We found that the suspend process was blocked when it run into
ehci/ohci module due to clk-480m of usb2-phy was disabled.
[...]
Suspend concerns don't apply to U-Boot, and the problem with U-Boot
failing to probe EHCI doesn't apply to linux, because in linux
rockchip_usb2phy_clk480m_register makes u2phy0 a proper clock provider
when called by rockchip_usb2phy_probe().
So I can think of a few alternative solutions:
1- Change ehci_usb_probe() to make it more similar to
ohci_usb_probe(), and survive failure to get one clock. Looks a
little harder, and I don't know whether it could break something if
it ignored a clock that was important for something else than
suspend.
2- Change rk3399.dtsi effectively reverting the linux commit
b5d1c57299734f5b54035ef2e61706b83041f20c. This dealigns the .dtsi
from linux and seems fragile at the next synchronisation.
3- Change the clock list in rk3399-u-boot.dtsi or somewhere else.
This survives .dts* sync but may survive "too much" and miss some
change from linux that we might want.
4- Enable CONFIG_USB_OHCI_GENERIC and use the ports in USB 1 mode.
This would need to be made for all boards using rk3399. In a
simple test reading one file from USB storage it gave 769.5 KiB/s
instead of 20.5 MiB/s with solution 2.
5- Trying to replicate linux and have usb2phy somehow provide a clk,
or have a separate clock device for usb2phy in addition to the phy
device.
This patch tries to implement option 5 as Marek Vasut requested in
December 5th. Options 1 and 3 didn't get through [2][3].
It just registers usb2phy as a clock driver (device_bind_driver()
didn't work but device_bind_driver_to_node() did), without any
specific operations, so that ehci-generic.c finds it and is happy. It
worked in my tests on a Rock Pi 4 B+ (rk3399).
Link: [1] https://lkml.kernel.org/lkml/1731551.Q6cHK6n5ZM@phil/T/
[2] https://patchwork.ozlabs.org/project/uboot/patch/
20220701185959.GC1700@begut/
[3] https://patchwork.ozlabs.org/project/uboot/patch/Y44+ayJfUlI08ptM@localhost/
Cc: Simon Glass <sjg@chromium.org>
Cc: Philipp Tomsich <philipp.tomsich@vrull.eu>
Cc: Kever Yang <kever.yang@rock-chips.com>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Sean Anderson <seanga2@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Christoph Fritz <chf.fritz@googlemail.com>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # rk3399, rk3328, rv1126
Sam Edwards [Mon, 5 Jun 2023 17:19:37 +0000 (11:19 -0600)]
usb: musb-new: sunxi: fix error check
The `musb_register` function returns some ERR_PTR(...) on failure,
not NULL, so update the check here appropriately.
Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tom Rini [Wed, 7 Jun 2023 16:17:06 +0000 (12:17 -0400)]
Merge tag 'u-boot-amlogic-
20230607' of https://source.denx.de/u-boot/custodians/u-boot-amlogic
- meson_uart empty logic fix
Mattijs Korpershoek [Tue, 6 Jun 2023 16:07:48 +0000 (18:07 +0200)]
serial: meson: fix meson_serial_pending() tx logic
According to the dm_serial_ops documentation, pending() should:
> @return number of waiting characters, 0 for none, -ve on error
And:
> It is acceptable to return 1 if an indeterminant number
> of characters is waiting.
With the current implementation, we have:
* FIFO is full -> pending() returns 0
* FIFO is partially used -> pending() returns 1
* FIFO is empty -> pending() returns 1
This is not the same as what the documentation requires.
Moreover, since [1], arm reset now flushes all console devices
(including serial) before the cpu gets reset.
Because of the flawed logic:
=> reset # user calls reset
flush() is called
_serial_flush() is called
ops->pending(dev, false) # never returns false
# board hangs indefinitely without resetting.
Fix it by using AML_UART_TX_EMPTY instead of AML_UART_TX_FULL.
[1] commit
c5f4cdb8eb60 ("console: Use flush() before panic and reset"),
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20230606-fix-meson-serial-pending-v1-1-6a54d4a01f76@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tom Rini [Tue, 6 Jun 2023 13:47:17 +0000 (09:47 -0400)]
Merge tag 'ubifixes-for-v2023-07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-ubi
ubifs changes for v2023.07-rc4
UBIFS fixes from Ben Dooks
- ubifs: allow loading to above 4GiB
Tom Rini [Tue, 6 Jun 2023 13:46:27 +0000 (09:46 -0400)]
Merge tag 'for-v2023-07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-i2c
i2c updates for v2023-07-rc4
Bugfixes:
- rockchip: De-initialize the bus after start bit failure
from Ondrej Jirman
- cdns: Fix broken retry mechanism on arbitration lost
Ben Dooks [Tue, 6 Jun 2023 08:23:28 +0000 (09:23 +0100)]
ubifs: allow loading to above 4GiB
The ubifsload command is truncating any address above 4GiB as it casts
this address to an u32, instead of using an unsigned long which most of
the other load commands do. Change this to an unsigned long to allow
loading into high memory for boards which use these areas.
Fixes the following error:
=> ubifsload 0x2100000000 /boot/Image.lzma
Loading file '/boot/Image.lzma' to addr 0x00000000...
Unhandled exception: Store/AMO access fault
Signed-off-by: Ben Dooks <ben.dooks@sifive.com>
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Andrea Merello [Fri, 26 May 2023 14:56:16 +0000 (16:56 +0200)]
I2C: cdns: Fix broken retry mechanism on arbitration lost.
In the current implementation, in case of I2C arbitration lost, a retry is
attempted; the message counter and pointer are reset to the original values
and the I2C xfer process is restart from the beginning.
However the message counter and message pointer are respectively
decremented and incremented by one before attempting any transfer, causing
the 1st transfer not to be actually retried (in case of a single transfer,
nothing is actually retried at all).
This patch fixes this: in case of retry, the 1st transfer is also retried.
Tested on a ZynqMP Kria board, with upstream older u-boot, but the involved
file and underlying logic seem basically the same.
Signed-off-by: Andrea Merello <andrea.merello@iit.it>
Ondrej Jirman [Thu, 25 May 2023 12:18:17 +0000 (14:18 +0200)]
i2c: rockchip: De-initialize the bus after start bit failure
Failure can happen when i2c is used without initializing pinctrl properly,
which U-Boot happily allows in SPL. Without this fix, further I2C access would
fail, even after proper pinctrl initialization.
Signed-off-by: Ondrej Jirman <megi@xff.cz>
Cc: Heiko Schocher <hs@denx.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Tom Rini [Fri, 2 Jun 2023 16:13:01 +0000 (12:13 -0400)]
Merge tag 'efi-2023-07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-07-rc4
Documentation:
* man pages for loadb, loadx
UEFI:
* check return value of part_get_info()
* improve unit test for RegisterProtocolNotify()
Heinrich Schuchardt [Thu, 1 Jun 2023 07:06:09 +0000 (09:06 +0200)]
efi_selftest: LocateHandleBuffer return code
Check that LocateHandleBuffer() return EFI_NOT_FOUND when called with
ByRegisterNotify and all handles already have been retrieved.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Heinrich Schuchardt [Sat, 27 May 2023 06:18:28 +0000 (08:18 +0200)]
efi_loader: check return value of part_get_info()
part_get_info() may return an error code. Check it.
Update function description of dp_part_node().
Addresses-Coverity-ID: 184067 ("Unchecked return value")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Bin Meng [Thu, 25 May 2023 06:30:05 +0000 (14:30 +0800)]
doc: android: Fix a typo
%s/than/then
Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>