platform/kernel/u-boot.git
19 months agobuildman: Support disabling LTO
Simon Glass [Tue, 21 Feb 2023 19:40:28 +0000 (12:40 -0700)]
buildman: Support disabling LTO

This cuts down build performance considerably and is not always needed,
when checking for build errors, etc.

Add a flag to disable it.

Signed-off-by: Simon Glass <sjg@chromium.org>
19 months agobuildman: Write out the build command used
Simon Glass [Tue, 21 Feb 2023 19:40:27 +0000 (12:40 -0700)]
buildman: Write out the build command used

It is sometimes useful to see the exact 'make' command used by buildman
for a commit. Add an output file for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
19 months agobuildman: Add a note about the out-env file
Simon Glass [Tue, 21 Feb 2023 19:40:26 +0000 (12:40 -0700)]
buildman: Add a note about the out-env file

This file holds the environment used when doing a build. Add a note
about it.

Signed-off-by: Simon Glass <sjg@chromium.org>
19 months agobinman: Use correct argument name in docstrings
Jonas Karlman [Sun, 19 Feb 2023 22:02:04 +0000 (22:02 +0000)]
binman: Use correct argument name in docstrings

Use correct argument name in docstrings.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agobinman: Fix spelling of nodes in code comments
Jonas Karlman [Sun, 19 Feb 2023 22:02:03 +0000 (22:02 +0000)]
binman: Fix spelling of nodes in code comments

Replace notes with nodes in code comments and docstrings.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agobinman: Remove redundant SetAllowFakeBlob from blob-ext entry
Jonas Karlman [Sun, 19 Feb 2023 22:02:03 +0000 (22:02 +0000)]
binman: Remove redundant SetAllowFakeBlob from blob-ext entry

Entry_blob_ext contains an implementation of SetAllowFakeBlob that is
identical to the one in the base Entry class, remove it.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agobinman: Support marking FMAP areas as preserved
Simon Glass [Mon, 13 Feb 2023 00:11:15 +0000 (17:11 -0700)]
binman: Support marking FMAP areas as preserved

Add an entry flag called 'preserve' to indicate that an entry should be
preserved by firmware updates. Propagate this to FMAP too.

Signed-off-by: Simon Glass <sjg@chromium.org>
19 months agobinman: Avoid requiring a home directory on startup
Simon Glass [Fri, 10 Feb 2023 20:59:46 +0000 (13:59 -0700)]
binman: Avoid requiring a home directory on startup

This is needed to download tools, but we may not need to do this. At
present binman fails to start if HOME is not set.

Use the current directory as a default to avoid this.

Signed-off-by: Simon Glass <sjg@chromium.org>
19 months agoMerge tag 'next-20230307' of https://source.denx.de/u-boot/custodians/u-boot-video...
Tom Rini [Tue, 7 Mar 2023 17:54:01 +0000 (12:54 -0500)]
Merge tag 'next-20230307' of https://source.denx.de/u-boot/custodians/u-boot-video into next

 - video console refactoring and optimization
 - support for fonts wider than 1 byte
 - use named header for 8x16 font data
 - support multiple fonts configuration
 - move get_font_size() to truetype driver ops
 - support font size configuration at runtime
 - add 16x32 Terminus font from linux
 - add 12x22 Sun font from linux
 - add 12x22 console simple font test

19 months agoMerge branch '2023-03-06-assorted-platform-updates' into next
Tom Rini [Tue, 7 Mar 2023 15:42:22 +0000 (10:42 -0500)]
Merge branch '2023-03-06-assorted-platform-updates' into next

- semihosting updates for arm and riscv, assorted arm64 core updates,
  assorted ast2600 updates, remove some more unused code, some TI K3
  defconfig and DTS updates, uniphier DTS updates, mpc83xx Kconfig
  cleanup, re-add fttmr010 driver with an update to use DM.

19 months agovideo console: add 12x22 console simple font test
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:20 +0000 (13:21 +0300)]
video console: add 12x22 console simple font test

Tests fonts wider than a byte.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: sandbox: add 12x22 font defconfigs
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:19 +0000 (13:21 +0300)]
video console: sandbox: add 12x22 font defconfigs

Add 12x22 font in order to write a test for it.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: add 16x32 Terminus font from linux
Dzmitry Sankouski [Mon, 27 Feb 2023 17:37:08 +0000 (20:37 +0300)]
video console: add 16x32 Terminus font from linux

Modern mobile phones typically have high pixel density.
Bootmenu is hardly readable on those with 8x16 font.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: add 12x22 Sun font from linux
Dzmitry Sankouski [Mon, 27 Feb 2023 17:37:07 +0000 (20:37 +0300)]
video console: add 12x22 Sun font from linux

Modern mobile phones typically have high pixel density.
Bootmenu is hardly readable on those with 8x16 font.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: allow font size configuration at runtime
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:16 +0000 (13:21 +0300)]
video console: allow font size configuration at runtime

Allow font size configuration at runtime for console_simple.c
driver. This needed for unit testing different fonts.

Configuring is done by `font` command, also used for font
selection in true type console.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: move vidconsole_get_font_size() logic to driver ops
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:15 +0000 (13:21 +0300)]
video console: move vidconsole_get_font_size() logic to driver ops

Since multiple vidconsole drivers exists, vidconsole_get_font_size()
implementation cannot longer live in vidconsole_uclass.c file.

