]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
3 years agoubifs: allow loading to above 4GiB
Ben Dooks [Tue, 6 Jun 2023 08:23:28 +0000 (09:23 +0100)] 
ubifs: allow loading to above 4GiB

The ubifsload command is truncating any address above 4GiB as it casts
this address to an u32, instead of using an unsigned long which most of
the other load commands do. Change this to an unsigned long to allow
loading into high memory for boards which use these areas.

Fixes the following error:

=> ubifsload 0x2100000000 /boot/Image.lzma
Loading file '/boot/Image.lzma' to addr 0x00000000...
Unhandled exception: Store/AMO access fault

Signed-off-by: Ben Dooks <ben.dooks@sifive.com>
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
3 years agoI2C: cdns: Fix broken retry mechanism on arbitration lost.
Andrea Merello [Fri, 26 May 2023 14:56:16 +0000 (16:56 +0200)] 
I2C: cdns: Fix broken retry mechanism on arbitration lost.

In the current implementation, in case of I2C arbitration lost, a retry is
attempted; the message counter and pointer are reset to the original values
and the I2C xfer process is restart from the beginning.

However the message counter and message pointer are respectively
decremented and incremented by one before attempting any transfer, causing
the 1st transfer not to be actually retried (in case of a single transfer,
nothing is actually retried at all).

This patch fixes this: in case of retry, the 1st transfer is also retried.

Tested on a ZynqMP Kria board, with upstream older u-boot, but the involved
file and underlying logic seem basically the same.

Signed-off-by: Andrea Merello <andrea.merello@iit.it>
3 years agoi2c: rockchip: De-initialize the bus after start bit failure
Ondrej Jirman [Thu, 25 May 2023 12:18:17 +0000 (14:18 +0200)] 
i2c: rockchip: De-initialize the bus after start bit failure

Failure can happen when i2c is used without initializing pinctrl properly,
which U-Boot happily allows in SPL. Without this fix, further I2C access would
fail, even after proper pinctrl initialization.

Signed-off-by: Ondrej Jirman <megi@xff.cz>
Cc: Heiko Schocher <hs@denx.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
3 years agoMerge tag 'efi-2023-07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 2 Jun 2023 16:13:01 +0000 (12:13 -0400)] 
Merge tag 'efi-2023-07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2023-07-rc4

Documentation:

* man pages for loadb, loadx

UEFI:

* check return value of part_get_info()
* improve unit test for RegisterProtocolNotify()

3 years agoefi_selftest: LocateHandleBuffer return code
Heinrich Schuchardt [Thu, 1 Jun 2023 07:06:09 +0000 (09:06 +0200)] 
efi_selftest: LocateHandleBuffer return code

Check that LocateHandleBuffer() return EFI_NOT_FOUND when called with
ByRegisterNotify and all handles already have been retrieved.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: check return value of part_get_info()
Heinrich Schuchardt [Sat, 27 May 2023 06:18:28 +0000 (08:18 +0200)] 
efi_loader: check return value of part_get_info()

part_get_info() may return an error code. Check it.
Update function description of dp_part_node().

Addresses-Coverity-ID: 184067 ("Unchecked return value")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: android: Fix a typo
Bin Meng [Thu, 25 May 2023 06:30:05 +0000 (14:30 +0800)] 
doc: android: Fix a typo

%s/than/then

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: fix loady man-page
Heinrich Schuchardt [Tue, 16 May 2023 05:45:05 +0000 (07:45 +0200)] 
doc: fix loady man-page

* loady may return $? = 1.
* Move misplaced description

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: loadx man-page
Heinrich Schuchardt [Tue, 16 May 2023 05:46:53 +0000 (07:46 +0200)] 
doc: loadx man-page

Provide a man-page for the loadx command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: loadb man-page
Heinrich Schuchardt [Tue, 16 May 2023 05:43:01 +0000 (07:43 +0200)] 
doc: loadb man-page

Provide a man-page for the loadb command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoMerge branch '2023-06-01-assorted-platform-updates' into next
Tom Rini [Thu, 1 Jun 2023 19:43:38 +0000 (15:43 -0400)] 
Merge branch '2023-06-01-assorted-platform-updates' into next

- Assorted updates for TI, nuvoton, sandbox and Xen platforms

3 years agoarm: mach-k3: am625_init: Add Erratum WA for RTC startup
Nishanth Menon [Tue, 16 May 2023 23:06:21 +0000 (18:06 -0500)] 
arm: mach-k3: am625_init: Add Erratum WA for RTC startup

In the first silicon revision of the am62x family of SoCs, the hardware
wakeup event cannot be used if software is unable to unlock the RTC
device within one second after boot. To work around this limitation
unlock RTC as soon as possible in the boot flow to maximize our chance
of linux being able to use this device.

Add the erratum i2327 workaround to initialize the RTC.

Signed-off-by: Nishanth Menon <nm@ti.com>
[bb@ti.com: rebased from 2021.01 and expanded commit and code messages]
Signed-off-by: Bryan Brattlof <bb@ti.com>
3 years agoarm: baltos: switch to CONFIG_DM_I2C
Yegor Yefremov [Mon, 15 May 2023 14:26:44 +0000 (16:26 +0200)] 
arm: baltos: switch to CONFIG_DM_I2C

Also use the TPS65910 driver directly.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
3 years agophy: ti: phy-j721e-wiz: Add j721s2-wiz-10g module support
Ravi Gunasekaran [Mon, 15 May 2023 10:50:40 +0000 (16:20 +0530)] 
phy: ti: phy-j721e-wiz: Add j721s2-wiz-10g module support

