]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
3 years agobootstd: Add a new bootmeth method to set the bootflow
Simon Glass [Tue, 17 Jan 2023 17:48:01 +0000 (10:48 -0700)] 
bootstd: Add a new bootmeth method to set the bootflow

Normally the bootmeth driver reads the bootflow from the bootdev, since
it knows the correct way to do it.

However it is easier for some bootdevs to handle this themselves. For
example, reading from SPI flash is quite different from other devices.

Add a way for the bootdev to pass a bootflow to the bootmeth, so that
this can be supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Move label parsing into its own function
Simon Glass [Tue, 17 Jan 2023 17:48:00 +0000 (10:48 -0700)] 
bootstd: Move label parsing into its own function

This is complicated enough to merit its own function, particularly as we
are about to add to it. Create a new label_to_uclass() function to decode
a label.

Also update the code to ignore an empty label or one consisting of just a
number.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Update docs on bootmeth_try_file() for sandbox
Simon Glass [Tue, 17 Jan 2023 17:47:59 +0000 (10:47 -0700)] 
bootstd: Update docs on bootmeth_try_file() for sandbox

Mention that this function is also used with a NULL block devices to
access files on the host, when using sandbox.

Update the comment on struct bootflow also.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Set the distro_bootpart env var with scripts
Simon Glass [Tue, 17 Jan 2023 17:47:58 +0000 (10:47 -0700)] 
bootstd: Set the distro_bootpart env var with scripts

This environment variable is supposed to be set so that the script knows
which partition holds the script. Set it before invoking the script.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Support reading the device tree with EFI
Simon Glass [Tue, 17 Jan 2023 17:47:57 +0000 (10:47 -0700)] 
bootstd: Support reading the device tree with EFI

With EFI booting the device tree is required but is not actually specified
in any way. The normal method is to use a fdtfile environment variable to
get the filename, then look for that file on the media.

Implement this in the bootmeth.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Include the device tree in the bootflow
Simon Glass [Tue, 17 Jan 2023 17:47:56 +0000 (10:47 -0700)] 
bootstd: Include the device tree in the bootflow

Some bootmeths provide a way to load a device tree as well as the base
OS image. Add a way to store this in the bootflow. Update the
'bootflow info' command to show this information.

Note that the device tree is not allocated, but instead is stored at
an address provided by an environment variable. This may need to be
adjusted at some point, but for now it works well and fits in with the
existing distro-boot scripts.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Allow reading an EFI file from the network
Simon Glass [Tue, 17 Jan 2023 17:47:55 +0000 (10:47 -0700)] 
bootstd: Allow reading an EFI file from the network

At present this bootmeth only supports reading from a filesystem. Add
support for reading from a network also, using DHCP with autoload.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Rename bootdev checkers
Simon Glass [Tue, 17 Jan 2023 17:47:54 +0000 (10:47 -0700)] 
bootstd: Rename bootdev checkers

These functions return 0 if the check passes, so the names are somewhat
confusing. Rename them.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoata: Don't try to use non-existent ports
Simon Glass [Tue, 17 Jan 2023 17:47:53 +0000 (10:47 -0700)] 
ata: Don't try to use non-existent ports

The controller indicates the number of ports but also has a port map
which specifies which ports are actually valid. Make use of this to
avoid trying to send commands to an invalid port.

This avoids a crash on some controllers.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add a virtio bootdev
Simon Glass [Tue, 17 Jan 2023 17:47:52 +0000 (10:47 -0700)] 
bootstd: Add a virtio bootdev

Add a bootdev for virtio so that these devices can be used with standard
boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovirtio: Add a block device
Simon Glass [Tue, 17 Jan 2023 17:47:51 +0000 (10:47 -0700)] 
virtio: Add a block device

The test code for virtio is fairly simplistic and does not actually create
a block device. Add a way to specify the device type in the device tree.
Add a block device so that we can do more testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovirtio: Avoid strange behaviour on removal
Simon Glass [Tue, 17 Jan 2023 17:47:50 +0000 (10:47 -0700)] 
virtio: Avoid strange behaviour on removal

This device does a check on removal which is better handled in the actual
test. Move it.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovirtio: Fix returning -ENODEV
Simon Glass [Tue, 17 Jan 2023 17:47:49 +0000 (10:47 -0700)] 
virtio: Fix returning -ENODEV

This has a special meaning in driver model. There is clearly a device, so
it does not make sense to return this error code. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovirtio: Avoid repeating a long expression
Simon Glass [Tue, 17 Jan 2023 17:47:48 +0000 (10:47 -0700)] 
virtio: Avoid repeating a long expression

Use a local variable to hold this name, to reduce the amount of code that
needs to be read.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add an NVMe bootdev
Simon Glass [Tue, 17 Jan 2023 17:47:47 +0000 (10:47 -0700)] 
bootstd: Add an NVMe bootdev

Add a bootdev for NVMe so that these devices can be used with standard
boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add an IDE bootdev
Simon Glass [Tue, 17 Jan 2023 17:47:46 +0000 (10:47 -0700)] 
bootstd: Add an IDE bootdev

Add a bootdev for IDE so that these devices can be used with standard
boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add a SCSI bootdev
Simon Glass [Tue, 17 Jan 2023 17:47:45 +0000 (10:47 -0700)] 
bootstd: Add a SCSI bootdev