Move current vidconsole_get_font_size logic to truetype driver ops.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: implement multiple fonts configuration
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:14 +0000 (13:21 +0300)]
video console: implement multiple fonts configuration

This needed for unit testing different fonts.

Configured fonts are placed in an array of fonts.
First font is selected by default upon console probe.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[agust: fixed build error when bmp logo disabled]
Signed-off-by: Anatolij Gustschin <agust@denx.de>
19 months agovideo console: move 8x16 font data in named header
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:13 +0000 (13:21 +0300)]
video console: move 8x16 font data in named header

Consistent font data header names needed to add new
fonts.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: add support for fonts wider than 1 byte
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:12 +0000 (13:21 +0300)]
video console: add support for fonts wider than 1 byte

Devices with high ppi may benefit from wider fonts.

Current width implementation is limited by 1 byte, i.e. 8 bits.
New version iterates VIDEO_FONT_BYTE_WIDTH times, to process all
width bytes, thus allowing fonts wider than 1 byte.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agovideo console: refactoring and optimization
Dzmitry Sankouski [Tue, 7 Mar 2023 10:21:11 +0000 (13:21 +0300)]
video console: refactoring and optimization

- move common code to vidconsole_internal.h and console_core.c
- unite probe functions
- get rid of code duplications in switch across bpp values
- extract common pixel fill logic in two functions one per
horizontal and vertical filling
- rearrange statements in put_xy* methods in unified way
- replace types - uint*_t to u*

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
19 months agoriscv: semihosting: replace inline assembly with assembly file
Andre Przywara [Tue, 7 Feb 2023 15:21:05 +0000 (15:21 +0000)]
riscv: semihosting: replace inline assembly with assembly file

So far we used inline assembly to inject the actual instruction that
triggers the semihosting service. While this sounds elegant, as it's
really only about a few instructions, it has some serious downsides:
- We need some barriers in place to force the compiler to issue writes
  to a data structure before issuing the trap instruction.
- We need to convince the compiler to actually fill the structures that
  we use pointers to.
- We need a memory clobber to avoid the compiler caching the data in
  those structures, when semihosting writes data back.
- We need register arguments to make sure the function ID and the
  pointer land in the right registers.

This is all doable, but fragile and somewhat cumbersome. Since we now
have a separate function in an extra file anyway, we can do away with
all the magic and just write that in an actual assembler.
This is much more readable and robust.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
19 months agoarm: semihosting: replace inline assembly with assembly file
Andre Przywara [Tue, 7 Feb 2023 15:21:04 +0000 (15:21 +0000)]
arm: semihosting: replace inline assembly with assembly file

So far we used inline assembly to inject the actual instruction that
triggers the semihosting service. While this sounds elegant, as it's
really only about one instruction, it has some serious downsides:
- We need some barriers in place to force the compiler to issue writes
  to a data structure before issuing the trap instruction.
- We need to convince the compiler to actually fill the structures that
  we use pointers to.
- We need a memory clobber to avoid the compiler caching the data in
  those structures, when semihosting writes data back.
- We need register arguments to make sure the function ID and the
  pointer land in the right registers.

This is all doable, but fragile and somewhat cumbersome. Since we now
have a separate function in an extra file anyway, we can do away with
all the magic and just write that in an actual assembly file.
This is much more readable and robust.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
19 months agoam62a7: dts: Enable full 4GB LPDDR4
Devarsh Thakkar [Mon, 6 Feb 2023 11:34:51 +0000 (17:04 +0530)]
am62a7: dts: Enable full 4GB LPDDR4

AM62A7-SK board has 4GB LPDDR4 Micron MT53E2G32D4DE-046 AUT:B part
but only 2GB was enabled early.

Enable full 4GB memory by updating the latter 2GB memory region
which gets mapped to 0x0880000000 i.e. DDR16SS0_SDRAM as referred in
Table 2-1. AM62A Common SoC Memory of AM62Ax TRM [1].

[1] : https://www.ti.com/lit/zip/spruj16
Logs: https://gist.github.com/devarsht/e85b6af89c01ddadb3a62f3e5f196af8

Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
19 months agoARM: dts: uniphier: Sync DT with Linux v6.2
Kunihiko Hayashi [Tue, 28 Feb 2023 02:37:09 +0000 (11:37 +0900)]
ARM: dts: uniphier: Sync DT with Linux v6.2

Synchronize devicetree sources with Linux v6.2.

- Use GIC interrupt definitions
- Add reg properties in USB-glue and SoC-glue node
- Fix node names to follow the generic names list in DT specification
- Add L2 cache and AHCI nodes
- Update nand and pcie nodes
- And some trivial fixes

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Acked-by: Marek Vasut <marex@denx.de>
19 months agoARM: dts: uniphier: Switch USB node to the original
Kunihiko Hayashi [Tue, 28 Feb 2023 02:37:08 +0000 (11:37 +0900)]
ARM: dts: uniphier: Switch USB node to the original

UniPhier DT applies its own USB node for U-Boot due to the USB driver
constrains. After solving this issue, u-boot allows the original USB node.

After switching USB node, synchronization of USB node with Linux becomes
possible.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Acked-by: Marek Vasut <marex@denx.de>
19 months agopowerpc, mpc83xx: Remove CONFIG_ELBC_BRx_ORx
Christophe Leroy [Sun, 26 Feb 2023 09:44:09 +0000 (10:44 +0100)]
powerpc, mpc83xx: Remove CONFIG_ELBC_BRx_ORx