Add support for j721s2-wiz-10g device to use clock-names interface
instead of explicitly defining clock nodes within device tree node.

Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
3 years agoarm: mach-k3: arm64-mmu: do not map ATF and OPTEE regions in A53 MMU
Kamlesh Gurudasani [Fri, 12 May 2023 11:58:52 +0000 (17:28 +0530)] 
arm: mach-k3: arm64-mmu: do not map ATF and OPTEE regions in A53 MMU

ATF and OPTEE regions may be firewalled from non-secure entities.
If we still map them for non-secure A53, speculative access may happen,
which will not cause any faults and related error response will be ignored,
but it's better to not to map those regions for non-secure A53 as there
will be no actual access at all.

Create separate table as ATF region is at different locations for am64
and am62/am62a.

Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com>
3 years agoarm: mach-k3: j7200: clk-data.c: Add main_uart1 clock data
Bhavya Kapoor [Fri, 12 May 2023 10:02:53 +0000 (15:32 +0530)] 
arm: mach-k3: j7200: clk-data.c: Add main_uart1 clock data

Add main_uart1 clocks in clk-data.c for J7200. Now,
main_uart1 clocks will be set up while booting the J7200 SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
3 years agoarm: mach-k3: j7200: dev-data.c: Add main_uart1 device data
Bhavya Kapoor [Fri, 12 May 2023 10:02:52 +0000 (15:32 +0530)] 
arm: mach-k3: j7200: dev-data.c: Add main_uart1 device data

Add device data for main_uart1 in dev-data.c for J7200. Now,
main_uart1 will be powered on while booting the J7200 SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
3 years agoarch: arm: mach-k3: j721e: add support for UDA FS
Udit Kumar [Thu, 11 May 2023 09:17:50 +0000 (14:47 +0530)] 
arch: arm: mach-k3: j721e: add support for UDA FS

When selecting UDA partition for booting. MMC read
mode was selected as RAW.

Due to growing/changing size of u-boot and tispl
images.
It will be better change to FS in case of UDA FS instead of
adjusting offsets with new change.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
3 years agoconfigs: j7200: correct mmc offset
Udit Kumar [Thu, 11 May 2023 09:17:49 +0000 (14:47 +0530)] 
configs: j7200: correct mmc offset

This patch corrects the MMC raw mode sector offset.

Current allocated size for tiboot3 is 1MB and 2MB for tispl.

Without this correct offset eMMC boot will fail.

Fixes: f8c1e893c82 (configs: j7200_evm_a72: Add Initial suppot)
Fixes: 02dff65efe7 (configs: j7200_evm_r5: Add initial support)
Fixes: 360c7f46f39 (configs: Add configs for J7200 High Security EVM)
Way to test with eMMC boot from boot0/1 partition
Boot with SD card, copy images to eMMC boot0 or boot1 partition

=> mmc dev 0 (1 or 2)
=> fatload mmc 1 ${loadaddr} tiboot3.bin
=> mmc write ${loadaddr} 0x0 0x800
=> fatload mmc 1 ${loadaddr} tispl.bin
=> mmc write ${loadaddr} 0x800 0x1000
=> fatload mmc 1 ${loadaddr} u-boot.img
=> mmc write ${loadaddr} 0x1800 0x2000
=> mmc partconf 0 1 (1 or 2) 1
=> mmc bootbus 0 2 0 0

Cc: Bhavya Kapoor <b-kapoor@ti.com>
Cc: Diwakar Dhyani <d-dhyani@ti.com>
Cc: KEERTHY <j-keerthy@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
3 years agodoc: board: ti: add documenation for j7200
Udit Kumar [Thu, 11 May 2023 09:17:48 +0000 (14:47 +0530)] 
doc: board: ti: add documenation for j7200

This patch adds documentation for j7200.

TRM link
https://www.ti.com/lit/pdf/spruiu1

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoarm: mach-k3: j721s2: clk-data.c: Add main_uart5 clock data
Bhavya Kapoor [Thu, 11 May 2023 09:12:52 +0000 (14:42 +0530)] 
arm: mach-k3: j721s2: clk-data.c: Add main_uart5 clock data

Add main_uart5 clocks in clk-data.c for J721S2. Now,
main_uart5 clocks will be set up while booting the J721S2 SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
3 years agoarm: mach-k3: j721s2: dev-data.c: Add main_uart5 device data
Bhavya Kapoor [Thu, 11 May 2023 09:12:51 +0000 (14:42 +0530)] 
arm: mach-k3: j721s2: dev-data.c: Add main_uart5 device data

Add device data for main_uart5 in dev-data.c for J721S2. Now,
main_uart5 will be powered on while booting the J721S2 SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
3 years agoarm: mach-k3: j721e: clk-data.c: Add main_uart2 clock data
Bhavya Kapoor [Thu, 11 May 2023 07:44:15 +0000 (13:14 +0530)] 
arm: mach-k3: j721e: clk-data.c: Add main_uart2 clock data

Add main_uart2 clocks in clk-data.c for J721E. Now,
main_uart2 clocks will be set up while booting the J721E SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
3 years agoarm: mach-k3: j721e: dev-data.c: Add main_uart2 device data
Bhavya Kapoor [Thu, 11 May 2023 07:44:14 +0000 (13:14 +0530)] 
arm: mach-k3: j721e: dev-data.c: Add main_uart2 device data

Add device data for main_uart2 in dev-data.c for J721E. Now,
main_uart2 will be powered on while booting the J721E SoC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
3 years agoaxi: fix definition of axi_sandbox_get_emul()
Heinrich Schuchardt [Wed, 10 May 2023 09:59:20 +0000 (11:59 +0200)] 
axi: fix definition of axi_sandbox_get_emul()

