]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
3 years agomtd: nand: raw: convert nand_dt_init() to ofnode_xx() interface
Patrice Chotard [Mon, 13 Sep 2021 14:25:53 +0000 (16:25 +0200)]
mtd: nand: raw: convert nand_dt_init() to ofnode_xx() interface

nand_dt_init() is still using fdtdec_xx() interface.
If OF_LIVE flag is enabled, dt property can't be get anymore.
Updating all fdtdec_xx() interface to ofnode_xx() to solve this issue.

For doing this, node parameter type must be ofnode.

First idea was to convert "node" parameter to ofnode type inside
nand_dt_init() using offset_to_ofnode(node). But offset_to_ofnode()
is not bijective, in case OF_LIVE flag is enabled, it performs an assert().

So, this leads to update nand_chip struct flash_node field from int to
ofnode and to update all nand_dt_init() callers.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoi2c: mvtwsi: Add support for DM clocks and resets
Samuel Holland [Sun, 12 Sep 2021 15:21:39 +0000 (10:21 -0500)]
i2c: mvtwsi: Add support for DM clocks and resets

The controller may need to have clocks/resets enabled for it to work.
Add support for this. Since the clocks/resets are optional on some
platforms (per the device tree binding), do not prevent probing the
controller if they are missing.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
3 years agoi2c: rcar_i2c: Enable configuring SCL rise and fall times
Adam Ford [Tue, 24 Aug 2021 14:10:31 +0000 (09:10 -0500)]
i2c: rcar_i2c: Enable configuring SCL rise and fall times

The Linux i2c driver supports i2c-scl-rising-time-ns,
and i2c-scl-falling-time-ns, but U-Boot uses hard-coded values
for these values.

Update the calculation by fetching them from the device tree if
present and use the previous values as the default if they are
missing.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
3 years agoMerge tag 'dm-pull-next-27sep21' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Mon, 27 Sep 2021 15:09:23 +0000 (11:09 -0400)]
Merge tag 'dm-pull-next-27sep21' of https://source.denx.de/u-boot/custodians/u-boot-dm into next

Various of-platdata improvements, including CONFIG_OF_REAL

3 years agoMerge tag 'v2021.10-rc5' into next
Tom Rini [Mon, 27 Sep 2021 13:45:36 +0000 (09:45 -0400)]
Merge tag 'v2021.10-rc5' into next

Prepare v2021.10-rc5

