platform/kernel/u-boot.git
22 months agoconfigs: imx8mm-cl-iot-gate: enable extension command
Ying-Chun Liu (PaulLiu) [Wed, 25 May 2022 09:30:08 +0000 (17:30 +0800)]
configs: imx8mm-cl-iot-gate: enable extension command

For imx8mm-cl-iot-gate we can use extension command to scan
extension boards attached on the mainboard. We enable the
extension command by default for users to detect the extension
boards.

Signed-off-by: Ying-Chun Liu (PaulLiu) <paulliu@debian.org>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP i.MX U-Boot Team <uboot-imx@nxp.com>
22 months agoconfigs: imx8mp_venice: remove unnecessary FEC_QUIRK_ENET_MAC
Tim Harvey [Fri, 20 May 2022 15:17:29 +0000 (08:17 -0700)]
configs: imx8mp_venice: remove unnecessary FEC_QUIRK_ENET_MAC

FEC_QUIRK_ENET_MAC is defined in the imx-regs.h include file and thus
does not need to be defined in the various board config includes.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
22 months agoimx8mm: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:40 +0000 (15:27 +0200)]
imx8mm: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoboard: toradex: apalis-imx8: fix file names in maintainers
Marcel Ziswiler [Thu, 21 Jul 2022 13:48:22 +0000 (15:48 +0200)]
board: toradex: apalis-imx8: fix file names in maintainers

Fix device tree file names in MAINTAINERS file.

Fixes: 3d6036650059 ("board: toradex: add apalis imx8qm 4gb wb it v1.0b module support")
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mq: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:47:59 +0000 (15:47 +0200)]
imx8mq: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoverdin-imx8mp: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:46:44 +0000 (15:46 +0200)]
verdin-imx8mp: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device tree we are now using the
regular one for the Verdin Development (carrier) board (e.g.
imx8mp-verdin-wifi-dev.dtb rather than the previous imx8mp-verdin.dtb).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mp-rsb3720-a1: fix pwms property warnings
Marcel Ziswiler [Thu, 21 Jul 2022 13:45:26 +0000 (15:45 +0200)]
imx8mp-rsb3720-a1: fix pwms property warnings

Fix the following build-time pwms property warnings:

w+arch/arm/dts/imx8mp-rsb3720-a1.dtb: Warning (pwms_property):
 /lvds_backlight@0:pwms: property size (12) too small for cell size 3
w+arch/arm/dts/imx8mp-rsb3720-a1.dtb: Warning (pwms_property):
 /lvds_backlight@1:pwms: property size (12) too small for cell size 3

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mp: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:44:32 +0000 (15:44 +0200)]
imx8mp: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mn: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:43:37 +0000 (15:43 +0200)]
imx8mn: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mm-mx8menlo/verdin-imx8mm: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:41:23 +0000 (15:41 +0200)]
imx8mm-mx8menlo/verdin-imx8mm: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device tree we are now using the
regular one for the Verdin Development (carrier) board (e.g.
imx8mm-verdin-wifi-dev.dtb rather than the previous imx8mm-verdin.dtb).

Please further note that the PMIC node name got changed from a pmic
label to pmic@25 which required adjustment in resp. board SPL file
board/toradex/verdin-imx8mm/spl.c.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mm-kontron-n801x-s-lvds: fix pwms property warnings
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:41 +0000 (15:27 +0200)]
imx8mm-kontron-n801x-s-lvds: fix pwms property warnings

Fix the following build-time pwms property warnings:

w+arch/arm/dts/imx8mm-kontron-n801x-s-lvds.dtb: Warning (pwms_property):
 /backlight:pwms: property size (12) too small for cell size 3

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx8mm-venice-gw700x: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:39 +0000 (15:27 +0200)]
imx8mm-venice-gw700x: prepare to synchronise device trees with linux

As a preparatory step remove the pinctrl_pmic reference which does not
exist in the Linux upistream device tree.

This avoids the following error once synchronised:

+Error: arch/arm/dts/imx8mm-venice-gw700x-u-boot.dtsi:26.1-14 Label or
 path pinctrl_pmic not found

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agocolibri_vf: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:38 +0000 (15:27 +0200)]
colibri_vf: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device tree we are now using the
regular one for the Colibri Evaluation (carrier) board V3 (e.g.
vf610-colibri-eval-v3.dtb rather than the previous vf610-colibri.dtb).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agovf500/vf610: synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:37 +0000 (15:27 +0200)]
vf500/vf610: synchronise device trees with linux

Synchronise device trees with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoARM: DTS: bk4r1/pcm052: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:36 +0000 (15:27 +0200)]
ARM: DTS: bk4r1/pcm052: prepare to synchronise device trees with linux

As a preparatory step rename the included SoC dtsi from vf.dtsi to
vf610.dtsi as this is how it is named in Linux upstream.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agocolibri-imx7d/-emmc: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:35 +0000 (15:27 +0200)]
colibri-imx7d/-emmc: synchronise device tree with linux

Synchronise device tree with linux-next next-20220708.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device trees we are now using the
regular ones for the Colibri Evaluation (carrier) board V3 (e.g.
imx7d-colibri-eval-v3.dtb rather than the previous
imx7-colibri-rawnand.dtb and imx7d-colibri-emmc-eval-v3.dtb rather than
the previous imx7-colibri-emmc.dtb).

Please further note that the PMIC node name got changed from rn5t567@33
to pmic@33 which required adjustment in resp. board file
board/toradex/colibri_imx7/colibri_imx7.c.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx7s/d: synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:34 +0000 (15:27 +0200)]
imx7s/d: synchronise device trees with linux

Synchronise device tree with linux-next next-20220708.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx: imx7d-sdb: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:33 +0000 (15:27 +0200)]
imx: imx7d-sdb: prepare to synchronise device trees with linux