Compiling with gcc 13 results in an error:

    drivers/axi/axi-emul-uclass.c:16:5: warning: conflicting types for
    ‘axi_sandbox_get_emul’ due to enum/integer mismatch; have
    ‘int(struct udevice *, ulong,  enum axi_size_t,  struct udevice **)’
    {aka ‘int(struct udevice *, long unsigned int,  enum axi_size_t,
    struct udevice **)’} [-Wenum-int-mismatch]
       16 | int axi_sandbox_get_emul(struct udevice *bus, ulong address,
          |     ^~~~~~~~~~~~~~~~~~~~
    In file included from drivers/axi/axi-emul-uclass.c:14:
    ./arch/sandbox/include/asm/axi.h:48:5: note: previous declaration of
    ‘axi_sandbox_get_emul’ with type ‘int(struct udevice *, ulong,  uint,
    struct udevice **)’ {aka ‘int(struct udevice *, long unsigned int,
    unsigned int,  struct udevice **)’}
       48 | int axi_sandbox_get_emul(struct udevice *bus, ulong address, uint length,
          |     ^~~~~~~~~~~~~~~~~~~~

Adjust the header definition to match the implementation.
Define the size parameter as constant.

Fixes: 9a8bcabd8ada ("axi: Add AXI sandbox driver and simple emulator")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agofirmware: ti_sci: Add missing LF in error message
Andreas Dannenberg [Tue, 9 May 2023 21:38:13 +0000 (16:38 -0500)] 
firmware: ti_sci: Add missing LF in error message

The "Message not acknowledged" error message is missing a line feed,
leading to the console log getting garbled and joined together with
whatever the next output is in case this error happens:

"ti_sci system-controller@44043000: Message not acknowledgedAuthentication failed!"

Fix ths by adding the missing linefeed character.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
3 years agopinctrl: nuvoton: set output state before enabling the output
Jim Liu [Tue, 9 May 2023 07:07:34 +0000 (15:07 +0800)] 
pinctrl: nuvoton: set output state before enabling the output

The default output state may be different to request,
change the configuration sequence to avoid glitch.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
3 years agoconfigs: am62ax_evm_a53_defconfig: Enable YMODEM support at A53 SPL
Vignesh Raghavendra [Mon, 8 May 2023 04:43:32 +0000 (10:13 +0530)] 
configs: am62ax_evm_a53_defconfig: Enable YMODEM support at A53 SPL

This is required for UART boot flow where u-boot.img needs to be
downloaded via YMODEM.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
3 years agoarm: mach-k3: common: reorder removal of firewalls
Manorit Chawdhry [Fri, 5 May 2023 10:24:00 +0000 (15:54 +0530)] 
arm: mach-k3: common: reorder removal of firewalls

K3 devices have some firewalls set up by ROM that we usually remove so
that the development is easy in HS devices.

While removing the firewalls disabling a background region before
disabling the foreground regions keeps the firewall in a state where all
the transactions will be blacklisted until all the regions are disabled.
This causes a race for some other entity trying to access that memory
region before all the firewalls are disabled and causes an exception.

Since there is no guarantee on where the background regions lie based on
ROM configurations or no guarantee if the background regions will allow
all transactions across the memory spaces, iterate the loop twice removing
the foregrounds first and then backgrounds.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
3 years agoRevert "arm: mach-k3: common: don't reconfigure background firewalls"
Manorit Chawdhry [Fri, 5 May 2023 10:23:59 +0000 (15:53 +0530)] 
Revert "arm: mach-k3: common: don't reconfigure background firewalls"

This reverts commit b8ebf24e7f4afb5093a31bdf122e1ed0781e5c3c.

This patch seems to be fundamentally wrong and requires a different way
on how the background firewalls should be configured so revert the patch

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
3 years agodoc: Add info for building Xen target with Clang
Leo Yan [Thu, 4 May 2023 07:54:59 +0000 (15:54 +0800)] 
doc: Add info for building Xen target with Clang

When build Xen target with Clang, the linker reports failure.

This patch adds the related info in the documentation as a known issue
and gives details for how to dismiss the building failure with Clang.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
3 years agoarm64: Remove duplicated symbols
Leo Yan [Thu, 4 May 2023 07:54:58 +0000 (15:54 +0800)] 
arm64: Remove duplicated symbols

When build U-boot with clang with using commands:

  $ make HOSTCC=clang xenguest_arm64_defconfig
  $ make HOSTCC=clang CROSS_COMPILE=aarch64-linux-gnu- \
CC="clang -target aarch64-linux-gnueabi" -j8

The compiler reports error:

  /tmp/start-acdf31.s:330:1: error: symbol '_start' is already defined
  _start:
  ^

Because the symbol '_start' has been defined twice, one is defined in
arch/arm/cpu/armv8/start.S, another is defined in the header
boot0-linux-kernel-header.h.

To fix building failure, this patch removes the symbol '_start' from
boot0-linux-kernel-header.h.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
3 years agoMerge branch '2023-05-31-assorted-fixes-and-improvements' into next
Tom Rini [Thu, 1 Jun 2023 15:23:23 +0000 (11:23 -0400)] 
Merge branch '2023-05-31-assorted-fixes-and-improvements' into next

- Makefile logic fixes, address some issues that clang uncovers on ARM,
  assorted code cleanups

3 years agommc: fix improper use of memset
Sam Edwards [Thu, 18 May 2023 19:47:07 +0000 (13:47 -0600)] 
mmc: fix improper use of memset

Buffers created through DEFINE_(CACHE_)ALIGN_BUFFER are actually
pointers to the real underlying buffer. Using sizeof(...) is
not appropriate in this case.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
3 years agocommon: dfu: Remove leading space characters
Ravi Gunasekaran [Thu, 18 May 2023 06:36:23 +0000 (12:06 +0530)] 
common: dfu: Remove leading space characters

As per [1], dfu_alt_info is mentioned to be as semicolon separated
string of information on each alternate and the parsing logic in
the dfu.c is based on this.

Typically, the dfu_alt_info_* is defined in .h files as preprocessor
macros with 'alt' info separated by semicolon.

But when dfu_alt_info_* is added in the environment files(.env)
the script at "scripts/env2string.awk" converts a newline to space.
Thus adding a space character after semicolon. This results in
incorrect parsing in dfu.c which is based on the information that
'alt' info are only semicolon separated.

One option is to add dfu_alt_info_* variable in .env in single line.
But there is possiblity for it to exceed the line length limit.
So update the parsing logic to remove leading space characters
before adding to the dfu list.

[1]: https://u-boot.readthedocs.io/en/latest/usage/dfu.html

Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
3 years agocmd: sf/nand: Print and return failure when 0 length is passed
Ashok Reddy Soma [Tue, 16 May 2023 11:52:36 +0000 (05:52 -0600)] 
cmd: sf/nand: Print and return failure when 0 length is passed

For sf commands, when '0' length is passed for erase, update, write or
read, there might be undesired results. Ideally '0' length means nothing to
do.

So print 'ERROR: Invalid size 0' and return cmd failure when length '0' is
passed to sf commands. Same thing applies for nand commands also.

Example:

ZynqMP> sf erase 0 0
ERROR: Invalid size 0
ZynqMP> sf write 10000 0 0
ERROR: Invalid size 0
ZynqMP> sf read 10000 0 0
ERROR: Invalid size 0
ZynqMP> sf update 1000 10000 0
ERROR: Invalid size 0
ZynqMP>

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
3 years agoscripts/Makefile.lib: change spelling of $(srctree)/arch/$(ARCH)/dts in dtc_cpp_flags
Rasmus Villemoes [Tue, 16 May 2023 09:17:56 +0000 (11:17 +0200)] 
scripts/Makefile.lib: change spelling of $(srctree)/arch/$(ARCH)/dts in dtc_cpp_flags

Currently, all in-tree .dts files (apart from some under test/ and
tools/), reside in arch/$ARCH/dts. However, in the linux kernel tree,
dts files for arm64 boards, and probably in the not too distant
future [1], arm boards as well, live in subdirectories of that.

For private forks, using a vendor or project subdirectory is also more
convenient to clearly separate private code from upstream - in the
same way that code under board/ is also split and easy to maintain.

In order to prepare for us to follow suit and do the splitting of the
in-tree .dts files, and to make life a little easier for private forks
that already place dts files not directly in arch/$ARCH/dts, change
the $(srctree)/arch/$(ARCH)/dts path to instead refer to the directory of
the .dts file being compiled. This should be a no-op for all existing
cases.

[1] https://lore.kernel.org/lkml/20220328000915.15041-1-ansuelsmth@gmail.com/

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
3 years agosemihosting: create file in smh_fs_write_at()
Heinrich Schuchardt [Fri, 12 May 2023 22:47:03 +0000 (00:47 +0200)] 
semihosting: create file in smh_fs_write_at()

If a file does not exist, it should be created.

Fixes: f676b45151c3 ("fs: Add semihosting filesystem")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoarm: set alignment properly for asm funcs
Sam Edwards [Fri, 12 May 2023 22:31:05 +0000 (16:31 -0600)] 
arm: set alignment properly for asm funcs

ARM requires a 4-byte alignment on all ARM code (though this
requirement is relaxed to 2-byte for some THUMB code) and we
should be explicit about that here.

GAS has its own fix for this[1] that forces proper alignment
on any section containing assembled instructions, but this is
not universal: Clang's and other gaslike assemblers lack this
implicit alignment. Whether or not this is considered a bug in
those assemblers, it is better to ask directly for what we want.

[1]: https://sourceware.org/bugzilla/show_bug.cgi?id=12931

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
3 years agocmd: fs: document where 'size' stores its result
Baruch Siach [Sun, 7 May 2023 10:48:06 +0000 (13:48 +0300)] 
cmd: fs: document where 'size' stores its result

Make it a little bit easier for the user to utilize the 'size' command.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agocli: avoid buffer overrun
Heinrich Schuchardt [Tue, 2 May 2023 02:34:09 +0000 (04:34 +0200)] 
cli: avoid buffer overrun

Invoking the sandbox with

    /u-boot -c ⧵0xef⧵0xbf⧵0xbd

results in a segmentation fault.

Function b_getch() retrieves a character from the input stream. This
character may be > 0x7f. If type char is signed, static_get() will
return a negative number and in parse_stream() we will use that
negative number as an index for array map[] resulting in a buffer
overflow.

Reported-by: Harry Lockyer <harry_lockyer@tutanota.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agospl: Correct checking of configuration node
Bin Meng [Mon, 1 May 2023 03:35:26 +0000 (11:35 +0800)] 
spl: Correct checking of configuration node

Per the fit_conf_get_node() API doc, it returns configuration node
offset when found (>=0).

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agocmd: fdt: Correct checking of configuration node
Bin Meng [Mon, 1 May 2023 03:35:25 +0000 (11:35 +0800)] 
cmd: fdt: Correct checking of configuration node

fit_conf_get_node() returns a negative value on error.

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoefi: Correct .efi rules
Simon Glass [Sun, 30 Apr 2023 01:21:47 +0000 (19:21 -0600)] 
efi: Correct .efi rules

These files should have both 'always' and 'targets' so that dependencies
are detected correctly.

When only 'always' is used, the target is built every time, although I am
not quite sure why.

Make sure each has both 'always' and 'targets' to avoid this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoacpi: Put the version numbers in a central place
Simon Glass [Sun, 30 Apr 2023 01:21:46 +0000 (19:21 -0600)] 
acpi: Put the version numbers in a central place

At present two acpi files are built every time since they use a version
number from version.h

This is not necessary. Make use of the same technique as for the version
string, so that they are build only when they change.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoMakefile: Fix incorrect FORCE deps on env rules
Simon Glass [Sun, 30 Apr 2023 01:21:45 +0000 (19:21 -0600)] 
Makefile: Fix incorrect FORCE deps on env rules

These rules run on every build even if nothing has changed. The FORCE
dependency is only needed for if_changed, not for cmd. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agofastboot: Only call the bootm command if it is enabled
Samuel Holland [Mon, 20 Feb 2023 06:14:58 +0000 (00:14 -0600)] 
fastboot: Only call the bootm command if it is enabled

This fixes an error with trying to link against do_bootm() when
CONFIG_CMD_BOOTM is disabled.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
3 years agoMerge branch '2023-05-31-cleanup-unaligned-access-macros' into next
Tom Rini [Wed, 31 May 2023 20:30:16 +0000 (16:30 -0400)] 
Merge branch '2023-05-31-cleanup-unaligned-access-macros' into next

To quote the author:

There are two versions of get/set_unaligned, get_unaligned_be64,
put_unaligned_le64 etc in U-Boot causing confusion (and bugs).

In this patch-set, I'm trying to fix that with a single unified version of
the access macros to be used across all archs. This work is inspired by
similar changes in this Linux kernel by Arnd Bergman,
https://lore.kernel.org/lkml/20210514100106.3404011-1-arnd@kernel.org/

3 years agoasm-generic: simplify unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:38 +0000 (14:22 +0200)] 
asm-generic: simplify unaligned.h

The get_unaligned()/put_unaligned() implementations are more
complex than necessary.

Move everything into one file and use a more compact implementation based
on packed struct access and byte swapping macros.

This patch is based on the Linux kernel commit 803f4e1eab7a
("asm-generic: simplify asm/unaligned.h") by Arnd Bergmann.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agolinux/unaligned: remove unused access_ok.h
Jens Wiklander [Mon, 22 May 2023 12:22:37 +0000 (14:22 +0200)] 
linux/unaligned: remove unused access_ok.h

linux/unaligned/access_ok.h is unused, so remove it.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agofs/btrfs: use asm/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:36 +0000 (14:22 +0200)] 
fs/btrfs: use asm/unaligned.h

