platform/kernel/u-boot.git
2 years agonet: dwc_eth_qos: introduce eqos hook eqos_get_enetaddr
Peng Fan [Tue, 26 Jul 2022 08:41:17 +0000 (16:41 +0800)]
net: dwc_eth_qos: introduce eqos hook eqos_get_enetaddr

i.MX has specific hook to get MAC address, so introduce a hook and move
i.MX code to its own driver

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agonet: eqos: add function to get phy node and address
Ye Li [Tue, 26 Jul 2022 08:41:16 +0000 (16:41 +0800)]
net: eqos: add function to get phy node and address

Since new atheros PHY driver needs to access its PHY node through
phy device, we have to assign the phy node in ethernet controller
driver. Otherwise the PHY driver will fail to get some nodes
and properties.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agonet: dwc_eth_qos: move i.MX code out
Peng Fan [Tue, 26 Jul 2022 08:41:15 +0000 (16:41 +0800)]
net: dwc_eth_qos: move i.MX code out

Move i.MX code to a standalone file to make it easy for adding new
platform support

Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agonet: dwc_eth_qos: public some functions
Peng Fan [Tue, 26 Jul 2022 08:41:14 +0000 (16:41 +0800)]
net: dwc_eth_qos: public some functions

Move macros and structures to header file and make some functions
public, so that could used by other files, this is to
prepare split platform specific config to one file.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agonet: dwc_eth_qos: fix build break when CLK not enabled
Peng Fan [Tue, 26 Jul 2022 08:41:13 +0000 (16:41 +0800)]
net: dwc_eth_qos: fix build break when CLK not enabled

When CONFIG_CLK is not enabled, there will be buil break:
"error: ‘eqos’ undeclared (first use in this function)"

Take eqos definition out the CONFIG_CLK ifdef.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agonet: fec_mxc: support i.MX93
Peng Fan [Tue, 26 Jul 2022 08:41:12 +0000 (16:41 +0800)]
net: fec_mxc: support i.MX93

Support i.MX93 in fec_mxc driver

Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx93_evk: Set ARM clock to 1.7Ghz
Peng Fan [Tue, 26 Jul 2022 08:41:11 +0000 (16:41 +0800)]
imx: imx93_evk: Set ARM clock to 1.7Ghz

Set ARM clock to OD frequency 1.7Ghz, since we have set PMIC VDD_SOC
to Overdrive voltage 0.9V

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx93_evk: Add basic board support
Peng Fan [Tue, 26 Jul 2022 08:41:10 +0000 (16:41 +0800)]
imx: imx93_evk: Add basic board support

Add basic board codes and defconfig for i.MX93 11x11 EVK board.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoarm: dts: Add i.MX93 SoC DTSi file
Peng Fan [Tue, 26 Jul 2022 08:41:09 +0000 (16:41 +0800)]
arm: dts: Add i.MX93 SoC DTSi file

Add the DTSi file and DT header files for i.MX93 SoC

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoddr: imx9: enable Performance monitor counter
Ye Li [Tue, 26 Jul 2022 08:41:08 +0000 (16:41 +0800)]
ddr: imx9: enable Performance monitor counter

Add Kconfig for enabling reference events counter in DDRC performance
monitor by default

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoddr: imx: Add i.MX9 DDR controller driver
Ye Li [Tue, 26 Jul 2022 08:41:07 +0000 (16:41 +0800)]
ddr: imx: Add i.MX9 DDR controller driver

Since i.MX9 uses same DDR PHY with i.MX8M, split the DDRPHY to a common
directory under imx, then use dedicated ddr controller driver for each
iMX9 and iMX8M.

The DDRPHY registers are space compressed, so it needs conversion to
access the DDRPHY address. Introduce a common PHY address remap function
for both iMX8M and iMX9 for all PHY registers accessing.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: clock: Add DDR clock support
Ye Li [Tue, 26 Jul 2022 08:41:06 +0000 (16:41 +0800)]
imx: imx9: clock: Add DDR clock support

Implement the DDR driver clock interfaces for set DDR rate and
bypass DDR PLL

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Support multiple env storages at runtime
Ye Li [Tue, 26 Jul 2022 08:41:05 +0000 (16:41 +0800)]
imx: imx9: Support multiple env storages at runtime