As a preparatory step remove the epdc reference which does not exist in
the Linux upstream device tree and rename the qspi1 reference to qspi as
this is how it is named in the Linux upstream device tree.

This avoids the following error once synchronised:

+Error: arch/arm/dts/.imx7d-sdb-qspi.dtb.pre.tmp:10.1-6 Label or path
 epdc not found
+Error: arch/arm/dts/.imx7d-sdb-qspi.dtb.pre.tmp:29.1-7 Label or path
 qspi1 not found
+Error: arch/arm/dts/imx7d-sdb-qspi-u-boot.dtsi:6.1-7 Label or path
 qspi1 not found

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx: imx7-cm: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:32 +0000 (15:27 +0200)]
imx: imx7-cm: prepare to synchronise device trees with linux

As a preparatory step rename the qspi1 reference to qspi as this is how
it is named in the Linux upstream device tree.

This avoids the following error once synchronised:

+Error: arch/arm/dts/.imx7-cm.dtb.pre.tmp:96.1-7 Label or path qspi1 not
 found

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agocolibri-imx6ull/-emmc: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:31 +0000 (15:27 +0200)]
colibri-imx6ull/-emmc: synchronise device tree with linux

Synchronise device tree with linux v5.19-rc5.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device trees we are now using the
regular ones for the Colibri Evaluation (carrier) board V3 (e.g.
imx6ull-colibri-eval-v3.dtb rather than the previous imx6ull-colibri.dtb
and imx6ull-colibri-emmc-eval-v3.dtb rather than the previous
imx6ull-colibri-emmc.dtb).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx6ul/imx6ull: synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:30 +0000 (15:27 +0200)]
imx6ul/imx6ull: synchronise device trees with linux

Synchronise device trees with linux v5.19-rc5.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx: mx6ul_14x14_evk: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:29 +0000 (15:27 +0200)]
imx: mx6ul_14x14_evk: prepare to synchronise device trees with linux

As a preparatory step remove the qspi node with its flash0 label as this
is already in the Linux upstream device tree.

This avoids the following error once synchronised:

+arch/arm/dts/imx6ul-14x14-evk.dtb: ERROR (duplicate_label):
 /soc/bus@2100000/spi@21e0000/n25q256a@0: Duplicate label 'flash0' on
 /soc/bus@2100000/spi@21e0000/n25q256a@0 and
 /soc/bus@2100000/spi@21e0000/flash@0

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agocolibri_imx6: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:28 +0000 (15:27 +0200)]
colibri_imx6: synchronise device tree with linux

Synchronise device tree with linux-next next-20220708.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device tree we are now using the
regular one for the Colibri Evaluation (carrier) board V3 (e.g.
imx6dl-colibri-eval-v3.dtb rather than the previous imx6-colibri.dtb).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoapalis_imx6: synchronise device tree with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:27 +0000 (15:27 +0200)]
apalis_imx6: synchronise device tree with linux

Synchronise device tree with linux-next 20220706.

Please note that this also means that instead of the previous "generic"
U-Boot specific carrier board agnostic device tree we are now using the
regular one for the Apalis Evaluation (carrier) board (e.g.
imx6q-apalis-eval.dtb rather than the previous imx6-apalis.dtb).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx6dl/imx6qdl: synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:26 +0000 (15:27 +0200)]
imx6dl/imx6qdl: synchronise device trees with linux

Synchronise device trees with linux-next next-20220708.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agotbs2910: prepare to synchronise device trees with linux
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:25 +0000 (15:27 +0200)]
tbs2910: prepare to synchronise device trees with linux

As a preparatory step make sure to refer to absolute node paths where
labels were removed in Linux upstream.

This avoids the following error once synchronised:

+Error: arch/arm/dts/imx6q-tbs2910-u-boot.dtsi:3.1-7 Label or path aips1
 not found
+Error: arch/arm/dts/imx6q-tbs2910-u-boot.dtsi:11.1-5 Label or path soc
 not found

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agoimx6: aristainetos: fix pwms property warnings
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:24 +0000 (15:27 +0200)]
imx6: aristainetos: fix pwms property warnings

Fix the following build-time pwms property warnings:

w+arch/arm/dts/imx6dl-aristainetos2c_7.dtb: Warning (pwms_property):
 /backlight:pwms: property size (12) too small for cell size 3
w+arch/arm/dts/imx6dl-aristainetos2c_cslb_7.dtb: Warning (pwms_property):
 /backlight:pwms: property size (12) too small for cell size 3

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
22 months agoboard/BuR/brppt2: fix pwms property warning
Marcel Ziswiler [Thu, 21 Jul 2022 13:27:23 +0000 (15:27 +0200)]
board/BuR/brppt2: fix pwms property warning

Fix the following build-time pwms property warning:

w+arch/arm/dts/imx6dl-brppt2.dtb: Warning (pwms_property):
 /backlight:pwms: property size (12) too small for cell size 3

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
22 months agotoradex: common: Improve product/serial print during boot
Francesco Dolcini [Thu, 21 Jul 2022 13:17:38 +0000 (15:17 +0200)]
toradex: common: Improve product/serial print during boot

Add product id print in show_board_info(), with an increasing number of
Toradex SKUs available with small differences it makes sense to print it.

Move serial number print to a dedicated line, this prevents the previous
line with the product name to overflow the 80 columns with any
reasonable product name length.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: tdx-cfg-block: Use official SKU names
Francesco Dolcini [Thu, 21 Jul 2022 13:17:37 +0000 (15:17 +0200)]
toradex: tdx-cfg-block: Use official SKU names

Up to now in the code we named Toradex SKUs in a slightly different way
compared to the official product name, start using the official names
from now on to avoid misunderstanding.

