93333 Commits

Author SHA1 Message Date
Sumit Garg
8f31c85cf9 CI: Exclude devicetree-rebasing subtree for CONFIG checks
Since devicetree-rebasing is an external repo with its own coding style,
exclude it from Azure and gitlab CI CONFIG checks.

Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2024-02-29 22:24:05 -05:00
Tom Rini
53633a893a Squashed 'dts/upstream/' content from commit aaba2d45dc2a
git-subtree-dir: dts/upstream
git-subtree-split: aaba2d45dc2a1b3bbb710f2a3808ee1c9f340abe
2024-02-29 12:33:36 -05:00
Tom Rini
dbe9334e51 Merge commit '53633a893a06bd5a0c807287d9cc29337806eaf7' as 'dts/upstream' 2024-02-29 12:33:36 -05:00
Tom Rini
ea3348ebc2 Merge patch series "Handoff bloblist from previous boot stage"
Raymond Mao <raymond.mao@linaro.org> says:

This patch set adds/adapts a few bloblist APIs and implements Arm arch
custom function to retrieve the bloblist (aka. Transfer List) from
previous loader via boot arguments when BLOBLIST option is enabled and
all boot arguments are compliant to the register conventions defined
in the Firmware Handoff spec v0.9.

If an arch wishes to have different behaviors for loading bloblist
from the previous boot stage, it is required to implement the custom
function xferlist_from_boot_arg().
2024-02-29 09:24:49 -05:00
Raymond Mao
2b71470628 dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLIST
When BLOBLIST is enabled, FDT is expected to be from bloblist
carried from previous stage, instead of from OF_BOARD, therefore
only enable OF_HAS_PRIOR_STAGE when BLOBLIST is disabled.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
66131310d8 bloblist: Load the bloblist from the previous loader
During bloblist initialization, load the bloblist via boot arguments
from the previous loader.
If a valid bloblist exists in boot arguments, relocate it into the
fixed bloblist memory region.
If not, fallback to support BLOBLIST_ADDR or BLOBLIST_ALLOC.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
fc61de3ff6 arm: Get bloblist from boot arguments
Add arch custom function to get bloblist from boot arguments.
Check whether boot arguments aligns with the register conventions
defined in FW Handoff spec v0.9.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
11f3171256 arm: armv8: save boot arguments
Save boot arguments x[0-3] into an array for handover of bloblist from
previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
5103e69344 arm: armv7: save boot arguments
Save boot arguments r[0-3] into an array for handover of bloblist from
previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
1ef43f3bf2 bloblist: refactor of bloblist_reloc()
The current bloblist pointer and size can be retrieved from global
data, so we don't need to pass them from the function arguments.
This change also help to remove all external access of gd->bloblist
outside of bloblist module.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
6725421493 bloblist: check bloblist with specified buffer size
Instead of expecting the bloblist total size to be the same as the
pre-allocated buffer size, practically we are more interested in
whether the pre-allocated buffer size is bigger than the bloblist
total size.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-29 09:24:22 -05:00
Raymond Mao
1c4751fd1a bloblist: add API to check the register conventions
Add bloblist_check_reg_conv() to check whether the bloblist is compliant
to the register conventions defined in Firmware Handoff specification.
This API can be used for all Arm platforms.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-02-29 09:24:21 -05:00
Tom Rini
cfc3e1db49 Merge patch series "mux: Drop usage of "u-boot,mux-autoprobe""
Roger Quadros <rogerq@kernel.org> says:

MUX driver should autoprobe if the device tree has "idle-states"
property. Drop using the custom "u-boot,mux-autoprobe" property
in TI device trees.
2024-02-28 19:20:00 -05:00
Roger Quadros
9885161469 arm: dts: k3-u-boot: Add missing "bootph-all" property to MUX nodes.
As it is present for USB and USB won't work without the MUX
initialized correctly, add "bootph-all" property to MUX nodes.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-02-28 19:19:53 -05:00
Roger Quadros
6a2c7ea53f arm: dts: k3-u-boot: Drop usage of "u-boot, mux-autoprobe"
MUX driver should autoprobe if the device tree has "idle-states"
property. Drop using the custom "u-boot,mux-autoprobe" property.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-02-28 19:19:53 -05:00
Roger Quadros
946bc3bc48 mux: autoprobe if "idle-states" present in device tree
Some platforms need the MUX state to be auto initialized at
boot time even if there are no explicit users for the MUX.
In these cases, the MUX device tree has "idle-states" property
which specifies what state the MUX should be initialized to.

So far we were relying on custom u-boot property "u-boot,mux-autoprobe"
to autoprobe such MUXes. This patch causes the MUX to autoprobe
if it has "idle-states" property in device tree.