Use asm/unaligned.h instead of linux/unaligned/access_ok.h for unaligned
access. This is needed on architectures that doesn't handle unaligned
accesses directly.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agopowerpc: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:35 +0000 (14:22 +0200)] 
powerpc: use asm-generic/unaligned.h

Powerpc configurations are apparently able to do unaligned accesses. But
in an attempt to clean up and handle unaligned accesses in the same way
we ignore that and use the common asm-generic/unaligned.h directly
instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agom68k: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:34 +0000 (14:22 +0200)] 
m68k: use asm-generic/unaligned.h

M68k essentially duplicates the content of asm-generic/unaligned.h, with
an exception for non-Coldfire configurations. Coldfire configurations
are apparently able to do unaligned accesses. But in an attempt to clean
up and handle unaligned accesses in the same way we ignore that and use
the common asm-generic/unaligned.h directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Angelo Dureghello <angelo@kernel-space.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agomips: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:33 +0000 (14:22 +0200)] 
mips: use asm-generic/unaligned.h

Mips essentially duplicates the content of asm-generic/unaligned.h, so use
that file directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agosh: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:32 +0000 (14:22 +0200)] 
sh: use asm-generic/unaligned.h

Sh essentially duplicates the content of asm-generic/unaligned.h, so use
that file directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoarm: use asm-generic/unaligned.h
Jens Wiklander [Mon, 22 May 2023 12:22:31 +0000 (14:22 +0200)] 
arm: use asm-generic/unaligned.h