Commit fe7d654d04 ("mpc83xx: Migrate CONFIG_SYS_{BR, OR}*_PRELIM to
Kconfig") converted CONFIG_SYS_{BRx/ORx}_PRELIM to Kconfig by
implementing a fine-grained selection of every bit in Kconfig.

But commit c7fad78ec0 ("Convert CONFIG_SYS_BR0_PRELIM et al to
Kconfig") reworked it so that you now just have to provide the raw
value of each register in Kconfig. However, all fine-grained
Kconfig items remained allthough they are not used anymore.

Remove them all.

Fixes: c7fad78ec0 ("Convert CONFIG_SYS_BR0_PRELIM et al to Kconfig")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
19 months agoconfigs: j7200: Merge HS and non-HS defconfigs
Manorit Chawdhry [Fri, 24 Feb 2023 05:07:49 +0000 (10:37 +0530)]
configs: j7200: Merge HS and non-HS defconfigs

K3 devices have runtime type board detection. Make the default defconfig
include the secure configuration. Then remove the HS specific config.

Non-HS devices will continue to boot due to runtime device type detection.
If TI_SECURE_DEV_PKG is not set the build will emit warnings, for non-HS
devices these can be ignored.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
19 months agoconfigs: j721s2: merge HS and non-HS defconfigs
Manorit Chawdhry [Fri, 24 Feb 2023 05:07:48 +0000 (10:37 +0530)]
configs: j721s2: merge HS and non-HS defconfigs

K3 devices have runtime type board detection. Make the default defconfig
include the secure configuration. Then remove the HS specific config.

Non-HS devices will continue to boot due to runtime device type detection.
If TI_SECURE_DEV_PKG is not set the build will emit warnings, for non-HS
devices these can be ignored.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
19 months agommc: remove SDHCI SPEAR
Patrick Delaunay [Wed, 22 Feb 2023 19:19:59 +0000 (20:19 +0100)]
mmc: remove SDHCI SPEAR

As the file spear_sdhci.c file is already removed, delete the associated
configuration CONFIG_MMC_SDHCI_SPEAR.

Fixes: c942fc925e7dab ("mmc: spear: remove the entire spear_sdhci.c file")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
19 months agoARM: remove SPEAR entry in makefile
Patrick Delaunay [Wed, 22 Feb 2023 19:19:58 +0000 (20:19 +0100)]
ARM: remove SPEAR entry in makefile

As the lastest spear directories are removed, delete the associated entry
in Makefile.

Fixes: 570c3dcfc153 ("arm: Remove spear600 boards and the rest of SPEAr support")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
19 months agoclk: ast2600: Keep PLL power on
Dylan Hung [Tue, 21 Feb 2023 13:01:10 +0000 (21:01 +0800)]
clk: ast2600: Keep PLL power on

According to the PLL vendor, we should keep the PLL power on, so we
shouldn't toggle the power-down bit during PLL initialization.

Signed-off-by: Dylan Hung <dylan_hung@aspeedtech.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
19 months agoram: ast2600: Keep MPLL power on
Dylan Hung [Tue, 21 Feb 2023 13:01:09 +0000 (21:01 +0800)]
ram: ast2600: Keep MPLL power on

According to the PLL vendor, we should keep the PLL power on, so we
shouldn't toggle the power-down bit during PLL initialization.

Signed-off-by: Dylan Hung <dylan_hung@aspeedtech.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
19 months agoarm64: Reduce PT size estimation complexity
Marc Zyngier [Tue, 14 Feb 2023 13:38:14 +0000 (21:38 +0800)]
arm64: Reduce PT size estimation complexity

count_required_pts()'s complexity is high if mappings are not using the
largest possible block size (due to some other requirement such as tracking
dirty pages, for example).

Let's switch to a method that follows the pattern established with
the add_map() helper, and make it almost instantaneous instead of
taking a large amount of time if 2MB mappings are in use instead of
1GB.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fixup Pierre's commit. Rebase to the
  upstream ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: https://android.googlesource.com/platform/external/u-boot/+/5d756d147e31a1cdaaa261a50e526404ca5968f5
Link: https://android.googlesource.com/platform/external/u-boot/+/6be9330601d81545c7c941e3609f35bf68a09059
19 months agoarm64: Reduce add_map() complexity
Marc Zyngier [Tue, 14 Feb 2023 13:38:13 +0000 (21:38 +0800)]
arm64: Reduce add_map() complexity

In the add_map() function, for each level it populates, it iterates from
the root of the PT tree, making it ineficient if a mapping needs to occur
past level 1.

Instead, replace it with a recursive (and much simpler) algorithm
that keeps the complexity as low as possible. With this, mapping
512GB at level 2 goes from several seconds down to not measurable
on an A55 machine.

We keep the block mappings at level 1 for now though.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fixup Pierre's commit. Rebase to the
  upstream ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: https://android.googlesource.com/platform/external/u-boot/+/96ad729cf4cab53bdff8222bb3eb256f38b5c3a6
Link: https://android.googlesource.com/platform/external/u-boot/+/6be9330601d81545c7c941e3609f35bf68a09059
19 months agotimer: fttmr010: return a previously deleted driver now ported to DM
Sergei Antonov [Mon, 13 Feb 2023 17:34:36 +0000 (20:34 +0300)]
timer: fttmr010: return a previously deleted driver now ported to DM

The fttmr010 timer driver was deleted by
commit 29fc6f24926e ("ARM: remove a320evb board support")
The original source file was: arch/arm/cpu/arm920t/a320/timer.c

Return the driver to the codebase in a DM compatible form.
A platform using fttmr010 will be submitted later.

This hardware is described in the datasheet [1], starting from page 348.
According to the datasheet, there is a Revision Register at offset 0x3C,
which is not present in 'struct fttmr010'. Add it and debug() print
revision in probe function.

[1]
https://bitbucket.org/Kasreyn/mkrom-uc7112lx/src/master/documents/FIC8120_DS_v1.2.pdf

Signed-off-by: Sergei Antonov <saproj@gmail.com>
19 months agoconfigs: evb-ast2600: Enable configs to store env in SPI
Ryan Chen [Fri, 10 Feb 2023 07:41:53 +0000 (15:41 +0800)]
configs: evb-ast2600: Enable configs to store env in SPI

Enable defconfigs relevant for storing env on SPI flash.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
Reviewed-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
19 months agoarm64: Initialize TLB memory if CMO_BY_VA_ONLY
Pierre-Clément Tosi [Wed, 8 Feb 2023 20:54:28 +0000 (04:54 +0800)]
arm64: Initialize TLB memory if CMO_BY_VA_ONLY

Memory used to hold the page tables is allocated from the top of RAM
with no prior initialization and could therefore hold invalid data. As
invalidate_dcache_all() will be called before the MMU has been
initialized and as that function relies indirectly on the page tables
when using CMO_BY_VA_ONLY, these must be in a valid state from their
allocation.

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fix checkpatch warnings, and rebased
  to the upstream. ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: https://android.googlesource.com/platform/external/u-boot/+/e3ceef4230b772186c6853cace4a676a407e6ab7
19 months agoarm: cpu: Add optional CMOs by VA
Marc Zyngier [Wed, 8 Feb 2023 20:54:27 +0000 (04:54 +0800)]
arm: cpu: Add optional CMOs by VA

Exposing set/way cache maintenance to a virtual machine is unsafe, not
least because the instructions are not permission-checked but also
because they are not broadcast between CPUs. Consequently, KVM traps and
emulates such maintenance in the host kernel using by-VA operations and
looping over the stage-2 page-tables. However, when running under
protected KVM, these instructions are not able to be emulated and will
instead result in an exception being delivered to the guest.

Introduce CONFIG_CMO_BY_VA_ONLY so that virtual platforms can select
this option and perform by-VA cache maintenance instead of using the
set/way instructions.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Will Deacon <willdeacon@google.com>
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fixup Pierre's commit. And fix some
  checkpatch warnings. Rebased to upstream. ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: https://android.googlesource.com/platform/external/u-boot/+/db5507f47f4f57f766d52f753ff2cc761afc213b
Link: https://android.googlesource.com/platform/external/u-boot/+/2baf54e743380a1e4a6bc2dbdde020a2e783ff67
20 months agoMerge branch '2023-03-02-kconfig-and-CONFIG-cleanups' into next
Tom Rini [Fri, 3 Mar 2023 17:48:23 +0000 (12:48 -0500)]
Merge branch '2023-03-02-kconfig-and-CONFIG-cleanups' into next

- Partial merge of a series of mine to select some framework options
  that shouldn't be prompted for (and remove some unused code related to
  that), and a partial merge of a series from Simon to remove some dead
  code and address various CONFIG_IS_ENABLED/IS_ENABLED issues in code.

20 months agoMerge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next
Tom Rini [Fri, 3 Mar 2023 17:42:58 +0000 (12:42 -0500)]
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next

- MediaTek updates, correct logic on PHY selection for amlogic

20 months agocommand: Don't allow commands in SPL
Simon Glass [Wed, 22 Feb 2023 16:34:25 +0000 (09:34 -0700)]
command: Don't allow commands in SPL

At present we compile commands into U-Boot SPL even though they cannot
be used. This wastes space. Adjust the condition to avoid this.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agovenice: Simplify conditions for network init
Simon Glass [Wed, 22 Feb 2023 16:34:24 +0000 (09:34 -0700)]
venice: Simplify conditions for network init

The conditions in this code do not align when doing an SPL build with
split config. Use __maybe_unused to avoid needing to be so explicit.

Of course a better solution would be to refactor all of this to avoid
using #ifdef.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agopower: wandboard: Add a missing CONFIG
Simon Glass [Wed, 22 Feb 2023 16:34:23 +0000 (09:34 -0700)]
power: wandboard: Add a missing CONFIG

We should enable pmic in SPL since it is used.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agox86: coral: Add missing TPL options
Simon Glass [Wed, 22 Feb 2023 16:34:22 +0000 (09:34 -0700)]
x86: coral: Add missing TPL options

Some options should be enabled which are missing. Fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agodm: Add a TPL symbol for simple-bus
Simon Glass [Wed, 22 Feb 2023 16:34:21 +0000 (09:34 -0700)]
dm: Add a TPL symbol for simple-bus

This is used in some x86 code, so add a symbol for it.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agonet: Add an SPL config for atheros
Simon Glass [Wed, 22 Feb 2023 16:34:18 +0000 (09:34 -0700)]
net: Add an SPL config for atheros

Add a new SPL_PHY_ATHEROS to avoid a build error on am335x_evm with split
config.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
20 months agoimx: Use SATA instead of CMD_SATA
Simon Glass [Wed, 22 Feb 2023 16:34:17 +0000 (09:34 -0700)]
imx: Use SATA instead of CMD_SATA

This causes a build failure on mx6cuboxi with split config, since CMD_SATA
shows up as enabled in SPl (because there is no SPL_CMD_SATA).

The condition is wrong anyway, so change it to use SATA instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agofreescale: Drop old pre-DM_ETH code
Simon Glass [Wed, 22 Feb 2023 16:34:16 +0000 (09:34 -0700)]
freescale: Drop old pre-DM_ETH code

This is used by ls1021atwr_sdcard_ifc_SECURE_BOOT with split config, but
is not needed anymore, since Ethernet migration is complete. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoAdd VPL options for BLOBLIST
Simon Glass [Wed, 22 Feb 2023 16:34:14 +0000 (09:34 -0700)]
Add VPL options for BLOBLIST

We can use this feature in VPL, so add some options for it. Also fix a
typo in the SPL help while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agotest: Tidy up sandbox handling in test-main
Simon Glass [Wed, 22 Feb 2023 16:34:12 +0000 (09:34 -0700)]
test: Tidy up sandbox handling in test-main

This is pretty messy at present since it relies on a SPL_SANDBOX option
that does not exist. Use the normal options instead, so that it will work
with split config.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agolib: Add an SPL config for LIB_UUID
Simon Glass [Wed, 22 Feb 2023 16:34:11 +0000 (09:34 -0700)]
lib: Add an SPL config for LIB_UUID

This is selected by PARTITION_UUIDS which has a separate option for SPL.
Add an SPL option for LIB_UUID also, so that we can keep them consistent.

Also add one for PARTITION_TYPE_GUID to avoid a build error in part_efi.c
which wants to call a uuid function in SPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agosandbox: Tidy up I2C options
Simon Glass [Wed, 22 Feb 2023 16:34:06 +0000 (09:34 -0700)]
sandbox: Tidy up I2C options

At present we enable the sandbox I2C driver for all builds. Add a separate
Kconfig option to control this, so that it can be disabled in TPL, where
it is not needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
20 months agosandbox: Use the generic VPL option to enable VPL
Simon Glass [Wed, 22 Feb 2023 16:34:05 +0000 (09:34 -0700)]
sandbox: Use the generic VPL option to enable VPL

Avoid using CONFIG_SANDBOX_VPL since we have a generic option which works
just as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agosandbox: Tidy up RTC options
Simon Glass [Wed, 22 Feb 2023 16:34:04 +0000 (09:34 -0700)]
sandbox: Tidy up RTC options

At present we enable the sandbox RTC driver for all builds. Add a separate
Kconfig option to control this, so that it can be disabled in TPL, where
it is not needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agolib: Fix build condition for tiny-printf
Simon Glass [Wed, 22 Feb 2023 16:34:03 +0000 (09:34 -0700)]
lib: Fix build condition for tiny-printf

This should be checking for any SPL build. Drop the use of SPL_TPL_ since
it is not necessary and will not work with split config.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agolib: Add VPL options for SHA1 and SHA256
Simon Glass [Wed, 22 Feb 2023 16:34:01 +0000 (09:34 -0700)]
lib: Add VPL options for SHA1 and SHA256

Add these options so these algorithms can be used in VPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoenv: Allow VPL environment to be nowhere
Simon Glass [Wed, 22 Feb 2023 16:34:00 +0000 (09:34 -0700)]
env: Allow VPL environment to be nowhere

Add an option to put the VPL environment nowhere (not in storage).

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agobootstd: Correct 'VPL' typo
Simon Glass [Wed, 22 Feb 2023 16:33:58 +0000 (09:33 -0700)]
bootstd: Correct 'VPL' typo

Correct a 'VPL' typo in the Kconfig.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoevent: Add Kconfig options for SPL
Simon Glass [Wed, 22 Feb 2023 16:33:57 +0000 (09:33 -0700)]
event: Add Kconfig options for SPL

Add options to enable events in SPL. This is mostly so the code can be
excluded from SPL builds.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agosandbox: Expand size for VPL image
Simon Glass [Wed, 22 Feb 2023 16:33:56 +0000 (09:33 -0700)]
sandbox: Expand size for VPL image

Allow this to get larger to accommodate more test code with LTO disabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agolib: Add a Kconfig for SPL_BZIP2
Simon Glass [Wed, 22 Feb 2023 16:33:54 +0000 (09:33 -0700)]
lib: Add a Kconfig for SPL_BZIP2

This is implicitly used in the source and seems useful, so add it.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoCorrect SPL use of DM_RNG
Simon Glass [Wed, 22 Feb 2023 16:33:53 +0000 (09:33 -0700)]
Correct SPL use of DM_RNG

This converts 1 usage of this option to the non-SPL form, since there is
no SPL_DM_RNG defined in Kconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoboot: Add Kconfigs for BOOTMETH_VBE_REQUEST
Simon Glass [Wed, 22 Feb 2023 16:33:52 +0000 (09:33 -0700)]
boot: Add Kconfigs for BOOTMETH_VBE_REQUEST

Allow this to be enabled separately in U-Boot proper and in SPL, since
it is not needed in SPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoCorrect SPL uses of PHY_FIXED
Simon Glass [Wed, 22 Feb 2023 16:33:51 +0000 (09:33 -0700)]
Correct SPL uses of PHY_FIXED

This converts 3 usages of this option to the non-SPL form, since there is
no SPL_PHY_FIXED defined in Kconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agoCorrect SPL use of PG_WCOM_UBOOT_UPDATE_SUPPORTED
Simon Glass [Wed, 22 Feb 2023 16:33:50 +0000 (09:33 -0700)]
Correct SPL use of PG_WCOM_UBOOT_UPDATE_SUPPORTED

This converts 1 usage of this option to the non-SPL form, since there is
no SPL_PG_WCOM_UBOOT_UPDATE_SUPPORTED defined in Kconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
Aleksandar Gerasimovski <aleksandar.gerasimovski@hitachienergy.com>

20 months agoCorrect SPL uses of MULTIPLEXER
Simon Glass [Wed, 22 Feb 2023 16:33:49 +0000 (09:33 -0700)]
Correct SPL uses of MULTIPLEXER

This converts 3 usages of this option to the non-SPL form, since there is
no SPL_MULTIPLEXER defined in Kconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
20 months agoCorrect SPL uses of DISPLAY_AER_FULL
Simon Glass [Wed, 22 Feb 2023 16:33:48 +0000 (09:33 -0700)]
Correct SPL uses of DISPLAY_AER_FULL

This converts 2 usages of this option to the non-SPL form, since there is
no SPL_DISPLAY_AER_FULL defined in Kconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agobootstd: Disable QFW bootmeth in SPL
Simon Glass [Wed, 22 Feb 2023 16:33:46 +0000 (09:33 -0700)]
bootstd: Disable QFW bootmeth in SPL

Move this Makefile line into the non-SPL area so we don't have to repy
on the SPL_TPL_ macro.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agosh4: Drop unused twl6030 driver
Simon Glass [Wed, 22 Feb 2023 16:33:44 +0000 (09:33 -0700)]
sh4: Drop unused twl6030 driver

This is not used. Drop the driver and Kconfig option.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agomtd: Drop unused CONFIG_ONENAND_U_BOOT
Simon Glass [Wed, 22 Feb 2023 16:33:43 +0000 (09:33 -0700)]
mtd: Drop unused CONFIG_ONENAND_U_BOOT

This option does not exist, so the Makefile rule does nothing. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
20 months agomtd: Drop unused kb9202_nand driver
Simon Glass [Wed, 22 Feb 2023 16:33:42 +0000 (09:33 -0700)]
mtd: Drop unused kb9202_nand driver

This is not used since time out of mind.

Drop the driver and Kconfig option.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Michael Trimarchi <michael@amarulasolutions.com>
20 months agodt-bindings: usb: mtk-xhci: add support mt8195
Chunfeng Yun [Fri, 17 Feb 2023 09:04:12 +0000 (17:04 +0800)]
dt-bindings: usb: mtk-xhci: add support mt8195

Add a new compatible for mt8195 to add a workaround for hardware
issue.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
20 months agodt-bindings: phy-mtk-tphy: add support mt8195
Chunfeng Yun [Fri, 17 Feb 2023 09:04:11 +0000 (17:04 +0800)]
dt-bindings: phy-mtk-tphy: add support mt8195

Add a new compatible for mt8195 to add a workaround for hardware
issue.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
20 months agousb: xhci-mtk: modify the SOF/ITP interval for mt8195
Chunfeng Yun [Fri, 17 Feb 2023 09:04:10 +0000 (17:04 +0800)]
usb: xhci-mtk: modify the SOF/ITP interval for mt8195

There are 4 USB controllers on MT8195, the controllers (IP1~IP3,
exclude IP0) have a wrong default SOF/ITP interval which is
calculated from the frame counter clock 24Mhz by default, but
in fact, the frame counter clock is 48Mhz, so we shall set the
accurate interval according to 48Mhz for those controllers.

Note:
The first controller no need set it, but if set it, shall change
tphy's pll at the same time.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Reviewed-by: Marek Vasut <marex@denx.de>
20 months agophy: phy-mtk-tphy: add support mt8195
Chunfeng Yun [Fri, 17 Feb 2023 09:04:09 +0000 (17:04 +0800)]
phy: phy-mtk-tphy: add support mt8195

The T-PHY controller is designed to use use PLL integer mode, but
in fact use fractional mode for some ones on mt8195 by mistake,
this causes signal degradation (e.g. eye diagram test fail), fix
it by switching PLL to 26Mhz from default 48Mhz to improve signal
quality.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
20 months agophy: phy-mtk-tphy: remove macros to prepare bitfield value
Chunfeng Yun [Fri, 17 Feb 2023 09:04:08 +0000 (17:04 +0800)]
phy: phy-mtk-tphy: remove macros to prepare bitfield value

Prefer to make use of FIELD_PREP() macro to prepare bitfield value,
then no need local macros anymore.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
20 months agousb: dwc3-meson-g12a: Select PHY instead of imply PHY
Marek Vasut [Thu, 23 Feb 2023 16:32:43 +0000 (17:32 +0100)]
usb: dwc3-meson-g12a: Select PHY instead of imply PHY

Imply means you can turn off the option and expect things to work
- "it's a good idea to have X enabled" is when to use imply
- "you must have X for Y to work" is when to use select

Use "select" here.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
20 months agos5p: Remove empty arch_misc_init
Tom Rini [Thu, 16 Feb 2023 03:36:55 +0000 (22:36 -0500)]
s5p: Remove empty arch_misc_init

We don't need to provide an empty arch_misc_init function here, we can
just not enable the hook.

Cc: Stefan Bosch <stefan_b@posteo.net>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
20 months agomvebu: Drop empty arch_misc_init
Tom Rini [Thu, 16 Feb 2023 03:36:54 +0000 (22:36 -0500)]
mvebu: Drop empty arch_misc_init

If this hooks is needed later, it should be added and populated for
real.

Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
20 months agomvebe: Drop ARCH_MISC_INIT from alleycat 5
Tom Rini [Thu, 16 Feb 2023 03:36:53 +0000 (22:36 -0500)]
mvebe: Drop ARCH_MISC_INIT from alleycat 5

In this platform, arch_misc_init doesn't perform any real function. The
call to get_soc_type_rev has no lasting side effects.

Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
20 months agoimx9: Remove ARCH_MISC_INIT
Tom Rini [Thu, 16 Feb 2023 03:36:52 +0000 (22:36 -0500)]
imx9: Remove ARCH_MISC_INIT

We don't need an empty function, we can just not enable the hook we
don't use.

Cc: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
20 months agocommon: Make ARCH_EARLY_INIT_R be selected only
Tom Rini [Thu, 16 Feb 2023 03:36:51 +0000 (22:36 -0500)]
common: Make ARCH_EARLY_INIT_R be selected only

As platforms which require this hook need this hook enabled, in order to
function, or do not need this hook, it doesn't make sense to prompt the
user. As all platforms that need this hook now select the symbol, remove
the prompt text.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
20 months agoarm: rk3368: Select ARCH_EARLY_INIT_R when used
Tom Rini [Thu, 16 Feb 2023 03:36:50 +0000 (22:36 -0500)]
arm: rk3368: Select ARCH_EARLY_INIT_R when used

On the lion and evb-px5 platforms, we need this function, so select it.

Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Cc: Klaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
20 months agoarm: zynq: Move to select'ing ARCH_EARLY_INIT_R if we have FPGA
Tom Rini [Thu, 16 Feb 2023 03:36:49 +0000 (22:36 -0500)]
arm: zynq: Move to select'ing ARCH_EARLY_INIT_R if we have FPGA

The function arch_early_init_r only does anything on these platforms if
we have FPGA (or SPL and SPL_FPGA) enabled, so move the logic to select
based on that.

Cc: Michal Simek <michal.simek@amd.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
20 months agoarm: mvebu: Add select on ARCH_EARLY_INIT_R if ARM64
Tom Rini [Thu, 16 Feb 2023 03:36:48 +0000 (22:36 -0500)]
arm: mvebu: Add select on ARCH_EARLY_INIT_R if ARM64

We need to be calling arch_early_init_r() on 64bit mvebu platforms, so
move this to a select.

Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
20 months agocommon/Kconfig: Reword text for BOARD_TYPES
Tom Rini [Thu, 16 Feb 2023 03:36:47 +0000 (22:36 -0500)]
common/Kconfig: Reword text for BOARD_TYPES

While it is true that for some Samsung platforms, we call
get_board_type() the main usage of this CONFIG switch is to enable
board_types in global data, which is then used by various platforms.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
20 months agoMerge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-marvell into...
Tom Rini [Wed, 1 Mar 2023 16:00:22 +0000 (11:00 -0500)]
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-marvell into next

- mvebu: Various fixes in SPL / kwboot / kwbimage (Pali)

20 months agodoc/kwboot.1: Update example description
Pali Rohár [Thu, 26 Jan 2023 21:37:26 +0000 (22:37 +0100)]
doc/kwboot.1: Update example description

Mention fact about changing baudrate back when -B is used.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Define SPL memory maps
Pali Rohár [Fri, 3 Feb 2023 21:26:37 +0000 (22:26 +0100)]
arm: mvebu: Define SPL memory maps

In SPL are active memory maps set by the BootROM. Define them in cpu.h file
to the correct values. Some peripherals are not mapped at all.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Define env_sf_get_env_addr() also for Proper U-Boot
Pali Rohár [Fri, 3 Feb 2023 20:41:45 +0000 (21:41 +0100)]
arm: mvebu: Define env_sf_get_env_addr() also for Proper U-Boot

Proper U-Boot moves SPI0 CS0 Flash mapping from 0xD4000000 to 0xF4000000
and change its size from 64 MB to 8 MB. Definitions are already in
MBUS_SPI_BASE/MBUS_SPI_SIZE macros. So define these macros also for SPL
build, use them in env_sf_get_env_addr() function and move this function
from spl.c to cpu.c to be available in Proper U-Boot too.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Fix comment about CPU_ATTR_BOOTROM mapping
Pali Rohár [Fri, 3 Feb 2023 20:34:27 +0000 (21:34 +0100)]
arm: mvebu: Fix comment about CPU_ATTR_BOOTROM mapping

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Remove A39x relicts
Pali Rohár [Sun, 29 Jan 2023 18:09:02 +0000 (19:09 +0100)]
arm: mvebu: Remove A39x relicts

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: clearfog: Add defconfig for SATA booting
Pali Rohár [Sat, 21 Jan 2023 23:09:04 +0000 (00:09 +0100)]
arm: mvebu: clearfog: Add defconfig for SATA booting

This new clearfog_sata_defconfig file is copy of existing
clearfog_defconfig file and changed to instruct build system to
generate final kwbimage for SATA booting.

This change is more readable via git option --find-copies-harder.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: db-88f6820-amc: Add defconfig for NAND booting
Pali Rohár [Sat, 21 Jan 2023 20:42:08 +0000 (21:42 +0100)]
arm: mvebu: db-88f6820-amc: Add defconfig for NAND booting

This new db-88f6820-amc_nand_defconfig file is copy of existing
db-88f6820-amc_defconfig file and changed to instruct build system to
generate final kwbimage for NAND booting. It was done by adding options:

    CONFIG_MVEBU_SPL_BOOT_DEVICE_NAND=y
    CONFIG_MVEBU_SPL_NAND_BADBLK_LOCATION=0x00
    CONFIG_SYS_NAND_BLOCK_SIZE=0x40000
    CONFIG_SYS_NAND_PAGE_SIZE=0x1000

Board has Micron MT29F8G08ABACAWP chip which is SLC NAND with 4kB page size
and block size of 64 pages.

This change was only compile-tested and is useful for CI testing that
mkimage can generate valid kwbimage of NAND type.

This change is more readable via git option --find-copies-harder.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Fix description of MVEBU_SPL_BOOT_DEVICE_(SPI|MMC) options
Pali Rohár [Tue, 10 Jan 2023 22:13:01 +0000 (23:13 +0100)]
arm: mvebu: Fix description of MVEBU_SPL_BOOT_DEVICE_(SPI|MMC) options

MVEBU_SPL_BOOT_DEVICE_SPI is for NOR flash. Either serial or parallel. Not
for general serial/SPI devices. The correct name should be BOOT_DEVICE_NOR
but name SPI is already used in mkimage config format which we do not want
to change for compatibility reasons.

MVEBU_SPL_BOOT_DEVICE_MMC is for MMC and SD compatible devices. Not for
SDIO devices. In most cases used for eMMC or SD card.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Add support for generating PEX kwbimage
Pali Rohár [Tue, 10 Jan 2023 22:09:15 +0000 (23:09 +0100)]
arm: mvebu: Add support for generating PEX kwbimage

Add a new Kconfig option CONFIG_MVEBU_SPL_BOOT_DEVICE_PEX which instruct
make to generate kwbimage with PEX header. This image is used for booting
from PCI Express device which is in the Root Complex mode.

Support is very simple, SPL after finishes DDR training returns back to the
BootROM (via CONFIG_SPL_BOOTROM_SUPPORT option) and BootROM then start
executing U-Boot proper.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agoarm: mvebu: Add support for generating NAND kwbimage
Pali Rohár [Tue, 10 Jan 2023 21:55:21 +0000 (22:55 +0100)]
arm: mvebu: Add support for generating NAND kwbimage

Add a new Kconfig option CONFIG_MVEBU_SPL_BOOT_DEVICE_NAND which instruct
make to generate kwbimage with NAND header. This image is used for booting
from NAND flash (either SPI or parallel).

Support is very simple, SPL after finishes DDR training returns back to the
BootROM (via CONFIG_SPL_BOOTROM_SUPPORT option) and BootROM then loads and
executes U-Boot proper.

To generate correct kwbimage NAND header, it is required to set following
Kconfig options:

CONFIG_SYS_NAND_PAGE_SIZE
CONFIG_SYS_NAND_BLOCK_SIZE
CONFIG_MVEBU_SPL_NAND_BADBLK_LOCATION

They are used only by make / mkimage when generating final kwbimage.

CONFIG_MVEBU_SPL_NAND_BADBLK_LOCATION is a new mvebu specific Kconfig
option which is set into kwbimage NAND_BADBLK_LOCATION header field.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agotools: kwbimage: Add support for creating an image with no data
Pali Rohár [Sat, 21 Jan 2023 19:11:28 +0000 (20:11 +0100)]
tools: kwbimage: Add support for creating an image with no data

This change add support for mkimage's -s option to kwbimage format. It will
create an kwbimage with empty data part of image (data part would contain
only required 32-bit checksum). mkimage's -s option is indicated by skipcpy
flag and it is basically in conflict with mkimage's -d (datafile) option.

"Empty" kwbimage with no data can still contain headers. For example it can
contain binary executable header which is copied by BootROM into L2SRAM.
This is useful for example for small images which can do not require DDR
RAM and can be run in L2SRAM (which do not require any initialization).

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agotools: mkimage: Do not try to open datafile when it is skipped
Pali Rohár [Sat, 21 Jan 2023 19:09:26 +0000 (20:09 +0100)]
tools: mkimage: Do not try to open datafile when it is skipped

When mkimage was instructed to skip datafile via option -s then do not try
to validate or open datafile as it does not have to exist or to be
specified via -d option.

This change allows to use -s option for skipping datafile when -d option
for datafile was not specified.

Signed-off-by: Pali Rohár <pali@kernel.org>
20 months agotools: mkimage: Print human readable error when -d is not specified
Pali Rohár [Sun, 8 Jan 2023 22:28:39 +0000 (23:28 +0100)]
tools: mkimage: Print human readable error when -d is not specified

When asking mkimage to create a new image file and option -d is not
specified then mkimage show human unfriendly error message:

  mkimage: Can't open (null): Bad address

Without debugger it is hard to debug what is the issue. Function open() is
being called with file name set to NULL. So add a check for this and if it
happens then show human readable message that option -d was not specified.

Signed-off-by: Pali Rohár <pali@kernel.org>