platform/kernel/u-boot.git
12 months agoconfigs: keystone2: Unwind KERNEL_MTD_PARTS definition
Andrew Davis [Tue, 25 Jul 2023 18:15:20 +0000 (13:15 -0500)]
configs: keystone2: Unwind KERNEL_MTD_PARTS definition

This is more complex than it needs to be and makes converting these
boards over to plain text env files more difficult. Remove setting
mtdparts as the DTS already contain the partitions. While here also
drop the conflicting definitions from the K2 defconfigs.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
12 months agomach-k3: security: improve the checks around authentication
Manorit Chawdhry [Tue, 25 Jul 2023 07:39:22 +0000 (13:09 +0530)]
mach-k3: security: improve the checks around authentication

The following checks are more reasonable as the previous logs were a bit
misleading as we could still get the logs that the authetication is
being skipped but still authenticate. Move the debug prints and checks
to proper locations.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
12 months agoenv: ti: mmc.env: Fix overlays directory path
Vignesh Raghavendra [Tue, 25 Jul 2023 07:39:21 +0000 (13:09 +0530)]
env: ti: mmc.env: Fix overlays directory path

Similar to get_fdt_mmc make get_overlays_mmc look at /boot/dtb/* path
for overlay files.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
12 months agoenv: ti: mmc.env: Move mmc related args to common place
Vignesh Raghavendra [Tue, 25 Jul 2023 07:39:20 +0000 (13:09 +0530)]
env: ti: mmc.env: Move mmc related args to common place

All K3 SoCs use same set of args to load kernel for MMC. So move this to
common place to avoid duplication.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
12 months agoconfigs: am62x: add SPL_MAX_SIZE back
Manorit Chawdhry [Tue, 25 Jul 2023 07:39:18 +0000 (13:09 +0530)]
configs: am62x: add SPL_MAX_SIZE back

This was regressed by the following commit and is required to build with
additional configs enabled.

Fixes: 14439cd71c1a ("configs: k3: make consistent bootcmd across all k3 socs")

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Tested-by: Nikhil M Jain <n-jain1@ti.com>
12 months agoarm: k3: fix fdt_del_node_path implicit declaration and a missing include
Emanuele Ghidoli [Wed, 26 Jul 2023 14:36:50 +0000 (16:36 +0200)]
arm: k3: fix fdt_del_node_path implicit declaration and a missing include

Fix missing declaration of fdt_del_node_path() while compiling am625_fdt.c and
missing common_fdt.h include in common_fdt.c

Fixes: 70aa5a94d451 ("arm: mach-k3: am62: Fixup CPU core, gpu and pru nodes in fdt")
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
12 months agoconfigs: iot2050: Enabled keyed autoboot
Jan Kiszka [Thu, 27 Jul 2023 04:34:56 +0000 (06:34 +0200)]
configs: iot2050: Enabled keyed autoboot

Only accept SPACE to stop autobooting. This is safer to avoid accidental
interruptions on unattended devices.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 months agodoc: board: siemens: iot2050: Update build env vars
Jan Kiszka [Thu, 27 Jul 2023 04:34:55 +0000 (06:34 +0200)]
doc: board: siemens: iot2050: Update build env vars

ATF is now called BL31, and OP-TEE since 3.21 suggests to use
tee-raw.bin instead of (the still identical) tee-pager_v2.bin.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 months agoboards: siemens: iot2050: Unify PG1 and PG2/M.2 configurations again
Jan Kiszka [Thu, 27 Jul 2023 04:34:54 +0000 (06:34 +0200)]
boards: siemens: iot2050: Unify PG1 and PG2/M.2 configurations again

This avoids having to maintain to defconfigs that are 99% equivalent.
The approach is to use binman to generate two flash images,
flash-pg1.bin and flash-pg2.bin. With the help of a template dtsi, we
can avoid duplicating the common binman image definitions.

Suggested-by: Andrew Davis <afd@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 months agoiot2050: Use binman in signing script
Jan Kiszka [Thu, 27 Jul 2023 04:34:53 +0000 (06:34 +0200)]
iot2050: Use binman in signing script

The underlying issue was fixed in the meantime. Also signing the U-Boot
proper fit image now works. Just supporting custom cert templates
remains a todo.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 months agoboards: siemens: iot2050: Fix boot configuration
Jan Kiszka [Thu, 27 Jul 2023 04:34:52 +0000 (06:34 +0200)]
boards: siemens: iot2050: Fix boot configuration

The common env bits now come via ti_armv7_common.env, include it.
Furthermore restore the board-specific boot targets and their ordering
that is now enforced k3-wide differently. Finally, enable
CONFIG_LEGACY_IMAGE_FORMAT explicitly which got lost while turning
FIT_SIGNATURE on by default for k3 devices.

Fixes: 53873974 ("include: armv7: Enable distroboot across all configs")
Fixes: 4ae1a247 ("env: Make common bootcmd across all k3 devices")
Fixes: 86fab110 ("Kconfig: Enable FIT_SIGNATURE if ARM64")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
12 months agoarm: dts: k3-am62: Bump dtsi from linux v6.5-rc1
Nishanth Menon [Thu, 27 Jul 2023 09:03:31 +0000 (04:03 -0500)]
arm: dts: k3-am62: Bump dtsi from linux v6.5-rc1

Update the am62 and am625 device-trees from linux v6.5-rc1. This needed
the following tweaks to the u-boot specific dtsi as well:
- Switch tick-timer to the main_timer as it's now defined in the main dtsi
- Secure proxies are defined in SoC dtsi
- Drop duplicate nodes - u-boot.dtsi is includes in r5-sk, no need for
  either the definitions from main.dtsi OR duplication from u-boot.dtsi

Reviewed-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Tested-by: Maxime Ripard <mripard@kernel.org>
Cc: Francesco Dolcini <francesco@dolcini.it>
Cc: Sjoerd Simons <sjoerd@collabora.com>
Cc: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Nishanth Menon <nm@ti.com>
12 months agoarm: mach-k3: am62: Add timer0 id to the dev list
Sjoerd Simons [Thu, 27 Jul 2023 09:03:30 +0000 (04:03 -0500)]
arm: mach-k3: am62: Add timer0 id to the dev list

Timer0 is used by u-boot as the tick timer; Add it to the soc devices
list so it can be enabled via the k3 power controller.

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Tested-by: Maxime Ripard <mripard@kernel.org>
Tested-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Cc: Francesco Dolcini <francesco@dolcini.it>
Cc: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Nishanth Menon <nm@ti.com>
12 months agoomap: timer: add ti,am654-timer compatibility
Sjoerd Simons [Thu, 27 Jul 2023 09:03:29 +0000 (04:03 -0500)]
omap: timer: add ti,am654-timer compatibility

The TI AM654 timer is compatible with the omap-timer implementation,
so add it to the compatible id list.

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Maxime Ripard <mripard@kernel.org>
Tested-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Cc: Francesco Dolcini <francesco@dolcini.it>
Cc: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Nishanth Menon <nm@ti.com>
12 months agonet: ti: am65-cpsw-nuss: Get port mode register from standard "phys" property
Roger Quadros [Sat, 22 Jul 2023 19:31:49 +0000 (22:31 +0300)]
net: ti: am65-cpsw-nuss: Get port mode register from standard "phys" property

Approved DT binding has the port mode register in the
"phys" property. Get it from there instead of the custom
"cpsw-phy-sel" property.

This will allow us to keep DT in sync with Linux.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Acked-by: Nishanth Menon <nm@ti.com>
12 months agonet: ti: am65-cpsw-nuss: Use approved property to get efuse address
Roger Quadros [Sat, 22 Jul 2023 19:31:48 +0000 (22:31 +0300)]
net: ti: am65-cpsw-nuss: Use approved property to get efuse address

The approved DT property for MAC efuse (ROM) address is
"ti,syscon-efuse".

Use that and drop custom property "mac_efuse".

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Acked-by: Nishanth Menon <nm@ti.com>
12 months agonet: ti: am65-cpsw-nuss: Enforce pinctrl state on the MDIO child node
Maxime Ripard [Mon, 24 Jul 2023 13:57:30 +0000 (15:57 +0200)]
net: ti: am65-cpsw-nuss: Enforce pinctrl state on the MDIO child node

The binding represents the MDIO controller as a child device tree
node of the MAC device tree node.

The U-Boot driver mostly ignores that child device tree node and just
hardcodes the resources it uses to support both the MAC and MDIO in a
single driver.

However, some resources like pinctrl muxing states are thus ignored.
This has been a problem with some device trees that will put some
pinctrl states on the MDIO device tree node, like the SK-AM62 Device
Tree does.

Let's rework the driver a bit to create a dummy MDIO driver that we will
then get during our initialization to force the core to select the right
muxing.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Acked-by: Roger Quadros <rogerq@kernel.org>
Acked-by: Nishanth Menon <nm@ti.com>
12 months agoMerge branch '2023-07-27-assorted-network-updates'
Tom Rini [Thu, 27 Jul 2023 20:45:50 +0000 (16:45 -0400)]
Merge branch '2023-07-27-assorted-network-updates'

- Merge a few network updates

12 months agophy: adin: add readext and writeext support for mdio cmd
Nate Drude [Tue, 11 Jul 2023 21:59:15 +0000 (16:59 -0500)]
phy: adin: add readext and writeext support for mdio cmd

The adin phy has extended registers that can be accessed using
adin_ext_read and adin_ext_write. These registers can be read directly
using the mdio command using readext and writext. For example:

     => mdio rx ethernet@428a0000 0xff23
     Reading from bus ethernet@428a0000
     PHY at address 0:
     65315 - 0xe01

Signed-off-by: Nate Drude <nate.d@variscite.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
12 months agonet: ksz9477: add support for KSZ9893 GbE switch
Karsten Wiese [Wed, 28 Jun 2023 14:54:45 +0000 (16:54 +0200)]
net: ksz9477: add support for KSZ9893 GbE switch

Copy and tweak the required code from the linux kernel.
Only the KSZ9893 has been tested.

Signed-off-by: Karsten Wiese <karsten.wiese@protechna.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
12 months agonet: ipv6: network protocol structures should be packed
Ehsan Mohandesi [Thu, 18 May 2023 18:24:39 +0000 (11:24 -0700)]
net: ipv6: network protocol structures should be packed

The structure icmp6_ra_prefix_info needs to be packed because it is read
from a network stream.

Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
12 months agonet: ipv6: router advertisement message length should be within limits
Ehsan Mohandesi [Thu, 18 May 2023 18:24:38 +0000 (11:24 -0700)]
net: ipv6: router advertisement message length should be within limits

The argument len passed to function process_ra is the length of the IPv6
router advertisement message and needs to be between 0 and MTU because
it is assigned to remaining_option_len and used as a loop variable.

Addresses-Coverity-ID: 450971 ("TAINTED_SCALAR")
Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
12 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Thu, 27 Jul 2023 14:35:36 +0000 (10:35 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-usb

12 months agousb: xhci: Fix double free on failure
Richard Habeeb [Mon, 24 Jul 2023 19:45:25 +0000 (15:45 -0400)]
usb: xhci: Fix double free on failure

drivers/core/device.c will call `device_free()` after xhci_register
already frees the private device data. This can cause a crash later
during the boot process, observed on aarch64 RPi4b as a synchronous
exception. All callers of xhci_register use priv_auto, so this won't
lead to memory leaks.

Signed-off-by: Richard Habeeb <richard.habeeb@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMerge branch 'master' of git://git.denx.de/u-boot-coldfire
Tom Rini [Tue, 25 Jul 2023 21:37:39 +0000 (17:37 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-coldfire

- Watchdog updates, and more MAINTAINERS entries

12 months agoRevert "travis-ci: Add m68k M5208EVBE machine"
Tom Rini [Tue, 25 Jul 2023 21:37:18 +0000 (17:37 -0400)]
Revert "travis-ci: Add m68k M5208EVBE machine"

This commit was not intended for this tree but rather
u-boot-test-scripts (where it is applied).

This reverts commit f04ef0a7a0166e91729b45b1db22f5cc3b3b2f99.

Signed-off-by: Tom Rini <trini@konsulko.com>
12 months agoMAINTAINERS: add myself as mcf_wdt.c maintainer
Angelo Dureghello [Sun, 25 Jun 2023 19:32:20 +0000 (21:32 +0200)]
MAINTAINERS: add myself as mcf_wdt.c maintainer

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes for v2:
- none
Changes for v3:
- none

12 months agoconfigs: m68k: add watchdog driver
Angelo Dureghello [Sat, 24 Jun 2023 21:46:17 +0000 (23:46 +0200)]
configs: m68k: add watchdog driver

Add config options for mcf_wdt driver.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes for v2:
- none
Changes for v3:
- none

12 months agom68k: dts: add watchdog node
Angelo Dureghello [Sat, 24 Jun 2023 21:38:55 +0000 (23:38 +0200)]
m68k: dts: add watchdog node

Add watchdog node for the implemented mcf_wdt driver.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes for v2:
- remove unnecessary big-endian property
Changes for v3:
- none

12 months agom68k: move watchdog functions in mcf_wdt driver
Angelo Dureghello [Sat, 24 Jun 2023 21:22:23 +0000 (23:22 +0200)]
m68k: move watchdog functions in mcf_wdt driver

Move watchdog functions inside a separate watchdog driver.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes for v2:
- none
Changes for v3:
- none

12 months agodrivers: watchdog: add mcf watchdog support
Angelo Dureghello [Sat, 24 Jun 2023 20:30:18 +0000 (22:30 +0200)]
drivers: watchdog: add mcf watchdog support

This watchdog driver applies to the following
mcf families:

- mcf52x2 (5271 5275 5282)
- mcf532x (5329 5373)
- mcf523x (5235)

Cpu's not listed for each family does not have WDT module.

Note, after some attempts testing by qemu on 5208 i
finally abandoned, watchdog seems not implemented properly.

The driver has been tested in a real M5282EVM.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes for v2:
- remove unnecessary hardcoded timeouts
- remove unnecessary hw_watchdog_xxx stuff
- rewrite wdog module reg calculation
- using IS_ENABLED() where possible
Changes for v3:
- remove hardcoded 4s test

12 months agoboard: m68k add missing maintainer
Angelo Dureghello [Sun, 23 Jul 2023 21:54:29 +0000 (23:54 +0200)]
board: m68k add missing maintainer

Add myself as a maintainer for orphaned boards.
All these boards are covered by buildman m68k test.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
12 months agoPrepare v2023.10-rc1
Tom Rini [Tue, 25 Jul 2023 21:19:54 +0000 (17:19 -0400)]
Prepare v2023.10-rc1

Signed-off-by: Tom Rini <trini@konsulko.com>
12 months agoconfigs: Resync with savedefconfig
Tom Rini [Tue, 25 Jul 2023 21:00:57 +0000 (17:00 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
12 months agoMerge branch '2023-07-25-assorted-general-updates'
Tom Rini [Tue, 25 Jul 2023 20:55:59 +0000 (16:55 -0400)]
Merge branch '2023-07-25-assorted-general-updates'

- A number of MAINTAINER file updates, assorted driver/platform fixes,
  performance improvements for sparse file writes, and 64bit time_t.

12 months agoMAINTAINERS: Take maintainership of TI KeyStone2 support
Andrew Davis [Tue, 25 Jul 2023 15:28:50 +0000 (10:28 -0500)]
MAINTAINERS: Take maintainership of TI KeyStone2 support

Add arch/arm/mach-keystone/ into K2 board directory MAINTAINERS file.

Convert current entries into regex match style.

Assign maintainership to myself.

Signed-off-by: Andrew Davis <afd@ti.com>
12 months agoMakefile: Use sort shortopts
Marek Vasut [Thu, 20 Jul 2023 12:50:42 +0000 (14:50 +0200)]
Makefile: Use sort shortopts

POSIX does not defined longopts for sort, use shortops
for even more compatibility.

Fixes: cc5a490cf465 ("Makefile: Sort u-boot-initial-env output")
Reported-by: Milan P. Stanić <mps@arvanta.net>
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Tested-by: Milan P. Stanić <mps@arvanta.net>
12 months agoMAINTAINERS: Add some missing directories or files
Tom Rini [Tue, 18 Jul 2023 23:33:34 +0000 (19:33 -0400)]
MAINTAINERS: Add some missing directories or files

In a few cases we have MAINTAINERS entries that are missing obvious
paths or files. Typically this means a board directory that did not list
itself, but in a few cases we have a Kconfig file or similar.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Deal with '+' in paths
Tom Rini [Tue, 18 Jul 2023 23:33:33 +0000 (19:33 -0400)]
MAINTAINERS: Deal with '+' in paths

The listed paths are allowed to contain wildcards.  This includes the
'+' character which we have as a literal part of the path in a few
cases. Escape the '+' here so that files are matched.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Fix path typos and similar
Tom Rini [Tue, 18 Jul 2023 23:33:32 +0000 (19:33 -0400)]
MAINTAINERS: Fix path typos and similar

We have a number of cases where the in-tree path of files and where
they presumably were when the first version of a patch were posted
differ slightly.  Correct these to point at where the files are now.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Add a number of "common" directories
Tom Rini [Tue, 18 Jul 2023 23:33:31 +0000 (19:33 -0400)]
MAINTAINERS: Add a number of "common" directories

A number of platforms have "common" directories that are in turn not
listed by the board MAINTAINERS file.  Add these directories in many
cases.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoxes: Remove leftover code
Tom Rini [Tue, 18 Jul 2023 23:33:30 +0000 (19:33 -0400)]
xes: Remove leftover code

The platforms here have been removed, but the common code directory was
forgotten.  Clean up.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoarm: Remove leftover MAINTAINERS files
Tom Rini [Tue, 18 Jul 2023 23:33:29 +0000 (19:33 -0400)]
arm: Remove leftover MAINTAINERS files

These platforms have been removed, but the MAINTAINERS file was missed,
clean up.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoarm: Remove more remnants of bcmcygnus
Tom Rini [Tue, 18 Jul 2023 23:33:28 +0000 (19:33 -0400)]
arm: Remove more remnants of bcmcygnus

Remove some leftover files from the bcmcygnus platform.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Re-order CAAM section
Tom Rini [Tue, 18 Jul 2023 16:20:28 +0000 (12:20 -0400)]
MAINTAINERS: Re-order CAAM section

This file is in alphabetical order, move CAAM up to where it should be.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agosunxi: Add MAINTAINERS entry for Lctech Pi F1C200s
Tom Rini [Tue, 18 Jul 2023 16:20:27 +0000 (12:20 -0400)]
sunxi: Add MAINTAINERS entry for Lctech Pi F1C200s

This defconfig was added without a MAINTAINERS entry, add one.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agorockchip: Add MAINTAINERS entry for Radxa Rock 4C+
Tom Rini [Tue, 18 Jul 2023 16:20:26 +0000 (12:20 -0400)]
rockchip: Add MAINTAINERS entry for Radxa Rock 4C+

This defconfig was added without a MAINTAINERS entry, add one.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Add some missing defconfig files to existing entries
Tom Rini [Tue, 18 Jul 2023 16:20:25 +0000 (12:20 -0400)]
MAINTAINERS: Add some missing defconfig files to existing entries

We have a few places where defconfigs were added (or renamed) and not
included in their previously listed MAINTAINERS entry, correct this.

Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agoMAINTAINERS: Correct minor mistakes on some file listings
Tom Rini [Tue, 18 Jul 2023 16:20:24 +0000 (12:20 -0400)]
MAINTAINERS: Correct minor mistakes on some file listings

There are a few entries where minor mistakes mean that we don't match up
with obviously expected files, correct those.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months agopart: eliminate part_get_info_by_name_type()
Heinrich Schuchardt [Sun, 16 Jul 2023 11:34:44 +0000 (13:34 +0200)]
part: eliminate part_get_info_by_name_type()

Since commit 56670d6fb83f ("disk: part: use common api to lookup part
driver") part_get_info_by_name_type() ignores the part_type parameter
used to restrict the partition table type.

omap_mmc_get_part_size() and part_get_info_by_name() are the only
consumers.

omap_mmc_get_part_size() calls with part_type = PART_TYPE_EFI because at
the time of implementation a speed up could be gained by passing the
partition table type. After 5 years experience without this restriction
it looks safe to keep it that way.

part_get_info_by_name() uses PART_TYPE_ALL.

Move the logic of part_get_info_by_name_type() to part_get_info_by_name()
and replace the function in omap_mmc_get_part_size().

Fixes: 56670d6fb83f ("disk: part: use common api to lookup part driver")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 months ago.mailmap: Correct entries for Masahiro Yamada
Tom Rini [Sat, 15 Jul 2023 15:02:24 +0000 (11:02 -0400)]
.mailmap: Correct entries for Masahiro Yamada

His entries had the correct email address listed last rather than first,
correct this.

Fixes: 4fa4227cdd14 (".mailmap: Record all address for main U-Boot contributor")
Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Michal Simek <michal.simek@amd.com>
12 months agocommon: define time_t as 64bit
Heinrich Schuchardt [Sat, 15 Jul 2023 07:16:59 +0000 (09:16 +0200)]
common: define time_t as 64bit

To avoid the year 2038 problem time_t must be 64bit on all architectures.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
12 months agofwu: Show number of attempts in Trial State
Michal Simek [Fri, 14 Jul 2023 08:47:06 +0000 (10:47 +0200)]
fwu: Show number of attempts in Trial State

It is not visible anywhere in Trial State if this is the first, second, etc
attempt that's why show a message to be aware about status.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
12 months agofwu: mtd: Fix dfu_alt_info generation for 2 images per bank
Michal Simek [Thu, 13 Jul 2023 14:36:27 +0000 (16:36 +0200)]
fwu: mtd: Fix dfu_alt_info generation for 2 images per bank

Code rewrites the last char of size with adding &. It is visible from
dfu_alt_info print before this patch:

Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000
8000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'

And after it:
Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000
80000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'

Size for bank0 and bank1 must be the same because it is the same image.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
12 months agofwu: Allow code to properly decode trial state
Michal Simek [Thu, 13 Jul 2023 14:35:24 +0000 (16:35 +0200)]
fwu: Allow code to properly decode trial state

Current code after capsule update (mtd write) is not changing active_index
in mdata to previous_active_index.
On the reboot this is shown but showing message
"Boot idx 1 is not matching active idx 0, changing active_idx"
which is changing active_idx and writing mdata to flash.

But when this message is visible it is not checking which state that images
are. If they have acceptance bit setup to yes everything is fine and valid
images are booted (doesn't mean the latest one).
But if acceptance bit is no and images are in trial state in_trial variable
is never setup. Which means that from new flashed image stable image can be
rewritten because in_trial is not setup properly.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
12 months agodrivers: rtc: max313xx: provide read8/write8
Chris Packham [Tue, 11 Jul 2023 23:30:44 +0000 (11:30 +1200)]
drivers: rtc: max313xx: provide read8/write8

In some designs the MAX313xx RTC may need calibration to cope with
oscillator inaccuracies. Provide read8/write8 ops so that the registers
can be accessed. Because the driver covers a range of MAX313xx variants
no attempt is made to ensure the register is valid.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
12 months agolib: sparse: allocate FASTBOOT_MAX_BLK_WRITE instead of small number
Mattijs Korpershoek [Fri, 7 Jul 2023 08:13:34 +0000 (10:13 +0200)]
lib: sparse: allocate FASTBOOT_MAX_BLK_WRITE instead of small number

Commit 62649165cb02 ("lib: sparse: Make CHUNK_TYPE_RAW buffer aligned")
fixed cache alignment for systems with a D-CACHE.

However it introduced some performance regressions [1] on system
flashing huge images, such as Android.

On AM62x SK EVM, we also observe such performance penalty:
Sending sparse 'super' 1/2 (768793 KB)             OKAY [ 23.954s]
Writing 'super'                                    OKAY [ 75.926s]
Sending sparse 'super' 2/2 (629819 KB)             OKAY [ 19.641s]
Writing 'super'                                    OKAY [ 62.849s]
Finished. Total time: 182.474s

The reason for this is that we use an arbitrary small buffer
(info->blksz * 100) for transferring.

Fix it by using a bigger buffer (info->blksz * FASTBOOT_MAX_BLK_WRITE)
as suggested in the original's patch review [2].

With this patch, performance impact is mitigated:
Sending sparse 'super' 1/2 (768793 KB)             OKAY [ 23.912s]
Writing 'super'                                    OKAY [ 15.780s]
Sending sparse 'super' 2/2 (629819 KB)             OKAY [ 19.581s]
Writing 'super'                                    OKAY [ 17.192s]
Finished. Total time: 76.569s

[1] https://lore.kernel.org/r/20221118121323.4009193-1-gary.bisson@boundarydevices.com
[2] https://lore.kernel.org/r/all/43e4c17c-4483-ec8e-f843-9b4c5569bd18@seco.com/

Fixes: 62649165cb02 ("lib: sparse: Make CHUNK_TYPE_RAW buffer aligned")
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
12 months agodrivers: led: bcm6858: do not use null label to find the top
Philippe Reynes [Fri, 23 Jun 2023 16:36:42 +0000 (18:36 +0200)]
drivers: led: bcm6858: do not use null label to find the top

This driver considers that a node with an empty label is the top.
But the led class has changed, if a label is not provided for a led,
the label is filed with the node name. So we update this driver
to use a wrapper to manage the top led node.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
12 months agomailbox: k3-sec-proxy: Fill non-message tx data fields with 0x0
Nishanth Menon [Tue, 20 Jun 2023 18:17:09 +0000 (13:17 -0500)]
mailbox: k3-sec-proxy: Fill non-message tx data fields with 0x0

Sec proxy data buffer is 60 bytes with the last of the registers
indicating transmission completion. This however poses a bit of a
challenge.

The backing memory for sec_proxy is regular memory, and all sec proxy
does is to trigger a burst of all 60 bytes of data over to the target
thread backing ring accelerator. It doesn't do a memory scrub when
it moves data out in the burst. When we transmit multiple messages,
remnants of previous message is also transmitted which results in
some random data being set in TISCI fields of messages that have been
expanded forward.

The entire concept of backward compatibility hinges on the fact that
the unused message fields remain 0x0 allowing for 0x0 value to be
specially considered when backward compatibility of message extension
is done.

So, instead of just writing the completion register, we continue
to fill the message buffer up with 0x0 (note: for partial message
involving completion, we already do this).

This allows us to scale and introduce ABI changes back also work with
other boot stages that may have left data in the internal memory.

While at this, drop the unused accessor function.

Fixes: f9aa41023bd9 ("mailbox: Introduce K3 Secure Proxy Driver")
Signed-off-by: Nishanth Menon <nm@ti.com>
12 months agobuildman: Specify the output directory in tests
Simon Glass [Tue, 25 Jul 2023 14:13:22 +0000 (08:13 -0600)]
buildman: Specify the output directory in tests

The default output directory is generally '../' in tests so we end up
trying to create '../.bm-work'. This does not work with azure, so update
these tests to use the temporary directory instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agoRevert "Merge branch '2023-07-24-introduce-FF-A-suppport'"
Tom Rini [Mon, 24 Jul 2023 23:51:05 +0000 (19:51 -0400)]
Revert "Merge branch '2023-07-24-introduce-FF-A-suppport'"

This reverts commit d927d1a80843e1c3e2a3f0b8f6150790bef83da1, reversing
changes made to c07ad9520c6190070513016fdb495d4703a4a853.

These changes do not pass CI currently.

Signed-off-by: Tom Rini <trini@konsulko.com>
12 months agoMerge branch '2023-07-24-introduce-FF-A-suppport'
Tom Rini [Mon, 24 Jul 2023 22:58:22 +0000 (18:58 -0400)]
Merge branch '2023-07-24-introduce-FF-A-suppport'

To quote the author:
Adding support for Arm FF-A v1.0 (Arm Firmware Framework for Armv8-A) [A].

FF-A specifies interfaces that enable a pair of software execution
environments aka partitions to communicate with each other. A partition
could be a VM in the Normal or Secure world, an application in S-EL0, or
a Trusted OS in S-EL1.

FF-A is a discoverable bus and similar to architecture features.
FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
by the PSCI driver.

   => dm tree

    Class     Index  Probed  Driver                Name
   -----------------------------------------------------------
   ...
    firmware      0  [ + ]   psci                      |-- psci
    ffa                   0  [   ]   arm_ffa               |   `-- arm_ffa
   ...

Clients are able to probe then use the FF-A bus by calling the DM class
searching APIs (e.g: uclass_first_device).

This implementation of the specification provides support for Aarch64.

The FF-A driver uses the SMC ABIs defined by the FF-A specification to:

    - Discover the presence of secure partitions (SPs) of interest
    - Access an SP's service through communication protocols
      (e.g: EFI MM communication protocol)

The FF-A support provides the following features:

    - Being generic by design and can be used by any Arm 64-bit platform
    - FF-A support can be compiled and used without EFI
    - Support for SMCCCv1.2 x0-x17 registers
    - Support for SMC32 calling convention
    - Support for 32-bit and 64-bit FF-A direct messaging
    - Support for FF-A MM communication (compatible with EFI boot time)
    - Enabling FF-A and MM communication in Corstone1000 platform as a use case
    - A Uclass driver providing generic FF-A methods.
    - An Arm FF-A device driver providing Arm-specific methods and
      reusing the Uclass methods.
    - A sandbox emulator for Arm FF-A, emulates the FF-A side of the
      Secure World and provides FF-A ABIs inspection methods.
    - An FF-A sandbox device driver for FF-A communication with the
      emulated Secure World.  The driver leverages the FF-A Uclass to
      establish FF-A communication.
    - Sandbox FF-A test cases.
    - A new command called armffa is provided as an example of how to
      access the FF-A bus

For more details about the FF-A support please refer to [B] and refer to [C] for
how to use the armffa command.

Please find at [D] an example of the expected boot logs when enabling
FF-A support for a platform. In this example the platform is
Corstone1000. But it can be any Arm 64-bit platform.

[A]: https://developer.arm.com/documentation/den0077/latest/
[B]: doc/arch/arm64.ffa.rst
[C]: doc/usage/cmd/armffa.rst
[D]: example of boot logs when enabling FF-A

12 months agoarm_ffa: efi: corstone1000: enable MM communication
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:47 +0000 (14:28 +0100)]
arm_ffa: efi: corstone1000: enable MM communication

turn on EFI MM communication

On corstone1000 platform MM communication between u-boot
and the secure world (Optee) is done using the FF-A bus.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
12 months agoarm_ffa: efi: introduce FF-A MM communication
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:46 +0000 (14:28 +0100)]
arm_ffa: efi: introduce FF-A MM communication

Add MM communication support using FF-A transport

This feature allows accessing MM partitions services through
EFI MM communication protocol. MM partitions such as StandAlonneMM
or smm-gateway secure partitions which reside in secure world.

An MM shared buffer and a door bell event are used to exchange
the data.

The data is used by EFI services such as GetVariable()/SetVariable()
and copied from the communication buffer to the MM shared buffer.

The secure partition is notified about availability of data in the
MM shared buffer by an FF-A message (door bell).

On such event, MM SP can read the data and updates the MM shared
buffer with the response data.

The response data is copied back to the communication buffer and
consumed by the EFI subsystem.

MM communication protocol supports FF-A 64-bit direct messaging.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Tested-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
12 months agoarm_ffa: introduce armffa command Sandbox test
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:45 +0000 (14:28 +0100)]
arm_ffa: introduce armffa command Sandbox test

Add Sandbox test for the armffa command

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
12 months agoarm_ffa: introduce sandbox test cases for UCLASS_FFA
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:44 +0000 (14:28 +0100)]
arm_ffa: introduce sandbox test cases for UCLASS_FFA

Add functional test cases for the FF-A support

These tests rely on the FF-A sandbox emulator and FF-A
sandbox driver which help in inspecting the FF-A communication.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
12 months agoarm_ffa: introduce sandbox FF-A support
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:43 +0000 (14:28 +0100)]
arm_ffa: introduce sandbox FF-A support

Emulate Secure World's FF-A ABIs and allow testing U-Boot FF-A support

Features of the sandbox FF-A support:

- Introduce an FF-A emulator
- Introduce an FF-A device driver for FF-A comms with emulated Secure World
- Provides test methods allowing to read the status of the inspected ABIs

The sandbox FF-A emulator supports only 64-bit direct messaging.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
12 months agoarm_ffa: introduce armffa command
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:42 +0000 (14:28 +0100)]
arm_ffa: introduce armffa command

Provide armffa command showcasing the use of the U-Boot FF-A support

armffa is a command showcasing how to invoke FF-A operations.
This provides a guidance to the client developers on how to
call the FF-A bus interfaces. The command also allows to gather secure
partitions information and ping these  partitions. The command is also
helpful in testing the communication with secure partitions.

For more details please refer to the command documentation [1].

[1]: doc/usage/cmd/armffa.rst

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
12 months agoarm_ffa: introduce Arm FF-A support
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:41 +0000 (14:28 +0100)]
arm_ffa: introduce Arm FF-A support

Add Arm FF-A support implementing Arm Firmware Framework for Armv8-A v1.0

The Firmware Framework for Arm A-profile processors (FF-A v1.0) [1]
describes interfaces (ABIs) that standardize communication
between the Secure World and Normal World leveraging TrustZone
technology.

This driver uses 64-bit registers as per SMCCCv1.2 spec and comes
on top of the SMCCC layer. The driver provides the FF-A ABIs needed for
querying the FF-A framework from the secure world.

The driver uses SMC32 calling convention which means using the first
32-bit data of the Xn registers.

All supported ABIs come with their 32-bit version except FFA_RXTX_MAP
which has 64-bit version supported.

Both 32-bit and 64-bit direct messaging are supported which allows both
32-bit and 64-bit clients to use the FF-A bus.

FF-A is a discoverable bus and similar to architecture features.
FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
by the PSCI driver.

Clients are able to probe then use the FF-A bus by calling the DM class
searching APIs (e.g: uclass_first_device).

The Secure World is considered as one entity to communicate with
using the FF-A bus. FF-A communication is handled by one device and
one instance (the bus). This FF-A driver takes care of all the
interactions between Normal world and Secure World.

The driver exports its operations to be used by upper layers.

Exported operations:

- ffa_partition_info_get
- ffa_sync_send_receive
- ffa_rxtx_unmap

Generic FF-A methods are implemented in the Uclass (arm-ffa-uclass.c).
Arm specific methods are implemented in the Arm driver (arm-ffa.c).

For more details please refer to the driver documentation [2].

[1]: https://developer.arm.com/documentation/den0077/latest/
[2]: doc/arch/arm64.ffa.rst

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
12 months agolib: uuid: introduce testcase for uuid_str_to_le_bin
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:40 +0000 (14:28 +0100)]
lib: uuid: introduce testcase for uuid_str_to_le_bin

provide a test case

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
12 months agolib: uuid: introduce uuid_str_to_le_bin function
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:39 +0000 (14:28 +0100)]
lib: uuid: introduce uuid_str_to_le_bin function

convert UUID string to little endian binary data

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
12 months agoarm64: smccc: add support for SMCCCv1.2 x0-x17 registers
Abdellatif El Khlifi [Thu, 13 Jul 2023 13:28:38 +0000 (14:28 +0100)]
arm64: smccc: add support for SMCCCv1.2 x0-x17 registers

add support for x0-x17 registers used by the SMC calls

In SMCCC v1.2 [1] arguments are passed in registers x1-x17.
Results are returned in x0-x17.

This work is inspired from the following kernel commit:

arm64: smccc: Add support for SMCCCv1.2 extended input/output registers

[1]: https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6?token=

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
12 months agoMerge tag 'dm-pull-24jul23' of https://source.denx.de/u-boot/custodians/u-boot-dm
Tom Rini [Mon, 24 Jul 2023 18:55:56 +0000 (14:55 -0400)]
Merge tag 'dm-pull-24jul23' of https://source.denx.de/u-boot/custodians/u-boot-dm

buildman refactoring and --maintainer-check
binman TI support
binman cipher support

12 months agoMerge branch '2023-07-22-TI-K3-improvements'
Tom Rini [Mon, 24 Jul 2023 17:55:59 +0000 (13:55 -0400)]
Merge branch '2023-07-22-TI-K3-improvements'

- Actually merge the assorted K3 platform improvements that were
  supposed to be in commit 247aa5a19115 ("Merge branch
  '2023-07-21-assorted-TI-platform-updates'")

12 months agobuildman: Enable test coverage
Simon Glass [Wed, 19 Jul 2023 23:49:31 +0000 (17:49 -0600)]
buildman: Enable test coverage

Enable measuring test coverage for buildman so we can see the gaps. It is
currently at 68%.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Add an option to check maintainers and targets
Simon Glass [Wed, 19 Jul 2023 23:49:30 +0000 (17:49 -0600)]
buildman: Add an option to check maintainers and targets

In poking around it seems that many boards don't define a CONFIG_TARGET
Kconfig variable. This is not strictly necessary, but add an option to
buildman so these can be viewed.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Use -D for --debug
Simon Glass [Wed, 19 Jul 2023 23:49:29 +0000 (17:49 -0600)]
buildman: Use -D for --debug

Change -D to mean --debug for consistency with other tools. This is not a
commonly used option, so the impact should be minimal.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Add a way to print the architecture for a board
Simon Glass [Wed, 19 Jul 2023 23:49:28 +0000 (17:49 -0600)]
buildman: Add a way to print the architecture for a board

This is useful for some tools and is easily available for buildman. Add
a new --print-arch option.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move copy_files() out ot BuilderThread class
Simon Glass [Wed, 19 Jul 2023 23:49:27 +0000 (17:49 -0600)]
buildman: Move copy_files() out ot BuilderThread class

This does not need to be in the class. Move it out to avoid a pylint
warning.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Tidy up some comments in builderthread
Simon Glass [Wed, 19 Jul 2023 23:49:26 +0000 (17:49 -0600)]
buildman: Tidy up some comments in builderthread

Make sure all functions have full argument documentation.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Tidy up reporting of a toolchain error
Simon Glass [Wed, 19 Jul 2023 23:49:25 +0000 (17:49 -0600)]
buildman: Tidy up reporting of a toolchain error

Provide the text of the exception when something goes wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Avoid passing result into _read_done_file()
Simon Glass [Wed, 19 Jul 2023 23:49:24 +0000 (17:49 -0600)]
buildman: Avoid passing result into _read_done_file()

Move the creating of the result object into the function which sets it
up, to simplify the code.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Create a function to handle config and build
Simon Glass [Wed, 19 Jul 2023 23:49:23 +0000 (17:49 -0600)]
buildman: Create a function to handle config and build

Move this code into a _config_and_build() function, so reduce the size of
run_commit().

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move checkout code to a separate function
Simon Glass [Wed, 19 Jul 2023 23:49:22 +0000 (17:49 -0600)]
buildman: Move checkout code to a separate function

Put this in its own function to reduce the size of the run_commit()
function

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move code to decide output dirs
Simon Glass [Wed, 19 Jul 2023 23:49:21 +0000 (17:49 -0600)]
buildman: Move code to decide output dirs

Put this in its own function to reduce the size of the run_commit()
function.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move code to remove old outputs
Simon Glass [Wed, 19 Jul 2023 23:49:20 +0000 (17:49 -0600)]
buildman: Move code to remove old outputs

Put this in its own function to reduce the size of the run_commit()
function.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move reading of the done file into a function
Simon Glass [Wed, 19 Jul 2023 23:49:19 +0000 (17:49 -0600)]
buildman: Move reading of the done file into a function

Move this logic into its own function to reduce the size of the
run_commt() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move bulid code into its own function
Simon Glass [Wed, 19 Jul 2023 23:49:18 +0000 (17:49 -0600)]
buildman: Move bulid code into its own function

Split this into its own function so reduce the size of run_commit().

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move reconfigure code into its own function
Simon Glass [Wed, 19 Jul 2023 23:49:17 +0000 (17:49 -0600)]
buildman: Move reconfigure code into its own function

Split this into its own function so reduce the size of run_commit().

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Convert config_out to string IO
Simon Glass [Wed, 19 Jul 2023 23:49:16 +0000 (17:49 -0600)]
buildman: Convert config_out to string IO

This is probably a little more efficient and it allows passing the object
to another function to write data. Convert config_out to use a string I/O
device.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move more things into _build_args()
Simon Glass [Wed, 19 Jul 2023 23:49:15 +0000 (17:49 -0600)]
buildman: Move more things into _build_args()

Move more of the argument-building code into this function. Fix a missing
assignment for out_rel_dir too.

Rename the function since it now builds all the arguments.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Move setting of toolchain arguments to _build_args()
Simon Glass [Wed, 19 Jul 2023 23:49:14 +0000 (17:49 -0600)]
buildman: Move setting of toolchain arguments to _build_args()

Move a few more pieces to this new function.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Start a function to set up the make arguments
Simon Glass [Wed, 19 Jul 2023 23:49:13 +0000 (17:49 -0600)]
buildman: Start a function to set up the make arguments

Move some of this code into a new funciion, to help reduce the size of the
run_commits() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Drop unnecessary assignment of config_out
Simon Glass [Wed, 19 Jul 2023 23:49:12 +0000 (17:49 -0600)]
buildman: Drop unnecessary assignment of config_out

This is already set up earlier in the function, so drop the extra
assignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Correct invalid use of out_dir variable
Simon Glass [Wed, 19 Jul 2023 23:49:11 +0000 (17:49 -0600)]
buildman: Correct invalid use of out_dir variable

This variable has a different meaning in the outer scope. Use a different
name to avoid confusion, or bugs.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Export _get_output_dir() to avoid warnings
Simon Glass [Wed, 19 Jul 2023 23:49:10 +0000 (17:49 -0600)]
buildman: Export _get_output_dir() to avoid warnings

Make this a public memory since it is used outside the class.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Correct most pylint warnings in builderthread
Simon Glass [Wed, 19 Jul 2023 23:49:09 +0000 (17:49 -0600)]
buildman: Correct most pylint warnings in builderthread

Fix the easy warnings in this file.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Convert camel case in builderthread.py
Simon Glass [Wed, 19 Jul 2023 23:49:08 +0000 (17:49 -0600)]
buildman: Convert camel case in builderthread.py

Convert this file to snake case and update all files which use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Split parser creation in two
Simon Glass [Wed, 19 Jul 2023 23:49:07 +0000 (17:49 -0600)]
buildman: Split parser creation in two

Split this into two functions to avoid a warning about too many
statements.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 months agobuildman: Convert camel case in builder.py
Simon Glass [Wed, 19 Jul 2023 23:49:06 +0000 (17:49 -0600)]
buildman: Convert camel case in builder.py

Convert this file to snake case and update all files which use it.

Signed-off-by: Simon Glass <sjg@chromium.org>