Arm duplicates the content of asm-generic/unaligned.h, so use that file
directly instead.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoMerge branch '2023-05-31-code-cleanups' into next
Tom Rini [Wed, 31 May 2023 16:32:38 +0000 (12:32 -0400)] 
Merge branch '2023-05-31-code-cleanups' into next

- Correct some header double-inclusion guards and remove some dead (or
  in the case of ti816x, unmaintained) code.

3 years agoinclude: Remove unused header files
Tom Rini [Tue, 16 May 2023 16:34:47 +0000 (12:34 -0400)] 
include: Remove unused header files

As part of various code clean-ups we have on occasion missed removing
unused header files.  None of these files are referenced anywhere else
at this point.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agofaraday: remove orphaned header file
Andre Przywara [Mon, 15 May 2023 13:52:14 +0000 (14:52 +0100)] 
faraday: remove orphaned header file

Commit 11232139e399 ("nds32: Remove the architecture") removed the nds32
architecture, and with it the last user of the Faraday AHB controller
header file.

Consequently remove that header file as well.

This was found because the inclusion guard was misspelled.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoexynos: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:13 +0000 (14:52 +0100)] 
exynos: fix header inclusion guard

It seems like the header inclusion guard for the Exynos pinctrl header
was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agofreescale: vsc3316_3308: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:12 +0000 (14:52 +0100)] 
freescale: vsc3316_3308: fix header inclusion guard