Select env storages according to boot device at runtime

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Support booting m33 from Acore
Peng Fan [Tue, 26 Jul 2022 08:41:04 +0000 (16:41 +0800)]
imx: imx9: Support booting m33 from Acore

Add bootaux command to support on-demand booting M33 from u-boot.
It kicks M33 via ATF by "bootaux 0x201e0000 0"

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add M33 release prepare function
Peng Fan [Tue, 26 Jul 2022 08:41:03 +0000 (16:41 +0800)]
imx: imx9: Add M33 release prepare function

To support on-demand booting M33 image from A core. SPL needs
to follow M33 kick up sequence to release M33 firstly,
then set M33 CPUWAIT signal. ATF will clear CPUWAIT to kick
M33 to run.

The prepare function also works around the M33 TCM ECC issue by
clean the TCM. Also enable sentinel handshake and WDOG1 clock
for M33 stop and reset.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add MIX power init
Peng Fan [Tue, 26 Jul 2022 08:41:02 +0000 (16:41 +0800)]
imx: imx9: Add MIX power init

Add power init of MEDIAMIX, MLMIX and DDRMIX. And clear isolation
of MIPI DSI/CSI, USBPHY after the power up.

SPL should call the power init in its boot sequence before accessing
above three MIX and USB.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add gpio registers structure
Ye Li [Tue, 26 Jul 2022 08:41:01 +0000 (16:41 +0800)]
imx: imx9: Add gpio registers structure

Add GPIO registers structure for iMX93, so that we can enable lpgpio
driver

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: fuse: update the code for accessing fuse of i.MX93
Alice Guo [Tue, 26 Jul 2022 08:41:00 +0000 (16:41 +0800)]
misc: fuse: update the code for accessing fuse of i.MX93

Sentinel have read access of OTP shadow register 0-511, and fsb have
read access of shadow 0-51/312-511.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: fuse: support to access fuse on i.MX93
Alice Guo [Tue, 26 Jul 2022 08:40:59 +0000 (16:40 +0800)]
misc: fuse: support to access fuse on i.MX93

i.MX93 fuse can be accessed through FSB and s400-api. Add mapping tables
for i.MX93. The offset address of FSB accessing OTP shadow registers is
different between i.MX8ULP and i.MX93, so use macro to define the offset
address instead of hardcode.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: imx8ulp: move fuse.c from imx8ulp to sentinel
Alice Guo [Tue, 26 Jul 2022 08:40:58 +0000 (16:40 +0800)]
misc: imx8ulp: move fuse.c from imx8ulp to sentinel

The i.MX93 platform wants to reuse drivers/misc/imx8ulp/fuse.c. Moving
fuse.c from the folder imx8ulp to sentinel makes it can be used by other
platforms.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: S400_API: Rename imx8ulp_s400_msg to sentinel_msg
Ye Li [Tue, 26 Jul 2022 08:40:57 +0000 (16:40 +0800)]
misc: S400_API: Rename imx8ulp_s400_msg to sentinel_msg

Use more generic name for S40x msg structure

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Get the chip revision through S400 API
Peng Fan [Tue, 26 Jul 2022 08:40:56 +0000 (16:40 +0800)]
imx: imx9: Get the chip revision through S400 API

Update the get chip revision methond to use S400 API, also record
other information like lifecycle and UID to global data.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add AHAB boot support
Ye Li [Tue, 26 Jul 2022 08:40:55 +0000 (16:40 +0800)]
imx: imx9: Add AHAB boot support

Add AHAB driver for iMX9 to do authentication by calling sentinel API

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add TRDC driver for TRDC init
Ye Li [Tue, 26 Jul 2022 08:40:54 +0000 (16:40 +0800)]
imx: imx9: Add TRDC driver for TRDC init

Add TRDC driver to iMX9. The TRDC init splits to two phases:
1. Early init phase will release TRDC from Sentinel and open write
   permission to the memory where SPL image runs. Sentinel will set
   the memory to RX only after ROM authentication for the OEM
   closed part.
2. Init phase will configure TRDC to allow non-secure master to
   access DDR. So the peripherals can work in u-boot.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: s400_api: introduce ahab_release_m33_trout