3 years agoPrepare v2021.10-rc5
Tom Rini [Mon, 27 Sep 2021 13:34:20 +0000 (09:34 -0400)]
Prepare v2021.10-rc5

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-marvell
Tom Rini [Mon, 27 Sep 2021 11:41:03 +0000 (07:41 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-marvell

- turris_omnia: fix leaked mtd device (Marek)
- phy: marvell: cp110: Fix SATA invert polarity (Denis)

3 years agophy: marvell: cp110: Support SATA invert polarity
Denis Odintsov [Wed, 15 Sep 2021 13:45:31 +0000 (15:45 +0200)]
phy: marvell: cp110: Support SATA invert polarity

In commit b24bb99d cp110 configuration initially done in u-boot
was removed and delegated to atf firmware as smc call.
That commit didn't account for later introduced in d13b740c SATA invert polarity support.

This patch adds support of passing SATA invert polarity flags to atf
firmware during the smc call.

Signed-off-by: Denis Odintsov <shiva@mail.ru>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Rabeeh Khoury <rabeeh@solid-run.com>
Cc: Stefan Roese <sr@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_omnia: fix leaked mtd device
Marek Behún [Sat, 25 Sep 2021 00:49:18 +0000 (02:49 +0200)]
arm: mvebu: turris_omnia: fix leaked mtd device

After getting MTD device via get_mtd_device_nm(), we need to put it with
put_mtd_device(), otherwise we get

  Removing MTD device #0 (mx25l6405d) with use count 1

before booting kernel.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Pali Rohár <pali@kernel.org>
Tested-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoMerge tag 'efi-2021-10-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 26 Sep 2021 18:15:14 +0000 (14:15 -0400)]
Merge tag 'efi-2021-10-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2021-10-rc5

Documentation:

* add /config bindings to HTML documentation

UEFI

* Fix number_of_algorithms field in TCG EFI Protocol

3 years agofdt_support.h: Remove duplicated declarations
Bin Meng [Sat, 18 Sep 2021 09:37:23 +0000 (17:37 +0800)]
fdt_support.h: Remove duplicated declarations

There are two duplicated declarations for ft_cpu_setup() and
ft_pci_setup().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
3 years agodm: pci: Fix handling of errors when scanning device
Pali Rohár [Tue, 7 Sep 2021 16:07:08 +0000 (18:07 +0200)]
dm: pci: Fix handling of errors when scanning device

Some PCIe controller's read_config() method support indicating error
directly via return value, but some cannot distinguish all-ones (or
all-zeros) read response from an error.

The current code in pci_bind_bus_devices() interprets all-ones /
all-zeros in PCI_VENDOR_ID register as "nothing connected", and
continues the cycle, but an error returned via return value breaks the
cycle.

This is wrong for the PCIe controllers which return this error via
return value.

Handle all errors when reading PCI_VENDOR_ID the same way.

This fixes enumeration of PCI devices for example when there is a PCI
bridge connected behind another PCI bridge and not all ports are
connected to a device, and the controller (for example Aardvark)
translates the UR error (Unsupported Request) as -EOPNOTSUPP.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agosandbox: correct cpu nodes
Heinrich Schuchardt [Sat, 28 Aug 2021 09:42:08 +0000 (11:42 +0200)]
sandbox: correct cpu nodes

The cpu nodes in arch/sandbox/dts/test.dts should conform to the devicetree
specification:

* property device_type must be set to "cpu"
* the reg property must be provided
* the cpu nodes must have an address

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodm: gpio: Add of-platdata support
Simon Glass [Sat, 7 Aug 2021 13:24:12 +0000 (07:24 -0600)]
dm: gpio: Add of-platdata support

Add support for accessing GPIOs using of-plata. This uses the same
mechanism as for clocks, but allows use of the xlate() method so that
the driver can interpret the parameters.

Update the condition for GPIO_HOG so that it is not built into SPL,
since it needs SPL_OF_REAL which is not enabled in sandbox_spl.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoirq: Tidy up of-platdata irq support
Simon Glass [Sat, 7 Aug 2021 13:24:11 +0000 (07:24 -0600)]
irq: Tidy up of-platdata irq support

This function is available but not exported. More generally it does not
really work as intended.

Reimplement it and add a sandbox test too.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: doc: Add a note about of-platdata header files
Simon Glass [Sat, 7 Aug 2021 13:24:10 +0000 (07:24 -0600)]
dm: doc: Add a note about of-platdata header files

This error can be confusing so mention it specifically in the
documentation.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoclk: Rename clk_get_by_driver_info()
Simon Glass [Sat, 7 Aug 2021 13:24:09 +0000 (07:24 -0600)]
clk: Rename clk_get_by_driver_info()

This is actually a misnomer now, since the phandle info may contain
a driver_info index or a udevice index. Rename it to use the word
'phandle', which seems more accurate. Add a comment while we are here.

Also add a test for this function.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agodm: Add comments to dt-structs contents
Simon Glass [Sat, 7 Aug 2021 13:24:08 +0000 (07:24 -0600)]
dm: Add comments to dt-structs contents

These structs do not have comments at present. Add them.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agofdt: Update Makefile rules with the new OF_REAL Kconfig
Simon Glass [Sat, 7 Aug 2021 13:24:07 +0000 (07:24 -0600)]
fdt: Update Makefile rules with the new OF_REAL Kconfig

Simplify some of the Makefile rules using this Kconfig.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotreewide: Try to avoid the preprocessor with OF_REAL
Simon Glass [Sat, 7 Aug 2021 13:24:06 +0000 (07:24 -0600)]
treewide: Try to avoid the preprocessor with OF_REAL

Convert some of these occurences to C code, where it is easy to do. This
should help encourage this approach to be used in new code.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agommc: nds32: ftsdc010: Convert to livetree
Simon Glass [Sat, 7 Aug 2021 13:24:05 +0000 (07:24 -0600)]
mmc: nds32: ftsdc010: Convert to livetree

Use the livetree API for this driver.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Rick Chen <rick@andestech.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
3 years agotreewide: Use OF_REAL instead of !OF_PLATDATA
Simon Glass [Sat, 7 Aug 2021 13:24:04 +0000 (07:24 -0600)]
treewide: Use OF_REAL instead of !OF_PLATDATA

Now that we have a 'positive' Kconfig option, use this instead of the
negative one, which is harder to understand.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotreewide: Simply conditions with the new OF_REAL
Simon Glass [Sat, 7 Aug 2021 13:24:03 +0000 (07:24 -0600)]
treewide: Simply conditions with the new OF_REAL

Use this new Kconfig to simplify the compilation conditions where
appropriate.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agofdt: Create a new OF_REAL Kconfig
Simon Glass [Sat, 7 Aug 2021 13:24:02 +0000 (07:24 -0600)]
fdt: Create a new OF_REAL Kconfig

The condition to indicate whether there is a runtime devicetree available
is OF_CONTROL && !OF_PLATDATA. This is a bit unweidly and is repeated in
a lot of places.

Add a new OF_REAL Kconfig which provides this information directly.

Note: This is similar in effect to LIBFDT. We might consider dropping
LIBFDT and using this instead, but this is left for now as we also have
OF_LIBFDT_OVERLAY which it would not make sense to change.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agotreewide: fdt: Move fdt_get_config_... to ofnode_conf_read...
Simon Glass [Sat, 7 Aug 2021 13:24:01 +0000 (07:24 -0600)]
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...

The current API is outdated as it requires a devicetree pointer.

Move these functions to use the ofnode API and update this globally. Add
some tests while we are here.

Correct the call in exynos_dsim_config_parse_dt() which is obviously
wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoefi_loader: Fix spec ID event creation
Ruchika Gupta [Tue, 14 Sep 2021 06:44:31 +0000 (12:14 +0530)]
efi_loader: Fix spec ID event creation

TCG EFI Protocol Specification defines the number_of_algorithms
field in spec ID event to be equal to the number of active
algorithms supported by the TPM device. In current implementation,
this field is populated with the count of all algorithms supported
by the TPM which leads to incorrect spec ID event creation.

Similarly, the algorithm array in spec ID event should be a variable
length array with length being equal to the number_of_algorithms field.
In current implementation this is defined as a fixed length array
which has been fixed.

Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org>
CC: Masahisa Kojima <masahisa.kojima@linaro.org>
CC: Ilias Apalodimas <ilias.apalodimas@linaro.org>
CC: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agodoc: Add mention of the /config binding
Simon Glass [Sun, 19 Sep 2021 21:51:10 +0000 (15:51 -0600)]
doc: Add mention of the /config binding

The devicetree binding files are in their own directory and use a simple
text format. Add a link for the binding for the /config node, since it
is otherwise hard to find.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agovexpress_ca9x4: Add missing SYS_LOAD_ADDR
Tom Rini [Sat, 25 Sep 2021 02:12:35 +0000 (22:12 -0400)]
vexpress_ca9x4: Add missing SYS_LOAD_ADDR

- Add missing CONFIG_SYS_LOAD_ADDR based on other platforms
- Resync

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge branch '2021-09-24-assorted-updates' into next
Tom Rini [Sat, 25 Sep 2021 00:35:50 +0000 (20:35 -0400)]
Merge branch '2021-09-24-assorted-updates' into next

- A few minor updates

3 years agodrivers: tpm2: update reset gpio semantics
Jorge Ramirez-Ortiz [Thu, 3 Jun 2021 10:40:26 +0000 (12:40 +0200)]
drivers: tpm2: update reset gpio semantics

Use the more generic reset-gpios property name.

Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoAvoid polluting CONFIG_ namespace with board specific define.
Kristian Amlie [Fri, 10 Sep 2021 06:19:19 +0000 (08:19 +0200)]
Avoid polluting CONFIG_ namespace with board specific define.

Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agotools: Handle PAGER containing arguments
Paul Barker [Wed, 8 Sep 2021 11:38:02 +0000 (12:38 +0100)]
tools: Handle PAGER containing arguments

When printing full help output from a tool, we should be able to handle
a PAGER variable which includes arguments, e.g. PAGER='less -F'.

Signed-off-by: Paul Barker <paul.barker@sancloud.com>
3 years agotools: Refactor full help printing
Paul Barker [Wed, 8 Sep 2021 11:38:01 +0000 (12:38 +0100)]
tools: Refactor full help printing

Collect the code for printing the full help message of patman, buildman
and binman into a single function in patman.tools.

Signed-off-by: Paul Barker <paul.barker@sancloud.com>
3 years agoARM: vexpress_ca9x4: Reintroduce board in order to use with QEMU.
Kristian Amlie [Tue, 7 Sep 2021 06:37:51 +0000 (08:37 +0200)]
ARM: vexpress_ca9x4: Reintroduce board in order to use with QEMU.

vexpress_ca9x4 is seemingly the only board except for qemu_arm which
is able to run U-Boot correctly, using the `-M vexpress-a9` option to
QEMU. Building for qemu_arm and running qemu-system-arm with the `-M
virt` argument has a number of downsides, most importantly that it
only supports virtio storage drivers. This significantly reduces its
usefulness in testing memory card and Flash solutions, especially when
the tested images are from a third party source.

So therefore we reintroduce the vexpress_ca9x4 board in this commit,
with the explicit goal of using it with QEMU.

A number of differences to note from the original:

* Since the board was apparently unmaintained, I have now set myself
  as the maintainer.

* The board has been converted to use the driver model, which was the
  reason it was removed in the first place.

* The vexpress_ca15_tc2 and vexpress_ca5x2 boards, which were removed
  in the same commit, are not necessary for the QEMU use case, and
  have been omitted.

* An `mmc0` alias was introduced in the dts file. The mmc is not
  detected correctly without this, now that it's based on the device
  tree instead of the board's init function.

* A couple of other nodes were removed because they were problematic
  when trying to run the UEFI bootmgr. Once again, the primary use
  case here is QEMU, and these nodes are not needed for that to work.

* Unnecessary board init code has been removed, thanks to driver model
  and device tree.

* `CONFIG_OF_EMBED` has been enabled. I know this goes against
  recommended practice, but there doesn't seem to be any other way to
  pass the dtb to U-Boot in the QEMU scenario. Using the -dtb argument
  does not work, I suppose because U-Boot doesn't use the same
  mechanics as the kernel when it's booting.

* Load addresses have been changed to fit QEMU use case.

People wanting to get a more detailed, yet somewhat isolated, diff
between this and the original, can run this command:

  git diff c6c26a05b89f25a06e7562f8c2071b60fd0c9eac~1 -- \
      $( git diff-tree --diff-filter=A -r --name-only HEAD~1 HEAD)

(Make sure to either check out this commit first, or replace HEAD with
the commit ID of this commit)

Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
3 years agoarm: use CONFIG_SUPPORT_PASSING_ATAGS
Patrick Delaunay [Fri, 3 Sep 2021 08:24:39 +0000 (10:24 +0200)]
arm: use CONFIG_SUPPORT_PASSING_ATAGS

Simplify the bootm and the spl code by using the new config
CONFIG_SUPPORT_PASSING_ATAGS.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoMerge branch '2021-09-24-assorted-minor-updates'
Tom Rini [Fri, 24 Sep 2021 18:28:54 +0000 (14:28 -0400)]
Merge branch '2021-09-24-assorted-minor-updates'

- Assorted bugfixes, MAINTAINER updates and dead code removal

3 years agoarm: orion5x: edminiv2: change maintainer
Simon Guinot [Wed, 15 Sep 2021 13:01:51 +0000 (15:01 +0200)]
arm: orion5x: edminiv2: change maintainer

Since Albert Aribaud is not maintaining anymore the LaCie Ethernet Disk
mini V2 board, then I am taking over.

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agomtd: remove SPEAr flash driver st_smi
Patrick Delaunay [Wed, 22 Sep 2021 09:02:26 +0000 (11:02 +0200)]
mtd: remove SPEAr flash driver st_smi

Remove the driver st_smic.c used in SPEAr products and the associated
config CONFIG_ST_SMI; this driver is no more used in U-Boot after the
commit 570c3dcfc153 ("arm: Remove spear600 boards and the rest of SPEAr
support").

Fixes: 570c3dcfc153 ("arm: Remove spear600 boards and the rest of SPEAr support")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoTaking over responsibility for GE boards from Sebastian
Martyn Welch [Tue, 21 Sep 2021 16:35:06 +0000 (17:35 +0100)]
Taking over responsibility for GE boards from Sebastian

I am taking over responsibility for the GE board from Sebastian Reichel.
Updating the MAINTAINERS files to reflect this.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
3 years agoMAINTAINERS: remove SPEAR entry
Patrick Delaunay [Tue, 21 Sep 2021 16:18:51 +0000 (18:18 +0200)]
MAINTAINERS: remove SPEAR entry

As the lastest spear directories are removed, delete the associated entry
in the MAINTAINERS file:
- arch/arm/cpu/arm926ejs/spear/
- arch/arm/include/asm/arch-spear/

Fixes: 570c3dcfc153 ("arm: Remove spear600 boards and the rest of SPEAr support")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
3 years agofs: avoid superfluous messages
Heinrich Schuchardt [Mon, 20 Sep 2021 12:15:03 +0000 (14:15 +0200)]
fs: avoid superfluous messages

Output like the following is quite irritating:

    => bootefi hello
    Scanning disk mmc2.blk...
    No valid Btrfs found
    Bad magic number for SquashFS image.
    ** Unrecognized filesystem type **
    Scanning disk mmc1.blk...
    No valid Btrfs found
    Bad magic number for SquashFS image.
    ** Unrecognized filesystem type **
    Scanning disk mmc0.blk...
    No valid Btrfs found
    Bad magic number for SquashFS image.
    ** Unrecognized filesystem type **

Albeit a whole disk may be formatted with a filesystem in most cases
a partition table is used and the whole disk (partition number 0) doesn't
contain a filesytem. Some partitions may only contain a blob. Not seeing a
filesytem on the whole disk or on any partition is only worth a debug
message.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoscripts/mailmapper: enable running with Python 3
Heinrich Schuchardt [Thu, 16 Sep 2021 08:59:12 +0000 (10:59 +0200)]
scripts/mailmapper: enable running with Python 3

Our mailmapper script required Python 2 which is no longer maintained.
A main difference when converting to Python 3 is that byte strings are not
character strings. So add conversion and skip over conversion errors.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agotest/py: tpm2: Skip tpm pytest based on env variable
T Karthik Reddy [Fri, 23 Jul 2021 12:18:26 +0000 (06:18 -0600)]
test/py: tpm2: Skip tpm pytest based on env variable

Tpm test cases relies on tpm device setup. Provide an environment
variable "env__tpm_device_test_skip = True" to skip the test case
if tpm device is not present.
Only needed will have to add variable to the py-test framework.
Test runs successfully even this variable is absent.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoMerge branch '2021-09-24-arm64-optimized-str-funcs' into next
Tom Rini [Fri, 24 Sep 2021 14:13:44 +0000 (10:13 -0400)]
Merge branch '2021-09-24-arm64-optimized-str-funcs' into next

- Bring in, but disable by default, asm optimized string functions for
  arm64.

3 years agoarm64: Kconfig: Enable usage of optimized memset/memcpy/memmove
Stefan Roese [Thu, 2 Sep 2021 15:00:19 +0000 (17:00 +0200)]
arm64: Kconfig: Enable usage of optimized memset/memcpy/memmove

This patch enables the use of the optimized memset(), memmove() &
memcpy() versions recently added on ARM64.

Please note that these optimized functions are now only enabled for
recent GCC versions (>= 9.4), as earlier GCC versions throw these
errors:

aarch64-linux-ar: warning: arch/arm/lib/memset-arm64.o: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000
...

Signed-off-by: Stefan Roese <sr@denx.de>
[trini: Make this default to off as it causes problems on some platforms still]
Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoarm64: memset-arm64: Use simple memset when cache is disabled
Stefan Roese [Thu, 2 Sep 2021 15:00:18 +0000 (17:00 +0200)]
arm64: memset-arm64: Use simple memset when cache is disabled

The optimized memset uses the dc opcode, which causes problems when the
cache is disabled. This patch adds a check if the cache is disabled and
uses a very simple memset implementation in this case. Otherwise the
optimized version is used.

Signed-off-by: Stefan Roese <sr@denx.de>
3 years agoarm64: arch/arm/lib: Add optimized memset/memcpy/memmove functions
Stefan Roese [Thu, 2 Sep 2021 15:00:17 +0000 (17:00 +0200)]
arm64: arch/arm/lib: Add optimized memset/memcpy/memmove functions

Ported from https://github.com/ARM-software/optimized-routines

These files are included from this repository, including the latest
git commit ID:
string/aarch64/memcpy.S: afd6244a1f8d
string/aarch64/memset.S: e823e3abf5f8
string/asmdefs.h: e823e3abf5f8

Note that memmove is also handled by the memcpy function.

Please note that when adding these optimized functions as default memset
memcpy functions in U-Boot, U-Boot fails to boot on the LX2160ARDB.
After the initial ATF output, no U-Boot output is shown on the serial
console. Some exception is triggered here in the very early boot process
as some of the assembler opcodes need the caches to be enabled.

Because of this, a follow-up patch will add a check to use a simple
non-optimized memset for the "cache disabled" case.

Note:
I also integrated and tested with the Linux versions of these optimized
functions. They are similar to the ones now integrated but these ARM
versions are still a small bit faster.

Signed-off-by: Stefan Roese <sr@denx.de>
3 years agoRevert "env: Make _init() expect _INVALID when _IS_NOWHERE"
Tom Rini [Fri, 24 Sep 2021 11:40:07 +0000 (07:40 -0400)]
Revert "env: Make _init() expect _INVALID when _IS_NOWHERE"

Upon further discussion, this is not required now.

This reverts commit f6bc5d17afa9fe12418edaf1fc9f82beeda06132.

Link: https://lore.kernel.org/r/ebd92337-669a-9a0a-0af3-d06b957f3b40@denx.de/
Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge branch '2021-09-23-assorted-updates' into next
Tom Rini [Fri, 24 Sep 2021 02:38:21 +0000 (22:38 -0400)]
Merge branch '2021-09-23-assorted-updates' into next

- Rework lmb reservation so we have common code for all arches to use
- armv8 cache.S cleanups, crc32 speedup
- ENV_IS_NOWHWERE, pci io/memory base configuration fixes

3 years agopci: Fix configuring io/memory base and limit registers of PCI bridges
Pali Rohár [Fri, 10 Sep 2021 11:33:35 +0000 (13:33 +0200)]
pci: Fix configuring io/memory base and limit registers of PCI bridges

Lower 4 bits of PCI_MEMORY_BASE and PCI_MEMORY_LIMIT registers are reserved
and should be zero. So do not set them to non-zero value.

Lower 4 bits of PCI_PREF_MEMORY_BASE and PCI_PREF_MEMORY_LIMIT registers
contain information if 64-bit memory addressing is supported. So preserve
this information when overwriting these registers.

Lower 4 bits of PCI_IO_BASE and PCI_IO_LIMIT register contain information
if 32-bit io addressing is supported. So preserve this information and do
not try to configure 32-bit io addressing (via PCI_IO_BASE_UPPER16 and
PCI_IO_LIMIT_UPPER16 registers) when it is unsupported.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mediatek: merge board Kconfigs into mach-mediatek
Guillaume La Roque [Fri, 10 Sep 2021 08:21:06 +0000 (10:21 +0200)]
arm: mediatek: merge board Kconfigs into mach-mediatek

On MediaTek boards we cannot override the SYS_BOARD / SYS_CONFIG_NAME
variables from defconfig.
This is because in board/mediatek/mtXXXX/Kconfig this value was override
by default due to the if CONFIG_TARGET_MTXXXX condition.

Merge all the Kconfigs to the mach-medatek/Kconfig.

This way:
- we only define SYS_{SOC,VENDOR} once
- all board definitions are in a single place, simplifying the build logic.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
3 years agolmb: x86: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:18 +0000 (22:47 +0200)]
lmb: x86: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
It is rather likely this architecture also needs to cover U-Boot with
LMB before booting Linux.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: xtensa: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:17 +0000 (22:47 +0200)]
lmb: xtensa: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
It is rather likely this architecture also needs to cover U-Boot with
LMB before booting Linux.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: sh: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:16 +0000 (22:47 +0200)]
lmb: sh: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
This architecture also needs to cover U-Boot with LMB before booting
Linux.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: riscv: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:15 +0000 (22:47 +0200)]
lmb: riscv: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
It is rather likely this architecture also needs to cover U-Boot with
LMB before booting Linux.