This should allow us to stop using the custom "u-boot,mux-autoprobe"
property.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-02-28 19:19:53 -05:00
Tom Rini
463a3162dd Pull request efi-next-2024-02-28
* set IMAGE_DLLCHARACTERISTICS_NX_COMPAT in EFI binaries
 * provide SBI based runtime system reset
 * page align EFI binary section on ARMv7
 * separate .data and .text sections of EFI binaries on ARMv7
 -----BEGIN PGP SIGNATURE-----
 
 iQJWBAABCABAFiEEK7wKXt3/btL6/yA+hO4vgnE3U0sFAmXfOPYiHGhlaW5yaWNo
 LnNjaHVjaGFyZHRAY2Fub25pY2FsLmNvbQAKCRCE7i+CcTdTS2gJD/9bR2YFRFiw
 0PXQgttj4cBvB71aJiuDmKhua/rvEQvo8aw446CfIayypKyJiUyV9ZrRST6a5GhO
 D34j9qg2PWON/2AdEazZV26QDzP8/loeeY2tELlemZ63w/zaJPHPjLV8wvTdLU48
 4pbSVnPmk99ggqD8I0MSEMARzqn5GiiGF43RXXczyhteQhu6/ccH893wTWbEVDSj
 a1SjNQRFnLo9AGWG/1XO0yGEe6ciWHml0wiRl66sESJ3K7xHwxQuJfy+fNGlex9P
 M7VzgmwqQubJrOVSLu5WAx1gVf2OCS7boDmyLXtbm397JoG27D04XKkw65iN+EVZ
 vezNX+aftEcP35jr2wDANanaKaQACE+nHJTEH+9XSiWgvnrJTorNUcZyRs7I30H1
 TN2yRWzaxRp5udzFXyi/gMvargdDXco4XZCXpn23aJ+iSLwUeLA27hXHWu6kFr0P
 pbTRw8JMi+D4uKLM7Qd1NqQ8nj5Yy2ejykCdPq7Il6EmQVKppuw5pY+mmxY47Mk4
 OGjpVuVoQ3UspnkgdYlGYYnp8xo6Xu/kvuzoAtrYpji5zG00/8uQBUBXIqQ//LDr
 nhWzT0yT22mBu2keJ9kZZi7Eho26JOOjmuhGY3hWvjYpFKFVnqolEMnqwbKfatHi
 b64qxvX/mJQPqpkbZGOpdFlvKa18bcKsIA==
 =D5Zu
 -----END PGP SIGNATURE-----

Merge tag 'efi-next-2024-02-28' of https://source.denx.de/u-boot/custodians/u-boot-efi into next

Pull request efi-next-2024-02-28

* set IMAGE_DLLCHARACTERISTICS_NX_COMPAT in EFI binaries
* provide SBI based runtime system reset
* page align EFI binary section on ARMv7
* separate .data and .text sections of EFI binaries on ARMv7
2024-02-28 15:09:30 -05:00
Paul Barker
3787ee1d2d board: rzg2l: Support reset via Renesas RAA215300 PMIC
With the SYSRESET subsystem enabled we do not need to implement
reset_cpu() in the board directory.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
a79f96112b pmic: raa215300: Bind sysreset driver
If SYSRESET support is enabled for the RAA215300 PMIC, we need to bind
the raa215300_sysreset driver as a child device of the PMIC.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
167eb89a21 sysreset: Support reset via Renesas RAA215300 PMIC
This patch adds support for resetting a board via the RAA215300 PMIC.

Note that the RAA215300 documentation names the available reset types
differently to u-boot:

  * A "warm" reset via the RAA215300 PMIC will fully reset the SoC
    (CPU & GPIOs), so this corresponds to SYSRESET_COLD.

  * A "cold" reset via the RAA215300 PMIC will cycle all power supply
    rails, so this corresponds to SYSRESET_POWER.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
0c25eaeba4 board: rzg2l: Enable access to Renesas RAA215300 PMIC
Enable the appropriate PMIC driver as well as the `pmic` command.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
af22872152 pmic: Add Renesas RAA215300 PMIC driver
The RZ/G2L SMARC module is powered via a Renesas RAA215300 PMIC which
provides several voltage converters, a real time clock (RTC) and reset
control. A basic driver is implemented for this device so that we can
read, write and dump the PMIC registers.

The raa215300_bind() function is added as a stub, binding of the
sysreset driver will be added in a later patch.

Additional features of this PMIC (such as reset control) may be
supported by future patches.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
266e36f7ec i2c: rzg2l: Add I2C driver for RZ/G2L family
This driver supports the I2C module on the Renesas RZ/G2L (R9A07G044)
SoC, also known as the RIIC module.

This patch is based on both the u-boot driver in the Renesas RZ BSP
3.0.5 release [1] (commit 7fcc1fdc2534), and the Linux v6.7 driver
(commit 0dd3ee311255).

Support for deblocking the I2C bus is included as this may be needed
after triggering a reset via the Power Management IC (PMIC) over I2C
(the PMIC asserts the reset line before the SoC completes the I2C write
transaction with obvious bus locking effects). If the SDA line is
observed to be low during initialisation, we automatically attempt to
deblock.

[1]: https://github.com/renesas-rz/renesas-u-boot-cip

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
d4f0ff93c8 arm: dts: rzg2l: Sync with Linux v6.7
Pull in the recent changes to the RZ/G2L device tree and related dtsi
files so that we're aligned with Linux v6.7 (commit 0dd3ee311255).

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Paul Barker
aecd69879d clk: renesas: Confirm all clock & reset changes on RZ/G2L
When enabling/disabling a clock or reset signal, confirm that the change
has completed before returning from the function. A somewhat arbitrary
100ms timeout is defined to ensure that the system doesn't lock up in
the case of an error.