Add a bootdev for SCSI so that these devices can be used with standard
boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoscsi: Remove all children of SCSI devices before rescanning
Simon Glass [Tue, 17 Jan 2023 17:47:44 +0000 (10:47 -0700)] 
scsi: Remove all children of SCSI devices before rescanning

At present this only unbinds block devices of a certain type. But SCSI
device can have different types of children, including bootdevs.

Unbind all children so tht everything is clean and ready for a new scan.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoscsi: Correct allocation of block-device name
Simon Glass [Tue, 17 Jan 2023 17:47:43 +0000 (10:47 -0700)] 
scsi: Correct allocation of block-device name

This should be allocated so that it does not go out of scope. Fix this and
set the log category while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Only scan bootable partitions
Simon Glass [Tue, 17 Jan 2023 17:47:42 +0000 (10:47 -0700)] 
bootstd: Only scan bootable partitions

At present all partitions are scanned, whether marked bootable or not.
Use only bootable partitions, defaulting to partition 1 if none is
found.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agopart: Add a function to find the first bootable partition
Simon Glass [Tue, 17 Jan 2023 17:47:41 +0000 (10:47 -0700)] 
part: Add a function to find the first bootable partition

If a disk has a bootable partition we are expected to use it to locate the
boot files. Add a function to find it.

To test this, update mmc1 to have two paritions, fixing up other tests
accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add a hunter for ethernet
Simon Glass [Tue, 17 Jan 2023 17:47:40 +0000 (10:47 -0700)] 
bootstd: Add a hunter for ethernet

Sometimes ethernet devices are attached to PCI. Since it is quick to scan,
add this into the ethernet hunter.

Run dhcp to establish the network connection. Drop this from the bootdev
since that is not needed now. Update a log message for clarity.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agonet: Add a function to run dhcp
Simon Glass [Tue, 17 Jan 2023 17:47:39 +0000 (10:47 -0700)] 
net: Add a function to run dhcp

At present this must be done by executing the command. Also it involves
fiddling with the environment to determine the correct autoload behaviour.

Ideally it should be possible to run network operations without even
having the command line present (CONFIG_CMDLINE).

For now, add a function to handle DHCP, so it can be called from a bootdev
more easily.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agobootstd: Add an MMC hunter
Simon Glass [Tue, 17 Jan 2023 17:47:38 +0000 (10:47 -0700)] 
bootstd: Add an MMC hunter

Add a hunter for MMC. This doesn't do anything at present, since MMC is
currently set up when U-Boot starts. If MMC moves to lazy init then we can
add a hunter function.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add a USB hunter
Simon Glass [Tue, 17 Jan 2023 17:47:37 +0000 (10:47 -0700)] 
bootstd: Add a USB hunter

Add a hunter for USB which enumerates the bus to find new bootdevs.

Update the tests and speed up bootdev_test_prio() while we are here, by
dropping the USB delays.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotest: Add a generic function to skip delays
Simon Glass [Tue, 17 Jan 2023 17:47:36 +0000 (10:47 -0700)] 
test: Add a generic function to skip delays

At present this feature is sandbox-specific. For running tests on boards,
we need a nop version. Add one.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: usb: Mark the device name as alloced when binding
Simon Glass [Tue, 17 Jan 2023 17:47:35 +0000 (10:47 -0700)] 
dm: usb: Mark the device name as alloced when binding

Since usb_find_and_bind_driver() allocates the device name it should tell
driver about that, to avoid memory leaks. Fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Support running bootdev hunters
Simon Glass [Tue, 17 Jan 2023 17:47:34 +0000 (10:47 -0700)] 
bootstd: Support running bootdev hunters

Add a way to run a bootdev hunter to find bootdevs of a certain type. Add
this to the 'bootdev hunt' command. Test for this are added in a later
patch, since a useful test needs some hunters to work with.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add the concept of a bootdev hunter
Simon Glass [Tue, 17 Jan 2023 17:47:33 +0000 (10:47 -0700)] 
bootstd: Add the concept of a bootdev hunter

Some bootdevs must be enumerated before they appear. For example, USB
bootdevs are not visible until USB is enumerated.

With standard boot this needs to happen automatically, since we only
want to enumerate a bus if it is needed.

Add a way to define bootdev 'hunters' which can be used to hunt for
bootdevs of a given type. Track which ones have been used and add a
command to list them.

Include a clang work-around which seems to be needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoefi: Improve logging in efi_disk
Simon Glass [Tue, 17 Jan 2023 17:47:32 +0000 (10:47 -0700)] 
efi: Improve logging in efi_disk

When this fails it can be time-consuming to debug. Add some debugging
to help with this. Also try to return error codes instead of just using
-1.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoevent: Correct duplicate log message in event_notify()
Simon Glass [Tue, 17 Jan 2023 17:47:31 +0000 (10:47 -0700)] 
event: Correct duplicate log message in event_notify()

Use a different one for each call.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agolib: Support printing an error string
Simon Glass [Tue, 17 Jan 2023 17:47:30 +0000 (10:47 -0700)] 
lib: Support printing an error string

It is often useful to show an error code to give the user a clue as to
what went wrong. When error strings are compiled into U-Boot it is
possible to show a message as well.

But at present it is not very convenient, since code must check if the
error strings are present, then obtain the error string and use it in
a printf() string.

Add a %dE option which shows an error code along with an error string,
if available. This makes it easy to show one or both.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agosandbox: Enable the Ethernet bootdev
Simon Glass [Tue, 17 Jan 2023 17:47:29 +0000 (10:47 -0700)] 
sandbox: Enable the Ethernet bootdev