This has also the nice benefit of the string being shorter, allowing
to fit nicely in 80 columns even adding the product ID when printing
the hardware information.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: common: Remove #ifdef usage for 2nd ethaddr
Francesco Dolcini [Thu, 21 Jul 2022 13:17:36 +0000 (15:17 +0200)]
toradex: common: Remove #ifdef usage for 2nd ethaddr

Fix checkpatch warn, use `IS_ENABLED(CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR)`
instead of `#ifdef CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR`.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: common: Remove stale function declaration
Francesco Dolcini [Thu, 21 Jul 2022 13:17:35 +0000 (15:17 +0200)]
toradex: common: Remove stale function declaration

Remove stale show_boot_logo() declaration, not used anywhere.

Fixes: e6fd30dd9eef ("toradex: drop legacy show_boot_logo function and use splashscreen")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: tdx-cfg-block: Cleanup interactive cfg block creation
Francesco Dolcini [Thu, 21 Jul 2022 13:17:34 +0000 (15:17 +0200)]
toradex: tdx-cfg-block: Cleanup interactive cfg block creation

Simplify interactive config block creation code, instead of having a
a long list of questions and a complex tree of preprocessor directive to
guess the exact SKU, just ask the user to select it from a list.

The modules list is filtered out to include only SKUs that are supported
by the specific u-boot binary in execution.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: common: Use ARRAY_SIZE macro
Francesco Dolcini [Thu, 21 Jul 2022 13:17:33 +0000 (15:17 +0200)]
toradex: common: Use ARRAY_SIZE macro

Use generally available ARRAY_SIZE macro, instead of hand-coding it
every time is needed.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: common: Remove stale comments about modules availability
Francesco Dolcini [Thu, 21 Jul 2022 13:17:32 +0000 (15:17 +0200)]
toradex: common: Remove stale comments about modules availability

Remove comment "not currently on sale" on specific SKUs, this
information does not belong to the code and will never be accurate.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agotoradex: tdx-cfg-block: add 0068 i.mx 8m mini sku
Philippe Schenker [Thu, 21 Jul 2022 13:17:31 +0000 (15:17 +0200)]
toradex: tdx-cfg-block: add 0068 i.mx 8m mini sku

Add new i.MX 8M Mini SKU to ConfigBlock handling.

0068: Verdin iMX8M Mini Quad 2GB WB IT No CAN

This SKU is identical to 0055 but without CAN. Mention this in the name
so those modules can be distinguished.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
22 months agoimx8mm: Sync device tree with linux-next 20220711
Fabio Estevam [Fri, 15 Jul 2022 16:57:19 +0000 (13:57 -0300)]
imx8mm: Sync device tree with linux-next 20220711

Sync imx8mm.dtsi device tree with linux-next 20220711.

The main motivation for doing this sync is the sha256 regression
reported by Andrey Zhizhikin [1].

The linux-next kernel has the following commit, which disables
the job ring 0 and fixes the problem:

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20220715&id=dc9c1ceb555ff661e6fc1081434600771f29657c

[1] https://lore.kernel.org/u-boot/AM6PR06MB46912207D9460CD9924F35DAA68B9@AM6PR06MB4691.eurprd06.prod.outlook.com/T/#t

Signed-off-by: Fabio Estevam <festevam@denx.de>
22 months agodoc: board: nxp: Add instructions to boot from QSPI
Mamta Shukla [Tue, 12 Jul 2022 14:36:23 +0000 (14:36 +0000)]
doc: board: nxp: Add instructions to boot from QSPI

Add instructions to build and boot from  QSPI Flash

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
22 months agoboard: freescale: Add entry for imx8mm_evk_fspi_defconfig
Mamta Shukla [Tue, 12 Jul 2022 14:36:22 +0000 (14:36 +0000)]
board: freescale: Add entry for imx8mm_evk_fspi_defconfig

Add entry for imx8mm_evk_fspi_defconfig in
board/freescale/imx8mm_evk/MAINTAINERS

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
22 months agoconfigs: imx8mm: Define CONFIG_SYS_UBOOT_BASE for i.MX8m
Mamta Shukla [Tue, 12 Jul 2022 14:36:21 +0000 (14:36 +0000)]
configs: imx8mm: Define CONFIG_SYS_UBOOT_BASE for i.MX8m

The macro `CONFIG_SYS_UBOOT_BASE` is used by SPL loaders `"NOR"` and
`"XIP"` to determine the base address of u-boot.

For `"NOR"` on i.MX8MM it is the base address of QSPI0 plus the offset
of the flattened image tree blob.
Although `QSPI0_AMBA_BASE` is used to define CONFIG_SYS_UBOOT_BASE in
multiple board header files for i.MX8MM, it is not specified.

Specify offset of flattened image tree blob (needs to be set to same
value as specified in 'binman' node), base address of QSPI0 and size of
FlexSPI configuration block.

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
22 months agoboard: freescale: Add QSPI Boot support in spl for i.MX8m
Mamta Shukla [Tue, 12 Jul 2022 14:36:20 +0000 (14:36 +0000)]
board: freescale: Add QSPI Boot support in spl for i.MX8m

Add QSPI Boot option in u-boot-spl for i.MX8m EVK.

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
22 months agoconfigs: Add config for enabling FSPI boot option for i.MX8m
Mamta Shukla [Tue, 12 Jul 2022 14:36:19 +0000 (14:36 +0000)]
configs: Add config for enabling FSPI boot option for i.MX8m