Reviewed-by: Rick Chen <rick@andestech.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Atish Patra <atish.patra@wdc.com>
Cc: Leo <ycliang@andestech.com>
Cc: Rick Chen <rick@andestech.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: nds32: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:14 +0000 (22:47 +0200)]
lmb: nds32: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
It is rather likely this architecture also needs to cover U-Boot with
LMB before booting Linux.

Reviewed-by: Rick Chen <rick@andestech.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Rick Chen <rick@andestech.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: nios2: Add arch_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:13 +0000 (22:47 +0200)]
lmb: nios2: Add arch_lmb_reserve()

Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic().
It is rather likely this architecture also needs to cover U-Boot with
LMB before booting Linux.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Thomas Chou <thomas@wytron.com.tw>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: Remove imx board_lmb_reserve()
Marek Vasut [Fri, 10 Sep 2021 20:47:12 +0000 (22:47 +0200)]
lmb: Remove imx board_lmb_reserve()

This function is clearly architecture specific code, not board specific
code. The only difference from the previous arm arch_lmb_reserve() is the
extra reservation of 16k of memory below the stack bottom, rather than
the 4k. The common code now also uses 16k alignment. Remove this custom
implementation, as it now behaves exactly as the common code.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com>
Cc: Angelo Dureghello <angelo@sysam.it>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Cc: Hai Pham <hai.pham.ud@renesas.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Ye Li <ye.li@nxp.com>
3 years agolmb: arm: Increase LMB alignment to 16k in arch_lmb_reserve_generic()
Marek Vasut [Fri, 10 Sep 2021 20:47:11 +0000 (22:47 +0200)]
lmb: arm: Increase LMB alignment to 16k in arch_lmb_reserve_generic()