This bootdev is disabled at present since it messes with the tests. Now
that there is a way to disable networking at runtime, enable the driver.
This allows running tests with it if necessary.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agosandbox: Allow ethernet bootdevs to be disabled for tests
Simon Glass [Tue, 17 Jan 2023 17:47:28 +0000 (10:47 -0700)] 
sandbox: Allow ethernet bootdevs to be disabled for tests

Most tests don't want these and can create a lot of noise. Add a way to
disable them. Use that in tests, with a flag provided to enable them for
tests that need this feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agosandbox: Allow ethernet to be disabled at runtime
Simon Glass [Tue, 17 Jan 2023 17:47:27 +0000 (10:47 -0700)] 
sandbox: Allow ethernet to be disabled at runtime

For bootstd tests it is seldom useful to have ethernet enabled. Add a way
to disable it, so that ethernet operations like tftpboot do nothing.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Add a default method to get bootflows
Simon Glass [Tue, 17 Jan 2023 17:47:26 +0000 (10:47 -0700)] 
bootstd: Add a default method to get bootflows

The code in these functions turns out to often be the same. Add a default
get_bootflow() function and allow the drivers to select it by setting
the method to NULL.

This saves a little code space.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: mmc: Use bootdev_setup_sibling_blk()
Simon Glass [Tue, 17 Jan 2023 17:47:25 +0000 (10:47 -0700)] 
dm: mmc: Use bootdev_setup_sibling_blk()

At present MMC uses the bootdev_setup_for_dev() function to set up the
bootdev. This is because MMC only has one block-device child, so does not
need to worry about naming of the bootdev.

However this inconsistency with other bootdevs that use block devices is a
bit annoying. The only real reason for it is to have a name like
'mmc0.bootdev' instead of 'mmc0.blk.bootdev'.

Update bootdev_setup_sibling_blk() to drop '.blk' from the name where it
appears, thus removing the only reason to use the bootdev_setup_for_dev().
Switch MMC over to the subling function.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoide: Drop non-DM code for BLK
Simon Glass [Tue, 17 Jan 2023 17:47:24 +0000 (10:47 -0700)] 
ide: Drop non-DM code for BLK

We require CONFIG_BLK to be enabled now, so this code is unused. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: test: Correct ordering of DM setup
Simon Glass [Tue, 17 Jan 2023 17:47:23 +0000 (10:47 -0700)] 
dm: test: Correct ordering of DM setup

We must call dm_scan_other() after devices from the device tree have been
created, since that function behaves differently if there is no bootstd
device.

Adjust the logic to achieve this.

Also fix the bootflow_system() test which was relying on this broken
behaviour.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: part: Update test to use mmc2
Simon Glass [Tue, 17 Jan 2023 17:47:22 +0000 (10:47 -0700)] 
dm: part: Update test to use mmc2

At present this test sets up a partition table on mmc1. But this is used
by the bootstd tests, so it is not possible to run those after this test
has run, without restarting the Python test harness.

This is inconvenient when running tests repeatedly with 'ut dm'. Move the
test to use mmc2, which is not used by anything.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovbe: sandbox: Drop VBE node in chosen
Simon Glass [Tue, 17 Jan 2023 17:47:21 +0000 (10:47 -0700)] 
vbe: sandbox: Drop VBE node in chosen

This is not needed anymore since VBE creates the node when it sets up the
OS requests. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovbe: Avoid a build failure when bloblist is not enabled
Simon Glass [Tue, 17 Jan 2023 17:47:20 +0000 (10:47 -0700)] 
vbe: Avoid a build failure when bloblist is not enabled

This needs to be able to work (at least partially) without the bloblist
active. Add a condition for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agosandbox: mmc: Start off with a zeroed file
Simon Glass [Tue, 17 Jan 2023 17:47:19 +0000 (10:47 -0700)] 
sandbox: mmc: Start off with a zeroed file

When running multiple tests the mmc emulator calls malloc() to obtain the
memory for its disk image. Since the memory is not cleared, it is possible
that it happens to contain a partition table.

The dm_test_part() test (for one) relies on mmc0 being empty on startup.
Zero the memory to ensure that it is.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotest: Drop duplicate restore of DM state
Simon Glass [Tue, 17 Jan 2023 17:47:18 +0000 (10:47 -0700)] 
test: Drop duplicate restore of DM state

This code is present twice. Fix it so that it is only executed once.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotest: Fix the help for the ut command
Simon Glass [Tue, 17 Jan 2023 17:47:17 +0000 (10:47 -0700)] 
test: Fix the help for the ut command

The font help has an incorrect newline. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: cdd964e3801 ("test: Tidy up help for ut command")
3 years agobootstd: Simplify locating existing bootdevs
Simon Glass [Tue, 17 Jan 2023 17:47:16 +0000 (10:47 -0700)] 
bootstd: Simplify locating existing bootdevs

There is no point in trying to match the alias order for bootdevs, since
build_order() either sorts them by priority, uses the boot_targets
environment variable or the bootdev-order property.

Just use the iterator instead, to simplify the code.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Remove special-case code for boot_targets
Simon Glass [Tue, 17 Jan 2023 17:47:15 +0000 (10:47 -0700)] 
bootstd: Remove special-case code for boot_targets