Add imx8mm_evk_fspi_defconfig to build QSPI boot image.
This config is based on imx8mm_evk_defconfig with addtional config options to
define FSPI Header parameters required to generate QSPI Header.
Update SPL offset to include header size  and overwrite IMX_CONFIG to use
lpddr.cfg for FSPI.

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
22 months agodts: imx8mm-uboot: Add support to pack FlexSPI Header using binman
Mamta Shukla [Tue, 12 Jul 2022 14:36:18 +0000 (14:36 +0000)]
dts: imx8mm-uboot: Add support to pack FlexSPI Header using binman

Add definition for FSPI configuration block and subsequently new offsets for
u-boot-spl and u-boot-itb for CONFIG_FSPI_HEADER option.

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
22 months agotools: mkimage: Add support to generate FlexSPI Header for i.MX8m
Mamta Shukla [Tue, 12 Jul 2022 14:36:17 +0000 (14:36 +0000)]
tools: mkimage: Add support to generate FlexSPI Header for i.MX8m

Add struct with Flex SPI Configuration Block and enable generating
fspi header using mkimage.

Refer i.MX 8M Mini Application Processor Reference Manual for
detailed information about parameters for FlexSPI Configuration block.

Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
Signed-off-by: Thomas Haemmerle <thomas.haemmerle@leica-geosystems.com>
Tested-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
22 months agotools: imx8mimage: Keep IVT reserved1 field zero always
Marek Vasut [Wed, 29 Jun 2022 15:16:37 +0000 (17:16 +0200)]
tools: imx8mimage: Keep IVT reserved1 field zero always

Since fe8acf556c3 ("imx: HAB: Validate IVT before authenticating image")
the U-Boot HAB implementation is checking whether reserved1 field in IVT
is zero or not. In case the field is not zero, IVT validation fails. Stop
setting IVT reserved1 field to non-zero in mkimage imx8m plugin, otherwise
the validation cannot ever work.

Note that this only affects legacy boards which do not use binman.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
22 months agoimx8ulp: soc.c: use rom_api_query_boot_infor() wrapper
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:22 +0000 (10:53 +0200)]
imx8ulp: soc.c: use rom_api_query_boot_infor() wrapper

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agoimx8m: soc.c: use rom_api_query_boot_infor() wrapper
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:21 +0000 (10:53 +0200)]
imx8m: soc.c: use rom_api_query_boot_infor() wrapper

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agoimx8: use ROM API wrappers in spl_imx_romapi.c
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:20 +0000 (10:53 +0200)]
imx8: use ROM API wrappers in spl_imx_romapi.c

Simplify the use of the ROM API by using the wrappers that take care
of saving/restoring gd and computing the xor value. This makes the
generated code smaller and the C code easier to read.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agoimx8: add rom api wrappers
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:19 +0000 (10:53 +0200)]
imx8: add rom api wrappers

The ROM API is thoroughly undocumented, but apparently passing the xor
of the real arguments as an extra argument is required [1]. Also, we
need to do the "save gd/restore gd" dance. These are both error-prone,
and lead to a lot of code duplication.

Since both imx8m[np] and imx8ulp SOCs have this, add a separate
translation unit which is included precisely when the new
CONFIG_IMX8_ROMAPI symbol is set, which provide convenience wrappers
that take care of computing the xor value as well as doing the gd
dance, and that thus have a more intuitive API. Subsequent patches
will make use of these to reduce boilerplate.

[1] One wonders, for example, if the check is only applied to the
lower 32 bits, or if we're implicitly relying on all 64-bit pointer
values we're passing effectively have 0 in the upper 32 bits.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agoimx8: sys_proto.h: change guard logic around ROM API
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:18 +0000 (10:53 +0200)]
imx8: sys_proto.h: change guard logic around ROM API

This exposes the struct rom_api, the g_rom_api variable declaration
and the associated #defines to slightly fewer boards: namely, those
IMX8M which are not IMX8MN or IMX8MP. But the latter two are the only
IMX8M* ones where the g_rom_api variable is defined (in imx8m/soc.c),
so that should be fine.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agoimx8: add hidden IMX8_ROMAPI Kconfig symbol
Rasmus Villemoes [Mon, 20 Jun 2022 08:53:17 +0000 (10:53 +0200)]
imx8: add hidden IMX8_ROMAPI Kconfig symbol

In order not to repeat the IMX8MN || IMX8MP || IMX8ULP logic in
multiple places where we need to know if the SOC exposes the ROM API,
add a "def_bool y" Kconfig symbol.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
22 months agomx6cuboxi: fix board detection while patching device-tree phy nodes
Josua Mayer [Thu, 16 Jun 2022 08:40:15 +0000 (11:40 +0300)]
mx6cuboxi: fix board detection while patching device-tree phy nodes

ft_board_setup relies on the board_type() function to optimize which phy
nodes need to be enabled for Linux.
Add calls to setup and release the board-detect GPIOs.

Also fix the switch-case statement to only enable phy address 4 for
Cubox and unknown devices.

Fixes: 741ce308 ("mx6cuboxi: fixup dtb ethernet phy nodes before booting an OS")
Signed-off-by: Josua Mayer <josua@solid-run.com>
22 months agoarm: dts: imx8mm-venice-gw700x: add support for GPY111 phy
Tim Harvey [Fri, 20 May 2022 15:55:47 +0000 (08:55 -0700)]
arm: dts: imx8mm-venice-gw700x: add support for GPY111 phy

The TI DP83867 phy has been replaced with the MaxLinear GPY111 phy
due to part availability. Add support for it:
 - increase post-reset time to 300ms per datasheet
 - leave tx-delay/rx-delay undefined in dt defaulting to 2.0ns

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
22 months agousb: ehci-mx6: Remove MX6Q_ARM2 related ifdefery
Fabio Estevam [Thu, 19 May 2022 12:13:58 +0000 (09:13 -0300)]
usb: ehci-mx6: Remove MX6Q_ARM2 related ifdefery