According to input NXP, the 4k alignment is not always sufficient.
Currently iMX works around this problem by implementing board specific
LMB reservation, however it is likely this could also occur on other
systems. Increase the LMB reservation alignment to 16k by default.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com>
Cc: Angelo Dureghello <angelo@sysam.it>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Cc: Hai Pham <hai.pham.ud@renesas.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Ye Li <ye.li@nxp.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agolmb: Switch to generic arch_lmb_reserve_generic()
Marek Vasut [Fri, 10 Sep 2021 20:47:10 +0000 (22:47 +0200)]
lmb: Switch to generic arch_lmb_reserve_generic()

Switch arc/arm/m68k/microblaze/mips/ppc arch_lmb_reserve() to
arch_lmb_reserve_generic().

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com>
Cc: Angelo Dureghello <angelo@sysam.it>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Cc: Hai Pham <hai.pham.ud@renesas.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Wolfgang Denk <wd@denx.de>
3 years agolmb: Add generic arch_lmb_reserve_generic()
Marek Vasut [Fri, 10 Sep 2021 20:47:09 +0000 (22:47 +0200)]
lmb: Add generic arch_lmb_reserve_generic()

The arc/arm/m68k/microblaze/mips/ppc arch_lmb_reserve() implementations
are all mostly the same, except for a couple of details. Implement a
generic arch_lmb_reserve_generic() function which can be parametrized
enough to cater for those differences between architectures. This can
also be parametrized enough so it can handle cases where U-Boot is not
relocated to the end of DRAM e.g. because there is some other reserved
memory past U-Boot (e.g. unmovable firmware for coprocessor), it is not
relocated at all, and other such use cases.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com>
Cc: Angelo Dureghello <angelo@sysam.it>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Cc: Hai Pham <hai.pham.ud@renesas.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Wolfgang Denk <wd@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agolmb: Always compile arch_lmb_reserve() into U-Boot on arc
Marek Vasut [Fri, 10 Sep 2021 20:47:08 +0000 (22:47 +0200)]
lmb: Always compile arch_lmb_reserve() into U-Boot on arc