It seems like the header inclusion guard for some Freescale crosspoint
switch header was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoarm: uniphier: fix header inclusion guard
Andre Przywara [Mon, 15 May 2023 13:52:11 +0000 (14:52 +0100)] 
arm: uniphier: fix header inclusion guard

It seems like the header inclusion guard for some Uniphier DDR PHY
header was misspelled.

Make the preprocessor symbol for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoimx: fix header inclusion guards
Andre Przywara [Mon, 15 May 2023 13:52:10 +0000 (14:52 +0100)] 
imx: fix header inclusion guards

It seems like the header inclusion guards for some IMX related headers
were misspelled or got out of sync.

Make the preprocessor symbols for the #ifndef and #define lines the
same, so that the double inclusion protection works as expected.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agoarm: Remove ti816x_evm board and ti816x SoC support
Tom Rini [Thu, 11 May 2023 18:07:24 +0000 (14:07 -0400)] 
arm: Remove ti816x_evm board and ti816x SoC support

This platform is currently unmaintained and untested, so remove it.
Further, as it is the only TI816X SoC example, remove related files as
well.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge branch '2023-05-30-TI-fixes-Apple-M2-support'
Tom Rini [Tue, 30 May 2023 20:23:41 +0000 (16:23 -0400)] 
Merge branch '2023-05-30-TI-fixes-Apple-M2-support'

- Fixes for some TI K3 platforms and merge the Apple M2 support I had
  intended to pick up earlier.

3 years agopci: apple: Add support for M2 Pro/Max
Mark Kettenis [Tue, 2 May 2023 19:30:41 +0000 (21:30 +0200)] 
pci: apple: Add support for M2 Pro/Max

The PCIe controller on the M2 Pro/Max is different from the one
found on earlier Apple SoCs.  Some registers moved and te meaning
of the bits in some other registers changed.  But they are still
similar enough to handle both controllers in the same driver.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
3 years agoarm: apple: Add initial Apple M2 Pro/Max support
Mark Kettenis [Tue, 2 May 2023 19:30:40 +0000 (21:30 +0200)] 
arm: apple: Add initial Apple M2 Pro/Max support

Apple's M2 Pro/Max SoC are somewhat similar to the M1 Pro/Max but
need a tweaked memory map.  USB, NVMe, UART and WDT are working
with the existing drivers.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
3 years agoarm: mach-k3: security: separate out validating binary logic
Manorit Chawdhry [Thu, 18 May 2023 07:14:17 +0000 (12:44 +0530)] 
arm: mach-k3: security: separate out validating binary logic

K3 GP devices allows booting the secure binaries on them by bypassing
the x509 header on them.

ATF and OPTEE firewalling required the rproc_load to be called before
authentication. This change caused the failure for GP devices that
strips off the headers. The boot vector had been set before the headers
were stripped off causing the runtime stripping to fail and stripping
becoming in-effective.

Separate out the secure binary check on GP/HS devices so that the
boot_vector could be stripped before calling rproc_load. This allows
keeping the authentication later when the cluster is on along with
allowing the stripping of the binaries in case of gp devices.

Fixes: 1e00e9be62e5 ("arm: mach-k3: common: re-locate authentication for atf/optee")
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
3 years agoarm: mach-k3: Increase SYSFW max image size
Dave Gerlach [Tue, 16 May 2023 04:54:37 +0000 (10:24 +0530)] 
arm: mach-k3: Increase SYSFW max image size

When booting with HS silicon, the system firmware image is 278270, which
is slightly larger than currently allocated amount.

This can cause unexpected behavior if this overlap interferes with other
things in memory, so increase this with a slightly margin added as well
to avoid any boot issues that can appear after system firmware gets
loaded.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Tero Kristo <kristo@kernel.org>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
3 years agoKconfig: j721e: Change K3_MCU_SCRATCHPAD_BASE to non firewalled region
Manorit Chawdhry [Tue, 16 May 2023 04:54:36 +0000 (10:24 +0530)] 
Kconfig: j721e: Change K3_MCU_SCRATCHPAD_BASE to non firewalled region

In non-combined boot flow for K3, all the firewalls are locked by default
until sysfw comes up. Rom configures some of the firewall for its usage
along with the SRAM for R5 but the PSRAM region is still locked.

The K3 MCU Scratchpad for j721e was set to a PSRAM region triggering the
firewall exception before sysfw came up. The exception started happening
after adding multi dtb support that accesses the scratchpad for reading
EEPROM contents.

The commit changes R5 MCU scratchpad for j721e to an SRAM region.

Old Map:
┌─────────────────────────────────────┐ 0x41c00000
│                 SPL                 │
├─────────────────────────────────────┤ 0x41c40000 (approx)
│                STACK                │
├─────────────────────────────────────┤ 0x41c85b20
│             Global data             │
│  sizeof(struct global_data) = 0xd8  │
├─────────────────────────────────────┤ gd->malloc_base = 0x41c85bfc
│                HEAP                 │
│  CONFIG_SYS_MALLOC_F_LEN = 0x70000  │
├─────────────────────────────────────┤ CONFIG_SPL_BSS_START_ADDR
│               SPL BSS               │ (0x41cf5bfc)
│  CONFIG_SPL_BSS_MAX_SIZE = 0xA000   │
└─────────────────────────────────────┘ CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX
                (0x41cffbfc)