The imx6q arm2 board support has been removed from U-Boot
as it did not get converted to DM.

Remove the MX6Q_ARM2 related ifdefery in the driver.

Signed-off-by: Fabio Estevam <festevam@denx.de>
22 months agoMerge commit '90ba25b7cb78bd85c6af0b6429226c6616dedefa' of https://source.denx.de...
Tom Rini [Sun, 24 Jul 2022 11:46:55 +0000 (07:46 -0400)]
Merge commit '90ba25b7cb78bd85c6af0b6429226c6616dedefa' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash

In preparation of re-sync of mtd stack, we opt to move the current stack
slowly in order to have a more easy sync and test. We would like to
prepare uboot to support no-jedec and no-onfi compliant nand so we need
to clean up a bit the code we have now and upstream some of the support.
In this series we expect no functional change

Tested on:
 - imx6ull Micron   MT29F2G08ABAGAH4
 - imx8mn  Macronix MX30LF4G18AC

22 months agoMerge tag 'efi-2022-10-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sat, 23 Jul 2022 00:48:51 +0000 (20:48 -0400)]
Merge tag 'efi-2022-10-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-10-rc1-2

Documentation:

* doc: add package uuid-dev to build dependencies

UEFI:

* remove support for CONFIG_LCD
* fix authenticated capsules tests

Others:

* pxe: simplify label_boot()
* cli: support bracketed paste

22 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-watchdog
Tom Rini [Sat, 23 Jul 2022 00:48:28 +0000 (20:48 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-watchdog

- octeontx_wdt: Add MIPS Octeon support (Stefan)
- watchdog: add amlogic watchdog support (Philippe)
- watchdog: add pulse support to gpio watchdog driver (Paul)

22 months agomtd: decommission the NAND museum
Michael Trimarchi [Wed, 20 Jul 2022 16:22:16 +0000 (18:22 +0200)]
mtd: decommission the NAND museum

Upstream linux commit f7025a43a9da26.

The MTD subsystem has its own small museum of ancient NANDs in a form of
the CONFIG_MTD_NAND_MUSEUM_IDS configuration option. The museum contains
stone age NANDs with 256 bytes pages, as well as iron age NANDs with 512
bytes per page and up to 8MiB page size.

It is with great sorrow that I inform you that the museum is being
decommissioned. The MTD subsystem is out of budget for Kconfig options and
already has too many of them, and there is a general kernel trend to
simplify the configuration menu.

We remove the stone age exhibits along with closing the museum

REMARK Don't apply this part from upstream:

Some of the iron age ones are transferred to the regular NAND depot.
Namely, only those which have unique device IDs are transferred, and the
ones which have conflicting device IDs are removed.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: toshiba: Retrieve ECC requirements from extended ID
Michael Trimarchi [Wed, 20 Jul 2022 16:22:15 +0000 (18:22 +0200)]
mtd: nand: toshiba: Retrieve ECC requirements from extended ID

Upstream linux commit fb3bff5b407e58.

This patch enables support to read the ECC strength and size from the
NAND flash using Toshiba Memory SLC NAND extended-ID. This patch is
based on the information of the 6th ID byte of the Toshiba Memory SLC
NAND.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move Macronix specific initialization in nand_macronix.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:14 +0000 (18:22 +0200)]
mtd: nand: Move Macronix specific initialization in nand_macronix.c

Upstream linux commit 3b5206f4be9b65.

Move Macronix specific initialization logic into nand_macronix.c. This
is part of the "separate vendor specific code from core" cleanup
process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move AMD/Spansion specific init/detection logic in nand_amd.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:13 +0000 (18:22 +0200)]
mtd: nand: Move AMD/Spansion specific init/detection logic in nand_amd.c

Upstream linux commit 229204da53b31d.

Move AMD/Spansion specific initialization/detection logic into
nand_amd.c. This is part of the "separate vendor specific code from
core" cleanup process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move Micron specific init logic in nand_micron.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:12 +0000 (18:22 +0200)]
mtd: nand: Move Micron specific init logic in nand_micron.c

Upstream linux commit 10d4e75c36f6c1.

Move Micron specific initialization logic into nand_micron.c. This is
part of the "separate vendor specific code from core" cleanup process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move Toshiba specific init/detection logic in nand_toshiba.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:11 +0000 (18:22 +0200)]
mtd: nand: Move Toshiba specific init/detection logic in nand_toshiba.c

Upstream linux commit 9b2d61f80b060c.

Move Toshiba specific initialization and detection logic into
nand_toshiba.c. This is part of the "separate vendor specific code from
core" cleanup process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move Hynix specific init/detection logic in nand_hynix.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:10 +0000 (18:22 +0200)]
mtd: nand: Move Hynix specific init/detection logic in nand_hynix.c

Upstream linux commit 01389b6bd2f4f7.

Move Hynix specific initialization and detection logic into
nand_hynix.c. This is part of the "separate vendor specific code from
core" cleanup process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Move Samsung specific init/detection logic in nand_samsung.c
Michael Trimarchi [Wed, 20 Jul 2022 16:22:09 +0000 (18:22 +0200)]
mtd: nand: Move Samsung specific init/detection logic in nand_samsung.c

Upstream linux commit c51d0ac59f2420.

Move Samsung specific initialization and detection logic into
nand_samsung.c. This is part of the "separate vendor specific code from
core" cleanup process.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Export symbol nand_decode_ext_id
Michael Trimarchi [Wed, 20 Jul 2022 16:22:08 +0000 (18:22 +0200)]
mtd: nand: Export symbol nand_decode_ext_id