Rather than implement this as its own case in build_order(), process the
boot_targets environment variable in the bootstd_get_bootdev_order()
function. This allows build_order() to be simplified.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agolib: Add a function to split a string into substrings
Simon Glass [Tue, 17 Jan 2023 17:47:14 +0000 (10:47 -0700)] 
lib: Add a function to split a string into substrings

Some environment variables provide a space-separated list of strings. It
is easier to process these when they are broken out into an array of
strings.

Add a utility function to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: test: Correct assertion in dm_test_part()
Simon Glass [Tue, 17 Jan 2023 17:47:13 +0000 (10:47 -0700)] 
dm: test: Correct assertion in dm_test_part()

This obscures the line number. Update the test to avoid make sure that
the line which failed is displayed, so it is possible to diagnose the
failure.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: core: Support sorting devices with dm tree
Simon Glass [Tue, 17 Jan 2023 17:47:12 +0000 (10:47 -0700)] 
dm: core: Support sorting devices with dm tree

Add a -s flag to sort the top-level devices in order of uclass ID.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: core: Correct ordering of uclasses IDs
Simon Glass [Tue, 17 Jan 2023 17:47:11 +0000 (10:47 -0700)] 
dm: core: Correct ordering of uclasses IDs

A few of these are out of order. Fix them.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agovideo: sunxi: dw-hdmi: Read address from DT node
Jernej Skrabec [Mon, 28 Nov 2022 07:02:26 +0000 (01:02 -0600)] 
video: sunxi: dw-hdmi: Read address from DT node

Currently HDMI controller MMIO address is hardcoded. Change that so
address is read from DT node. That will make adding support for new
variants a bit easier.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
3 years agovideo: sunxi: dw-hdmi: Probe driver by compatible
Jernej Skrabec [Mon, 28 Nov 2022 07:02:25 +0000 (01:02 -0600)] 
video: sunxi: dw-hdmi: Probe driver by compatible

Currently the sunxi dw-hdmi driver is probed unconditionally,
even if there is no such device.

Switch the driver to probing via a compatible string. This brings many
benefits; the driver is only probed when needed, and now it can read the
DT node.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
3 years agoclk: sunxi: Add DE2 display-related clocks/resets
Samuel Holland [Mon, 28 Nov 2022 07:02:24 +0000 (01:02 -0600)] 
clk: sunxi: Add DE2 display-related clocks/resets

Add clock/reset definitions for display-related peripherals, including
the display engine, TCONs, and DSI and HDMI encoders, so those drivers
can be converted to DM clock consumers instead of directly manipulating
the CCU registers.

Signed-off-by: Samuel Holland <samuel@sholland.org>
3 years agopower: pmic: axp: Bind regulators from the DT
Samuel Holland [Sat, 21 Jan 2023 23:13:06 +0000 (17:13 -0600)] 
power: pmic: axp: Bind regulators from the DT

Now that a regulator driver exists for this PMIC, hook it up to the
device tree "regulators" subnodes.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agopower: regulator: Add a driver for AXP PMIC regulators
Samuel Holland [Sat, 21 Jan 2023 23:13:05 +0000 (17:13 -0600)] 
power: regulator: Add a driver for AXP PMIC regulators

This driver handles most voltage regulators found in X-Powers AXP PMICs.
It is based on, and intended to replace, the regulator driver in TF-A.

AXP PMIC regulators can be divided into 6 categories:
 - Switches without voltage control => fully supported.
 - Single linear range => fully supported.
 - Two linear ranges, "step" and "2 * step" => fully supported.
 - Two linear ranges, "step" and "5 * step" => only the first range is
   supported. No boards are known to use the second range.
 - Non-linear voltage values => fully supported.
 - LDOs shared with GPIO pins => not supported.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agopower: pmic: axp: Provide a variant ID in the driver data
Samuel Holland [Sat, 21 Jan 2023 23:13:04 +0000 (17:13 -0600)] 
power: pmic: axp: Provide a variant ID in the driver data

Subordinate regulator drivers can use this enumerated ID instead of
matching the compatible string again.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agosunxi: eMMC: support TOC0 on boot partitions
Andre Przywara [Fri, 25 Nov 2022 01:38:06 +0000 (01:38 +0000)] 
sunxi: eMMC: support TOC0 on boot partitions

To determine whether we have been booted from an eMMC boot partition, we
replay some of the checks that the BROM must have done to successfully
load the SPL. This involves a checksum check, which currently relies on
the SPL being wrapped in an "eGON" header.

If a board has secure boot enabled, the BROM will only accept the "TOC0"
format, which is internally very different, but uses the same
checksumming algorithm. Actually the only difference for calculating the
checksum is that the size of the SPL is stored at a different offset.

Do a header check to determine whether we deal with an eGON or TOC0
format, then set the SPL size accordingly. The rest of the code is
unchanged.

This fixes booting from an eMMC boot partition on devices with secure
boot enabled, like the Remix Mini PC.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: remove CONFIG_MMC?_CD_PIN
Andre Przywara [Wed, 13 Jul 2022 16:21:45 +0000 (17:21 +0100)] 
sunxi: remove CONFIG_MMC?_CD_PIN

For legacy reasons we were defining the card detect GPIO for all sunxi
boards in each board's defconfig.
There is actually no need for a card-detect check in the SPL code (which
consequently has been removed already), and also in U-Boot proper we
have DM code to query the CD GPIO name from the device tree.

That means we don't have any user of that information left, so can
remove the definitions from the defconfigs.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: mmc: group non-DM specific functions
Andre Przywara [Wed, 13 Jul 2022 16:21:44 +0000 (17:21 +0100)] 
sunxi: mmc: group non-DM specific functions