Peng Fan [Tue, 26 Jul 2022 08:40:53 +0000 (16:40 +0800)]
misc: s400_api: introduce ahab_release_m33_trout

Introduce Sentinel API ahab_release_m33_trout to make sure sentinel
release M33 trout and make sure M33 could boot.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: S400_API: New API for FW status and chip info
Peng Fan [Tue, 26 Jul 2022 08:40:52 +0000 (16:40 +0800)]
misc: S400_API: New API for FW status and chip info

Add new API to get sentinel FW status and SoC chip info

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: S400_API: Update release RDC API
Ye Li [Tue, 26 Jul 2022 08:40:51 +0000 (16:40 +0800)]
misc: S400_API: Update release RDC API

To support more RDC instances on i.MX93, update API to latest
definition.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: s4mu: Support iMX93 with Sentinel MU
Peng Fan [Tue, 26 Jul 2022 08:40:50 +0000 (16:40 +0800)]
misc: s4mu: Support iMX93 with Sentinel MU

Support iMX93 communicate with Sentinel

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agomisc: imx: S400_API: Move S400 MU and API to a common place
Ye Li [Tue, 26 Jul 2022 08:40:49 +0000 (16:40 +0800)]
misc: imx: S400_API: Move S400 MU and API to a common place

Since iMX9 uses S401 which shares the API with iMX8ULP. So move S400
MU driver and API to a common place and selected by CONFIG_IMX_SENTINEL

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: support romapi
Peng Fan [Tue, 26 Jul 2022 08:40:48 +0000 (16:40 +0800)]
imx: imx9: support romapi

i.MX9 shares same ROM API with i.MX8ULP, so make the i.MX8ULP the function
prototype common and usable by i.MX9.

Also include mmc env functions that use ROM API.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: disable watchdog
Ye Li [Tue, 26 Jul 2022 08:40:47 +0000 (16:40 +0800)]
imx: imx9: disable watchdog

Disable all 3 wdogs on AIPS2 and unmask SRC reset trigger for WDOG3-5

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add function to initialize timer
Jian Li [Tue, 26 Jul 2022 08:40:46 +0000 (16:40 +0800)]
imx: imx9: Add function to initialize timer

Add timer_init to update ARM arch timer with correct frequency
from system counter and enable system counter.

Signed-off-by: Jian Li <jian.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agospl: Use SPL_FIT_IMAGE_TINY for iMX9
Peng Fan [Tue, 26 Jul 2022 08:40:45 +0000 (16:40 +0800)]
spl: Use SPL_FIT_IMAGE_TINY for iMX9

Select SPL_FIT_IMAGE_TINY for i.MX9

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agommc: fsl_esdhc_imx: Support i.MX9
Peng Fan [Tue, 26 Jul 2022 08:40:44 +0000 (16:40 +0800)]
mmc: fsl_esdhc_imx: Support i.MX9

Support i.MX9 for fsl_esdhc_imx driver

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx9: Add CCM and clock API support
Peng Fan [Tue, 26 Jul 2022 08:40:43 +0000 (16:40 +0800)]
imx: imx9: Add CCM and clock API support

Add clock API to support CCM root clock and LPCG setting
Set the CCM AUTHEN register to allow non-secure world to set
root clock and lpcg.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: pinctrl: add pinctrl and pinfunc file for i.MX93
Peng Fan [Tue, 26 Jul 2022 08:40:42 +0000 (16:40 +0800)]
imx: pinctrl: add pinctrl and pinfunc file for i.MX93

Add the pinctrl driver and pinfunc header file to support iMX93

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agogpio: pca953x: support pcal6524
Peng Fan [Tue, 26 Jul 2022 08:40:41 +0000 (16:40 +0800)]
gpio: pca953x: support pcal6524

Support pcal6524 IO expander driver

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 years agofsl_lpuart: add i.MX9 support
Peng Fan [Tue, 26 Jul 2022 08:40:40 +0000 (16:40 +0800)]
fsl_lpuart: add i.MX9 support

i.MX9 shares same register layout as i.MX7ULP, so
add the i.MX9 define here.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
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>