]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
2 years agoboot: image-pre-load: Check environment for location of signature info
Steven Lawrance [Wed, 14 Sep 2022 18:57:28 +0000 (20:57 +0200)]
boot: image-pre-load: Check environment for location of signature info

Setting an alternative signature info node in "pre_load_sig_info_path"
allows verification of an image using the bootm pre-load mechanism with
a different key, e.g.: setenv pre_load_sig_info_path "/alt/sig" ; bootm
preload [addr]

Signed-off-by: Steven Lawrance <steven.lawrance@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoimage-pre-load: Move macros/definitions to image.h
Steven Lawrance [Wed, 14 Sep 2022 18:57:27 +0000 (20:57 +0200)]
image-pre-load: Move macros/definitions to image.h

Putting these definitions in a header will allow signatures to be
validated independently of bootm.

Signed-off-by: Steven Lawrance <steven.lawrance@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agobootcount: pmic: Correct misleading comment
Philip Oberfichtner [Mon, 19 Sep 2022 08:11:00 +0000 (10:11 +0200)]
bootcount: pmic: Correct misleading comment

Fix a copy-paste error I did when inserting the comment.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2 years agolib: crypt: fix selecting a non-existent option
Oleksandr Suvorov [Mon, 19 Sep 2022 09:14:49 +0000 (12:14 +0300)]
lib: crypt: fix selecting a non-existent option

The option SHA256_ALGO does not exist. Remove selecting it.

Fixes: 26dd9936574 ("lib: add crypt subsystem")
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
2 years agocmd: pxe: add alias devicetree-overlay for fdtoverlays
Edoardo Tomelleri [Wed, 21 Sep 2022 13:26:33 +0000 (15:26 +0200)]
cmd: pxe: add alias devicetree-overlay for fdtoverlays

This adds keyword devicetree-overlay as an alias for fdtoverlays in
extlinux (sysboot) and pxe to better follow the Boot Loader Specification
[1], improves documentation around them by adding an example for both
fdtoverlays and devicetree-overlay and the environment variable required
for this feature. The link for the spec is updated to the current one.

[1] https://systemd.io/BOOT_LOADER_SPECIFICATION/

Signed-off-by: Edoardo Tomelleri <e.tomell@gmail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agoMerge tag 'xilinx-for-v2023.01-rc1-v3' of https://source.denx.de/u-boot/custodians...
Tom Rini [Tue, 11 Oct 2022 13:57:08 +0000 (09:57 -0400)]
Merge tag 'xilinx-for-v2023.01-rc1-v3' of https://source.denx.de/u-boot/custodians/u-boot-microblaze

Xilinx changes for v2023.01-rc1 (round 3)

fpga:
- Create new uclass
- Get rid of FPGA_DEBUG and use logging infrastructure

zynq:
- Enable early EEPROM decoding
- Some DT updates

zynqmp:
- Use OCM_BANK_0 to check config loading permission
- Change config object loading in SPL
- Some DT updates

net:
- emaclite: Enable driver for RISC-V

xilinx:
- Fix static checker warnings
- Fix GCC12 warning

sdhci:
- Read PD id from DT

2 years agoMerge branch '2022-10-10-LLVM-related-improvements'
Tom Rini [Tue, 11 Oct 2022 13:55:56 +0000 (09:55 -0400)]
Merge branch '2022-10-10-LLVM-related-improvements'

- A few patches to make building with LLVM/LLD easier

2 years agospl: atf: Fix clang -Wasm-operand-widths warning
Alistair Delva [Mon, 26 Sep 2022 20:47:55 +0000 (20:47 +0000)]
spl: atf: Fix clang -Wasm-operand-widths warning

common/spl/spl_atf.c:187:51: warning: value size does not match register
  size specified by the constraint and modifier [-Wasm-operand-widths]
    __asm__ __volatile__("msr DAIF, %0\n\t" : : "r" (daif) : "memory");
                                                     ^
common/spl/spl_atf.c:187:34: note: use constraint modifier "w"
    __asm__ __volatile__("msr DAIF, %0\n\t" : : "r" (daif) : "memory");
                                    ^~
                                    %w0

Use %x0 to match what Linux does in <asm/sysreg.h> write_sysreg().

Signed-off-by: Alistair Delva <adelva@google.com>
Cc: Kever Yang <kever.yang@rock-chips.com>
Cc: Michael Walle <michael@walle.cc>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
2 years agoMakefile: apply dynamic relocations for LLD
Nick Desaulniers [Mon, 26 Sep 2022 20:47:40 +0000 (20:47 +0000)]
Makefile: apply dynamic relocations for LLD

It seems that for aarch64, unless we apply dynamic relocations to the
location being relocated, we fail to boot.

As Fangrui notes:
  For dynamic relocations using the RELA format (readelf -Wr), GNU ld
  sets the initial content to r_addend; ld.lld doesn't do that by
  default (needs --apply-dynamic-relocs).

Otherwise .rodata appears to be full of NUL-bytes before relocation,
causing crashes when trying to invoke the function pointers in
init_sequence_f from initcall_run_list().

Link: https://reviews.llvm.org/D42797
Suggested-by: Fangrui Song <maskray@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Alistair Delva <adelva@google.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
2 years agoexamples: standalone: Fix build with LLVM toolchain
Alistair Delva [Mon, 26 Sep 2022 20:47:10 +0000 (20:47 +0000)]
examples: standalone: Fix build with LLVM toolchain

When building the standalone example with llvm, the link step fails:

