platform/kernel/u-boot.git
2 years agovideo: Drop references to CONFIG_VIDEO et al
Simon Glass [Sun, 23 Jan 2022 14:04:08 +0000 (07:04 -0700)]
video: Drop references to CONFIG_VIDEO et al

Drop the Kconfigs which are not used and all references to them. In
particular, this drops CONFIG_VIDEO to avoid confusion and allow us to
eventually rename CONFIG_DM_VIDEO to CONFIG_VIDEO.

Also drop the prototype for video_get_info_str() which is no-longer used.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Jason Liu <jason.hui.liu@nxp.com>
2 years agovideo: Drop CONFIG_VIDEO_BMP_LOGO
Simon Glass [Sun, 23 Jan 2022 14:04:07 +0000 (07:04 -0700)]
video: Drop CONFIG_VIDEO_BMP_LOGO

This option is not implemented anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop video_fb header
Simon Glass [Sun, 23 Jan 2022 14:04:06 +0000 (07:04 -0700)]
video: Drop video_fb header

This is not used now. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: nexell: Drop unused and invalid code
Simon Glass [Sun, 23 Jan 2022 14:04:05 +0000 (07:04 -0700)]
video: nexell: Drop unused and invalid code

Unfortunately this driver uses the old video structure to store things.
This is not supported with driver model.

Drop the old code and comment out the other pieces, so the maintainer can
take a look.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: siemens: Drop unused video code
Simon Glass [Sun, 23 Jan 2022 14:04:04 +0000 (07:04 -0700)]
video: siemens: Drop unused video code

Drop this old code which is not built anymore, as it depends on
CONFIG_VIDEO which has been removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop cfg_console
Simon Glass [Sun, 23 Jan 2022 14:04:02 +0000 (07:04 -0700)]
video: Drop cfg_console

The non-driver model video support was removed two years ago. Drop this
driver, which is only used by nokia_rx51.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoMerge tag 'v2022.04-rc5' into next
Tom Rini [Mon, 28 Mar 2022 16:36:49 +0000 (12:36 -0400)]
Merge tag 'v2022.04-rc5' into next

Prepare v2022.04-rc5

2 years agoPrepare v2022.04-rc5
Tom Rini [Mon, 28 Mar 2022 14:14:51 +0000 (10:14 -0400)]
Prepare v2022.04-rc5

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 28 Mar 2022 14:01:11 +0000 (14:01 +0000)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-03-28-critical-fixes'
Tom Rini [Mon, 28 Mar 2022 13:56:05 +0000 (09:56 -0400)]
Merge branch '2022-03-28-critical-fixes'

- A zstd, two Apple M1 and an MXS NAND critical bugfix
- Clean up another file that wasn't being removed and update some
  external documentation links.

2 years agomtd: gpmi: fix the bch setting backward compatible issue
Han Xu [Fri, 25 Mar 2022 13:36:38 +0000 (08:36 -0500)]
mtd: gpmi: fix the bch setting backward compatible issue

Previous u-boot code changed the default bch setting behavior and caused
backward compatible issue. This fix choose the legacy bch geometry back
again as the default option. If the minimum ecc strength that NAND chips
required need to be chosen, it can be enabled by either adding DT flag
"fsl,use-minimum-ecc" or CONFIG_NAND_MXS_USE_MINIMUM_ECC in configs. The
unused flag "fsl,legacy-bch-geometry" get removed.

Fixes: 51cdf83eea (mtd: gpmi: provide the option to use legacy bch geometry)
Fixes: 616f03daba (mtd: gpmi: change the BCH layout setting for large oob NAND)
Tested-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Han Xu <han.xu@nxp.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2 years agoboot: image: fixup zstd decompression buffer initialization typo
Jérôme Carretero [Wed, 16 Mar 2022 19:35:36 +0000 (15:35 -0400)]
boot: image: fixup zstd decompression buffer initialization typo

The code was mistakenly initializing the input buffer twice.

Tested to be working on BeagleBone by adjusting CONFIG_SYS_BOOTM_LEN to
64MiB (probably works with less) and preparing uImage with:

 cat arch/arm/boot/Image \
  | zstd --ultra -22 --zstd=windowLog=22 \
  > linux.bin.zst

 mkimage -A arm -T kernel uImage -C zstd -d linux.bin.zst \
  -a 0x80008000 -e 0x80008000

Without the windowLog restriction, bootm fails with a zstd decompression
error 7 (window too large), which I haven't troubleshooted.

There should be a bit more documentation on the feature...

Reviewed-by: Simon Glass <sjg@chromium.org>
Fixes: 458b30af66c image: Update image_decomp() to avoid ifdefs

2 years agoFix URLs to old freescale git repos
Pali Rohár [Fri, 25 Mar 2022 09:51:46 +0000 (10:51 +0100)]
Fix URLs to old freescale git repos

Freescale git repos are now on source.codeaurora.org.