New Map:
┌─────────────────────────────────────┐ 0x41c00000
│                 SPL                 │
├─────────────────────────────────────┤ 0x41c40000 (approx)
│                EMPTY                │
├─────────────────────────────────────┤ 0x41c81920
│                STACK                │
│ SPL_SIZE_LIMIT_PROVIDE_STACK=0x4000 │
├─────────────────────────────────────┤ 0x41c85920
│             Global data             │
│  sizeof(struct global_data) = 0xd8  │
├─────────────────────────────────────┤ gd->malloc_base = 0x41c859f0
│                HEAP                 │
│  CONFIG_SYS_MALLOC_F_LEN = 0x70000  │
├─────────────────────────────────────┤ CONFIG_SPL_BSS_START_ADDR
│               SPL BSS               │ (0x41cf59f0)
│  CONFIG_SPL_BSS_MAX_SIZE = 0xA000   │
├─────────────────────────────────────┤ 0x41cff9fc
│         NEW MCU SCRATCHPAD          │
│  SYS_K3_MCU_SCRATCHPAD_SIZE = 0x200 │
└─────────────────────────────────────┘ CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX
                (0x41cffbfc)

Fixes: ab977c8b91b4 ("configs: j721s2_evm_r5: Enable support for building multiple dtbs into FIT")
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
[n-francis@ti.com: SRAM allocation addressing diagram]
Signed-off-by: Neha Francis <n-francis@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Kamlesh Gurudasani <kamlesh@ti.com>
3 years agoconfigs: j721e: Merge the HS and non-HS defconfigs
Manorit Chawdhry [Tue, 16 May 2023 04:54:35 +0000 (10:24 +0530)] 
configs: j721e: Merge the HS and non-HS defconfigs

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

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

Reviewed-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
3 years agoarm: k3: config.mk: Add missing dependencies on tispl.bin HS
Andrew Davis [Tue, 16 May 2023 04:54:34 +0000 (10:24 +0530)] 
arm: k3: config.mk: Add missing dependencies on tispl.bin HS

When building for secure devices using non-buildman based image generation
the signed tispl.bin file is called tispl.bin_HS. Also build the unsigned
tispl.bin file as expected.

Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
3 years agoPrepare v2023.07-rc3 v2023.07-rc3
Tom Rini [Mon, 29 May 2023 14:59:09 +0000 (10:59 -0400)] 
Prepare v2023.07-rc3

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 29 May 2023 14:43:26 +0000 (10:43 -0400)] 
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge tag 'u-boot-imx-20230525' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Thu, 25 May 2023 18:27:39 +0000 (14:27 -0400)] 
Merge tag 'u-boot-imx-20230525' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

u-boot-imx-20230525
-------------------

- i.MX93 series
- Fixes

CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/16412

3 years agoserial: mxs: Add MXS AUART driver
Marek Vasut [Sat, 6 May 2023 14:43:31 +0000 (16:43 +0200)] 
serial: mxs: Add MXS AUART driver

Add trivial driver for the MXS AUART IP. This is the other UART IP
present in i.MX23 and i.MX28, used to drive the non-DUART ports.

Signed-off-by: Marek Vasut <marex@denx.de>
3 years agoimx9: imx93_evk: enable sysreset
Peng Fan [Fri, 28 Apr 2023 04:08:47 +0000 (12:08 +0800)] 
imx9: imx93_evk: enable sysreset

Enable sysreset for i.MX93 EVK.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: imx93_evk: update ddr timing file
Peng Fan [Fri, 28 Apr 2023 04:08:46 +0000 (12:08 +0800)] 
imx9: imx93_evk: update ddr timing file

Update DDR timing file generated by DDR Config Tool
1. Dynamic refresh rate is set by default
2. The 3rd freq will be 625MTS based on power and performance better than 100MTS.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: Calculate DDR size from DDRC setting
Ye Li [Fri, 28 Apr 2023 04:08:45 +0000 (12:08 +0800)] 
imx9: Calculate DDR size from DDRC setting

To avoid using static setting for ECC enabled DDR size, switch
to calculate DDR size from DDRC setting

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoddr: imx9: update the rank setting for multi fsp support
Jacky Bai [Fri, 28 Apr 2023 04:08:44 +0000 (12:08 +0800)] 
ddr: imx9: update the rank setting for multi fsp support

The rank setting flow should be updated to support multi
fsp config.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoddr: imx93: update the ddr init to support mult setpoints
Jacky Bai [Fri, 28 Apr 2023 04:08:43 +0000 (12:08 +0800)] 
ddr: imx93: update the ddr init to support mult setpoints

Update the DDR init flow for multi-setpoint support on i.MX93. A new
fsp_cfg struct need to be added in the timing file to store the diff
part of the DDRC and DRAM MR register for each setpoint.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoddr: imx93: Add 625M bypass clock support
Jacky Bai [Fri, 28 Apr 2023 04:08:42 +0000 (12:08 +0800)] 
ddr: imx93: Add 625M bypass clock support

Add 625M bypass clock that may be used DRAM 625M
bypass mode support.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoddr: imx9: Change the saved ddr data base to 0x2051c000
Jacky Bai [Fri, 28 Apr 2023 04:08:41 +0000 (12:08 +0800)] 
ddr: imx9: Change the saved ddr data base to 0x2051c000

change the ddr saved info to the last 16KB of the OCRAM.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: imx93_evk: Update spl stack & bss base address
Peng Fan [Fri, 28 Apr 2023 04:08:40 +0000 (12:08 +0800)] 
imx9: imx93_evk: Update spl stack & bss base address