In preparation of moving specific nand support that are not jedec
or onfi

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Fix MediaTek MT7621 SoC build
Michael Trimarchi [Fri, 22 Jul 2022 08:28:36 +0000 (10:28 +0200)]
mtd: nand: Fix MediaTek MT7621 SoC build

nand_get_flash_type was reworked in commit 1ca6f9483e9ab5. This change
break the Mediatek MT721. Fix it adjust the function call parameters

+include/linux/mtd/rawnand.h:32:62: note: expected 'struct nand_chip *' but argument is of type 'struct mtd_info *'
+   32 | struct nand_flash_dev *nand_get_flash_type(struct nand_chip *chip,
+      |                                            ~~~~~~~~~~~~~~~~~~^~~~
+drivers/mtd/nand/raw/mt7621_nand.c:1189:48: error: passing argument 2 of 'nand_get_flash_type' from incompatible pointer type [-Werror=incompatible-pointer-types]
+      |                                                ^~~~
+      |                                                |
+      |                                                struct nand_chip *
+include/linux/mtd/rawnand.h:33:49: note: expected 'int *' but argument is of type 'struct nand_chip *'
+   33 |                                            int *maf_id, int *dev_id,

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Get rid of mtd variable in function calls
Michael Trimarchi [Wed, 20 Jul 2022 16:22:07 +0000 (18:22 +0200)]
mtd: nand: Get rid of mtd variable in function calls

chip points to mtd. Passing chip is enough to have a reference
to mtd when is necessary

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Add manufacturer specific initialization/detection steps
Michael Trimarchi [Wed, 20 Jul 2022 16:22:06 +0000 (18:22 +0200)]
mtd: nand: Add manufacturer specific initialization/detection steps

Upstream linux commit abbe26d144ec22.

A lot of NANDs are implementing generic features in a non-generic way,
or are providing advanced auto-detection logic where the NAND ID bytes
meaning changes with the NAND generation.

Providing this vendor specific initialization step will allow us to get
rid of full-id entries in the nand_ids table or all the vendor specific
cases added over the time in the generic NAND ID decoding logic.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Store nand ID in struct nand_chip
Michael Trimarchi [Wed, 20 Jul 2022 16:22:05 +0000 (18:22 +0200)]
mtd: nand: Store nand ID in struct nand_chip

Upstream linux commit 7f501f0a72036d.

Store the NAND ID in struct nand_chip to avoid passing id_data and id_len
as function parameters.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agomtd: nand: Get rid of busw parameter
Michael Trimarchi [Wed, 20 Jul 2022 16:22:04 +0000 (18:22 +0200)]
mtd: nand: Get rid of busw parameter

Upstream linux commit 29a198a1592d83.

Auto-detection functions are passed a busw parameter to retrieve the actual
NAND bus width and eventually set the correct value in chip->options.
Rework the nand_get_flash_type() function to get rid of this extra
parameter and let detection code directly set the NAND_BUSWIDTH_16 flag in
chip->options if needed.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
22 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-marvell
Tom Rini [Thu, 21 Jul 2022 13:16:59 +0000 (09:16 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-marvell

- turris: Misc updates (Pali)
- mvebu: handle non-zero base address for RAM (Chris)
- mvebu: add support for Methode eDPU (Robert)
- mvebu: a3720: Set BOOT_TARGET_DEVICES list to enabled peripherals
  (Pali)
- tlv_eeprom: Add missing CRC32 dependency (Pali)
- treewide: Fix Marek's name and change my e-mail address (Marek)
- mvebu: eDPU/uDPU: Misc updates (Robert)
- mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times
  (Pali)

22 months agoarm: mvebu: turris_omnia: Set ETHPRIME to DT alias
Pali Rohár [Fri, 15 Jul 2022 08:16:00 +0000 (10:16 +0200)]
arm: mvebu: turris_omnia: Set ETHPRIME to DT alias

CONFIG_ETHPRIME can be set to DT node name or alias which refers to DT
node. Define ethernet aliases and set ETHPRIME to eth2 which refers to WAN
ethernet port. This removes hardcoded DT node name from U-Boot
configuration file.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarm: mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times
Pali Rohár [Fri, 15 Jul 2022 08:13:12 +0000 (10:13 +0200)]
arm: mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times

Change detection of platform/cpu from runtime to compile time via config
define. This completely eliminates compiling code which is not going to run
on selected platform. Code which parses and prints device / revision id
still reads device id from MVEBU_REG_PCIE_DEVID register, but only once.

Signed-off-by: Pali Rohár <pali@kernel.org>
Acked-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agomvebu: uDPU: disable non-present peripherals
Robert Marko [Fri, 3 Jun 2022 10:53:05 +0000 (12:53 +0200)]
mvebu: uDPU: disable non-present peripherals

uDPU like eDPU does not expose SCSI based peripherals like SATA nor PCI
and for sure it does not have the Intel E1000 PCI card.

So, like for eDPU remove those from the defconfig.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agomvebu: eDPU: disable SCSI support
Robert Marko [Fri, 3 Jun 2022 10:53:04 +0000 (12:53 +0200)]
mvebu: eDPU: disable SCSI support

eDPU does not use SCSI nor it has SATA exposed, and commit
arm: mvebu: a3720: Set BOOT_TARGET_DEVICES list to enabled peripherals
now allows compiling U-boot wihout all of the BOOT_TARGET_DEVICES since
not all boards have all of the listed peripherals exposed.

So, disable SCSI support in defconfig for eDPU.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agotreewide: Fix Marek's name and change my e-mail address
Marek Behún [Wed, 1 Jun 2022 15:17:06 +0000 (17:17 +0200)]
treewide: Fix Marek's name and change my e-mail address

Fix diacritics in some instances of my name and change my e-mail address
to kabel@kernel.org.

Add corresponding .mailmap entries.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoboard: turris: Fix MAINTAINERS and add Pali
Marek Behún [Wed, 1 Jun 2022 15:17:05 +0000 (17:17 +0200)]
board: turris: Fix MAINTAINERS and add Pali

Fix MAINTAINERS files for Turris devices, add missing files and add Pali
as maintainer.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agotlv_eeprom: Add missing CRC32 dependency
Pali Rohár [Mon, 30 May 2022 08:42:35 +0000 (10:42 +0200)]
tlv_eeprom: Add missing CRC32 dependency

tlv_eeprom uses crc32() function, so add dependency into Kconfig.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarch: mvebu: Disable by default unused peripherals in SPL
Pali Rohár [Tue, 24 May 2022 08:58:42 +0000 (10:58 +0200)]
arch: mvebu: Disable by default unused peripherals in SPL

SPL on mvebu loads proper U-Boot from custom Marvell kwbimage format and
therefore support for other binary formats is not required to be present in
SPL. Boot source of proper U-Boot is defined by compile time options and
therefore it is not required to enable all possible and unused peripherals
in SPL by default.

This change decrease size of SPL binaries.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarm: mvebu: a3720: Add NVMe to BOOT_TARGET_DEVICES list
Pali Rohár [Mon, 23 May 2022 09:14:36 +0000 (11:14 +0200)]
arm: mvebu: a3720: Add NVMe to BOOT_TARGET_DEVICES list

Enable NVMe booting on boards which have enabled NVMe drivers.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarm: mvebu: a3720: Set BOOT_TARGET_DEVICES list to enabled peripherals
Pali Rohár [Mon, 23 May 2022 09:14:35 +0000 (11:14 +0200)]
arm: mvebu: a3720: Set BOOT_TARGET_DEVICES list to enabled peripherals

This allows to compile U-Boot without some boot option for some A3720 board
which does not have that peripheral.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoMAINTAINERS: add myself as Methode maintainer
Robert Marko [Fri, 20 May 2022 11:46:33 +0000 (13:46 +0200)]
MAINTAINERS: add myself as Methode maintainer

I am currently maintaing the Methode uDPU and eDPU boards so add myself
as the maintainer for them.

Remove the old entry from board/Marvell/mvebu_armada-37xx/MAINTAINERS.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarm: mvebu: add support for Methode eDPU
Robert Marko [Fri, 20 May 2022 11:46:32 +0000 (13:46 +0200)]
arm: mvebu: add support for Methode eDPU

Methode eDPU is an Armada 3720 power board based on the Methode uDPU.

They feature the same CPU, RAM, and storage as well as the form factor.

However, eDPU only has one SFP slot plus a copper G.hn port which does not
work under U-boot.

In order to reduce duplication, split the uDPU DTS into a common one.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agowatchdog: add pulse support to gpio watchdog driver
Paul Doelle [Mon, 4 Jul 2022 09:00:25 +0000 (09:00 +0000)]
watchdog: add pulse support to gpio watchdog driver

A common external watchdog circuit is kept alive by triggering a short
pulse on the reset pin. This patch adds support for this use case, while
making the algorithm configurable in the devicetree.

The "linux,wdt-gpio" driver being modified is based off the equivalent
driver in the Linux kernel, which provides support for this algorithm.
This patch brings parity to this driver, and is kept aligned with
the functionality and devicetree configuration in the kernel.

It should be noted that this adds a required property named 'hw_algo'
to the devicetree binding, following suit with the kernel. I'm happy to
make this backward-compatible if preferred.

Signed-off-by: Paul Doelle <paaull.git@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agowatchdog: add amlogic watchdog support
Philippe Boos [Mon, 13 Jun 2022 14:00:56 +0000 (16:00 +0200)]
watchdog: add amlogic watchdog support

Add support for hardware watchdog timer for Amlogic SoCs.
This driver has been heavily inspired by his Linux equivalent
(meson_gxbb_wdt.c).

Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Philippe Boos <pboos@baylibre.com>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agomips: octeon: octeon_ebb7304_defconfig: Enable watchdog support
Stefan Roese [Wed, 11 May 2022 07:08:48 +0000 (09:08 +0200)]
mips: octeon: octeon_ebb7304_defconfig: Enable watchdog support

This patch enables the recently added watchdog support on the MIPS
Octeon EBB7304 eval board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Aaron Williams <awilliams@marvell.com>
Cc: Chandrakala Chavva <cchavva@marvell.com>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
22 months agowatchdog: octeontx_wdt: Add MIPS Octeon support
Stefan Roese [Wed, 11 May 2022 07:08:47 +0000 (09:08 +0200)]
watchdog: octeontx_wdt: Add MIPS Octeon support

This patch adds support for the Marvell Octeon watchdog driver, which
currently only support the ARM64 Octeon TX & TX2 platforms. Since the
IP is pretty similar, it makes sense to extend this driver to also
support the MIPS Octeon SoC.

A follow-up patch will enable this watchdog support on the EBB7304
eval board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Aaron Williams <awilliams@marvell.com>
Cc: Chandrakala Chavva <cchavva@marvell.com>
22 months agoarm: mvebu: dts: sync DTS
Robert Marko [Fri, 20 May 2022 11:46:31 +0000 (13:46 +0200)]
arm: mvebu: dts: sync DTS

Update the uDPU DTS to the version that is pending upstream [1][2][3][4].

[1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220516124828.45144-4-robert.marko@sartura.hr/
[2] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220516124828.45144-5-robert.marko@sartura.hr/
[3] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220516124828.45144-6-robert.marko@sartura.hr/
[4] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220516124828.45144-7-robert.marko@sartura.hr/

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoarm64: mvebu: handle non-zero base address for RAM
Chris Packham [Fri, 20 May 2022 04:39:22 +0000 (16:39 +1200)]
arm64: mvebu: handle non-zero base address for RAM

board_get_usable_ram_top() conflated the RAM size with the top address
of RAM. On systems where RAM starts at address 0 these numbers are the
same so it went unnoticed. Update board_get_usable_ram_top() to take
CONFIG_SYS_SDRAM_BASE into account when determining the top address.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoboard: turris: Find atsha device by atsha driver
Pali Rohár [Thu, 19 May 2022 09:11:52 +0000 (11:11 +0200)]
board: turris: Find atsha device by atsha driver

It does not matter what is DT node name of atsha device. So find it via
atsha driver and not by DT node name.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
22 months agoMerge tag 'for-v2022.10' of https://source.denx.de/u-boot/custodians/u-boot-ubi
Tom Rini [Wed, 20 Jul 2022 11:38:49 +0000 (07:38 -0400)]
Merge tag 'for-v2022.10' of https://source.denx.de/u-boot/custodians/u-boot-ubi

ubifs changes for 2022.10

UBIFS fixes from Pali Rohar:

- ubifs: Fix ubifs_assert_cmt_locked
- ubifs: Use U-Boot assert() from <log.h>

22 months agoubifs: Use U-Boot assert() from <log.h> in UBI/UBIFS code
Pali Rohár [Sun, 10 Jul 2022 11:38:07 +0000 (13:38 +0200)]
ubifs: Use U-Boot assert() from <log.h> in UBI/UBIFS code

U-Boot already provides assert function, so it use also in ubi and ubifs code.

Signed-off-by: Pali Rohár <pali@kernel.org>
22 months agoubifs: Fix ubifs_assert_cmt_locked()
Pali Rohár [Sun, 10 Jul 2022 11:38:06 +0000 (13:38 +0200)]
ubifs: Fix ubifs_assert_cmt_locked()

U-Boot does not implement down_write_trylock() and its stub always returns
true that lock was acquired. Therefore ubifs_assert_cmt_locked() assert
currently always fails.

Fix this issue by redefining ubifs_assert_cmt_locked() to just empty stub
as there is nothing to assert.

Signed-off-by: Pali Rohár <pali@kernel.org>
22 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Tue, 19 Jul 2022 19:54:57 +0000 (15:54 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-usb

22 months agoMerge tag 'for-v2022.10' of https://source.denx.de/u-boot/custodians/u-boot-i2c
Tom Rini [Tue, 19 Jul 2022 19:54:41 +0000 (15:54 -0400)]
Merge tag 'for-v2022.10' of https://source.denx.de/u-boot/custodians/u-boot-i2c

i2c changes for 2022.10

- new driver nuvoton, NPCM7xx from Jim Liu

Fixes:

- ast_i2c: Remove SCL direct drive mode
  from Eddie James

- avoid dynamic stack use in dm_i2c_write

    bloat-o-meter drivers/i2c/i2c-uclass.o.{0,1}
    add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-144 (-144)
    Function                                     old     new   delta
    dm_i2c_write                                 552     408    -144
    Total: Before=3828, After=3684, chg -3.76%

  patch from Rasmus Villemoes

22 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-sunxi
Tom Rini [Tue, 19 Jul 2022 14:52:15 +0000 (10:52 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-sunxi

To quote Andre:

One prominent feature is the restructering of the clock driver, which
allows to end up with one actual driver for all variants, although we
still only compile in support for one SoC.
Also contained are some initial SPI fixes, which should fix some
problems, and enable SPI flash support for the F1C100s SoC. Those
patches revealed more problems, I will queue fixes later on, but for
now it should at least still work.
Apart from some smaller fixes (for instance for NAND operation), there
is also preparation for the upcoming Allwinner D1 support, in form of
the USB PHY driver. There are more driver support patches to come.

The gitlab CI completed successfully, including the build test for all
160 sunxi boards. I also boot tested on a few boards, but didn't have
time for more elaborate tests this time.

22 months agoi2c: avoid dynamic stack use in dm_i2c_write
Rasmus Villemoes [Thu, 7 Jul 2022 13:12:17 +0000 (15:12 +0200)]
i2c: avoid dynamic stack use in dm_i2c_write

The size of the dynamic stack allocation here is bounded by the if()
statement. However, just allocating the maximum size up-front and
doing malloc() if necessary avoids code duplication (the
i2c_setup_offset() until the invocation of ->xfer), and generates much
better (smaller) code:

bloat-o-meter drivers/i2c/i2c-uclass.o.{0,1}
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-144 (-144)
Function                                     old     new   delta
dm_i2c_write                                 552     408    -144
Total: Before=3828, After=3684, chg -3.76%

It also makes static analysis of maximum stack usage (using the .su
files that are automatically generated during build) easier if there
are no lines saying "dynamic".

[This is not entirely equivalent to the existing code; this now uses
the stack for len <= 64 rather than len <= 63, but that seems like a
more natural limit.]

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Heiko Schocher <hs@denx.de>
22 months agoi2c: nuvoton: Add NPCM7xx i2c driver
Jim Liu [Thu, 23 Jun 2022 05:31:42 +0000 (13:31 +0800)]
i2c: nuvoton: Add NPCM7xx i2c driver

Add Nuvoton BMC NPCM750 i2c driver

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
22 months agoi2c: ast_i2c: Remove SCL direct drive mode
Eddie James [Wed, 11 May 2022 20:52:03 +0000 (15:52 -0500)]
i2c: ast_i2c: Remove SCL direct drive mode

SCL direct drive mode prevents communication with devices that
do clock stretching, so disable. The Linux driver doesn't use
this mode, and the engine can handle clock stretching.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: ryan_chen <ryan_chen@aspeedtech.com>