Signed-off-by: Pali Rohár <pali@kernel.org>
2 years agoMakefile: add drivers/video/u_boot_logo.S to clean
Heinrich Schuchardt [Sat, 19 Mar 2022 12:33:25 +0000 (13:33 +0100)]
Makefile: add drivers/video/u_boot_logo.S to clean

make sandbox_defconfig
make mrproper
make tests

fails with

../drivers/video/u_boot_logo.S: Assembler messages:
../drivers/video/u_boot_logo.S:5: Error: file not found: drivers/video/u_boot_logo.bmp

We have to delete the generated file.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoarm: apple: Fix mem layout
Mark Kettenis [Mon, 21 Mar 2022 21:41:18 +0000 (22:41 +0100)]
arm: apple: Fix mem layout

The current approach for setting the environment variables that
describe the memory layout runs the risk of overlapping with
reserved memory regions. Use the lmb code to derive the addresses
for these variables instead.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoarm: apple: Increase RTKit timeout
Hector Martin [Mon, 21 Mar 2022 21:36:05 +0000 (22:36 +0100)]
arm: apple: Increase RTKit timeout

The firmware on larger NVMe drives needs more than 100ms to come up.
Change the timeout to 1s.

Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoMerge tag 'efi-2022-04-rc5-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 27 Mar 2022 13:22:19 +0000 (09:22 -0400)]
Merge tag 'efi-2022-04-rc5-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-04-rc5-2

Documentation:

* man-page for the wdt command

UEFI:

* Unit test for boot manager

2 years agocmd: efidebug: simplify do_efi_boot_add()
Heinrich Schuchardt [Wed, 23 Mar 2022 19:26:25 +0000 (20:26 +0100)]
cmd: efidebug: simplify do_efi_boot_add()

When calling efi_dp_from_name() we are not interested in the device part.
Just pass NULL as an argument.

Suggested-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agotest: test UEFI boot manager
Heinrich Schuchardt [Thu, 3 Mar 2022 11:31:18 +0000 (12:31 +0100)]
test: test UEFI boot manager

Provide a unit test for

* efidebug boot add
* efidebug boot order
* bootefi bootmgr
* initrd via EFI_LOAD_FILE2_PROTOCOL

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: initrddump: drain input before prompt
Heinrich Schuchardt [Tue, 22 Mar 2022 17:20:07 +0000 (18:20 +0100)]
efi_loader: initrddump: drain input before prompt

Up to now the initrddump.efi application has drained the input after
showing the prompt. This works for humans but leads to problems when
automating testing. If the input is drained, this should be done before
showing the prompt.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: nocolor command line attr for initrddump.efi
Heinrich Schuchardt [Sun, 20 Mar 2022 08:21:57 +0000 (09:21 +0100)]
efi_loader: nocolor command line attr for initrddump.efi

initrddump.efi uses colored output and clear the screen. This is not
helpful for integration into Python tests. Allow specifying 'nocolor' in
the load option data to suppress color output and clearing the screen.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: typo devie-path
Heinrich Schuchardt [Mon, 21 Mar 2022 07:26:48 +0000 (08:26 +0100)]
efi_loader: typo devie-path

%s/devie-path/device-path/

Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: man-page for the wdt command
Heinrich Schuchardt [Fri, 25 Mar 2022 06:01:59 +0000 (07:01 +0100)]
doc: man-page for the wdt command