examples/standalone/libstubs.o: In function `dummy':
include/_exports.h:10: undefined reference to `jt'
include/_exports.h:11: undefined reference to `jt'
include/_exports.h:12: undefined reference to `jt'
include/_exports.h:13: undefined reference to `jt'
include/_exports.h:14: undefined reference to `jt'
examples/standalone/libstubs.o:include/_exports.h:15:
  more undefined references to `jt' follow

Indeed, the standalone libstubs.o does use the jt symbol, but it was
marked 'static' in stubs.c. It's strange how gcc builds are working.

Signed-off-by: Alistair Delva <adelva@google.com>
Cc: Rick Chen <rick@andestech.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
2 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Mon, 10 Oct 2022 19:38:14 +0000 (15:38 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-usb

2 years agoMerge tag 'efi-2023-01-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Mon, 10 Oct 2022 16:14:51 +0000 (12:14 -0400)]
Merge tag 'efi-2023-01-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2023-01-rc1-2

Documentation:

* man-page for cls command
* update build requirements

UEFI

* Fix bugs in the Stop() function of the EFi Driver Binding protocol
  for block devices
* Avoid EFI_CALL() when invoking CloseProtocol()

2 years agousb: gadget: fastboot: detach usb on reboot commands
Mattijs Korpershoek [Fri, 7 Oct 2022 09:38:22 +0000 (11:38 +0200)]
usb: gadget: fastboot: detach usb on reboot commands

When host issues "fastboot reboot fastboot", it's expected that the
board drops the USB connection before resetting.

On some boards, such as Khadas VIM3L and SEI610, this is not the case.

We observe the following error:
$ fastboot reboot fastboot
Rebooting into fastboot                            OKAY [  0.004s]
fastboot: error: Failed to boot into userspace fastboot; one or more components might be unbootable.

This does not happen when we use the RST button on the board.
It can be reproduced in linux with:
  # echo b > /proc/sysrq-trigger

In this case, we hit a undefined hardware behavior, where D+ and D-
are in an unknown state. Therefore the host can't detect usb
disconnection.

Make sure we always call usb_gadget_release() when a "fastboot reboot"
command is issued.

Note: usb_gadget_release() should be called before g_dnl_unregister()
because g_dnl_unregister() triggers a complete() call on each
endpoint (thus calling do_reset()).

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2 years agousb: ehci: Remove unused ehci_{setup,shutdown}_phy() helpers
Patrice Chotard [Tue, 6 Sep 2022 06:15:29 +0000 (08:15 +0200)]
usb: ehci: Remove unused ehci_{setup,shutdown}_phy() helpers

Remove unused ehci_{setup,shutdown}_phy() helpers now replaced by
generic_{setup,shutdown}_phy().

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
2 years agousb: ehci: Make usage of generic_{setup,shutdown}_phy() helpers
Patrice Chotard [Tue, 6 Sep 2022 06:15:28 +0000 (08:15 +0200)]
usb: ehci: Make usage of generic_{setup,shutdown}_phy() helpers

Replace ehci_setup_phy() and ehci_shutdown_phy () by respectively
generic_setup_phy() and generic_shutdown_phy().

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
2 years agousb: ohci: Make usage of generic_{setup,shutdown}_phy() helpers
Patrice Chotard [Tue, 6 Sep 2022 06:15:27 +0000 (08:15 +0200)]
usb: ohci: Make usage of generic_{setup,shutdown}_phy() helpers

Replace ohci_setup_phy() and ohci_shutdown_phy () by respectively
generic_setup_phy() and generic_shutdown_phy().

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
2 years agophy: Add generic_{setup,shutdown}_phy() helpers
Patrice Chotard [Tue, 6 Sep 2022 06:15:26 +0000 (08:15 +0200)]
phy: Add generic_{setup,shutdown}_phy() helpers

In drivers usb/host/{ehci,ohci}-generic.c, {ehci,ohci}_setup_phy() and
{ehci,ohci}_shutdown_phy() shares 95% of common code.
Factorize this code in new generic_{setup,shudown}_phy() functions.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
2 years agousb: gadget: Clean up Makefile ifdeffery
Marek Vasut [Tue, 23 Aug 2022 17:06:51 +0000 (19:06 +0200)]
usb: gadget: Clean up Makefile ifdeffery

Take the USB_ETHER ifdef block apart and make use of obj-$(VAR) instead
to include the source files in build. The duplicate CI_UDC entry is now
removed, the USB_DEVICE ifdef is now reduced to core.o ep.o addition,
the ether.o can be conditionally compiled in using USB_ETHER.

No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2 years agousb: Add missing guard around env_get() in usb_hub
Marek Vasut [Mon, 19 Sep 2022 19:19:23 +0000 (21:19 +0200)]
usb: Add missing guard around env_get() in usb_hub

The env_get() might be undefined in case ENV_SUPPORT is disabled,
which may happen e.g. in SPL. Add missing ifdef guard around the
env_get() to prevent build failure.

Signed-off-by: Marek Vasut <marex@denx.de>
Tested-by: Fabio Estevam <festevam@denx.de>
2 years agoefi_loader: reformat efi_disk_add_dev()
Heinrich Schuchardt [Fri, 7 Oct 2022 09:03:01 +0000 (11:03 +0200)]
efi_loader: reformat efi_disk_add_dev()

Make it clearer why InstallMultipleProtocolInterfaces is invoked with two
NULLs:

* rename guid to esp_guid
* put protocol GUIDs and the related interfaces on same lines
* add comment

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: simplify efi_set_load_options()
Heinrich Schuchardt [Fri, 7 Oct 2022 14:21:28 +0000 (16:21 +0200)]
efi_loader: simplify efi_set_load_options()

* Replace the OpenProtocol() call by efi_search_protocol().
* Remove the CloseProtocol() call.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_driver: use efi_close_protocol
Heinrich Schuchardt [Fri, 7 Oct 2022 14:12:54 +0000 (16:12 +0200)]
efi_driver: use efi_close_protocol

Avoid EFI_CALL() by using efi_close_protocol().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: internal CloseProtocol
Heinrich Schuchardt [Fri, 7 Oct 2022 13:18:15 +0000 (15:18 +0200)]
efi_loader: internal CloseProtocol

Allow avoiding using EFI_CALL() when closing a protocol by providing an
internal function.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: CloseProtocol in efi_fmp_find
Heinrich Schuchardt [Fri, 7 Oct 2022 13:29:52 +0000 (15:29 +0200)]
efi_loader: CloseProtocol in efi_fmp_find

The CloseProtocol() boot service requires a handle as first argument.
Passing the protocol interface is incorrect.

CloseProtocol() only has an effect if called with a non-zero value for
agent_handle. HandleProtocol() uses an opaque agent_handle when invoking
OpenProtocol() (currently NULL). Therefore HandleProtocol() should be
avoided.

* Replace the LocateHandle() call by efi_search_protocol().
* Remove the CloseProtocol() call.

Fixes: 8d99026f0697 ("efi_loader: capsule: support firmware update")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: CloseProtocol in tcg2_measure_gpt_data
Heinrich Schuchardt [Fri, 7 Oct 2022 12:28:18 +0000 (14:28 +0200)]
efi_loader: CloseProtocol in tcg2_measure_gpt_data

The CloseProtocol() boot service requires a handle as first argument.
Passing the protocol interface is incorrect.

CloseProtocol() only has an effect if called with a non-zero value for
agent_handle. HandleProtocol() uses an opaque agent_handle when invoking
OpenProtocol() (currently NULL). Therefore HandleProtocol() should be
avoided.

* Replace the LocateHandle() call by efi_search_protocol().
* Remove the CloseProtocol() call.
* Remove a superfluous goto.

Fixes: ce3dbc5d080d ("efi_loader: add UEFI GPT measurement")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_driver: fix efi_uc_stop()
Heinrich Schuchardt [Fri, 7 Oct 2022 21:53:38 +0000 (23:53 +0200)]
efi_driver: fix efi_uc_stop()

We must always call EFI_EXIT() when returning from an EFIAPI function.

Fixes: 05ef48a2484b ("efi_driver: EFI block driver")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: don't export efi_remove_all_protocols
Heinrich Schuchardt [Fri, 7 Oct 2022 14:55:29 +0000 (16:55 +0200)]
efi_loader: don't export efi_remove_all_protocols

This function is only used inside efi_boottime.c and is not safe to use
outside of this context.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: printf code in efi_disk_get_device_name()
Heinrich Schuchardt [Fri, 7 Oct 2022 10:55:16 +0000 (12:55 +0200)]
efi_loader: printf code in efi_disk_get_device_name()

part is unsigned. So it must be printed with %u.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agodoc: describe usage of virt-make-fs for testing
Heinrich Schuchardt [Fri, 7 Oct 2022 23:19:22 +0000 (01:19 +0200)]
doc: describe usage of virt-make-fs for testing

We want tests to avoid the usage of sudo. Describe that virt-make-fs can
generate disk images without being root.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: add python3-filelock python3-pytest-xdist
Heinrich Schuchardt [Fri, 7 Oct 2022 22:46:35 +0000 (00:46 +0200)]
doc: add python3-filelock python3-pytest-xdist

Packages python3-filelock python3-pytest-xdist as required to run
'make tests'. Add them to the required packages list in the documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agodoc: man-page for cls
Heinrich Schuchardt [Fri, 7 Oct 2022 18:51:35 +0000 (20:51 +0200)]
doc: man-page for cls

Provide a man-page for the cls command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agocmd: CMD_CLS should not depend on video
Heinrich Schuchardt [Fri, 7 Oct 2022 18:36:12 +0000 (20:36 +0200)]
cmd: CMD_CLS should not depend on video

The cls command works fine on the serial console. There is no reason to
let it depend on the availability of video.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoMerge tag 'u-boot-nand-20221009' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Mon, 10 Oct 2022 12:17:08 +0000 (08:17 -0400)]
Merge tag 'u-boot-nand-20221009' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash

- mtd: Update the function name to 'rfree'
- Support NAND ONFI EDO mode for imx8mn architecture
- dm: clk: add missing stub when CONFIG_CLK is deactivated

2 years agofpga: virtex2: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:20:03 +0000 (14:20 +0200)]
fpga: virtex2: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-11-ada@thorsis.com
2 years agofpga: spartan3: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:20:02 +0000 (14:20 +0200)]
fpga: spartan3: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-10-ada@thorsis.com
2 years agofpga: spartan2: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:20:01 +0000 (14:20 +0200)]
fpga: spartan2: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-9-ada@thorsis.com
2 years agofpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:20:00 +0000 (14:20 +0200)]
fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-8-ada@thorsis.com
2 years agofpga: cyclon2: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:19:59 +0000 (14:19 +0200)]
fpga: cyclon2: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-7-ada@thorsis.com
2 years agofpga: altera: Use logging feature instead of FPGA_DEBUG
Alexander Dahl [Fri, 7 Oct 2022 12:19:58 +0000 (14:19 +0200)]
fpga: altera: Use logging feature instead of FPGA_DEBUG

Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-6-ada@thorsis.com
2 years agofpga: virtex2: Fix printf format string warnings
Alexander Dahl [Fri, 7 Oct 2022 12:19:57 +0000 (14:19 +0200)]
fpga: virtex2: Fix printf format string warnings

Warning appears if built with FPGA_DEBUG defined:

  CC      drivers/fpga/virtex2.o
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c: In function ‘virtex2_ssm_load’:
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c:333:11: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
    PRINTF("%s:%d:done went active early, bytecount = %d\n",
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           __func__, __LINE__, bytecount);
                               ~~~~~~~~~
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c:25:37: note: in definition of macro ‘PRINTF’
 #define PRINTF(fmt, args...) printf(fmt, ##args)
                                     ^~~
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c: In function ‘virtex2_ss_load’:
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c:468:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
     PRINTF("%s:%d:done went active early, bytecount = %d\n",
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            __func__, __LINE__, bytecount);
                                ~~~~~~~~~
/mnt/data/adahl/src/u-boot/drivers/fpga/virtex2.c:25:37: note: in definition of macro ‘PRINTF’
 #define PRINTF(fmt, args...) printf(fmt, ##args)
                                     ^~~

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-5-ada@thorsis.com
2 years agofpga: spartan3: Fix printf arguments warning
Alexander Dahl [Fri, 7 Oct 2022 12:19:56 +0000 (14:19 +0200)]
fpga: spartan3: Fix printf arguments warning

The additional comma messes up the arguments.
Warning appears if built with FPGA_DEBUG defined:

      CC      drivers/fpga/spartan3.o
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c: In function ‘spartan3_sp_load’:
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c:118:11: warning: too many arguments for format [-Wformat-extra-args]
       PRINTF ("%s: Function Table:\n"
               ^~~~~~~~~~~~~~~~~~~~~~~
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c:18:37: note: in definition of macro ‘PRINTF’
     #define PRINTF(fmt,args...) printf (fmt ,##args)
                                         ^~~

Fixes: 875c78934ee2 ("Add Xilinx Spartan3 family FPGA support Patch by Kurt Stremerch, 14 February 2005")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-4-ada@thorsis.com
2 years agofpga: spartan2: Fix printf arguments warning
Alexander Dahl [Fri, 7 Oct 2022 12:19:55 +0000 (14:19 +0200)]
fpga: spartan2: Fix printf arguments warning

That extra comma messes up format arguments.
Warning appears if built with FPGA_DEBUG defined:

      CC      drivers/fpga/spartan2.o
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan2.c: In function ‘spartan2_sp_load’:
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan2.c:112:11: warning: too many arguments for format [-Wformat-extra-args]
       PRINTF ("%s: Function Table:\n"
               ^~~~~~~~~~~~~~~~~~~~~~~
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan2.c:12:37: note: in definition of macro ‘PRINTF’
     #define PRINTF(fmt,args...) printf (fmt ,##args)
                                         ^~~
      CC      drivers/fpga/spartan3.o
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c: In function ‘spartan3_sp_load’:
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c:117:11: warning: too many arguments for format [-Wformat-extra-args]
       PRINTF ("%s: Function Table:\n"
               ^~~~~~~~~~~~~~~~~~~~~~~
    /mnt/data/adahl/src/u-boot/drivers/fpga/spartan3.c:17:37: note: in definition of macro ‘PRINTF’
     #define PRINTF(fmt,args...) printf (fmt ,##args)
                                         ^~~

Fixes: e221174377d7 ("Initial revision")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-3-ada@thorsis.com
2 years agofpga: Add missing Kconfig symbols for old FPGA drivers
Alexander Dahl [Fri, 7 Oct 2022 12:19:54 +0000 (14:19 +0200)]
fpga: Add missing Kconfig symbols for old FPGA drivers

Those drivers could not be built anymore without those options present.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221007122003.11239-2-ada@thorsis.com
2 years agoclk: versal: Mark versal_clock_setup() as static
Venkatesh Yadav Abbarapu [Fri, 7 Oct 2022 10:55:35 +0000 (16:25 +0530)]
clk: versal: Mark versal_clock_setup() as static

Fix the following sparse and compile time warning
triggered with W=1:

drivers/clk/clk_versal.c:605:5:
warning: no previous prototype for 'versal_clock_setup'
[-Wmissing-prototypes]
605 | int versal_clock_setup(void)

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221007105535.31902-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoxilinx: zynqmp: Load pmufw configuration before checking access
Michal Simek [Wed, 5 Oct 2022 09:39:27 +0000 (11:39 +0200)]
xilinx: zynqmp: Load pmufw configuration before checking access

Before this patch you could see in the log:
U-Boot SPL 2022.10-rc5 (Sep 29 2022 - 15:29:27 +0200)
PMUFW: v1.1
Loading new PMUFW cfg obj (32 bytes)
PMUFW:  No permission to change config object
Loading new PMUFW cfg obj (2032 bytes)

where it is visible that permission is check before sending PMUFW
configuration (big size).

When this patch is applied it is visible that order is correct.
U-Boot SPL 2022.10-rc5 (Sep 29 2022 - 15:47:08 +0200)
Loading new PMUFW cfg obj (2032 bytes)
PMUFW: v1.1
Loading new PMUFW cfg obj (32 bytes)

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/a0bf4f46d670023da4f848790eece6fff22090c2.1664962765.git.michal.simek@amd.com
2 years agoxilinx: common: fix board_late_init_xilinx()
Heinrich Schuchardt [Sat, 8 Oct 2022 09:13:17 +0000 (11:13 +0200)]
xilinx: common: fix board_late_init_xilinx()

Compiling with GCC-12 leads to an error:

    +board/xilinx/common/board.c:479:37: error: the comparison will always
     evaluate as 'true' for the address of 'mac_addr' will never be NULL
     [-Werror=address]
    +  479 |                                 if (!desc->mac_addr[i])
    +      |                                     ^

Remove the redundant check.

Fixes: a03b594738f8 ("xilinx: board: Add support for additional card detection")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Link: https://lore.kernel.org/r/20221008091317.52838-1-heinrich.schuchardt@canonical.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoxilinx: zynqmp: change the type of multiboot variable
Venkatesh Yadav Abbarapu [Tue, 4 Oct 2022 05:52:54 +0000 (11:22 +0530)]
xilinx: zynqmp: change the type of multiboot variable

In function ‘set_dfu_alt_info’ a comparison of a u8 value against
0 is done. Since it is always false, change the signature of this
function to use an `int` instead, which match the type used in caller:
`multi_boot()`.

Fix the following warning triggered with W=1:

board/xilinx/zynqmp/zynqmp.c:651:23:
warning: comparison is always false due to limited range of data type
[-Wtype-limits]
651 |         if (multiboot < 0)

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221004055254.26246-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agosoc: xilinx: zynqmp: Mark soc_xilinx_zynqmp_get_machine() as static
Venkatesh Yadav Abbarapu [Tue, 4 Oct 2022 05:52:01 +0000 (11:22 +0530)]
soc: xilinx: zynqmp: Mark soc_xilinx_zynqmp_get_machine() as static

Fix the following sparse and compile time warning triggered with W=1:

drivers/soc/soc_xilinx_zynqmp.c:288:5:
warning: no previous prototype for 'soc_xilinx_zynqmp_get_machine'
[-Wmissing-prototypes]

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221004055201.26146-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoxilinx: common: Add print_cpuinfo() declaration
Venkatesh Yadav Abbarapu [Tue, 4 Oct 2022 05:50:53 +0000 (11:20 +0530)]
xilinx: common: Add print_cpuinfo() declaration

cpu-info.c defines print_cpuinfo(), but neglected to
include its declaration, causing the following sparse and
compile time warnings:

board/xilinx/common/cpu-info.c:10:5:
warning: no previous prototype for 'print_cpuinfo'
[-Wmissing-prototypes]

Include init.h, which includes the missing declaration.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221004055053.26047-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agomtd: Update the function name to 'rfree'
Fabio Estevam [Fri, 7 Oct 2022 14:35:53 +0000 (11:35 -0300)]
mtd: Update the function name to 'rfree'

Since commit 8d38a8459b0d ("mtd: Rename free() to rfree()")
the function has been renamed to rfree(), so update the description
inside the mtd_oob_region structure as well.

Fixes: 8d38a8459b0d ("mtd: Rename free() to rfree()")
Reported-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agomtd: mxs_nand: Support EDO mode for imx8mn architecture
Michael Trimarchi [Tue, 30 Aug 2022 14:48:47 +0000 (16:48 +0200)]
mtd: mxs_nand: Support EDO mode for imx8mn architecture

Add support for imx8mn architecture in order to run the NAND
in fast edo mode.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agomtd: mxs_nand: get the clock with the right name
Dario Binacchi [Tue, 27 Sep 2022 09:56:33 +0000 (11:56 +0200)]
mtd: mxs_nand: get the clock with the right name

Rename the gpmi_apb_bch clock name to gpmi_bch_apb, as you can find in
the device tree.

Fixes: commit a59691280daca ("MXS_NAND: Add clock support for iMX8")
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2 years agomtd: mxs_nand: don't get the gpmi_apbh_dma clock
Dario Binacchi [Tue, 27 Sep 2022 09:47:29 +0000 (11:47 +0200)]
mtd: mxs_nand: don't get the gpmi_apbh_dma clock

This clock name is not present in any U-boot and Linux kernel device
tree.

Fixes: commit a59691280daca ("MXS_NAND: Add clock support for iMX8")
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2 years agoimx: gpmi: Add register needed to control nand bus timing
Michael Trimarchi [Tue, 30 Aug 2022 14:47:51 +0000 (16:47 +0200)]
imx: gpmi: Add register needed to control nand bus timing

It is used as delay for gpmi write strobe.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agoclk: imx: clk-imx8mn add gpmi nand clocks
Michael Trimarchi [Tue, 30 Aug 2022 14:45:20 +0000 (16:45 +0200)]
clk: imx: clk-imx8mn add gpmi nand clocks

Add gpmi nand clock. Those clock can be used in mxs nand driver
to run nand to EDO mode 5, 4, ...

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agoclk: imx: gate2 support shared counter and relative clock functions
Michael Trimarchi [Tue, 30 Aug 2022 14:41:38 +0000 (16:41 +0200)]
clk: imx: gate2 support shared counter and relative clock functions

Add shared counter in order to avoid to swich off clock that
are already used.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agodm: clk: add missing stub when CONFIG_CLK is deactivated
Dario Binacchi [Tue, 27 Sep 2022 17:18:19 +0000 (19:18 +0200)]
dm: clk: add missing stub when CONFIG_CLK is deactivated

Add missing stub for functions [devm_]clk_...() when CONFIG_CLK is
deactivated.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
2 years agomtd: nand: Fix SPL build after migration of CONFIG_SYS_NAND_SELF_INIT to Kconfig
Roger Quadros [Wed, 28 Sep 2022 11:42:35 +0000 (14:42 +0300)]
mtd: nand: Fix SPL build after migration of CONFIG_SYS_NAND_SELF_INIT to Kconfig

This fixes the below build error if nand.c is included in
an SPL build.

/work/u-boot/drivers/mtd/nand/raw/nand.c: In function ‘nand_init_chip’:
/work/u-boot/drivers/mtd/nand/raw/nand.c:82:28: error: ‘nand_chip’ undeclared (first use in this function)
   82 |  struct nand_chip *nand = &nand_chip[i];
      |                            ^~~~~~~~~
/work/u-boot/drivers/mtd/nand/raw/nand.c:82:28: note: each undeclared identifier is reported only once for each function it appears in
/work/u-boot/drivers/mtd/nand/raw/nand.c:84:20: error: ‘base_address’ undeclared (first use in this function); did you mean ‘base_addr’?
   84 |  ulong base_addr = base_address[i];
      |                    ^~~~~~~~~~~~
      |                    base_addr

Fixes: 068c41f1cc77 ("Finish conversion CONFIG_SYS_NAND_SELF_INIT to Kconfig")
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2 years agoMerge tag 'efi-2023-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 7 Oct 2022 15:51:05 +0000 (11:51 -0400)]
Merge tag 'efi-2023-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2023-01-rc1

UEFI:

* Provide driver binding protocol to registered events for block devices
* Code simplification and refactoring
* Fix pylint errors in test_efi_secboot

Other:

* Improve checks for register ranges

2 years agoMerge branch '2022-10-07-riscv-toolchain-update'
Tom Rini [Fri, 7 Oct 2022 15:25:05 +0000 (11:25 -0400)]
Merge branch '2022-10-07-riscv-toolchain-update'

- Update RISC-V to use 32bit or 64bit toolchains, depending on if we're
  building for 32bit or 64bit CPUs. This requires updating the Docker
  container as well to have the 32bit toolchain.

2 years agoMerge branch '2022-10-06-assorted-platform-and-board-updates'
Tom Rini [Fri, 7 Oct 2022 15:23:19 +0000 (11:23 -0400)]
Merge branch '2022-10-06-assorted-platform-and-board-updates'

- Assorted platform updates for developerbox, armv8 platforms in
  general, TI K3 and AM65 platforms, nuvoton NPCM845 SoC and then clock
  driver, ftgpio010 support, and common/board_f cleanups.

2 years agoriscv: Fix build against binutils 2.38
Alexandre Ghiti [Mon, 3 Oct 2022 16:07:54 +0000 (18:07 +0200)]
riscv: Fix build against binutils 2.38

The following description is copied from the equivalent patch for the
Linux Kernel proposed by Aurelien Jarno:

>From version 2.38, binutils default to ISA spec version 20191213. This
means that the csr read/write (csrr*/csrw*) instructions and fence.i
instruction has separated from the `I` extension, become two standalone
extensions: Zicsr and Zifencei. As the kernel uses those instruction,
this causes the following build failure:

arch/riscv/cpu/mtrap.S: Assembler messages:
arch/riscv/cpu/mtrap.S:65: Error: unrecognized opcode `csrr a0,scause'
arch/riscv/cpu/mtrap.S:66: Error: unrecognized opcode `csrr a1,sepc'
arch/riscv/cpu/mtrap.S:67: Error: unrecognized opcode `csrr a2,stval'
arch/riscv/cpu/mtrap.S:70: Error: unrecognized opcode `csrw sepc,a0'

Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Christian Stewart <christian@paral.in>
Reviewed-by: Rick Chen <rick@andestech.com>
2 years agobuildman: differentiate between riscv32, riscv64
Heinrich Schuchardt [Mon, 3 Oct 2022 16:07:53 +0000 (18:07 +0200)]
buildman: differentiate between riscv32, riscv64

riscv32 needs a different toolchain than riscv64

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Rick Chen <rick@andestech.com>
2 years agodocker: install riscv32 toolchain
Heinrich Schuchardt [Mon, 3 Oct 2022 16:07:52 +0000 (18:07 +0200)]
docker: install riscv32 toolchain

For building riscv32 targets we should use the riscv32 toolchain.
Add it to the Docker image.

Drop the riscv toolchain-alias as we do not need it in future.

While in here, update to the latest "jammy" tag.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Rick Chen <rick@andestech.com>
[trini: Update to latest jammy tag]
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agospi: zynqmp_qspi: Mark zynqmp_qspi_set_tapdelay() as static
Venkatesh Yadav Abbarapu [Tue, 4 Oct 2022 05:37:30 +0000 (11:07 +0530)]
spi: zynqmp_qspi: Mark zynqmp_qspi_set_tapdelay() as static

Fix the following sparse and compile time warning triggered with W=1:

drivers/spi/zynqmp_gqspi.c:286:6:
warning: no previous prototype for 'zynqmp_qspi_set_tapdelay'
[-Wmissing-prototypes]

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221004053730.25602-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoarm64: zynqmp: Fix compiler warnings in mp.c
Venkatesh Yadav Abbarapu [Tue, 4 Oct 2022 05:34:54 +0000 (11:04 +0530)]
arm64: zynqmp: Fix compiler warnings in mp.c

make W=1 generates the following warning in cpu_disable, cpu_status and
cpu_release functions.

arch/arm/mach-zynqmp/mp.c:166:16: warning: comparison of unsigned expression
in '>= 0' is always true [-Wtype-limits]
166 |         if (nr >= ZYNQMP_CORE_APU0 && nr <= ZYNQMP_CORE_APU3) {
    |                ^~

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20221004053454.25470-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoclk: nuvoton: Add support for NPCM845
Jim Liu [Tue, 27 Sep 2022 08:45:16 +0000 (16:45 +0800)]
clk: nuvoton: Add support for NPCM845

Add clock controller driver for NPCM845

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Acked-by: Sean Anderson <seanga2@gmail.com>
2 years agoarm: nuvoton: Add support for Nuvoton NPCM845 BMC
Jim Liu [Tue, 27 Sep 2022 08:45:15 +0000 (16:45 +0800)]
arm: nuvoton: Add support for Nuvoton NPCM845 BMC

Add basic support for the Nuvoton NPCM845 EVB (Arbel).

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2 years agonet: ti: am65-cpsw-nuss: Enable MDIO manual mode
Ravi Gunasekaran [Thu, 22 Sep 2022 09:51:24 +0000 (15:21 +0530)]
net: ti: am65-cpsw-nuss: Enable MDIO manual mode

For the TI SoCs affected by errata i2329, enable MDIO manual
mode by default

Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: ti: cpsw-mdio: Add workaround for errata i2329
Ravi Gunasekaran [Thu, 22 Sep 2022 09:51:23 +0000 (15:21 +0530)]
net: ti: cpsw-mdio: Add workaround for errata i2329

In certain TI SoCs, on the CPSW and ICSS peripherals, there is
a possibility that the MDIO interface returns corrupt data on
MDIO reads or writes incorrect data on MDIO writes. There is also
a possibility for the MDIO interface to become unavailable until
the next peripheral reset.

The workaround is to configure the MDIO in manual mode and disable the
MDIO state machine and emulate the MDIO protocol by reading and writing
appropriate fields in MDIO_MANUAL_IF_REG register of the MDIO controller
to manipulate the MDIO clock and data pins.

More details about the errata i2329 and the workaround is available in:
https://www.ti.com/lit/er/sprz487a/sprz487a.pdf

Add implementation to disable MDIO state machine, configure MDIO in manual
mode and provide software MDIO read and writes via MDIO bitbanging. Allow
the MDIO to be initialized based on the need for manual mode.

Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agodma: ti: k3-udma: Fix 'SZ_64K’ undeclared error
Dhruva Gole [Tue, 20 Sep 2022 05:26:02 +0000 (10:56 +0530)]
dma: ti: k3-udma: Fix 'SZ_64K’ undeclared error

Include linux/sizes.h because it defines SZ_64K which is used in many
places inside k3-udma.c
This fixes the error: ‘SZ_64K’ undeclared which appears during build
time

Signed-off-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agoarmv8: cache_v8: Fix pgtables setup when MMU is already enabled
Pali Rohár [Wed, 14 Sep 2022 11:37:46 +0000 (13:37 +0200)]
armv8: cache_v8: Fix pgtables setup when MMU is already enabled

When MMU is already enabled then dcache_enable() does not call mmu_setup()
and so setup_all_pgtables() is also never called.

In this situation when some driver calls mmu_set_region_dcache_behaviour()
function then U-Boot crashes with error message:

    Emergency page table not setup.

Fix this issue by explicitly calling setup_all_pgtables() in dcache_enable()
function near condition for mmu_setup().

This change fixes chainloading U-Boot from U-Boot on Turris Mox board which
uses mvneta ethernet driver which calls mmu_set_region_dcache_behaviour().

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agocommon/board_f: drop ifdefs around header includes
Ovidiu Panait [Tue, 13 Sep 2022 18:31:29 +0000 (21:31 +0300)]
common/board_f: drop ifdefs around header includes

Drop the remaining ifdef around spl.h include.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovpanait@gmail.com>
2 years agocommon/board_f: introduce arch_setup_dest_addr()
Ovidiu Panait [Tue, 13 Sep 2022 18:31:28 +0000 (21:31 +0300)]
common/board_f: introduce arch_setup_dest_addr()

In order to move ppc-specific code out of setup_dest_addr(), provide an
arch-specific variant arch_setup_dest_addr(), that can be used by
architecture code to fix up the initial reloc address.

It is called at the end of setup_dest_addr() initcall and the default
implementation is a nop stub.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovpanait@gmail.com>
2 years agocommon/board_f: move CONFIG_MACH_TYPE logic to arch/arm/lib/bdinfo.c
Ovidiu Panait [Tue, 13 Sep 2022 18:31:27 +0000 (21:31 +0300)]
common/board_f: move CONFIG_MACH_TYPE logic to arch/arm/lib/bdinfo.c

asm/mach_type.h header and CONFIG_MACH_TYPE macro are arm-specific, so move
related bdinfo logic to arch_setup_bdinfo() in arch/arm/lib/bdinfo.c.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovpanait@gmail.com>
2 years agocommon/board_f: remove XTRN_DECLARE_GLOBAL_DATA_PTR dead code
Ovidiu Panait [Tue, 13 Sep 2022 18:31:26 +0000 (21:31 +0300)]
common/board_f: remove XTRN_DECLARE_GLOBAL_DATA_PTR dead code

The XTRN_DECLARE_GLOBAL_DATA_PTR declarations in ppc code are permanently
commented out, so there are no users for this macro:
 #if 1
   #define DECLARE_GLOBAL_DATA_PTR   register volatile gd_t *gd asm ("r2")
 #else /* We could use plain global data, but the resulting code is bigger */
   #define XTRN_DECLARE_GLOBAL_DATA_PTR   extern
   #define DECLARE_GLOBAL_DATA_PTR     XTRN_DECLARE_GLOBAL_DATA_PTR \
                                       gd_t *gd
 #endif

Remove all references to this macro, but add a documentation note regarding
the possibility of using plain global data for the GD pointer.

Signed-off-by: Ovidiu Panait <ovpanait@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agoboard: developerbox: move mem_map setup later
Jassi Brar [Mon, 12 Sep 2022 17:05:29 +0000 (12:05 -0500)]
board: developerbox: move mem_map setup later

dram_init() can't modify global/static variables, so
move the mem_map setup later when bss is available.

Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2 years agoboard: developerbox: use identity mapping for >4GB
Jassi Brar [Mon, 12 Sep 2022 17:05:15 +0000 (12:05 -0500)]
board: developerbox: use identity mapping for >4GB

Identity-map the second and later memory banks which are located >4GB.

Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2 years agogpio: ftgpio010: Add support for Faraday Technology FTGPIO010
Sergei Antonov [Mon, 12 Sep 2022 10:09:15 +0000 (13:09 +0300)]
gpio: ftgpio010: Add support for Faraday Technology FTGPIO010

Add Faraday Technology's FTGPIO010 controller driver.

Signed-off-by: Sergei Antonov <saproj@gmail.com>
2 years agocmd: replace efi_create_handle/add_protocol with InstallMultipleProtocol
Ilias Apalodimas [Thu, 6 Oct 2022 13:08:44 +0000 (16:08 +0300)]
cmd: replace efi_create_handle/add_protocol with InstallMultipleProtocol

In general handles should only be deleted if the last remaining protocol
is removed.  Instead of explicitly calling
efi_create_handle -> efi_add_protocol -> efi_delete_handle which blindly
removes all protocols from a handle before removing it,  use
InstallMultiple/UninstallMultiple which adheres to the EFI spec and only
deletes a handle if there are no additional protocols present

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agoefi_loader: define internal implementations of install/uninstallmultiple
Ilias Apalodimas [Thu, 6 Oct 2022 13:08:46 +0000 (16:08 +0300)]
efi_loader: define internal implementations of install/uninstallmultiple

A following patch is cleaning up the core EFI code trying to remove
sequences of efi_create_handle, efi_add_protocol.

Although this works fine there's a problem with the latter since it is
usually combined with efi_delete_handle() which blindly removes all
protocols on a handle and deletes the handle.  We should try to adhere to
the EFI spec which only deletes a handle if the last instance of a protocol
has been removed.  Another problem is that efi_delete_handle() never checks
for opened protocols,  but the EFI spec defines that the caller is
responsible for ensuring that there are no references to a protocol
interface that is going to be removed.

So let's fix this by replacing all callsites of
efi_create_handle(), efi_add_protocol() , efi_delete_handle() with
Install/UninstallMultipleProtocol.

In order to do that redefine functions that can be used by the U-Boot
proper internally and add '_ext' variants that will be used from the
EFI API

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agoMAINTAINERS: get rid of the optee variables entry
Ilias Apalodimas [Thu, 6 Oct 2022 08:41:24 +0000 (11:41 +0300)]
MAINTAINERS: get rid of the optee variables entry

Since I am co-maintaining EFI with Heinrich remove the special
entry for EFI variable storage via OP-TEE

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_driver: move event registration to driver
Heinrich Schuchardt [Thu, 6 Oct 2022 05:29:41 +0000 (07:29 +0200)]
efi_driver: move event registration to driver

Move the registration of events for the addition and removal of block
devices to the block device driver. Here we can add a reference to the
EFI Driver Binding protocol as context.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_selftest: rename event_notify
Heinrich Schuchardt [Thu, 6 Oct 2022 05:28:19 +0000 (07:28 +0200)]
efi_selftest: rename event_notify

A function event_notify() exists. We should not use the same name for and
EFI event. Rename events in unit tests.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_driver: add init function to EFI block driver
Heinrich Schuchardt [Wed, 5 Oct 2022 09:28:47 +0000 (11:28 +0200)]
efi_driver: add init function to EFI block driver

For handling added and removed block devices we need to register events
which has to be done when the driver is installed.

This patch only creates an empty init function that will be filled with
code later on. The function needs to be called before any EFI block devices
are used. Move the efi_driver_init() call to early init.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_driver: provide driver binding protocol to bind function
Heinrich Schuchardt [Tue, 4 Oct 2022 17:12:59 +0000 (19:12 +0200)]
efi_driver: provide driver binding protocol to bind function

DisconnectController() is based on the open protocol information created
when the driver opens a protocol with BY_CHILD_CONTROLLER or BY_DRIVER.

To create an open protocol information it is required to supply the handle
of the driver as agent handle. This information is available as field
DriverBindingHandle in the driver binding protocol.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_driver: reformat efi_block_device.c
Heinrich Schuchardt [Tue, 4 Oct 2022 16:53:34 +0000 (18:53 +0200)]
efi_driver: reformat efi_block_device.c

* use Sphinx documentation style
* correct indentation

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: documentation of EFI driver binding protocol
Heinrich Schuchardt [Tue, 4 Oct 2022 16:28:24 +0000 (18:28 +0200)]
doc: documentation of EFI driver binding protocol

* Convert code comments in include/efi_driver.h to Sphinx style.
* Add include/efi_driver.h to the HTML documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_driver: carve out function to create block device
Heinrich Schuchardt [Tue, 4 Oct 2022 14:19:30 +0000 (16:19 +0200)]
efi_driver: carve out function to create block device

* Carve out function efi_bl_create_block_device() from efi_bl_bind().
* Add a check for U-Boot devices to efi_bl_bind().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agocmd: simplify command efidebug
Heinrich Schuchardt [Tue, 4 Oct 2022 13:31:17 +0000 (15:31 +0200)]
cmd: simplify command efidebug

Currently we have subcommands 'efidebug dh' which shows protocols per
handle and 'efidebug devices' which shows the device path. None shows which
U-Boot device matches the handle.

Change 'efidebug dh' to show the device path and the U-Boot device if any
is associated with the handle.

Remove 'efidebug devices'.

Old output of 'efidebug dh':

    Handle           Protocols
    ================ ====================
    000000001b22e690 Device Path, Block IO
    000000001b22e800 Device Path, Block IO, system, Simple File System

New output of 'efidebug dh':

    000000001b22e690 (host0)
      /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/VenHw(bbe4e671-5773-4ea1-9aab-3a7dbf40c482,00)
      Block IO

    000000001b22e800 (host0:1)
      /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/VenHw(bbe4e671-5773-4ea1-9aab-3a7dbf40c482,00)/HD(1,GPT,7e5c17c5-3f5f-49d0-ae96-511b21d7f273,0x800,0x3f7df)
      Block IO
      system
      Simple File System

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_driver: simplify efi_uc_stop(), call efi_free_pool()
Heinrich Schuchardt [Tue, 4 Oct 2022 10:50:51 +0000 (12:50 +0200)]
efi_driver: simplify efi_uc_stop(), call efi_free_pool()

We have exported efi_free_pool(). There is no need to use EFI_CALL().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_driver: fix error handling
Heinrich Schuchardt [Mon, 3 Oct 2022 08:35:35 +0000 (10:35 +0200)]
efi_driver: fix error handling

If creating the block device fails,

* delete all created objects and references
* close the protocol interface on the controller

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: function to unlink udevice and handle
Heinrich Schuchardt [Mon, 3 Oct 2022 07:47:51 +0000 (09:47 +0200)]
efi_loader: function to unlink udevice and handle

When deleting a device or a handle we must remove the link between the two
to avoid dangling references.

Provide function efi_unlink_dev() for this purpose.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agotest: fix some pylint errors in test_efi_secboot
Heinrich Schuchardt [Sat, 1 Oct 2022 18:55:14 +0000 (20:55 +0200)]
test: fix some pylint errors in test_efi_secboot

* Remove unused import
* Provide module docstring

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: efi_dp_part_node check dp_alloc return value
Heinrich Schuchardt [Thu, 6 Oct 2022 11:36:02 +0000 (13:36 +0200)]
efi_loader: efi_dp_part_node check dp_alloc return value

dp_alloc() may return NULL. This needs to be caught.

Fixes: 98d48bdf415e ("efi_loader: provide a function to create a partition node")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agocmd: simplify do_efi_boot_add()
Heinrich Schuchardt [Thu, 6 Oct 2022 04:48:02 +0000 (06:48 +0200)]
cmd: simplify do_efi_boot_add()

Use efi_convert_string() to convert a UTF-8 to a UTF-16 string.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agocmd: simplify do_env_set_efi()
Heinrich Schuchardt [Thu, 6 Oct 2022 04:52:51 +0000 (06:52 +0200)]
cmd: simplify do_env_set_efi()

Use efi_convert_string() to convert a UTF-8 to a UTF-16 string.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi: Add string conversion helper
Paul Barker [Wed, 5 Oct 2022 12:18:35 +0000 (13:18 +0100)]
efi: Add string conversion helper

Signed-off-by: Paul Barker <paul.barker@sancloud.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agodoc: typo 'it it' in doc/develop/package/index.rst
Heinrich Schuchardt [Tue, 4 Oct 2022 20:02:46 +0000 (22:02 +0200)]
doc: typo 'it it' in doc/develop/package/index.rst

%s/it it/it/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoregmap: fix range checks
Heinrich Schuchardt [Thu, 29 Sep 2022 22:27:06 +0000 (22:27 +0000)]
regmap: fix range checks

On the 32bit ARM sandbox 'dm ut dm_test_devm_regmap' fails with an abort.
This is due to incorrect range checks.

On 32-bit systems the size of size_t and int is both 32 bit. The expression
(offset + val_len) is bound to overflow if offset == -1. Add an overflow
check.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>