As the SPL code for sunxi boards does not use the driver model, we have
two mmc_ops structures, one for DM, one for non-DM. The actual hardware
access code is shared, with the respective callback functions using that
common code.

To make this more obvious and easier to read, reorder the functions to
group them: we first have the common code, then the non-DM bits, and
the proper DM implementation at the end.
Also document this structure in the comment at the beginning of the file.

No functional change intended.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: mmc: ignore card detect in SPL
Andre Przywara [Wed, 13 Jul 2022 16:21:43 +0000 (17:21 +0100)] 
sunxi: mmc: ignore card detect in SPL

The sunxi MMC code does not use the DM in the SPL, as we don't have a
device tree available that early, also no space for it.
This also means we cannot access the card-detect GPIO information from
there, so we have Kconfig symbols called CONFIG_MMCx_CD_PIN, which each
board has to define. This is a burden, also requires extra GPIO code in
the SPL.
As the SPL is the natural successor of the BootROM (from which we are
loaded), we can actually ignore the CD pin completely, as this is what
the BootROM does as well: CD GPIOs are board specific, but the BootROM
is not, so accesses the MMC devices anyway.
Also, as we must have been loaded from an MMC device when reaching this
code, there must have been a card in the slot.

Remove the card detect code from the non-DM implementation of the sunxi
MMC driver, to get rid of this unneeded code.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: fel: drop redundant "control register" save/restore
Andre Przywara [Wed, 13 Jul 2022 15:27:58 +0000 (16:27 +0100)] 
sunxi: fel: drop redundant "control register" save/restore

For some reasons shrouded in mystery, the code saving the FEL state was
saving the SCTLR register twice, with the second copy trying to justify
itself by using its ancient "control register" alias name.

Drop the redundant second copy, both from the fel_stash data structure,
and also the code saving and restoring it.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: h616: lower SPL stack address to avoid BROM data
Andre Przywara [Wed, 13 Jul 2022 15:27:57 +0000 (16:27 +0100)] 
sunxi: h616: lower SPL stack address to avoid BROM data

When using the USB OTG FEL mode on the Allwinner H616, the BootROM
stores some data at the end of SRAM C. This is also the location where
we place the initial SPL stack, so it will overwrite this data.
We still need the BROM code after running the SPL, so should leave that
area alone.
Interestingly this does not seem to have an adverse effect, I guess on
the "way out" (when we return to FEL after the SPL has run), this data
is not needed by the BROM, for just the trailing end of the USB operation.
However this is still wrong, and we should not clobber BROM data.

Lower the SPL stack address to be situated right below the swap buffers
we use in sunxi-fel: that should be out of the way of everyone else.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: armv8: fel: load only 32-bit values
Andre Przywara [Wed, 13 Jul 2022 15:27:56 +0000 (16:27 +0100)] 
sunxi: armv8: fel: load only 32-bit values

Both the values and the MMIO addresses that we need during the 64-bit FEL
restore are smaller than 2^32, so we don't need to do any 64-bit loads.

Change the loads to only load 32 bits worth of data, that saves us some
bytes for storing the values.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: f1c100s: Drop no-MMC hack
Andre Przywara [Fri, 16 Dec 2022 23:55:17 +0000 (23:55 +0000)] 
sunxi: f1c100s: Drop no-MMC hack

When support for the Allwinner F1C100s SoC was originally introduced,
its DT lacked any MMC nodes, which upset our sunxi-u-boot.dtsi overlay,
when it tried to add an alias to the SD card.  To quickly fix this back
then, we guarded that alias with a preprocessor macro.

Now the F1C100s family has gained MMC nodes, so we don't need the
special treatment anymore. Just remove this guard.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
3 years agosunxi: f1c100s: re-enable SYSRESET
Andre Przywara [Fri, 16 Dec 2022 23:34:47 +0000 (23:34 +0000)] 
sunxi: f1c100s: re-enable SYSRESET