Describe the wdt command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-sunxi
Tom Rini [Sat, 26 Mar 2022 01:20:29 +0000 (21:20 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-sunxi

- Fix A20 GBit Ethernet operation
- Update board .dts files to provide correct RGMII PHY mode

2 years agosunxi: dts: Update RGMII phy-mode properties
Andre Przywara [Tue, 15 Mar 2022 23:20:54 +0000 (23:20 +0000)]
sunxi: dts: Update RGMII phy-mode properties

Commit f11513d99787 ("net: phy: realtek: Add tx/rx delay config for
8211e") made the Realtek PHY driver honour the phy-mode DT property,
to set up the proper delay scheme for the RX and TX lines. A similar
change in the kernel revealed that those properties were mostly wrong.
The kernel DTs got updated over the last few months, but we were missing
out on the U-Boot version.

Just sync in the phy-mode properties from the mainline kernel,
v5.17-rc7, to avoid the breaking DT sync that late in the cycle.

This fixes Ethernet operation on the affected boards.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
2 years agosunxi: Fix old GMAC pinmux setup
Andre Przywara [Tue, 15 Mar 2022 00:00:53 +0000 (00:00 +0000)]
sunxi: Fix old GMAC pinmux setup

Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()")
moved the call to eth_init_board() from s_init() into board_init_f().
This means it's now only called from the SPL, which makes sense for
most of the other moved low-level functions. However the GMAC pinmux and
clock setup in eth_init_board() was not happy about that, so it broke
the sun7i GMAC.

Since Ethernet is of no use in the SPL anyway, just move the call into
board_init(), which is only run in U-Boot proper.

This fixes Ethernet operation for the A20 SoCs, which broke in
v2022.04-rc1, with the above mentioned commit.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Tested-by: Petr Štetiar <ynezz@true.cz> [a20-olinuxino-lime2]
2 years agoMerge branch '2022-03-25-assorted-updates' into next
Tom Rini [Fri, 25 Mar 2022 23:18:30 +0000 (19:18 -0400)]
Merge branch '2022-03-25-assorted-updates' into next

- Assorted PCI cleanups
- Allow building with -Og
- ast2600 pwm support
- PFUZE100 bootcount driver

2 years agobootcount: Add pmic pfuze100 bootcount driver
Philip Oberfichtner [Fri, 18 Mar 2022 11:04:38 +0000 (12:04 +0100)]
bootcount: Add pmic pfuze100 bootcount driver

Use the MEMA - MEMD registers on the PFUZE100 as bootcount
registers.

Based on work from Heiko Schocher <hs@denx.de>.
Signed-off-by: Philip Oberfichtner <pro@denx.de>
2 years agopower: pfuze100: Add MEMx register definitions
Philip Oberfichtner [Fri, 18 Mar 2022 11:04:37 +0000 (12:04 +0100)]
power: pfuze100: Add MEMx register definitions

Add missing MEMA - MEMD register definitions for PFUZE100.

Based on work from Heiko Schocher <hs@denx.de>.
Signed-off-by: Philip Oberfichtner <pro@denx.de>
2 years agodisk: Add an option for partitions in SPL
Simon Glass [Fri, 11 Mar 2022 19:10:01 +0000 (12:10 -0700)]
disk: Add an option for partitions in SPL

In some cases we do not want to enable partition support in SPL. Add an
option to allow this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoARM: dts: ast2600: Add PWM to device tree
Billy Tsai [Tue, 8 Mar 2022 03:04:07 +0000 (11:04 +0800)]
ARM: dts: ast2600: Add PWM to device tree

Add the PWM node and enable it for AST2600 EVB

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2 years agopinctrl: Add the pinctrl setting for PWM.
Billy Tsai [Tue, 8 Mar 2022 03:04:06 +0000 (11:04 +0800)]
pinctrl: Add the pinctrl setting for PWM.

This patchs add the signal description array for PWM pinctrl settings.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2 years agopwm: Add Aspeed ast2600 PWM support
Billy Tsai [Tue, 8 Mar 2022 03:04:05 +0000 (11:04 +0800)]
pwm: Add Aspeed ast2600 PWM support

This patch add the support of PWM controller which can be found at aspeed
ast2600 soc. The pwm supoorts up to 16 channels and it's part function
of multi-function device "pwm-tach controller".

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2 years agopci: Remove duplicate PCI_CLASS_CODE_* and PCI_CLASS_SUB_CODE_* macros
Pali Rohár [Fri, 18 Feb 2022 12:16:19 +0000 (13:16 +0100)]
pci: Remove duplicate PCI_CLASS_CODE_* and PCI_CLASS_SUB_CODE_* macros

Macros PCI_CLASS_CODE_* and PCI_CLASS_SUB_CODE_* are unused and are
duplication of PCI_CLASS_* macros defined in pci_ids.h header file.
So remove them.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agosandbox: video: Replace PCI_CLASS_* macros by one from pci_ids.h
Pali Rohár [Fri, 18 Feb 2022 12:16:18 +0000 (13:16 +0100)]
sandbox: video: Replace PCI_CLASS_* macros by one from pci_ids.h

Replace old macros PCI_CLASS_CODE_COMM and PCI_CLASS_SUB_CODE_COMM_SERIAL
by new macros defined in pci_ids.h. Old macros would be deleted in followup
commit.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agopci: Add defines for normal and subtractive PCI bridges
Pali Rohár [Fri, 18 Feb 2022 12:18:40 +0000 (13:18 +0100)]
pci: Add defines for normal and subtractive PCI bridges

Add following two new PCI class codes defines into pci_ids.h include file:

  PCI_CLASS_BRIDGE_PCI_NORMAL
  PCI_CLASS_BRIDGE_PCI_SUBTRACTIVE

And use these defines in all U-Boot code for describing PCI class codes for
normal and subtractive PCI bridges.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoAdd option to use -Og
Sean Anderson [Tue, 22 Feb 2022 17:19:25 +0000 (12:19 -0500)]
Add option to use -Og

This adds support for using -Og when building U-Boot. According to the
gcc man page:

> -Og should be the optimization level of choice for the standard
> edit-compile-debug cycle, offering a reasonable level of optimization
> while maintaining fast compilation and a good debugging experience.

This optimization level is roughly -O1 minus a few additional
optimizations. It provides a noticably better debugging experience, with
many fewer variables <optimized out>.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoSplit CONFIG_CC_OPTIMIZE_FOR_SIZE into two configs
Sean Anderson [Tue, 22 Feb 2022 17:19:24 +0000 (12:19 -0500)]
Split CONFIG_CC_OPTIMIZE_FOR_SIZE into two configs

This adds a separate CONFIG_CC_OPTIMIZE_FOR_SPEED option in a choice,
in preparation for adding another optimization option. Also convert SH's
makefile to use this new option.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agodoc: update doc/sphinx/requirements.txt
Heinrich Schuchardt [Fri, 25 Mar 2022 12:40:54 +0000 (13:40 +0100)]
doc: update doc/sphinx/requirements.txt

Pin all dependencies as reported by 'pip freeze'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agoCI: Pin pylint version to 2.12.2
Tom Rini [Fri, 25 Mar 2022 12:19:09 +0000 (08:19 -0400)]
CI: Pin pylint version to 2.12.2

For consistency in runs, we need to always use the same pylint version.
Pin to 2.12.2 as this is what we have been using so far.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-03-25-Kconfig-migrations' into next
Tom Rini [Fri, 25 Mar 2022 12:02:04 +0000 (08:02 -0400)]
Merge branch '2022-03-25-Kconfig-migrations' into next

- Merge a number of Kconfig migration patches

2 years agoConvert CONFIG_BACKSIDE_L2_CACHE to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:32 +0000 (08:38 -0400)]
Convert CONFIG_BACKSIDE_L2_CACHE to Kconfig

This converts the following to Kconfig:
   CONFIG_BACKSIDE_L2_CACHE

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agovinco: Remove CONFIG_ATMEL_SPI0
Tom Rini [Fri, 18 Mar 2022 12:38:31 +0000 (08:38 -0400)]
vinco: Remove CONFIG_ATMEL_SPI0

This is not referenced anywhere, remove.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agolcd: Remove LCD_TEST_PATTERN code
Tom Rini [Fri, 18 Mar 2022 12:38:30 +0000 (08:38 -0400)]
lcd: Remove LCD_TEST_PATTERN code

This is a legacy driver and the value is set in board config headers
without a CONFIG prefix.  Remove the code.

Cc: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_LCD_INFO et al to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:29 +0000 (08:38 -0400)]
Convert CONFIG_LCD_INFO et al to Kconfig

This converts the following to Kconfig:
   CONFIG_LCD_INFO
   CONFIG_LCD_LOGO
   CONFIG_LCD_INFO_BELOW_LOGO
   CONFIG_LCD_IN_PSRAM

Cc: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_ATMEL_LCD et al to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:28 +0000 (08:38 -0400)]
Convert CONFIG_ATMEL_LCD et al to Kconfig