The arch_lmb_reserve() is called by lib/lmb.c lmb_reserve_common() even
if CMD_BOOTM is not enabled. However, the arc variant of arch_lmb_reserve()
is only compiled in if CMD_BOOTM is enabled.

This currently does not trigger build error, because there is an empty
weak implementation of arch_lmb_reserve(), however that is not the
function that should be used on arc.

Fix this by moving the arch_lmb_reserve() implementation into common
code and always compile it in.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agolmb: Always compile arch_lmb_reserve() into U-Boot on arm
Marek Vasut [Fri, 10 Sep 2021 20:47:07 +0000 (22:47 +0200)]
lmb: Always compile arch_lmb_reserve() into U-Boot on arm

The arch_lmb_reserve() is called by lib/lmb.c lmb_reserve_common() even
if CMD_BOOT{I,M,Z} is not enabled. However, the arm32/arm64 variant of
arch_lmb_reserve() is only compiled in if CMD_BOOT{I,M,Z} is enabled.

This currently does not trigger build error, because there is an empty
weak implementation of arch_lmb_reserve(), however that is not the
function that should be used on arm32/arm64.

Fix this by moving the arch_lmb_reserve() implementation into common
code and always compile it in.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
3 years agoimage: add lz4 zstd compression magic map
Artem Lapkin [Tue, 31 Aug 2021 10:22:18 +0000 (18:22 +0800)]
image: add lz4 zstd compression magic map