The SoC .dtsi originally submitted for the Allwinner F1C100s had the
wrong compatible string for the watchdog, which broke U-Boot's reset
functionality. To quickly fix this, we disable CONFIG_SYSRESET in
cfcf1952c11e6ffcbbf88 ("sunxi: f1c100s: Drop SYSRESET to enable reset
functionality"), so that U-Boot's hardcoded reset driver could take over.

After this was properly fixed in the devicetree, we reverted that patch
in 92373de041ea ("Revert "sunxi: f1c100s: Drop SYSRESET to enable reset
functionality"), however this line sneaked back in with d0ee7f295d74
("Convert CONFIG_SYS_PBSIZE to Kconfig"), so during a Kconfig update.

Remove this line (again), to use the proper reset driver.

Fixes: d0ee7f295d74 ("Convert CONFIG_SYS_PBSIZE to Kconfig")
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
3 years agoMerge tag 'efi-2023-04-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 20 Jan 2023 19:23:20 +0000 (14:23 -0500)] 
Merge tag 'efi-2023-04-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2023-04-rc1-2

Documentation

* man-pages for source, blkcache, bdinfo
* fix references to distro documentation

UEFI:

* allow clear screen by scrolling
* ensure that file ubootefi.var is created
* fix CapsuleMax variable reporting

Others:

* reduce verbosity of fat_read_file()

3 years agoMerge branch '2023-01-20-finish-CONFIG-migration-work'
Tom Rini [Fri, 20 Jan 2023 19:21:38 +0000 (14:21 -0500)] 
Merge branch '2023-01-20-finish-CONFIG-migration-work'

- Merge in the final batch of CONFIG to Kconfig/CFG migration work. This
  includes a fix for a number of ns16550 or similar UARTs due to a
  migration bug. We also pull in a revert for enabling CONFIG_VIDEO on
  tools-only_defconfig.

3 years agoRevert "config: tools only: add VIDEO to build bmp_logo"
Fabio Estevam [Thu, 19 Jan 2023 01:23:21 +0000 (22:23 -0300)] 
Revert "config: tools only: add VIDEO to build bmp_logo"

This reverts commit 1cfba53ca46cade2dbf4e067afc8c19e72909a4b.

Since commit 1cfba53ca46c ("config: tools only: add VIDEO to build
bmp_logo") the build of tools-only_defconfig fails:

| /bin/sh: line 1: tools/bmp_logo: No such file or directory

This has been noticed in OpenEmbedded and Debian [1].

Revert it for now.

[1] https://lists.denx.de/pipermail/u-boot/2023-January/504758.html

Signed-off-by: Fabio Estevam <festevam@denx.de>
3 years agoCI: Make check for new defined CONFIG symbols even more robust
Tom Rini [Tue, 10 Jan 2023 16:19:46 +0000 (11:19 -0500)] 
CI: Make check for new defined CONFIG symbols even more robust

Now that all remaining in-tree cases where we define or undef a CONFIG
symbol have been migrated to Kconfig or renamed to CFG we can make the
CI check more robust. We will exclude the doc, tools and arch/arm/dts
directories from this check as they are special cases. Further, we can
exclude the scripts/kconfig/lkc.h and include/linux/kconfig.h files as
the CONFIG values they define are special tooling cases and not real
symbols.

In the case of docs, the only places that currently fail this test are
old documentation that should be rewritten so that we can remove this
special case.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoglobal: Finish CONFIG -> CFG migration
Tom Rini [Tue, 10 Jan 2023 16:19:45 +0000 (11:19 -0500)] 
global: Finish CONFIG -> CFG migration

At this point, the remaining places where we have a symbol that is
defined as CONFIG_... are in fairly odd locations. While as much dead
code has been removed as possible, some of these locations are simply
less obvious at first. In other cases, this code is used, but was
defined in such a way as to have been missed by earlier checks.  Perform
a rename of all such remaining symbols to be CFG_... rather than
CONFIG_...

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agowatchdog: Clean up defaults for imx_watchdog / ulp_wdog
Tom Rini [Tue, 10 Jan 2023 16:19:44 +0000 (11:19 -0500)] 
watchdog: Clean up defaults for imx_watchdog / ulp_wdog

In imx_watchdog, clean up the comment to just note the range now, as we
do not need to set the default here as Kconfig does this for us. For
ulp_wdog, set the default value via Kconfig instead.

Cc: Stefan Roese <sr@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agousbtty: Remove default CONFIG_USBD_* values
Tom Rini [Tue, 10 Jan 2023 16:19:43 +0000 (11:19 -0500)] 
usbtty: Remove default CONFIG_USBD_* values

For this legacy driver, the only user sets these values in Kconfig, so
we can remove them from the header.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agonxp: Finish migration of SYS_FSL_SRDS_[12] to Kconfig
Tom Rini [Tue, 10 Jan 2023 16:19:42 +0000 (11:19 -0500)] 
nxp: Finish migration of SYS_FSL_SRDS_[12] to Kconfig

As this is used on both ARM and PowerPC platforms, this needs to be
listed in arch/Kconfig.nxp and match how they're currently used by
select'ing them under the required PowerPC ARCH_xxx options.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agonxp: Finish migration of SYS_FSL_IFC_BANK_COUNT to Kconfig
Tom Rini [Tue, 10 Jan 2023 16:19:41 +0000 (11:19 -0500)] 
nxp: Finish migration of SYS_FSL_IFC_BANK_COUNT to Kconfig

As this is used on both ARM and PowerPC platforms, this needs to be
asked in arch/Kconfig.nxp.  Set the PowerPC defaults based on
arch/powerpc/include/asm/config_mpc85xx.h and remove the default set in
drivers/mtd/nand/raw/fsl_ifc_nand.c

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agonet: phy: mv88e61xx: Finish migration of MV88E61XX_FIXED_PORTS
Tom Rini [Tue, 10 Jan 2023 16:19:40 +0000 (11:19 -0500)] 
net: phy: mv88e61xx: Finish migration of MV88E61XX_FIXED_PORTS

Set the default for MV88E61XX_FIXED_PORTS to 0x0 in Kconfig, and move
the comment from code to the help to explain what this does.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agofsl-layerscape: Rework usage of CONFIG_CLUSTER_CLK_FREQ
Tom Rini [Tue, 10 Jan 2023 16:19:39 +0000 (11:19 -0500)] 
fsl-layerscape: Rework usage of CONFIG_CLUSTER_CLK_FREQ

In the case where CONFIG_CLUSTER_CLK_FREQ is not defined, simply set
cluster_clk to get_board_sys_clk().

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agousb: musb: Rename CONFIG_USB_MUSB_TIMEOUT to MUSB_TIMEOUT
Tom Rini [Tue, 10 Jan 2023 16:19:38 +0000 (11:19 -0500)] 
usb: musb: Rename CONFIG_USB_MUSB_TIMEOUT to MUSB_TIMEOUT

This variable has never been configured to another value at present, and
was not converted to Kconfig. Opt instead to rename this to
MUSB_TIMEOUT.

Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Marek Vasut <marex@denx.de>
3 years agofpga: Migrate CONFIG_MAX_FPGA_DEVICES to Kconfig
Tom Rini [Tue, 10 Jan 2023 16:19:37 +0000 (11:19 -0500)] 
fpga: Migrate CONFIG_MAX_FPGA_DEVICES to Kconfig

This is always defined to 5, so use that as the default.

Cc: Michal Simek <michal.simek@amd.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
3 years agocommon/update: Finish Kconfig migration
Tom Rini [Tue, 10 Jan 2023 16:19:36 +0000 (11:19 -0500)] 
common/update: Finish Kconfig migration

We can enforce the dependencies of this module via Kconfig now, so do so
rather than with #error statements. Further, we can ensure that all
required values are set to their defaults in Kconfig, and in fact
already do so, so remove the tests here. The exception is
CONFIG_UPDATE_LOAD_ADDR which needed to be migrated to Kconfig in the
first place.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agospl: sata: Rework the loading case it not use IS_ENABLED(...)
Tom Rini [Tue, 10 Jan 2023 16:19:35 +0000 (11:19 -0500)] 
spl: sata: Rework the loading case it not use IS_ENABLED(...)

In this case, using IS_ENABLED(...) to attempt to load the image results
in harder to read and less useful code, along with having to define a
CONFIG value that would be unused. To maintain the current albeit
slightly odd behavior, maintain that if we have both SPL_FS_FAT and
SPL_SATA_RAW_U_BOOT_USE_SECTOR enabled, we use SPL_FS_FAT for the load.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoautoboot: Rework CONFIG_AUTOBOOT_STOP_STR_* usage
Tom Rini [Tue, 10 Jan 2023 16:19:34 +0000 (11:19 -0500)] 
autoboot: Rework CONFIG_AUTOBOOT_STOP_STR_* usage

In order to not define a CONFIG value when the
CONFIG_AUTOBOOT_STOP_STR_* functionality is not enabled, rework the
assignment of empty and unused (as the code will be discarded under if
0, in the end) values to be AUTOBOOT_STOP_STR_* instead of
CONFIG_AUTOBOOT_STOP_STR_*.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoarm: lib1funcs.S: Update compatibility with Linux comment slightly
Tom Rini [Tue, 10 Jan 2023 16:19:33 +0000 (11:19 -0500)] 
arm: lib1funcs.S: Update compatibility with Linux comment slightly

At this point, the Linux code for "lib1funcs" has changed rather
dramatically. While a resync would be beneficial, it's outside the scope
of what we need here.  Simply remove the define for CONFIG_AEABI and
tests for it.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agodm: ns16550: Restore how we define UART_REG
Tom Rini [Tue, 17 Jan 2023 22:10:50 +0000 (17:10 -0500)] 
dm: ns16550: Restore how we define UART_REG

Prior to commit 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to
Kconfig") we had defined CONFIG_SYS_NS16550_REG_SIZE to -1 with
DM_SERIAL such that we would then have a size 0 character array. This
resulted in functionally no padding. The confusion on my part came from
dealing with the constraints around platforms that do not use DM_SERIAL
in SPL/TPL. After Andre Przywara reported that sunxi was broken, I've
re-read the code and comments again and thought on this harder. What we
want I believe is what this patch does now.

If DM_SERIAL is defined for this stage, regardless of
CONFIG_SYS_NS16550_REG_SIZE then we will dynamically handle reg shifts
and 'struct ns16550' needs no padding (which is functionally what
unsigned char foo[0] provides). This is the same case as NS16550_DYNAMIC
and DEBUG_UART. Expand the existing comment here slightly.

Otherwise, we will have CONFIG_SYS_NS16550_REG_SIZE set to a non-zero
value, and handle padding within the struct.

Cc: Simon Glass <sjg@chromium.org>
Cc: Sergei Antonov <saproj@gmail.com>
Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Cc: Andre Przywara <andre.przywara@arm.com>
Fixes: 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to Kconfig")
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Tested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
3 years agoarm: Rework usage of CONFIG_ARMV[78]_SECURE_BASE in linker scripts
Tom Rini [Tue, 10 Jan 2023 16:19:31 +0000 (11:19 -0500)] 
arm: Rework usage of CONFIG_ARMV[78]_SECURE_BASE in linker scripts

In order to avoid defining CONFIG_ARMV[78_]SECURE_BASE as empty in the
linker scripts, if not already defined, add and use
__ARMV[78_]SECURE_BASE for when the base is not defined and we want the
linker scripts to continue.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoi2c: fsl_i2c: Rework usage of CONFIG_SYS_IMMR
Tom Rini [Tue, 10 Jan 2023 16:19:30 +0000 (11:19 -0500)] 
i2c: fsl_i2c: Rework usage of CONFIG_SYS_IMMR

This driver is used on both m68k, where CONFIG_SYS_IMMR is not used, and
PowerPC an ARM where it is. Abstract this to a new value rather than
re-defining a CONFIG symbol on m68k.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoarc: Migrate ARC_MMU_VER to Kconfig
Tom Rini [Tue, 10 Jan 2023 16:19:29 +0000 (11:19 -0500)] 
arc: Migrate ARC_MMU_VER to Kconfig

Move this value to Kconfig.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoglobal: Remove unused CONFIG defines
Tom Rini [Tue, 10 Jan 2023 16:19:28 +0000 (11:19 -0500)] 
global: Remove unused CONFIG defines

Remove some CONFIG symbols and related comments, etc, that are unused
within the code itself at this point.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoefi_loader: fix CapsuleMax variable reporting
Ilias Apalodimas [Fri, 20 Jan 2023 11:58:48 +0000 (13:58 +0200)] 
efi_loader: fix CapsuleMax variable reporting

Currently the code that adds the CapsuleMax variable is under a
Kconfig named 'EFI_HAVE_CAPSULE_UPDATE.  Git history only shows a
single occurrence of that.  The IS_ENABLED should be checking for
EFI_HAVE_CAPSULE_SUPPORT

Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: update the error message of TCG protocol installation
Ilias Apalodimas [Thu, 19 Jan 2023 14:29:15 +0000 (16:29 +0200)] 
efi_loader: update the error message of TCG protocol installation

"Unable to find TPMv2 device" doesn't explain much with regards to the
error origin. Update it to match what we have in the RNG protocol
installation.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoefi_loader: ensure that file ubootefi.var is created
Heinrich Schuchardt [Thu, 19 Jan 2023 13:49:33 +0000 (14:49 +0100)] 
efi_loader: ensure that file ubootefi.var is created

Currently file ubootefi.var is only created if the user sets a non-volatile
EFI variable. If the file is missing, a warning is written.

With the change PlatformLang is always persisted. So the file will exist on
second boot.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: Avoid overwriting previous outputs on console screen clearing
Jan Kiszka [Wed, 18 Jan 2023 21:24:59 +0000 (22:24 +0100)] 
efi_loader: Avoid overwriting previous outputs on console screen clearing

Before clearing the screen, ensure that no previous output of firmware
or UEFI programs will be overwritten on serial devices or other
streaming consoles. This helps generating complete boot logs.

Tested regarding multi-output against qemu-x86_defconfig. Still, there
were remaining concerns about side effects, so this is provided as an
opt-in feature.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoefi_loader: Set default console colors on efi_cout_clear_screen if needed
Jan Kiszka [Wed, 18 Jan 2023 21:25:00 +0000 (22:25 +0100)] 
efi_loader: Set default console colors on efi_cout_clear_screen if needed

Ensures a consistent background color of the whole screen for succeeding
outputs as both demanded by the spec and implemented in EDK2 as well.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: fix references to distro documentation
Dario Binacchi [Mon, 9 Jan 2023 11:52:40 +0000 (12:52 +0100)] 
doc: fix references to distro documentation

Commit 37c5195dfcd157 ("doc: Move distro boot doc to rST") renamed
doc/README.distro to doc/develop/distro.rst.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Soeren Moch <smoch@web.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
3 years agodoc: man-page for bdinfo
Heinrich Schuchardt [Sun, 15 Jan 2023 11:45:44 +0000 (12:45 +0100)] 
doc: man-page for bdinfo

Provide a man-page for the bdinfo command

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodoc: man-page for blkcache
Heinrich Schuchardt [Sun, 15 Jan 2023 10:35:55 +0000 (11:35 +0100)] 
doc: man-page for blkcache

Provide a man-page for the blkcache command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodoc: man-page for source command
Heinrich Schuchardt [Sat, 14 Jan 2023 19:15:15 +0000 (20:15 +0100)] 
doc: man-page for source command

Provide a man-page for the source command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
3 years agofs/fat: avoid noisy message fat_read_file()
Heinrich Schuchardt [Thu, 19 Jan 2023 14:37:40 +0000 (15:37 +0100)] 
fs/fat: avoid noisy message fat_read_file()

UEFI applications call file system functions to determine if a file exists.
The return codes are evaluated to show appropriate messages.
U-Boot's file system layer should not interfere with the output.

Rename file_fat_read_at() to fat_read_file() adjusting the parameter
sequence and names and eliminate the old wrapper function.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoMerge tag 'tpm-20012023' of https://source.denx.de/u-boot/custodians/u-boot-tpm
Tom Rini [Fri, 20 Jan 2023 15:36:00 +0000 (10:36 -0500)] 
Merge tag 'tpm-20012023' of https://source.denx.de/u-boot/custodians/u-boot-tpm

TPM fixes and state reporting

3 years agoARM: meson: add support for Odroid Go Ultra
Neil Armstrong [Thu, 19 Jan 2023 13:44:18 +0000 (14:44 +0100)] 
ARM: meson: add support for Odroid Go Ultra

This adds initial support for the Hardkernel Odroid Go Ultra.

The Odroid Go Ultra is a portable gaming device with the following
characteristics:
- Amlogic S922X SoC
- RK817 & RK818 PMICs
- 2GiB LPDDR4
- On board 16GiB eMMC
- Micro SD Card slot
- 5inch 854×480 MIPI-DSI TFT LCD
- Earphone stereo jack, 0.5Watt 8Ω Mono speaker
- Li-Polymer 3.7V/4000mAh Battery
- USB-A 2.0 Host Connector
- x16 GPIO Input Buttons
- 2x ADC Analog Joysticks
- USB-C Port for USB2 Device and Charging

The following are not yet handled:
- Battery RK818 Gauge and Charging
- 5inch 854×480 MIPI-DSI TFT LCD

Link: https://lore.kernel.org/r/20230119-u-boot-odroid-go-ultra-v1-2-f96bab9db396@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>