This converts the following to Kconfig:
   CONFIG_ATMEL_LCD
   CONFIG_ATMEL_LCD_BGR555
   CONFIG_ATMEL_LCD_RGB565
   CONFIG_GURNARD_SPLASH

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_MII_INIT to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:27 +0000 (08:38 -0400)]
Convert CONFIG_MII_INIT to Kconfig

This converts the following to Kconfig:
   CONFIG_MII_INIT

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_PHY_RESET_DELAY to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:26 +0000 (08:38 -0400)]
Convert CONFIG_PHY_RESET_DELAY to Kconfig

This converts the following to Kconfig:
   CONFIG_PHY_RESET_DELAY

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_RX_ETH_BUFFER to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:25 +0000 (08:38 -0400)]
Convert CONFIG_SYS_RX_ETH_BUFFER to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_RX_ETH_BUFFER

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_LPC32XX_ETH to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:24 +0000 (08:38 -0400)]
Convert CONFIG_LPC32XX_ETH to Kconfig

This converts the following to Kconfig:
   CONFIG_LPC32XX_ETH

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_TFTP_PORT to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:23 +0000 (08:38 -0400)]
Convert CONFIG_TFTP_PORT to Kconfig

This converts the following to Kconfig:
   CONFIG_TFTP_PORT

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_RMII to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:22 +0000 (08:38 -0400)]
Convert CONFIG_RMII to Kconfig

This converts the following to Kconfig:
   CONFIG_RMII

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FAULT_ECHO_LINK_DOWN to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:21 +0000 (08:38 -0400)]
Convert CONFIG_SYS_FAULT_ECHO_LINK_DOWN to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FAULT_ECHO_LINK_DOWN

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_RESET_PHY_R to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:20 +0000 (08:38 -0400)]
Convert CONFIG_RESET_PHY_R to Kconfig

This converts the following to Kconfig:
   CONFIG_RESET_PHY_R

Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_AT91_WANTS_COMMON_PHY to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:19 +0000 (08:38 -0400)]
Convert CONFIG_AT91_WANTS_COMMON_PHY to Kconfig

This converts the following to Kconfig:
   CONFIG_AT91_WANTS_COMMON_PHY

