platform/kernel/u-boot-spacemit.git
2 years agoimx: add basic i.MX9 support
Peng Fan [Tue, 26 Jul 2022 08:40:39 +0000 (16:40 +0800)]
imx: add basic i.MX9 support

Add i.MX9 Kconfig and basic files for the new SoC

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: add USB2_BOOT type
Peng Fan [Tue, 26 Jul 2022 08:40:38 +0000 (16:40 +0800)]
imx: add USB2_BOOT type

Add USB2_BOOT type for i.MX8ULP and i.MX9

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: move get_boot_device to common file
Peng Fan [Tue, 26 Jul 2022 08:40:37 +0000 (16:40 +0800)]
imx: move get_boot_device to common file

i.MX8MN/P/ULP supports ROM API, they have almost same get_boot_device
implementation, so move to a common file. And when support i.MX9,
no need to include the other function copy.

Since sys_proto.h is included in imx_romapi.c, there will be build
warning for i.MX8M because wdog_regs not defined, so include imx-regs.h
in i.MX8M sys_proro.h

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: move get_boot_device to common header
Peng Fan [Tue, 26 Jul 2022 08:40:36 +0000 (16:40 +0800)]
imx: move get_boot_device to common header

Most i.MX implements get_boot_device, move it to common header to
simplify code

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: simplify dependency with SPL_BOOTROM_SUPPORT
Peng Fan [Tue, 26 Jul 2022 08:40:35 +0000 (16:40 +0800)]
imx: simplify dependency with SPL_BOOTROM_SUPPORT

For SoCs support ROM API, CONFIG_SPL_BOOTROM_SUPPORT is needed,
so use this macro to guard the code to avoid extend the list.

And drop the guard with structure definition, there is no need.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: spl: Allow iMX7/8/8M to overwrite spl_board_boot_device
Ye Li [Tue, 26 Jul 2022 08:40:34 +0000 (16:40 +0800)]
imx: spl: Allow iMX7/8/8M to overwrite spl_board_boot_device

Move the default mapping of spl_boot_device to weak function of
spl_board_boot_device. So that every board of iMX7/8/8M can overwrite
this function to implement specific mapping.

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>
2 years agoimx: Change USB boot device type
Ye Li [Tue, 26 Jul 2022 08:40:33 +0000 (16:40 +0800)]
imx: Change USB boot device type

The SPL SDP is configured as BOOT_DEVICE_BOARD, so when booting from
USB, change its type to BOOT_DEVICE_BOARD, so we can use SDP.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoarm: makefile: cleanup mach-imx usage
Peng Fan [Tue, 26 Jul 2022 08:40:32 +0000 (16:40 +0800)]
arm: makefile: cleanup mach-imx usage

All the SoCs use mach-imx has CONFIG_MACH_IMX selected, so
the macro could be the gate to build arch/arm/mach-imx to simplify
the rules.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agospl: imx8mm: enlarge SPL_MAX_SIZE
Peng Fan [Tue, 26 Jul 2022 08:40:31 +0000 (16:40 +0800)]
spl: imx8mm: enlarge SPL_MAX_SIZE

The CONFIG_SPL_MAX_SIZE could be 0x27000 for i.MX8MM when SPL_TEXT_BASE
set to 0x7E1000.

The DDR firmware max uses 96KB, there is a 4KB padding header before
SPL_TEXT_BASE, so the SPL MAX SIZE is `256KB - 96KB - 4KB`.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
2 years agoMAINTAINERS: Update file list for ARM Freescale IMX
Martyn Welch [Thu, 21 Jul 2022 13:47:56 +0000 (14:47 +0100)]
MAINTAINERS: Update file list for ARM Freescale IMX

The MAINTAINERS file currently lists files in
arch/arm/include/asm/arch-imx/ being part of the IMX maintainers
purview, however the arch/arm/include/asm/ directory also contains the
directories arch-imx8, arch-imx8m, arch-imx8ulp and arch-imxrt which
would also appear to be relevant to the team. Tweak the entry to cover
these directories so that tools like get_maintainers.pl will suggest
relevant maintainers when making changes just in these directories.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
2 years agoimx: syscounter: support timer_get_boot_us
Jun Nie [Thu, 21 Jul 2022 10:30:05 +0000 (18:30 +0800)]
imx: syscounter: support timer_get_boot_us

With supporting timer_get_boot_us, we can profile boot up time with below
configs and function bootstage_mark_name().

CONFIG_BOOTSTAGE=y
CONFIG_BOOTSTAGE_REPORT=y
CONFIG_CMD_BOOTSTAGE=y

Signed-off-by: Jun Nie <jun.nie@linaro.org>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Fabio Estevam <festevam@denx.de>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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

2 years 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

2 years 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)

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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)

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>