Add lz4 and zstd compression magic map. Already can decompress images
with lz4 and zstd compression type.

Signed-off-by: Artem Lapkin <art@khadas.com>
3 years agocrc32: Add crc32 implementation using __builtin_aarch64_crc32b
Marek Vasut [Mon, 30 Aug 2021 13:05:23 +0000 (15:05 +0200)]
crc32: Add crc32 implementation using __builtin_aarch64_crc32b

ARMv8.0 has optional crc32 instruction for crc32 calculation. The
instruction is mandatory since ARMv8.1. The crc32 calculation is
faster using the dedicated instruction, e.g. 1.4 GHz iMX8MN gives:

  => time crc32 0x50000000 0x2000000
  time: 0.126 seconds # crc32 instruction
  time: 0.213 seconds # software crc32

Add implementation using the compiler builtin wrapper for the crc32
instruction and enable it by default, since we don't support any
platforms which do not implement this instruction.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
[trini: Make crc32_table guarded by CONFIG_ARM64_CRC32]
Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoarmv8/cache.S: Triple with single instruction
Pierre-Clément Tosi [Fri, 27 Aug 2021 16:04:10 +0000 (18:04 +0200)]
armv8/cache.S: Triple with single instruction

Replace the current 2-instruction 2-step tripling code by a
corresponding single instruction leveraging ARMv8-A's "flexible second
operand as a register with optional shift". This has the added benefit
(albeit arguably negligible) of reducing the final code size.

Fix the comment as the tripled cache level is placed in x12, not x0.

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
3 years agoarmv8/cache.S: Read sysreg fields through ubfx
Pierre-Clément Tosi [Fri, 27 Aug 2021 16:03:45 +0000 (18:03 +0200)]
armv8/cache.S: Read sysreg fields through ubfx

Improve the file's readability and conciseness by using the appropriate
Aarch64 instruction: ubfx (unsigned bitfield extract). This makes the
code easier to follow as it directly manipulates the offsets and widths
of the fields read from system registers, as they are expressed in the
Standard (ARM ARM). This has the added benefit (albeit arguably
negligible) of reducing the final code size.

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
3 years agoenv: Make _init() expect _INVALID when _IS_NOWHERE
Pierre-Clément Tosi [Thu, 12 Aug 2021 15:28:31 +0000 (15:28 +0000)]
env: Make _init() expect _INVALID when _IS_NOWHERE

Avoid applying the "fix" introduced by commit 5557eec01cbf ("env: Fix
invalid env handling in env_init()") to the environment "nowhere".

This is necessary as that commit, by setting the return value of
env_init() to -ENOENT if gd->env_valid is ENV_INVALID, forces that
function to reset gd->env_valid to ENV_VALID. By doing so, it breaks the
assumption (required by ENV_IS_NOWHERE) that gd->env_valid must be
ENV_INVALID.

This, in turn, results in env_relocate() calling env_load() (it should
not), which itself, calls U_BOOT_ENV_LOCATION(nowhere).load() i.e.
env_nowhere_load(). That function, being implemented under the
assumption mentioned above, calls env_set_default(), which in turn,
seeing that gd->env_valid is ENV_VALID (it should not), tries to
dereference whatever lies in gd->env_addr (most likely garbage), leading
to a faulty memory access.

Note that other env_locations might be concerned by this bug but that
this commit only intends to fix it for when ENV_IS_NOWHERE.

Fixes: 5557eec01cbf ("env: Fix invalid env handling in env_init()")
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
3 years agoMerge git://source.denx.de/u-boot-socfpga
Tom Rini [Thu, 23 Sep 2021 12:30:45 +0000 (08:30 -0400)]
Merge git://source.denx.de/u-boot-socfpga

Bugfixes for this one socfpga platform

3 years agoMerge branch 'master' of git://source.denx.de/u-boot-usb
Tom Rini [Thu, 23 Sep 2021 12:30:22 +0000 (08:30 -0400)]
Merge branch 'master' of git://source.denx.de/u-boot-usb

Late bunch of USB fixes (incl. the xhci usb 3.1 support)

3 years agoMerge tag 'u-boot-at91-2022.01-a' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Wed, 22 Sep 2021 18:55:16 +0000 (14:55 -0400)]
Merge tag 'u-boot-at91-2022.01-a' of https://source.denx.de/u-boot/custodians/u-boot-at91 into next

First set of u-boot-at91 features for the 2022.01 cycle:

This feature set includes : the support for CPU driver for arm926
(sam9x60 device); changes required for OP-TEE boot for sama5d2_xplained
and sama5d27_som1_ek boards; QSPI boot configuration for sama5d2_icp;
starting to remove old Kconfig unused symbols from config_whitelist.txt
(work will take more time); also small fixes and updates in mach, DT,
configs, etc.

3 years agoddr: altera: use KBUILD_BASENAME instead of __FILE__
Marek Vasut [Tue, 14 Sep 2021 03:20:19 +0000 (05:20 +0200)]
ddr: altera: use KBUILD_BASENAME instead of __FILE__

The KBUILD_BASENAME contains just the name of the compiled module,
in this case 'sequencer', rather than a full path to the compiled
file. Use it to prevent pulling the full path into the U-Boot binary,
which is useless and annoying.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Let DWMAC configure PHY reset GPIO
Marek Vasut [Tue, 14 Sep 2021 03:25:36 +0000 (05:25 +0200)]
arm: socfpga: vining: Let DWMAC configure PHY reset GPIO

The DM DWMAC driver is perfectly capable of configuring the ethernet
PHY reset GPIO, let the driver do it instead of doing it in the board
file.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Enable DW I2C driver
Marek Vasut [Tue, 14 Sep 2021 03:25:35 +0000 (05:25 +0200)]
arm: socfpga: vining: Enable DW I2C driver

The Designware I2C IP is used to communicate with I2C peripherals on
SoCFPGA, and required to access I2C EEPROM on this board. Enable it.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Fix UDC controller phandle in DT
Marek Vasut [Tue, 14 Sep 2021 03:25:34 +0000 (05:25 +0200)]
arm: socfpga: vining: Fix UDC controller phandle in DT

The USB peripheral controller is the DWC2 controller 1, not 0.
Update the phandle to fix UDC support on this board.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Un-disable WDT in DT
Marek Vasut [Tue, 14 Sep 2021 03:25:33 +0000 (05:25 +0200)]
arm: socfpga: vining: Un-disable WDT in DT

The WDT on this system should be enabled, make it so.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Set default SPI NOR mode and frequency
Marek Vasut [Tue, 14 Sep 2021 03:25:32 +0000 (05:25 +0200)]
arm: socfpga: vining: Set default SPI NOR mode and frequency

The SPI NOR bus mode is 0 on this system, update it accordingly.
Increase frequency to 40 MHz and enable SFDP parsing, since the
flashes on this system support that and it is a huge performance
improvement.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Set USB gadget manufacturer to Softing with capital S
Marek Vasut [Tue, 14 Sep 2021 03:25:31 +0000 (05:25 +0200)]
arm: socfpga: vining: Set USB gadget manufacturer to Softing with capital S

This was configured in downstream, so it is likely that most of the
custom software used around the device depends on it. Make upstream
compatible.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Increase environment size
Marek Vasut [Tue, 14 Sep 2021 03:25:30 +0000 (05:25 +0200)]
arm: socfpga: vining: Increase environment size

Increase the environment size from 4k to 16k to prevent
environment from becoming full.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agoarm: socfpga: vining: Drop meaningless comment
Marek Vasut [Tue, 14 Sep 2021 03:25:29 +0000 (05:25 +0200)]
arm: socfpga: vining: Drop meaningless comment

The comment is no longer meaningful due to DT conversion, drop it.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Siew Chin Lim <elly.siew.chin.lim@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
3 years agousb: xhci-dwc3: Add support for USB 3.1 controllers
Mark Kettenis [Thu, 16 Sep 2021 14:00:09 +0000 (16:00 +0200)]
usb: xhci-dwc3: Add support for USB 3.1 controllers

This adds support for the DWC_sub31 controllers such as those
found on Apple's M1 SoC.  This version of the controller
seems to work fine with the existing driver.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
3 years agousb: ehci-mx6: use phy_type from device tree
Matthias Schiffer [Mon, 20 Sep 2021 13:37:25 +0000 (15:37 +0200)]
usb: ehci-mx6: use phy_type from device tree

Allow using different PHY interfaces for multiple USB controllers. When no
value is set in DT, we fall back to CONFIG_MXC_USB_PORTSC for now to stay
compatible with current board configurations.

This also adds support for the HSIC mode of the i.MX7.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
3 years agousb: ehci-ci: remove redundant PORTSC flag definitions
Matthias Schiffer [Mon, 20 Sep 2021 13:37:24 +0000 (15:37 +0200)]
usb: ehci-ci: remove redundant PORTSC flag definitions

These definitions are unused, all boards that define portsc flags use
the equivalent PORT_* definitions instead.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
3 years agoinclude/configs: replace MXC_EHCI_MODE_SERIAL with PORT_PTS_SERIAL
Matthias Schiffer [Mon, 20 Sep 2021 13:37:23 +0000 (15:37 +0200)]
include/configs: replace MXC_EHCI_MODE_SERIAL with PORT_PTS_SERIAL

The MXC_EHCI_MODE_ definitions are redundant. Replace MXC_EHCI_MODE_SERIAL
with the equivalent PORT_PTS_SERIAL.

Only the zmx25 platform is affected.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
3 years agousb: add support for ULPI/SERIAL/HSIC PHY modes
Matthias Schiffer [Mon, 20 Sep 2021 13:37:22 +0000 (15:37 +0200)]
usb: add support for ULPI/SERIAL/HSIC PHY modes

Import usb_phy_interface enum values and DT match strings from the Linux
kernel.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
3 years agoconfigs: Enable USB3 on Allwinner H6 boards
Samuel Holland [Mon, 5 Jul 2021 12:29:04 +0000 (13:29 +0100)]
configs: Enable USB3 on Allwinner H6 boards

Pine H64 and Orange Pi 3 both provide a USB3 type A port.
Enable it in U-Boot.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agousb: xhci-dwc3: Add support for clocks/resets
Samuel Holland [Mon, 5 Jul 2021 12:29:03 +0000 (13:29 +0100)]
usb: xhci-dwc3: Add support for clocks/resets