Cc: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_AT91_LED to Kconfig
Tom Rini [Fri, 18 Mar 2022 12:38:18 +0000 (08:38 -0400)]
Convert CONFIG_AT91_LED to Kconfig

This converts the following to Kconfig:
   CONFIG_AT91_LED

Cc: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-marvell
Tom Rini [Thu, 24 Mar 2022 20:21:33 +0000 (16:21 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-marvell

- a37xx: espressobin: Fix non-working SPI (Pali)

2 years agoarm: a37xx: espressobin: Fix non-working SPI
Pali Rohár [Wed, 23 Mar 2022 16:19:42 +0000 (17:19 +0100)]
arm: a37xx: espressobin: Fix non-working SPI

Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from
upstream Linux kernel") ported Linux's device-tree files for Armada 3720
SOCs. This broke SPI support on some Espressobin boards and results in
following U-Boot error:

  Loading Environment from SPIFlash... jedec_spi_nor flash@0: unrecognized JEDEC id bytes: f7, 30, 0b
  *** Warning - spi_flash_probe_bus_cs() failed, using default environment

Before that commit DT node for SPI was called 'spi-flash@0' and after
that commit it is called 'flash@0'. Before that commit 'spi-max-frequency'
was set to 50000000 and after it is 104000000.

Rename DT node 'spi-flash@0 in armada-3720-espressobin-u-boot.dtsi to
'flash@0' and set custom U-Boot 'spi-max-frequency' back to 50000000.

With this change SPI is working on Espressobin again and it is detected
with JEDEC ids ef, 60, 16 on our tested unit.

  Loading Environment from SPIFlash... SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB
  OK

Note that it is unknown why spi-max-frequency with value 104000000 does not
work in U-Boot as it works fine with Linux kernel. Also note that in
defconfig file configs/mvebu_espressobin-88f3720_defconfig is set option
CONFIG_SF_DEFAULT_SPEED=40000000 which is different value than in DT.

Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoMerge tag 'i2c-2022-04-rc5' of https://source.denx.de/u-boot/custodians/u-boot-i2c
Tom Rini [Wed, 23 Mar 2022 13:10:34 +0000 (09:10 -0400)]
Merge tag 'i2c-2022-04-rc5' of https://source.denx.de/u-boot/custodians/u-boot-i2c

i2c changes for fixes-for-2022.04

- atsha204a-i2c.c
  DTS and I2C fixes for Atmel ATSHA204 from Adrian

- i2c: fix always-true condition in i2c_probe_chip()
  from Nikita

- eeprom: Do not rewrite EEPROM I2C bus with DM I2C enabled
  from Marek

- clarify bootcount documentation fix from Michael

2 years agoarm: mvebu: dts: turris_mox: fix non-working USB port
Marek Behún [Tue, 22 Mar 2022 16:17:59 +0000 (17:17 +0100)]
arm: mvebu: dts: turris_mox: fix non-working USB port

Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from
upstream Linux kernel") ported Linux's device-tree files for Armada 3720
SOCs. This broke USB port on Turris MOX, because in Linux' DTS the bus
voltage supply is described as a `phy-supply` property of connector
node, a mechanism that is not supported in U-Boot yet.

For now, fix this by adding `vbus-supply` to usb3 node.

Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel")
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agobootcount: clarify documentation
Michael Opdenacker [Wed, 2 Mar 2022 15:56:02 +0000 (16:56 +0100)]
bootcount: clarify documentation

- Grammar fixes
- Clarify explanations

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 years agocmd: eeprom: Do not rewrite EEPROM I2C bus with DM I2C enabled
Marek Vasut [Wed, 16 Feb 2022 14:27:59 +0000 (15:27 +0100)]
cmd: eeprom: Do not rewrite EEPROM I2C bus with DM I2C enabled

With DM I2C, the EEPROM bus has been correctly configured in
eeprom_execute_command() already. Do not reconfigure it here
with hard-coded bus number again.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 years agoi2c: fix always-true condition in i2c_probe_chip()
Nikita Yushchenko [Tue, 15 Feb 2022 17:58:52 +0000 (20:58 +0300)]
i2c: fix always-true condition in i2c_probe_chip()

Per dm_i2c_ops.probe_chip documentation, i2c_probe_chip() shall fallback
to default probe method when .probe_chip() returns -ENOSYS.

Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 years agomisc: atsha204a: fix i2c address readout from DTS
Adrian Fiergolski [Tue, 11 Jan 2022 18:05:31 +0000 (19:05 +0100)]
misc: atsha204a: fix i2c address readout from DTS

This patch replaces use fdtdec_get_addr with simpler dev_read_addr().
fdtdec_get_addr doesn't work properly on ZynqMP-based (64bit) system. Although
not confirmed, it could be related to the fact, that quoting the documentation,
"This variant hard-codes the number of cells used to represent the address and
size based on sizeof(fdt_addr_t) and sizeof(fdt_size_t)".

Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
2 years agomisc: atsha204a: add delay after sending the message
Adrian Fiergolski [Tue, 11 Jan 2022 18:05:30 +0000 (19:05 +0100)]
misc: atsha204a: add delay after sending the message

Once request is sent, and before receiving a response, the delay is required.
This patch fixes missing delay for before first response try.

Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
2 years agomisc: atsha204a: return timeout from wakeup function
Adrian Fiergolski [Tue, 11 Jan 2022 18:05:29 +0000 (19:05 +0100)]
misc: atsha204a: return timeout from wakeup function

If the maximum number of wake-up attempts is exceeded, return -ETIMEDOUT.

Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
2 years agoMerge tag 'efi-2022-04-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 20 Mar 2022 19:14:59 +0000 (15:14 -0400)]
Merge tag 'efi-2022-04-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-04-rc5

Documentation:

* Fix documentation of FIP creation for Amlogic boards
* Update Nokia RX-51 QEMU documentation
* Add Raspberry Pi documentation

UEFI:

* Fix booting via short form device paths
* Support short form device paths in 'efidebug boot add'
* Fix ESP detection for capsule updates
* Allow ACPI table usage even if device-tree exists - ignore DT
* OP-TEE based GetVariable(): return attributes when buffer too small

2 years agoefi_loader: move dtbdump.c, initrddump.c to lib/efi_loader
Heinrich Schuchardt [Thu, 3 Mar 2022 07:13:53 +0000 (08:13 +0100)]
efi_loader: move dtbdump.c, initrddump.c to lib/efi_loader

The tools dtbdump.efi and initrddump.efi are useful for Python testing even
if CONFIG_EFI_SELFTEST=n.

Don't clear the screen as it is incompatible with Python testing.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: remove efi_disk_is_system_part()
Heinrich Schuchardt [Fri, 4 Mar 2022 23:36:50 +0000 (00:36 +0100)]
efi_loader: remove efi_disk_is_system_part()

The block IO protocol may be installed on any handle. We should make
no assumption about the structure the handle points to.

efi_disk_is_system_part() makes an illegal widening cast from a handle
to a struct efi_disk_obj. Remove the function.

Fixes: Fixes: 41fd506842c2 ("efi_loader: disk: add efi_disk_is_system_part()")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: export efi_system_partition_guid
Heinrich Schuchardt [Sat, 19 Mar 2022 06:04:03 +0000 (07:04 +0100)]
efi_loader: export efi_system_partition_guid

The efi_system_partition_guid is needed in multiple places. Export it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: use short-form DP for load options
Heinrich Schuchardt [Sat, 26 Feb 2022 11:10:10 +0000 (12:10 +0100)]
efi_loader: use short-form DP for load options

The GUID of partitions is sufficient for identification and will stay
constant in the lifetime of a boot option. The preceding path of the
device-path may change due to changes in the enumeration of devices.
Therefore it is preferable to use the short-form of device-paths in load
options. Adjust the 'efidebug boot add' command accordingly.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: support booting via short-form device-path
Heinrich Schuchardt [Sat, 26 Feb 2022 11:05:30 +0000 (12:05 +0100)]
efi_loader: support booting via short-form device-path

The boot manager must support loading from boot options using a short-form
device-path, e.g. one where the first element is a hard drive media path.

See '3.1.2 Load Options Processing' in UEFI specification version 2.9.

Fixes: 0e074d12393b ("efi_loader: carve out efi_load_image_from_file()")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: efi_dp_find_obj() add protocol check
Heinrich Schuchardt [Sat, 19 Mar 2022 05:35:43 +0000 (06:35 +0100)]
efi_loader: efi_dp_find_obj() add protocol check

Let function efi_dp_find_obj() additionally check if a given protocol is
installed on the handle relating to the device-path.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: fix efi_dp_find_obj()
Heinrich Schuchardt [Fri, 4 Mar 2022 07:20:00 +0000 (08:20 +0100)]
efi_loader: fix efi_dp_find_obj()

efi_dp_find_obj() should not return any handle with a partially matching
device path but the handle with the maximum matching device path.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: export efi_dp_shorten()
Heinrich Schuchardt [Sat, 26 Feb 2022 11:10:10 +0000 (12:10 +0100)]
efi_loader: export efi_dp_shorten()

Rename function shorten_path() to efi_dp_shorten() and export it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: Set variable attributes when EFI_BUFFER_TOO_SMALL is returned
Ilias Apalodimas [Wed, 16 Mar 2022 15:13:37 +0000 (17:13 +0200)]
efi_loader: Set variable attributes when EFI_BUFFER_TOO_SMALL is returned

Starting UEFI Spec 2.8 we must fill in the variable attributes when
GetVariable() returns EFI_BUFFER_TOO_SMALL and Attributes is non-NULL.

This code was written with 2.7 in mind so let's move the code around a
bit and fill in the attributes EFI_BUFFER_TOO_SMALL is returned

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: Ignore DT when ACPI is on
Alexander Graf [Sun, 27 Feb 2022 12:18:56 +0000 (13:18 +0100)]
efi_loader: Ignore DT when ACPI is on

For targets that enable ACPI, we should not pass Device Trees into
the payload. However, our distro boot logic always passes the builtin
DT as an argument.

To make it easy to use ACPI with distro boot, let's just ignore the DT
argument to bootefi when ACPI is enabled. That way, we can successfully
distro boot payloads on ACPI enabled targets.

Signed-off-by: Alexander Graf <agraf@csgraf.de>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: board: raspberrypi: Add documentation
Matthias Brugger [Mon, 14 Mar 2022 11:03:54 +0000 (12:03 +0100)]
doc: board: raspberrypi: Add documentation

Add documentation about the different configuration files for the
RaspberryPi board family.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: uefi: Fix reference to CONFIG_EFI_SECURE_BOOT
Jan Kiszka [Wed, 16 Mar 2022 11:12:16 +0000 (12:12 +0100)]
doc: uefi: Fix reference to CONFIG_EFI_SECURE_BOOT

There is no CONFIG_UEFI_SECURE_BOOT, and there was never any.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoNokia RX-51: Update documentation about QEMU
Pali Rohár [Tue, 8 Mar 2022 17:59:56 +0000 (18:59 +0100)]
Nokia RX-51: Update documentation about QEMU

Add section how to run U-Boot in n900 qemu machine.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: boards: amlogic: Add documentation on pre-generated FIP files
Neil Armstrong [Wed, 2 Mar 2022 09:42:22 +0000 (10:42 +0100)]
doc: boards: amlogic: Add documentation on pre-generated FIP files

It add documentation on licencing & provides links to the amlogic-boot-fip
pre-built files collections.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2 years agodoc: board: amlogic-p20x: fix FIP generation doc
Neil Armstrong [Wed, 2 Mar 2022 09:42:21 +0000 (10:42 +0100)]
doc: board: amlogic-p20x: fix FIP generation doc

The doc used GXL instructions, which couldn't work on GXBB SoCs.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2 years agotools: buildman: Fix doc path in warning message
Johannes Krottmayer [Tue, 1 Mar 2022 03:49:51 +0000 (04:49 +0100)]
tools: buildman: Fix doc path in warning message

Fix documentation path in deprecated warning message about device
driver.

Signed-off-by: Johannes Krottmayer <krjdev@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoMakefile: Fix doc path in warning message
Johannes Krottmayer [Tue, 1 Mar 2022 03:49:50 +0000 (04:49 +0100)]
Makefile: Fix doc path in warning message

Fix documentation path in warning message about deprecated device driver.

Signed-off-by: Johannes Krottmayer <krjdev@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoMerge tag 'dm-pull-18mar22' of https://source.denx.de/u-boot/custodians/u-boot-dm...
Tom Rini [Sat, 19 Mar 2022 13:09:58 +0000 (09:09 -0400)]
Merge tag 'dm-pull-18mar22' of https://source.denx.de/u-boot/custodians/u-boot-dm into next

binman FIT improvements
various minor sandbox improvements

2 years agobinman: Support splitting an ELF file into multiple nodes
Simon Glass [Sun, 6 Mar 2022 03:19:12 +0000 (20:19 -0700)]
binman: Support splitting an ELF file into multiple nodes

Some boards need to load an ELF file using the 'loadables' property, but
the file has segments at different memory addresses. This means that it
cannot be supplied as a flat binary.

Allow generating a separate node in the FIT for each segment in the ELF,
with a different load address for each.

Also add checks that the fit,xxx directives are valid.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Keep a separate list of entries for fit
Simon Glass [Sun, 6 Mar 2022 03:19:11 +0000 (20:19 -0700)]
binman: Keep a separate list of entries for fit

The current implementation sets up the FIT entries but then deletes the
'generator' ones so they don't appear in the final image.

This is a bit clumsy. We cannot build the image more than once, since the
generator entries are lost during the first build. Binman requires that
calling BuildSectionData() multiple times returns a valid result each
time.

Keep a separate, private list which includes the generator nodes and use
that where needed, to correct this problem. Ensure that the missing list
includes removed generator entries too.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Update fit to use node instead of subnode
Simon Glass [Sun, 6 Mar 2022 03:19:10 +0000 (20:19 -0700)]
binman: Update fit to use node instead of subnode

It doesn't make sense to use 'subnode' as a function parameter since it
is just a 'node' so far as the function is concerned. Update two functions
to use 'node' instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Add a consistent way to report errors with fit
Simon Glass [Sun, 6 Mar 2022 03:19:09 +0000 (20:19 -0700)]
binman: Add a consistent way to report errors with fit

Add a new function to handling reporting errors within a particular
subnode of the FIT description. This can be used to make the format of
these errors consistent.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Fix some pylint warnings in fit
Simon Glass [Sun, 6 Mar 2022 03:19:08 +0000 (20:19 -0700)]
binman: Fix some pylint warnings in fit

Some warnings have crept in, so fix those that are easy to fix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Update fit to move node reading into the ReadNode() method
Simon Glass [Sun, 6 Mar 2022 03:19:07 +0000 (20:19 -0700)]
binman: Update fit to move node reading into the ReadNode() method

This should not be done in the constructor. Move it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Read the fit entries only once
Simon Glass [Sun, 6 Mar 2022 03:19:06 +0000 (20:19 -0700)]
binman: Read the fit entries only once

At present the entries are read twice, once by the entry_Section class
and once by the FIT implementation. This is harmless but can be confusing
when debugging. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Allow mkimage to use a non-zero fake-blob size
Simon Glass [Sun, 6 Mar 2022 03:19:05 +0000 (20:19 -0700)]
binman: Allow mkimage to use a non-zero fake-blob size

Unfortunately mkimage gets upset with zero-sized files. Update the
ObtainContents() method to support specifying the size, if a fake blob is
created.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Make fake blobs zero-sized by default
Simon Glass [Sun, 6 Mar 2022 03:19:04 +0000 (20:19 -0700)]
binman: Make fake blobs zero-sized by default

On x86 devices having even a small amount of data can cause an overlap
between regions. For example, bayleybay complains when the intel-vga
region overlaps with u-boot-ucode:

   ImagePos    Offset      Size  Name
   <none>    00000000  00800000  main-section
   <none>     ff800000  00000080  intel-descriptor
   <none>     ff800400  00000080  intel-me
   <none>     fff00000  00098f24  u-boot-with-ucode-ptr
   <none>     fff98f24  00001aa0  u-boot-dtb-with-ucode
   <none>     fff9a9d0  0002a000  u-boot-ucode
   <none>     fffb0000  00000080  intel-vga
   ...

It is safer to use an empty file in most cases. Add an option to set the
size for those uses that need it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Change how faked blobs are created
Simon Glass [Sun, 6 Mar 2022 03:19:03 +0000 (20:19 -0700)]
binman: Change how faked blobs are created

At present fake blobs are created but internally an empty blob is used.
Change it to use the contents of the faked file. Also return whether the
blob was faked, in case the caller needs to know that.

Add a TODO to put fake blobs in their own directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Rename tools parameter to btools
Simon Glass [Sun, 6 Mar 2022 03:19:02 +0000 (20:19 -0700)]
binman: Rename tools parameter to btools

This shadows the patman.tools library so rename it to avoid a pylint
warning.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Refactor fit to generate output at the end
Simon Glass [Sun, 6 Mar 2022 03:19:01 +0000 (20:19 -0700)]
binman: Refactor fit to generate output at the end

At present the fit implementation creates the output tree while
scanning the FIT description. Then it updates the tree later when the
data is known.

This works, but is a bit confusing, since it requires mixing the scanning
code with the generation code, with a fix-up step at the end.

It is actually possible to do this in two phases, one to scan everything
and the other to generate the FIT. Thus the FIT is generated in one pass,
when everything is known.

Update the code accordingly. The only functional change is that the 'data'
property for each node are now last instead of first, which is really a
more natural position. Update the affected test to deal with this.

One wrinkle is that the calculated properties (image-pos, size and offset)
are now added before the FIT is generated. so we must filter these out
when copying properties from the binman description to the FIT.

Most of the change here is splitting out some of the code from the
ReadEntries() implementation into _BuildInput(). So despite the large
diff, most of the code is the same. It is not feasible to split this patch
up, so far as I can tell.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Rename ExpandEntries to gen_entries
Simon Glass [Sun, 6 Mar 2022 03:19:00 +0000 (20:19 -0700)]
binman: Rename ExpandEntries to gen_entries

Leave the 'expand' term for use by entry types which have an expanded
version of themselves. Rename this method to indicate that it generates
subentries.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Rename ExpandToLimit to extend_to_limit
Simon Glass [Sun, 6 Mar 2022 03:18:59 +0000 (20:18 -0700)]
binman: Rename ExpandToLimit to extend_to_limit

The word 'expand' is used for entries which generate subentries. It is
also used for entries that can have an '_expanded' version which is used
to break out its contents.

Rather than talking about expanding an entry's size, use the term
'extending'. It is slightly more precise and avoids the above conflicts.

This change renders the old 'expand-size' property invalid, so add an
error check for that.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2 years agobinman: Tweak collect_contents_to_file() and docs
Simon Glass [Sun, 6 Mar 2022 03:18:58 +0000 (20:18 -0700)]
binman: Tweak collect_contents_to_file() and docs

Update the return value of this function, fix the 'create' typo and
update the documentation for clarity.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Suggested-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>