As the ddr timing info will be saved at the last 16KB of
the OCRAM, spl stack & bss base should be updated to avoid
conflict.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoddr: imx9: Add workaround for DDRPHY rank-to-rank errata
Ye Li [Fri, 28 Apr 2023 04:08:39 +0000 (12:08 +0800)] 
ddr: imx9: Add workaround for DDRPHY rank-to-rank errata

According to DDRPHY errata, the Rank-to-Rank Spacing and tphy_rdcsgap
specification does not include the Critical Delay Difference (CDD) to
properly define the required rank-to-rank read command spacing after
executing PHY training firmware.

Following the errata workaround, at the end of data training, we get
all CDD values through the MessageBlock, then re-configure the DDRC
timing of WWT/WRT/RRT/RWT with comparing MAX CDD values.

Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
3 years agoarm: dts: imx93: add tmu
Peng Fan [Fri, 28 Apr 2023 04:08:38 +0000 (12:08 +0800)] 
arm: dts: imx93: add tmu

Add tmu nodes and thermal zone

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoarm: dts: imx93: sync device tree with Linux
Peng Fan [Fri, 28 Apr 2023 04:08:37 +0000 (12:08 +0800)] 
arm: dts: imx93: sync device tree with Linux

Sync device tree with next-20230426

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: allow to bootaux Mcore with input address
Ye Li [Fri, 28 Apr 2023 04:08:36 +0000 (12:08 +0800)] 
imx9: allow to bootaux Mcore with input address

Currently bootaux only supports to boot M33 core from TCM. Since ATF
has changed to use x2 parameter for M33 image address, update the
bootaux command to use input address, so we can support boot from
any possilbe address like TCM, DDR, Flexspi NOR.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: imx93_evk: add low drive mode support on 11x11 EVK
Peng Fan [Fri, 28 Apr 2023 04:08:35 +0000 (12:08 +0800)] 
imx9: imx93_evk: add low drive mode support on 11x11 EVK

Add a static u-boot config for i.MX93 low drive mode support. When
low drive mode is enabled, VDD_SOC is set to 0.75V. Bus clocks,
A55 core clock (900Mhz), DDR clock (1866MTS), and some peripherals
clocks (USDHC/FLEXSPI/PDM/DISP_PIX/CAM_PIX) must decrease to meet
max frequencies in low drive mode.

Also set standby voltage for buck1

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: use i.MX generic rom api function
Peng Fan [Fri, 28 Apr 2023 04:08:34 +0000 (12:08 +0800)] 
imx9: use i.MX generic rom api function

There is no need to save gd with using the generic rom api function, so
simplify code.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: correct coding style
Peng Fan [Fri, 28 Apr 2023 04:08:33 +0000 (12:08 +0800)] 
imx9: correct coding style

The end brace should be in a new line

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: add i.MX93 variants support
Peng Fan [Fri, 28 Apr 2023 04:08:32 +0000 (12:08 +0800)] 
imx9: add i.MX93 variants support

According to datasheet, iMX93 has fused parts with CORE1 or NPU or
both disabled. So update code to support it, the kernel device tree
runtime update will be added in future patches.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: clock: config arm alt root to 500mhz
Peng Fan [Fri, 28 Apr 2023 04:08:31 +0000 (12:08 +0800)] 
imx9: clock: config arm alt root to 500mhz

Config the A55 alt root clock to 500MHz(LD mode frequency)
by default. Normally, this clock root is only used as an
intermediate clock soure for A55 core/dsu when change the
ARM PLL frequency.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: clock: add CONFIG_IMX9_LOW_DRIVE_MODE support
Peng Fan [Fri, 28 Apr 2023 04:08:30 +0000 (12:08 +0800)] 
imx9: clock: add CONFIG_IMX9_LOW_DRIVE_MODE support

Add CONFIG_IMX9_LOW_DRIVE_MODE in imx9 clk, later we will
add board support

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: clock: clear HW_CTRL_SEL
Peng Fan [Fri, 28 Apr 2023 04:08:29 +0000 (12:08 +0800)] 
imx9: clock: clear HW_CTRL_SEL

The HW_CTRL_SEL should be cleared when configuring PLL to avoid
potential glitch

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: Get market segment and speed grading
Peng Fan [Fri, 28 Apr 2023 04:08:28 +0000 (12:08 +0800)] 
imx9: Get market segment and speed grading

Get the chip's market segment and speed grading from fuse and print
them in boot log as other i.MX series.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: soc: support reset cause
Peng Fan [Fri, 28 Apr 2023 04:08:27 +0000 (12:08 +0800)] 
imx9: soc: support reset cause

Support print reset cause. Since SRSR is not accessible from non-secure
world, so first save it to grp0, then read it in non-secure world.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agowatchdog: ulp_wdog: guard reset_cpu with condition check
Peng Fan [Fri, 28 Apr 2023 04:08:26 +0000 (12:08 +0800)] 
watchdog: ulp_wdog: guard reset_cpu with condition check

There will be build error if CONFIG_SYSRESET is enabled, so guard
the reset_cpu with condition check here

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoimx9: imx93_evk: enable CONFIG_WDT
Peng Fan [Fri, 28 Apr 2023 04:08:25 +0000 (12:08 +0800)] 
imx9: imx93_evk: enable CONFIG_WDT

Without this config, there is boot error: Error binding ulp_wdt driver

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoimx9: imx93_evk: select IMX_TMU
Peng Fan [Fri, 28 Apr 2023 04:08:24 +0000 (12:08 +0800)] 
imx9: imx93_evk: select IMX_TMU

Select thermal config to print current temperature

Signed-off-by: Peng Fan <peng.fan@nxp.com>