Some platforms, like the Allwinner H6, do not have a separate glue layer
around the dwc3. Instead, they rely on the clocks/resets/phys referenced
from the dwc3 DT node itself. Add support for enabling the clocks/resets
referenced from the dwc3 DT node.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agousb: xhci-pci: Move reset logic out of XHCI core
Samuel Holland [Mon, 5 Jul 2021 12:29:02 +0000 (13:29 +0100)]
usb: xhci-pci: Move reset logic out of XHCI core

Resetting an XHCI controller inside xhci_register undoes any register
setup performed by the platform driver. And at least on the Allwinner
H6, resetting the XHCI controller also resets the PHY, which prevents
the controller from working. That means the controller must be taken out
of reset before initializing the PHY, which must be done before calling
xhci_register.

The logic in the XHCI core was added to support the Raspberry Pi 4
(although this was not mentioned in the commit log!), which uses the
xhci-pci platform driver. Move the reset logic to the platform driver,
where it belongs, and where it cannot interfere with other platform
drivers.

This also fixes a failure to call reset_free if xhci_register failed.

Fixes: 0b80371b350e ("usb: xhci: Add reset controller support")
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
3 years agophy: sun50i-usb3: Add a driver for the H6 USB3 PHY
Samuel Holland [Mon, 5 Jul 2021 12:29:01 +0000 (13:29 +0100)]
phy: sun50i-usb3: Add a driver for the H6 USB3 PHY

This driver is needed for XHCI to work on the Allwinner H6 SoC. The
driver is copied from Linux v5.10.

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 agoMerge branch '2021-09-22-general-updates' into next
Tom Rini [Wed, 22 Sep 2021 18:54:21 +0000 (14:54 -0400)]
Merge branch '2021-09-22-general-updates' into next

- Some sandbox improvements
- Make cleanups related to the overusage of the exact build time
  variable.

3 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-x86
Tom Rini [Wed, 22 Sep 2021 15:43:12 +0000 (11:43 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-x86

- Small fixes to eMMC and SDHCI for Intel Edison

3 years agox86: tangier: acpi: Add GPIO card detection to SDHCI #2
Andy Shevchenko [Sat, 11 Sep 2021 18:27:42 +0000 (21:27 +0300)]
x86: tangier: acpi: Add GPIO card detection to SDHCI #2

On Intel Tangier the SDHCI #2 provides SD card connection.
Add GPIO card detection for it.

Fixes: 39665beed6f7 ("x86: tangier: Enable ACPI support for Intel Tangier")
BugLink: https://github.com/edison-fw/meta-intel-edison/issues/135
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
3 years agox86: edison: Mark eMMC non-removable
Andy Shevchenko [Fri, 10 Sep 2021 07:59:27 +0000 (10:59 +0300)]
x86: edison: Mark eMMC non-removable

eMMC is non-removable on Intel Edison board. Fix the DTS accordingly.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
3 years agoMerge tag 'u-boot-stm32-20210921' of https://source.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Wed, 22 Sep 2021 13:38:48 +0000 (09:38 -0400)]
Merge tag 'u-boot-stm32-20210921' of https://source.denx.de/u-boot/custodians/u-boot-stm

- stm32mp15: fix the used partition name for U-Boot environement with SPL

3 years agoarm: dts: stm32mp1: use ssbl partition name for U-Boot
Patrick Delaunay [Tue, 14 Sep 2021 12:14:52 +0000 (14:14 +0200)]
arm: dts: stm32mp1: use ssbl partition name for U-Boot

Continue to use the "ssbl" name for GPT partition of secondary boot
stage = U-Boot for basic boot with SPL to avoid to disturb existing user.

The "fip" partition name is only used for TFA_BOOT with FIP, it is a TF-A
BL2 requirement; it the default configuration for STMicroelectronics
boards.

Fixes: b73e8bf453f8 ("arm: stm32mp: add defconfig for trusted boot with FIP")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoARM: dts: at91: update flexcom defines using include file
Eugen Hristev [Fri, 27 Aug 2021 10:44:12 +0000 (13:44 +0300)]
ARM: dts: at91: update flexcom defines using include file

Replace the number in the flexcom-mode property with the define from the
include file.
This corresponds to the approach in Linux kernel.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
3 years agoinclude: dt-bindings: mfd: add atmel flexcom include file
Eugen Hristev [Fri, 27 Aug 2021 10:44:11 +0000 (13:44 +0300)]
include: dt-bindings: mfd: add atmel flexcom include file

Add dt-bindings include file for Atmel Flexcom hardware block.
This file is copied from Linux kernel.
It is used in devicetrees from Linux.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
3 years agonet: remove unused CONFIG_DRIVER_AT91EMAC_*
Eugen Hristev [Wed, 25 Aug 2021 10:28:28 +0000 (13:28 +0300)]
net: remove unused CONFIG_DRIVER_AT91EMAC_*

AT91EMAC driver is unused, thus removing.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agoARM: at91: remove references to RM9200DK
Eugen Hristev [Wed, 25 Aug 2021 10:27:03 +0000 (13:27 +0300)]
ARM: at91: remove references to RM9200DK

The AT91 RM9200DK board was removed long time ago.
Remove existing references that were not cleaned up.

Fixes: 1c85752258 ("ARM: remove broken "at91rm9200dk" board")
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
3 years agoboard: pm926x: remove unused CONFIG_SYS_AT91_CPU_NAME
Eugen Hristev [Tue, 24 Aug 2021 13:02:33 +0000 (16:02 +0300)]
board: pm926x: remove unused CONFIG_SYS_AT91_CPU_NAME

CONFIG_SYS_AT91_CPU_NAME looks to be unused.
Remove it and remove it from config_whitelist.txt

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>