summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-29doc: devicetree: Align documentation to use Kconfig optionsSumit Garg
Since U-Boot switched away from manual CONFIG_* defines to Kconfig options, align devicetree documentation accordingly. Signed-off-by: Sumit Garg <[email protected]>
2024-02-29dts: Add script to uprev dts/upstream subtreeSumit Garg
dts/update-dts-subtree.sh is just a wrapper around git subtree commands. Usage from the top level U-Boot source tree, run: $ ./dts/update-dts-subtree.sh pull <release-tag> $ ./dts/update-dts-subtree.sh pick <commit-id> Signed-off-by: Sumit Garg <[email protected]>
2024-02-29dts: Add alternative location for upstream DTB buildsSumit Garg
Allow platform owners to mirror devicetree files from devitree-rebasing directory into dts/upstream/src/$(ARCH) (special case for arm64). Then build then along with any *-u-boot.dtsi file present in arch/$(ARCH)/dts directory. Also add a new Makefile for arm64. This will help easy migration for platforms which currently are compliant with upstream Linux kernel devicetree files. Signed-off-by: Sumit Garg <[email protected]>
2024-02-29Makefile: Allow upstream DT subtree to provide DT includesSumit Garg
Allow platforms to reuse DT headers and dtsi includes directly form upstream DT subtree which will be frequently synced with Linux kernel. This will further allow us to drop corresponding DT includes copy from U-Boot tree. Also, since the DT includes from upstream DT subtree are done after DT includes from U-Boot tree, so it shouldn't cause any conflicts. Tested-by: Bryan Brattlof <[email protected]> Signed-off-by: Sumit Garg <[email protected]>
2024-02-29scripts/Makefile.lib: Statically define *-u-boot.dtsi files locationSumit Garg
Allow u-boot to build DTB from a different directory tree such that *-u-boot.dtsi files can be included from a common location. Currently that location is arch/$(ARCH)/dts/, so statically define that common location. This is needed for platform owners to start building DTB files from devicetree-rebasing directory but still being able to include *-u-boot.dtsi files. Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Sumit Garg <[email protected]>
2024-02-29Makefile: Add support for DT bindings schema checksSumit Garg
This adds the build infrastructure for checking DT binding schema documents and validating dtb files using the binding schema. Here we use devicetree-rebasing subtree to provide the DT bindings. Along with that adapt dts/upstream/Bindings/Makefile to align with old U-Boot Kbuild infrastructure. Dependency: ----------- The DT schema project must be installed in order to validate the DT schema binding documents and validate DTS files using the DT schema. The DT schema project can be installed with pip:: pip3 install dtschema Note that 'dtschema' installation requires 'swig' and Python development files installed first. On Debian/Ubuntu systems:: apt install swig python3-dev Testing: -------- Build dts files and check using DT binding schema: $ make dtbs_check Optionally, DT_SCHEMA_FILES can be passed in with a schema file(s) to use for validation. This makes it easier to find and fix errors generated by a specific schema. Note, at this point dtbs_check is an optional build target as there are many warnings generated due to custom DT properties used by many platforms in u-boot. It is expected with these checks that compliance with DT bindings to take place. Once that's done it can be added to CI builds to remain compliant with DT bindings. Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> Signed-off-by: Sumit Garg <[email protected]>
2024-02-29CI: Exclude devicetree-rebasing subtree for CONFIG checksSumit Garg
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 <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Sumit Garg <[email protected]>
2024-02-29Squashed 'dts/upstream/' content from commit aaba2d45dc2aTom Rini
git-subtree-dir: dts/upstream git-subtree-split: aaba2d45dc2a1b3bbb710f2a3808ee1c9f340abe
2024-02-29Merge commit '53633a893a06bd5a0c807287d9cc29337806eaf7' as 'dts/upstream'Tom Rini
2024-02-29Merge patch series "Handoff bloblist from previous boot stage"Tom Rini
Raymond Mao <[email protected]> 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-29dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLISTRaymond Mao
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 <[email protected]>
2024-02-29bloblist: Load the bloblist from the previous loaderRaymond Mao
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 <[email protected]>
2024-02-29arm: Get bloblist from boot argumentsRaymond Mao
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 <[email protected]>
2024-02-29arm: armv8: save boot argumentsRaymond Mao
Save boot arguments x[0-3] into an array for handover of bloblist from previous boot stage. Signed-off-by: Raymond Mao <[email protected]> Suggested-by: Ard Biesheuvel <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29arm: armv7: save boot argumentsRaymond Mao
Save boot arguments r[0-3] into an array for handover of bloblist from previous boot stage. Signed-off-by: Raymond Mao <[email protected]> Suggested-by: Ard Biesheuvel <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29bloblist: refactor of bloblist_reloc()Raymond Mao
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 <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29bloblist: check bloblist with specified buffer sizeRaymond Mao
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 <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29bloblist: add API to check the register conventionsRaymond Mao
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 <[email protected]>
2024-02-28Merge patch series "mux: Drop usage of "u-boot,mux-autoprobe""Tom Rini
Roger Quadros <[email protected]> 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-28arm: dts: k3-u-boot: Add missing "bootph-all" property to MUX nodes.Roger Quadros
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 <[email protected]>
2024-02-28arm: dts: k3-u-boot: Drop usage of "u-boot, mux-autoprobe"Roger Quadros
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 <[email protected]>
2024-02-28mux: autoprobe if "idle-states" present in device treeRoger Quadros
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 <[email protected]>
2024-02-28Merge tag 'efi-next-2024-02-28' of ↵Tom Rini
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-28board: rzg2l: Support reset via Renesas RAA215300 PMICPaul Barker
With the SYSRESET subsystem enabled we do not need to implement reset_cpu() in the board directory. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28pmic: raa215300: Bind sysreset driverPaul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28sysreset: Support reset via Renesas RAA215300 PMICPaul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28board: rzg2l: Enable access to Renesas RAA215300 PMICPaul Barker
Enable the appropriate PMIC driver as well as the `pmic` command. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28pmic: Add Renesas RAA215300 PMIC driverPaul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28i2c: rzg2l: Add I2C driver for RZ/G2L familyPaul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28arm: dts: rzg2l: Sync with Linux v6.7Paul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28clk: renesas: Confirm all clock & reset changes on RZ/G2LPaul Barker
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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-02-28arm: separate .data and .text sections of EFI binariesHeinrich Schuchardt
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 <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2024-02-28arm: page align EFI binary sectionHeinrich Schuchardt
Change the alignment of the relocation code in EFI binaries to match page boundaries. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-28efi_driver: provide SBI based runtime system resetHeinrich Schuchardt
On RISC-V systems system the Supervisory Binary Interface provides system reset and poweroff. Use it at EFI runtime. Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-02-28efi_loader: set IMAGE_DLLCHARACTERISTICS_NX_COMPATHeinrich Schuchardt
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 <[email protected]>
2024-02-27Merge patch series "Dockerfile: Build coreboot from source"Tom Rini
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-27CI: Move to latest container imageTom Rini
This moves us to our latest container image, which is now based on the current "Jammy" tag. Signed-off-by: Tom Rini <[email protected]>
2024-02-27CI: Switch to using coreboot from our imageTom Rini
Instead of downloading coreboot binaries from a Google drive location, use the ones we have built ourselves. Signed-off-by: Tom Rini <[email protected]>
2024-02-27Dockerfile: Build coreboot from sourceTom Rini
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 <[email protected]>
2024-02-27Merge patch series "kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset"Tom Rini
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-27Kconfig: Centralize prompting for SYS_CONFIG_NAMETom Rini
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 <[email protected]>
2024-02-27hc2910-2aghd05: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27slimbootloader: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27qemu-x86*: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27minnowmax: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27galileo: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27efi-x86_payload: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27efi-x86_app: Remove empty config headerTom Rini
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 <[email protected]>
2024-02-27edison: Remove empty config headerTom Rini
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 <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-02-27crownbay: Remove empty config headerTom Rini
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 <[email protected]>