Since we need to dynamically determine if we're waiting for a 0 bit or a
1 bit, it's easier to use wait_for_bit_32() than readl_poll_timeout().

This change is needed for reliable initialization of the I2C driver
which is added in a following patch.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-02-28 18:42:27 +01:00
Heinrich Schuchardt
97da9aea78 arm: separate .data and .text sections of EFI binaries
EFI binaries should not contain sections that are both writable and
executable. Separate the RX .text section from the RW .data section.

We currently don't created relocation sections (.rel.*) for our EFI
binaries. Anyway these would have to be converted to PE/COFF relocations.
Enumerate them under DISCARD and add a comment.

Correct the characteristics of the sections.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-28 14:39:27 +01:00
Heinrich Schuchardt
3b3d61df3b arm: page align EFI binary section
Change the alignment of the relocation code in EFI binaries to match page
boundaries.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-02-28 14:39:27 +01:00
Heinrich Schuchardt
ee446e15fb efi_driver: provide SBI based runtime system reset
On RISC-V systems system the Supervisory Binary Interface provides system
reset and poweroff. Use it at EFI runtime.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-02-28 14:38:47 +01:00
Heinrich Schuchardt
c9f368b597 efi_loader: set IMAGE_DLLCHARACTERISTICS_NX_COMPAT
The IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag marks an EFI binary where
the following conditions are met [1]:

* Executable and writable sections are separated.
* The application does not run self-modifying code.
* The application uses the EFI_MEMORY_ATTRIBUTE_PROTOCOL when loading
  executable code.
* The application does not assume that all memory ranges are usable.
* The stack is not expected to be executable.

The only EFI binaries U-Boot provides that do not fulfill these
requirements are the EFI app and the EFI payload.

Once we have implemented separation of writable and executable memory in
U-Boot we can use the IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag to decide
if we will load an EFI binary.

[1] New UEFI CA memory mitigation requirements for signing
    https://techcommunity.microsoft.com/t5/hardware-dev-center/new-uefi-ca-memory-mitigation-requirements-for-signing/ba-p/3608714

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-02-28 14:37:46 +01:00
Tom Rini
abd4fb5ac1 Merge patch series "Dockerfile: Build coreboot from source"
To make our CI loops more robust, switch to building and providing the
coreboot binary we test with rather than download from a Google Drive
link.
2024-02-27 16:28:57 -05:00
Tom Rini
cb59ca304a CI: Move to latest container image
This moves us to our latest container image, which is now based on the
current "Jammy" tag.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
3a79c91f43 CI: Switch to using coreboot from our image
Instead of downloading coreboot binaries from a Google drive location,
use the ones we have built ourselves.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
f382050896 Dockerfile: Build coreboot from source
To make CI runs rely less on external servers, build a coreboot release
from source and populate /opt/coreboot with the output.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 16:28:52 -05:00
Tom Rini
eec4c06647 Merge patch series "kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset"
Perform a little re-organization of Kconfig so that we can have
CONFIG_SYS_CONFIG_NAME be unset and so not require a "board.h" file.
Then go and remove a number of now not required header files.
2024-02-27 14:18:55 -05:00
Tom Rini
3dd1486800 Kconfig: Centralize prompting for SYS_CONFIG_NAME
Generally speaking, we do not prompt for this value and define it in the
board specific Kconfig file. There are some valid use cases however
today where we do prompt for this value, so instead of having this be
done in a number of locations, do this at the top-level location only.

This removes the question from a number of other locations and makes it
consistent that when we do set the value directly, we always do it the
same way. We don't need to specify the type, it's always string.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:54 -05:00
Tom Rini
770afff24a hc2910-2aghd05: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the hc2910-2aghd05 platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
4be2311bf4 slimbootloader: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the slimbootloader platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
f7913054e9 qemu-x86*: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the qemu-x86* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
ecdd57763b minnowmax: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the minnowmax platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
5b70814f24 galileo: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the galileo platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
93e6e6cc7d efi-x86_payload: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the efi-x86_payload* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
f10e484fc5 efi-x86_app: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the efi-x86_app* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
6e8bc6b259 edison: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the edison platform and remove
the otherwise empty file.

Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
dd4a55965e crownbay: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the crownbay platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
1ef8524c3e cougarcanyon2: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the cougarcanyon2 platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
063bf17d1e cherryhill: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the cherryhill platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
3cf2d25ecb bayleybay: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the bayleybay platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
abb23315c0 coreboot: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the coreboot platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
e82f7c627c xilinx_mbv: Remove empty config header
Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the xilinx_mbv platforms and remove
the otherwise empty file.

Acked-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00
Tom Rini
bcd8bce57c kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset
It is possible to have a platform which does not require a board.h file
to build, but today we need an empty one for our generated config.h file
to be valid. Allow for omitting this file if CONFIG_SYS_CONFIG_NAME is
not set.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-02-27 14:18:30 -05:00