]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
4 years agoddr: altera: Stratix10: Use phys_size_t for memory size
Tien Fong Chee [Wed, 27 Apr 2022 04:52:42 +0000 (12:52 +0800)] 
ddr: altera: Stratix10: Use phys_size_t for memory size

Replace with phys_size_t for all memory size variables declaration
for the sake of scalability. phys_size_t is defined in
/arch/arm/include/asm/types.h.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
4 years agoddr: altera: Ignore bit[7-4] for both seq2core & core2seq handshake in HPS
Tien Fong Chee [Wed, 27 Apr 2022 04:27:21 +0000 (12:27 +0800)] 
ddr: altera: Ignore bit[7-4] for both seq2core & core2seq handshake in HPS

Bit[7-4] for both register seq2core and core2seq handshake in HPS are not
required for triggering DDR re-calibration or resetting EMIF. So, ignoring
these bits just for playing it safe.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
4 years agoarm: dts: socfpga: stratix10: Update MMC smplsel value
Yau Wai Gan [Tue, 24 May 2022 07:02:28 +0000 (15:02 +0800)] 
arm: dts: socfpga: stratix10: Update MMC smplsel value

This new MMC sample select value is obtained from running
tests on multiple Stratix 10 boards and proven working.

Signed-off-by: Yau Wai Gan <yau.wai.gan@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
4 years agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
Tom Rini [Thu, 16 Jun 2022 03:11:30 +0000 (23:11 -0400)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic

4 years agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Thu, 16 Jun 2022 03:10:17 +0000 (23:10 -0400)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-mmc

4 years agointel: n5x: ddr: update license
Tien Fong Chee [Fri, 10 Jun 2022 11:18:00 +0000 (19:18 +0800)] 
intel: n5x: ddr: update license

All the source code of sdram_n5x.c are from Intel, update the license to
use both GPL2.0 and BSD-3 Clause because this copy of code may used for
open source and internal project.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
4 years agospi: nxp_fspi: Fix clock imbalance
Marek Vasut [Mon, 13 Jun 2022 12:35:25 +0000 (14:35 +0200)] 
spi: nxp_fspi: Fix clock imbalance

The nxp_fspi_default_setup() is only ever called from nxp_fspi_probe(),
where the IP clock are initially disabled. Drop the second disabling of
clock to prevent clock enable/disable imbalance reported by clock core:

"
clk qspi_root_clk already disabled
"

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>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agommc: fsl_esdhc_imx: Implement wait_dat0 mmc ops
Loic Poulain [Thu, 26 May 2022 14:37:22 +0000 (16:37 +0200)] 
mmc: fsl_esdhc_imx: Implement wait_dat0 mmc ops

Implement wait_dat0 mmc ops callbac, allowing to reduce SPL boot time.

Before (using grabserial):
[0.000001 0.000001] U-Boot SPL 2021.04-xxxx
[0.028257 0.028257] DDRINFO: start DRAM init
[0.028500 0.000243] DDRINFO: DRAM rate 3000MTS
[0.304627 0.276127] DDRINFO:ddrphy calibration done
[0.305647 0.001020] DDRINFO: ddrmix config done
[0.352584 0.046937] SEC0:  RNG instantiated
[0.374299 0.021715] Normal Boot
[0.374675 0.000376] Trying to boot from MMC2
[1.250580 0.875905] NOTICE:  BL31: v2.4(release):lf-5.10.72-2.2.0-0-g5782363f9
[1.251985 0.001405] NOTICE:  BL31: Built : 08:02:40, Apr 12 2022
[1.522560 0.270575]
[1.522734 0.000174]
[1.522788 0.000054] U-Boot 2021.04-xxxx

After:
[0.000001 0.000001] U-Boot SPL 2021.04-xxxx
[0.001614 0.001614] DDRINFO: start DRAM init
[0.002377 0.000763] DDRINFO: DRAM rate 3000MTS
[0.278494 0.276117] DDRINFO:ddrphy calibration done
[0.279266 0.000772] DDRINFO: ddrmix config done
[0.338432 0.059166] SEC0:  RNG instantiated
[0.339051 0.000619] Normal Boot
[0.339431 0.000380] Trying to boot from MMC2
[0.412587 0.073156] NOTICE:  BL31: v2.4(release):lf-5.15.5-1.0.0-0-g05f788b
[0.414191 0.001604] NOTICE:  BL31: Built : 10:35:26, Apr  6 2022
[0.700685 0.286494]
[0.700793 0.000108]
[0.700845 0.000052] U-Boot 2021.04-xxxx

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
4 years agommc: Add support for wait_dat0 callback
Loic Poulain [Thu, 26 May 2022 14:37:21 +0000 (16:37 +0200)] 
mmc: Add support for wait_dat0 callback

There is no wait_dat0 mmc ops, causing operations waiting for data
line state change (e.g mmc_switch_voltage) to fallback to a 250ms
active delay. mmc_ops still used when DM_MMC is not enabled, which
is often the case for SPL. The result can be unexpectly long SPL
boot time.

This change adds support for wait_dat0() mmc operation.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
4 years agoenv: mmc : align erase address and size on erase_grp_size
Patrick Delaunay [Tue, 15 Feb 2022 15:23:23 +0000 (16:23 +0100)] 
env: mmc : align erase address and size on erase_grp_size

On eMMC device, the erase_grp_size > 1 so the address and size for the
erase block command in env/mmc.c can be unaligned on erase group size and
some strange trace occurs and the result is not guarantee by MMC devices.

The SD-Card behavior doesn't change as erase_grp_size = 1 for SD-Card.

For example, on eMMC present on STM32MP15C-EV1 and before the patch:

  STM32MP> env erase

  Erasing Environment on MMC...

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x27ff

  16 blocks erased: OK

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x23ff

  16 blocks erased: OK
  OK

After this patch:
  STM32MP> env erase
  Erasing Environment on MMC...
  1024 blocks erased at 0x2000: OK
  1024 blocks erased at 0x2000: OK
  OK

Here the 2 copies of U-Boot environment are in the same devices Erase
group: it is erased twice.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
4 years agommc: fix error message for unaligned erase request
Patrick Delaunay [Tue, 15 Feb 2022 15:23:22 +0000 (16:23 +0100)] 
mmc: fix error message for unaligned erase request

Fix the end address in the message for unaligned erase request in
mmc_berase() when start + blkcnt is aligned to erase_grp_size.

for example:
  - start = 0x2000 - 26
  - count = 26
  - erase_grp_size = 0x400

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x27ff

But no issue when the end address is not aligned, for example
  - start = 0x2000 - 2 * 26
  - count = 26
  - erase_grp_size = 0x400

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x23ff

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
4 years agoimx: phycore_imx8mm/p: clean up board watchdog code
Peng Fan [Sat, 11 Jun 2022 12:21:10 +0000 (20:21 +0800)] 
imx: phycore_imx8mm/p: clean up board watchdog code

pinctrl_wdog already marked u-boot,dm-spl, so clean up board code.

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Teresa Remmet <t.remmet@phytec.de>
4 years agoimx: imx8mn-kontron-n801x: enable pinctrl_wdog in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:09 +0000 (20:21 +0800)] 
imx: imx8mn-kontron-n801x: enable pinctrl_wdog in SPL

Mark pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agoimx: imx8mp_rsb7320a1: enable wdog driver model in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:08 +0000 (20:21 +0800)] 
imx: imx8mp_rsb7320a1: enable wdog driver model in SPL

Mark wdog1/pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: imx8mn_var_som: clean up board watchdog code
Peng Fan [Sat, 11 Jun 2022 12:21:07 +0000 (20:21 +0800)] 
imx: imx8mn_var_som: clean up board watchdog code

pinctrl_wdog already marked u-boot,dm-spl, so clean up board code.

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
4 years agoimx: imx8mn-beacon: enable pinctrl_wdog in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:06 +0000 (20:21 +0800)] 
imx: imx8mn-beacon: enable pinctrl_wdog in SPL

Mark pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: imx8mm/n/p-venice: enable pinctrl_wdog in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:05 +0000 (20:21 +0800)] 
imx: imx8mm/n/p-venice: enable pinctrl_wdog in SPL

Mark pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: engicam-imx8mm: drop unused macro
Peng Fan [Sat, 11 Jun 2022 12:21:04 +0000 (20:21 +0800)] 
imx: engicam-imx8mm: drop unused macro

Drop unused WDOG macro

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
4 years agoimx: imx8mm-cl-iot-gate: enable pinctrl_wdog in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:03 +0000 (20:21 +0800)] 
imx: imx8mm-cl-iot-gate: enable pinctrl_wdog in SPL

Mark pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: imx8mm_beacon: enable pinctrl_wdog in SPL
Peng Fan [Sat, 11 Jun 2022 12:21:02 +0000 (20:21 +0800)] 
imx: imx8mm_beacon: enable pinctrl_wdog in SPL

Mark pinctrl_wdog as u-boot,dm-spl to clean up board code,

The set_wdog_reset() function is not necessary as this is handled by
the imx_watchdog.c driver due to the 'fsl,ext-reset-output' property
being set.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoconfigs: drop CONFIG_SPL_ABORT_ON_RAW_IMAGE
Peng Fan [Sat, 11 Jun 2022 12:21:01 +0000 (20:21 +0800)] 
configs: drop CONFIG_SPL_ABORT_ON_RAW_IMAGE

CONFIG_SPL_RAW_IMAGE_SUPPORT default y has been used to replace
CONFIG_SPL_ABORT_ON_RAW_IMAGE for quite some time, so drop
CONFIG_SPL_ABORT_ON_RAW_IMAGE.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: kontron-sl-mx8mm: enable DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:21:00 +0000 (20:21 +0800)] 
imx: kontron-sl-mx8mm: enable DM_SERIAL

Enable CONFIG_DM_SERIAL. uart and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agoimx: imx8mn_var_som: enable DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:20:59 +0000 (20:20 +0800)] 
imx: imx8mn_var_som: enable DM_SERIAL

Enable CONFIG_DM_SERIAL. uart and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoimx: imx8m[m/p]_phycore: Enable DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:20:58 +0000 (20:20 +0800)] 
imx: imx8m[m/p]_phycore: Enable DM_SERIAL

Enable CONFIG_DM_SERIAL. uart and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_early_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Teresa Remmet <t.remmet@phytec.de>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoimx: imx8mm_icore: Enable SPL_DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:20:57 +0000 (20:20 +0800)] 
imx: imx8mm_icore: Enable SPL_DM_SERIAL

Enable CONFIG_SPL_DM_SERIAL. uart2 and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_early_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoimx: imx8mm-cl-iot-gate: Enable DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:20:56 +0000 (20:20 +0800)] 
imx: imx8mm-cl-iot-gate: Enable DM_SERIAL

Enable CONFIG_DM_SERIAL. uart3 and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_early_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoimx: imx8m[m/n]_beacon: Enable SPL_DM_SERIAL
Peng Fan [Sat, 11 Jun 2022 12:20:55 +0000 (20:20 +0800)] 
imx: imx8m[m/n]_beacon: Enable SPL_DM_SERIAL

Enable CONFIG_SPL_DM_SERIAL. uart2 and its pinmux was already
marked with u-boot,dm-spl.
Move preloader_console_init after spl_init to make sure driver
model work.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Adam Ford <aford173@gmail.com> #imx8mm_beacon
Reviewed-by: Fabio Estevam <festevam@denx.de>
Tested-by: Adam Ford <aford173@gmail.com> #imx8mn_beacon
4 years agoimx: drop CONFIG_MXC_UART_BASE
Peng Fan [Sat, 11 Jun 2022 12:20:54 +0000 (20:20 +0800)] 
imx: drop CONFIG_MXC_UART_BASE

Since these boards has CONFIG_DM_SERIAL and/or CONFIG_SPL_DM_SERIAL,
the legacy macro no need to be defined.

Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Soeren Moch <smoch@web.de>
Acked-by: Tim Harvey <tharvey@gateworks.com>
4 years agosecure boot: enable ARCH_MISC_INIT config.
Gaurav Jain [Thu, 9 Jun 2022 11:02:15 +0000 (16:32 +0530)] 
secure boot: enable ARCH_MISC_INIT config.

add ARCH_MISC_INIT to initilaize caam jr driver.

Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoclk: imx8mp: use usb_core_ref for usb_root_clk
Andrey Zhizhikin [Fri, 3 Jun 2022 15:15:22 +0000 (17:15 +0200)] 
clk: imx8mp: use usb_core_ref for usb_root_clk

Upstream commit 7a2c3be95a50 ("clk: imx8mp: Fill in DWC3 USB, USB PHY,
HSIOMIX clock") added usb_core_ref for USB Controller but never set it
to be used as a clock source, using rather "osc_32k" instead.

This produces following boot log message:
"clk_register: failed to get osc_32k device (parent of usb_root_clk)"

Fix the USB controller clock source by using usb_core_ref instead of
osc_32k.

Fixes: 7a2c3be95a50 ("clk: imx8mp: Fill in DWC3 USB, USB PHY, HSIOMIX clock")
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoclk: imx8mp: fix root clock names for ecspi
Andrey Zhizhikin [Fri, 3 Jun 2022 15:15:21 +0000 (17:15 +0200)] 
clk: imx8mp: fix root clock names for ecspi

Root clock name contained underscore, which does not match to the actual
clock name.

Correct the name to match what is present in the FDT.

Fixes: 87f958810fcb ("clk: imx8mp: Add ECSPI clocks")
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: uboot-imx <uboot-imx@nxp.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
4 years agoverdin-imx8mm, verdin-imx8mp: Fix default systemd console output
Philippe Schenker [Wed, 25 May 2022 07:55:02 +0000 (09:55 +0200)] 
verdin-imx8mm, verdin-imx8mp: Fix default systemd console output

systemd prints its messages on the last console= statement that it finds
in the kernel arguments. The current ordering sends the systemd messages
to tty1, by default this is the display.

Ensure that systemd sends its messages to the default UART, reorder the
console= statements accordingly.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
4 years agomx6cuboxi: enable driver for adin1300 phy
Josua Mayer [Thu, 19 May 2022 09:32:00 +0000 (12:32 +0300)] 
mx6cuboxi: enable driver for adin1300 phy

Since SoMs revision 1.9 the ar8035 phy has been replaced by adin1300.
Enable the driver so that the new SoMs have functional networking.

Signed-off-by: Josua Mayer <josua@solid-run.com>
4 years agomx6cuboxi: fixup dtb ethernet phy nodes before booting an OS
Josua Mayer [Thu, 19 May 2022 09:31:59 +0000 (12:31 +0300)] 
mx6cuboxi: fixup dtb ethernet phy nodes before booting an OS

SoM revision 1.9 has replaced the ar8035 phy address 0 with an adin1300
at address 1. Because early SoMs had a hardware flaw, the ar8035 can
also appear at address 4 - making it a total of 3 phy nodes in the DTB.

To avoid confusing Linux with probe errors, fixup the dtb to only enable
the phy node that is detected at runtime.

Signed-off-by: Josua Mayer <josua@solid-run.com>
4 years agoARM: dts: imx6qdl-sr-som: add support for alternate phy addresses
Josua Mayer [Thu, 19 May 2022 09:31:58 +0000 (12:31 +0300)] 
ARM: dts: imx6qdl-sr-som: add support for alternate phy addresses

The Cubox has an unstable phy address - which can appear at either
address 0 (intended) or 4 (unintended).

SoM revision 1.9 has replaced the ar8035 phy with an adin1300, which
will always appear at address 1.

Change the reg property of the phy node to the magic value 0xffffffff,
which indicates to the generic phy driver that all addresses should be
probed. That allows the same node (which is pinned by phy-handle) to match
either the AR8035 PHY at both possible addresses, as well as the new one
at address 1.
Also add the new adi,phy-output-clock property for enabling the 125MHz
clock used by the fec ethernet controller, as submitted to Linux [1].

Linux solves this problem differently:
For the ar8035 phy it will probe both phy nodes in device-tree in order,
and use the one that succeeds. For the new adin1300 it expects U-Boot to
patch the status field in the DTB before booting

While at it also sync the reset-delay with the upstream Linux dtb.

[1] https://patchwork.kernel.org/project/netdevbpf/patch/20220428082848.12191-4-josua@solid-run.com/

Signed-off-by: Josua Mayer <josua@solid-run.com>
4 years agophy: adin: add support for clock output
Josua Mayer [Thu, 19 May 2022 09:31:57 +0000 (12:31 +0300)] 
phy: adin: add support for clock output

The ADIN1300 supports generating certain clocks on its GP_CLK pin, as
well as providing the reference clock on CLK25_REF.

Add support for selecting the clock via device-tree properties.

This patch is based on the Linux implementation for this feature,
which has been added to netdev/net-next.git [1].

[2] https://patchwork.kernel.org/project/netdevbpf/cover/20220517085143.3749-1-josua@solid-run.com/

Signed-off-by: Josua Mayer <josua@solid-run.com>
4 years agophy: adin: fix broken support for adi, phy-mode-override
Nate Drude [Thu, 19 May 2022 09:31:56 +0000 (12:31 +0300)] 
phy: adin: fix broken support for adi, phy-mode-override

Currently, the adin driver fails to compile.

The original patch introducing the adin driver used the function
phy_get_interface_by_name to support the adi,phy-mode-override
property. Unfortunately, a few days before the adin patch
was accepted, another patch removed support for phy_get_interface_by_name:

https://github.com/u-boot/u-boot/commit/123ca114e07ecf28aa2538748d733e2b22d8b8b5

This patch refactors adin_get_phy_mode_override, implementing the logic in
the new function, ofnode_read_phy_mode, from the patch above.

Signed-off-by: Nate Drude <nate.d@variscite.com>
Tested-by: Josua Mayer <josua@solid-run.com>
Signed-off-by: Josua Mayer <josua@solid-run.com>
4 years agoimx8mn_evk: Add Ethernet support to the LPDDR4 variant
Fabio Estevam [Tue, 17 May 2022 16:23:09 +0000 (13:23 -0300)] 
imx8mn_evk: Add Ethernet support to the LPDDR4 variant

The imx8mn-ddr4-evk board has Ethernet support already, but the
lpddr4 board does not.

Add Ethernet support for the LPDDR4 variant too.

Signed-off-by: Fabio Estevam <festevam@denx.de>
4 years agoboard: apalis-imx8: add new 8gb product variant
Philippe Schenker [Mon, 9 May 2022 16:58:16 +0000 (18:58 +0200)] 
board: apalis-imx8: add new 8gb product variant

Add the new Apalis iMX8 product variant

0067: Apalis iMX8 QuadMax 8GB Wi-Fi / BT IT

the only difference to the product

0037 Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT

is the 8gb of RAM. Toradex strategy to choose the correct RAM timing in
SCFW is by fuses in the user area telling which RAM timing to load.

This commit makes use of this information to set the correct size of
the RAM and therefore distinguish between the new 0067 and 0037 product

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
4 years agotoradex: tdx-cfg-block: add new 8gb apalis-imx8
Philippe Schenker [Mon, 9 May 2022 16:58:15 +0000 (18:58 +0200)] 
toradex: tdx-cfg-block: add new 8gb apalis-imx8

0067: Apalis iMX8 QuadMax 8GB Wi-Fi / BT IT

This module is identical to its 4GB counterpart
0037: Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT
except for the RAM size.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
4 years agoimx8mn_evk: Add the missing spl.bin entry
Fabio Estevam [Tue, 3 May 2022 19:03:04 +0000 (16:03 -0300)] 
imx8mn_evk: Add the missing spl.bin entry

The generated flash.bin does not boot the imx8mn evk LPDDR4 variant
as it misses the spl.bin description in binman.

Add its entry to fix the boot on the imx8mn evk LPDDR4 variant.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Tested-by: Arti Zirk <art@zirk.me>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
4 years agodtoc: Update test_src_scan.py for new tegra compatibles
Tom Rini [Tue, 14 Jun 2022 17:59:23 +0000 (13:59 -0400)] 
dtoc: Update test_src_scan.py for new tegra compatibles

This test was written to match up with the list of compatibles in
drivers/i2c/tegra_i2c.c so adding another one requires the test to be
updated to match.

Fixes: 0d2105ae5e32 ("arm: tegra: Update some DT compatibles")
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Tom Rini [Tue, 14 Jun 2022 16:28:58 +0000 (12:28 -0400)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-tegra

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agopmic: pca9450: add DM_I2C dependencies in Kconfig
Rasmus Villemoes [Tue, 3 May 2022 08:58:06 +0000 (10:58 +0200)] 
pmic: pca9450: add DM_I2C dependencies in Kconfig

The pca9450 driver uses dm_i2c_{read,write}, which
are (unsurprisingly) only available with DM_I2C. Make sure one can't
create an unbuildable .config by adding proper dependencies.

While here, append "in SPL" to the prompt for the SPL_ variant so it
doesn't read the same as the one for the non-SPL_ variant.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
4 years agoboard: apalis_t30/tk1/colibri_t20/t30: integrate mac address via dt
Marcel Ziswiler [Sat, 21 May 2022 10:42:46 +0000 (12:42 +0200)] 
board: apalis_t30/tk1/colibri_t20/t30: integrate mac address via dt

Use device tree to set MAC address of the Ethernet chip.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
4 years agoarm: tegra: Update some DT compatibles
Peter Robinson [Tue, 3 May 2022 08:32:54 +0000 (09:32 +0100)] 
arm: tegra: Update some DT compatibles

Some of the DT compatibles have changed upstream so add new DT compatibles
to ensure things continue to keep working if the device trees are
updated.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
4 years agopci: tegra: Update error prints with new lines
Peter Robinson [Tue, 3 May 2022 08:29:22 +0000 (09:29 +0100)] 
pci: tegra: Update error prints with new lines

Add new lines to make errorr messages easier to read.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
4 years agoARM: tegra: XUSB padctl: Add new lines for errors
Peter Robinson [Tue, 3 May 2022 08:29:21 +0000 (09:29 +0100)] 
ARM: tegra: XUSB padctl: Add new lines for errors

Add new lines for error messages to make them easier to read.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
4 years agoMerge tag 'efi-2022-07-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Mon, 13 Jun 2022 13:33:37 +0000 (09:33 -0400)] 
Merge tag 'efi-2022-07-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-07-rc5

UEFI:

* Ignore OsIndications if CONFIG_EFI_IGNORE_OSINDICATIONS=y
* Correct UEFI default binary name
* Let efidebug create boot options without file path
* Support booting with a boot option with shortened device only device path

4 years agoefi_loader: create boot options without file path
Heinrich Schuchardt [Sat, 11 Jun 2022 05:22:08 +0000 (05:22 +0000)] 
efi_loader: create boot options without file path

Allow the efidebug command to create boot options without file path, e.g.

    efidebug boot add -b 0001 'short dev only' host 0:1 ''
    efidebug boot add -B 0002 'long dev only' host 0:1 ''

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: allow booting from short dev only DP
Heinrich Schuchardt [Sat, 11 Jun 2022 05:22:07 +0000 (05:22 +0000)] 
efi_loader: allow booting from short dev only DP

Allow booting from a short form device-path without file path, e.g.

    /HD(1,GPT,5ef79931-a1aa-4c70-9d67-611e8f69eafd,0x800,0x1000)

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: correctly identify binary name
Heinrich Schuchardt [Fri, 10 Jun 2022 16:24:48 +0000 (18:24 +0200)] 
efi_loader: correctly identify binary name

Only on the sandbox the default EFI binary name (e.g. BOOTX64.EFI) must
match the host architecture.

In all other cases we must use the target architecture.

Use #elif where appropriate.

Reported-by: Vagrant Cascadian <vagrant@reproducible-builds.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 years agoEFI: FMP: Use a common GetImageInfo function for FIT and raw images
Sughosh Ganu [Wed, 1 Jun 2022 18:00:41 +0000 (23:30 +0530)] 
EFI: FMP: Use a common GetImageInfo function for FIT and raw images

The GetImageInfo function definitions for the FIT images and raw
images are the same. Use a common function for the both the Firmware
Management Protocol(FMP) instances for raw and FIT images.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 years agoEFI: Do not consider OsIndications variable if CONFIG_EFI_IGNORE_OSINDICATIONS is...
Sughosh Ganu [Wed, 1 Jun 2022 18:00:39 +0000 (23:30 +0530)] 
EFI: Do not consider OsIndications variable if CONFIG_EFI_IGNORE_OSINDICATIONS is enabled

The EFI_IGNORE_OSINDICATIONS config symbol was introduced as a
mechanism to have capsule updates work even on platforms where the
SetVariable runtime service was not supported. The current logic
requires the OsIndications variable to have been set to a 64 bit value
even when the EFI_IGNORE_OSINDICATIONS config is enabled. Return an
error code on not being able to read the variable only when
EFI_IGNORE_OSINDICATIONS is not enabled.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 years agoMerge branch '2022-06-10-assorted-platform-updates' into next
Tom Rini [Fri, 10 Jun 2022 20:02:42 +0000 (16:02 -0400)] 
Merge branch '2022-06-10-assorted-platform-updates' into next

- TI J721E hyperflash support, TI OMAP3 updates, TI AM654 updates,
  TI AM62 initial support, Broadcom bcmbca 47622 SoC support, NPCM7xx
  pinctrl and rng drivers, Synquacer updates

4 years agodoc: ti: Add readme for AM62x SK
Vignesh Raghavendra [Wed, 25 May 2022 08:08:50 +0000 (13:38 +0530)] 
doc: ti: Add readme for AM62x SK

Add info of boot flow and build steps for AM62x SK.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
4 years agoconfigs: Add configs for AM62x SK
Vignesh Raghavendra [Wed, 25 May 2022 08:08:49 +0000 (13:38 +0530)] 
configs: Add configs for AM62x SK

Add am62x_evm_r5_defconfig for R5 SPL and am62x_evm_a53_defconfig for
A53 SPL and U-Boot support.

To keep the changes to minimum. Only UART And SD boot related configs
are included. This should serve as good starting point for new board
bringup with AM62x.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
[trini: Migrate a number of CONFIG symbols, have re-tested]
Tested-by: Georgi Vlaev <g-vlaev@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoarm: dts: Add support for AM62-SK
Nishanth Menon [Wed, 25 May 2022 08:08:48 +0000 (13:38 +0530)] 
arm: dts: Add support for AM62-SK

AM62 StarterKit (SK) board is a low cost, small form factor board
designed for TI’s AM625 SoC. It supports the following interfaces:
* 2 GB DDR4 RAM
* x2 Gigabit Ethernet interfaces capable of working in Switch and MAC mode
* x1 HDMI Port with audio + x1 OLDI/LVDS Display interface for Dual Display
* x1 Headphone Jack
* x1 USB2.0 Hub with two Type A host and x1 USB Type-C DRP Port
* x1 UHS-1 capable µSD card slot
* 2.4/5 GHz WLAN + Bluetooth 4.2 through WL1837
* 512 Mbit OSPI flash
* x4 UART through UART-USB bridge
* XDS110 for onboard JTAG debug using USB
* Temperature sensors, user push buttons and LEDs
* 40-pin User Expansion Connector
* 24-pin header for peripherals in MCU island (I2C, UART, SPI, IO)
* 20-pin header for Programmable Realtime Unit (PRU) IO pins
* 15-pin CSI header

Add basic support for AM62-SK.

To keep the changes to minimum. Only UART And SD are supported at the
moment. This should serve as good example for adding new board support
based on AM62x SoC

Schematics: https://www.ti.com/lit/zip/sprr448

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agoboard: ti: Introduce the basic files to support AM62 SK board
Suman Anna [Wed, 25 May 2022 08:08:47 +0000 (13:38 +0530)] 
board: ti: Introduce the basic files to support AM62 SK board

Add basic support for AM62 SK. This has 2GB DDR.
Note that stack for R5 SPL is in OCRAM @ 0x7000ffff so that is away from
BSS and does not step on BSS section

Add only the bare minimum required to support UART and SD.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoarm: dts: Introduce base AM62 SoC dtsi files
Suman Anna [Wed, 25 May 2022 08:08:46 +0000 (13:38 +0530)] 
arm: dts: Introduce base AM62 SoC dtsi files

Introduce the basic AM62 SoC description dtsi files describing most
peripherals as per kernel dts.

Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agofirmware: ti_sci_static_data: add static DMA chan data
Vignesh Raghavendra [Wed, 25 May 2022 08:08:45 +0000 (13:38 +0530)] 
firmware: ti_sci_static_data: add static DMA chan data

Add range of DMA channels available for R5 SPL usage before DM firmware
is loaded.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agodma: ti: Add PSIL data for AM62x DMASS
Vignesh Raghavendra [Wed, 25 May 2022 08:08:44 +0000 (13:38 +0530)] 
dma: ti: Add PSIL data for AM62x DMASS

Add PSIL data for AM62x SoC.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agoarm: mach-k3: am62: Introduce autogenerated SoC data
Suman Anna [Wed, 25 May 2022 08:08:43 +0000 (13:38 +0530)] 
arm: mach-k3: am62: Introduce autogenerated SoC data

Introduce autogenerated SoC data support clk and device data for the
AM62. Hook it upto to power-domain and clk frameworks of U-Boot.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agoarm: mach-k3: Introduce the basic files to support AM62
Suman Anna [Wed, 25 May 2022 08:08:42 +0000 (13:38 +0530)] 
arm: mach-k3: Introduce the basic files to support AM62

The AM62 SoC family is the follow on AM335x built on K3 Multicore SoC
architecture platform, providing ultra-low-power modes, dual display,
multi-sensor edge compute, security and other BOM-saving integration.
The AM62 SoC targets broad market to enable applications such as
Industrial HMI, PLC/CNC/Robot control, Medical Equipment, Building
Automation, Appliances and more.

Some highlights of this SoC are:

* Quad-Cortex-A53s (running up to 1.4GHz) in a single cluster.
  Pin-to-pin compatible options for single and quad core are available.
* Cortex-M4F for general-purpose or safety usage.
* Dual display support, providing 24-bit RBG parallel interface and
  OLDI/LVDS-4 Lane x2, up to 200MHz pixel clock support for 2K display
  resolution.
* Selectable GPUsupport, up to 8GFLOPS, providing better user experience
  in 3D graphic display case and Android.
* PRU(Programmable Realtime Unit) support for customized programmable
  interfaces/IOs.
* Integrated Giga-bit Ethernet switch supporting up to a total of two
  external ports (TSN capable).
* 9xUARTs, 5xSPI, 6xI2C, 2xUSB2, 3xCAN-FD, 3x eMMC and SD, GPMC for
  NAND/FPGA connection, OSPI memory controller, 3xMcASP for audio,
  1x CSI-RX-4L for Camera, eCAP/eQEP, ePWM, among other peripherals.
* Dedicated Centralized System Controller for Security, Power, and
  Resource Management.
* Multiple low power modes support, ex: Deep sleep,Standby, MCU-only,
  enabling battery powered system design.

AM625 is the first device of the family. Add DT bindings for the same.

More details can be found in the Technical Reference Manual:
https://www.ti.com/lit/pdf/spruiv7

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agosoc: ti: k3-socinfo: Add entry for AM62X SoC family
Suman Anna [Wed, 25 May 2022 08:08:41 +0000 (13:38 +0530)] 
soc: ti: k3-socinfo: Add entry for AM62X SoC family

Add support for AM62x SoC identification.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agodt-bindings: pinctrl: k3: Introduce pinmux definitions for AM62
Suman Anna [Wed, 25 May 2022 08:08:40 +0000 (13:38 +0530)] 
dt-bindings: pinctrl: k3: Introduce pinmux definitions for AM62

Add pinctrl macros for AM62x SoCs. These macro definitions are similar
to that of previous platforms, but adding new definitions to avoid any
naming confusions in the SoC dts files.

checkpatch insists the following error exists:
ERROR: Macros with complex values should be enclosed in parentheses

However, we do not need parentheses enclosing the values for this
macro as we do intend it to generate two separate values as has been
 done for other similar platforms.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agodrivers: mmc: am654_sdhci: Add new compatible for AM62 SoC
Aswath Govindraju [Wed, 25 May 2022 08:08:39 +0000 (13:38 +0530)] 
drivers: mmc: am654_sdhci: Add new compatible for AM62 SoC

The phy used in the 8 bit instance has been changed to the phy used in 4
bit instance on AM62 SoC. This implies the phy configuration required for
both the instances of mmc are similar. Therefore, add a new compatible
for AM62 SoC using the driver data of am64 4 bit instance.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
4 years agorng: nuvoton: Add NPCM7xx rng driver
Jim Liu [Tue, 24 May 2022 08:56:57 +0000 (16:56 +0800)] 
rng: nuvoton: Add NPCM7xx rng driver

Add Nuvoton BMC NPCM750 rng driver.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
4 years agoconfigs: am65_evm_r5_usb*_defconfig: Sync the checks for size of image and stack...
Aswath Govindraju [Wed, 18 May 2022 11:19:14 +0000 (16:49 +0530)] 
configs: am65_evm_r5_usb*_defconfig: Sync the checks for size of image and stack from generic r5 defconfig

Sync the configs required for enabling checks for size of image and stack
from generic r5 defconfig file.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
4 years agoarm: mach-k3: am6_init: Fix the path and value's length in the fixup performed for...
Aswath Govindraju [Wed, 18 May 2022 11:19:13 +0000 (16:49 +0530)] 
arm: mach-k3: am6_init: Fix the path and value's length in the fixup performed for usb boot

The node name of the bus in the device tree has changed. Also, the length
argument to be passed should be the length of new value. Therefore, fix the
path to usb device tree node as well as the length argument passed.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
4 years agoarm: dts: k3-am654-r5-base-board: Fix the dt properties in usb0 instance
Aswath Govindraju [Wed, 18 May 2022 11:19:12 +0000 (16:49 +0530)] 
arm: dts: k3-am654-r5-base-board: Fix the dt properties in usb0 instance

For dfu boot mode, the clocks property needs to be deleted and dr_mode
needs to be set to peripheral. Therefore, add the required fixes for the
same.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
4 years agospi: synquacer: simplify tx completion checking
Masahisa Kojima [Tue, 17 May 2022 08:41:39 +0000 (17:41 +0900)] 
spi: synquacer: simplify tx completion checking

There is a TX-FIFO and Shift Register empty(TFES) status
bit in spi controller. This commit checks the TFES bit
to wait the TX transfer completes.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Satoru Okamoto <okamoto.satoru@socionext.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
4 years agospi: synquacer: DMSTART bit must not be set while transferring
Masahisa Kojima [Tue, 17 May 2022 08:41:38 +0000 (17:41 +0900)] 
spi: synquacer: DMSTART bit must not be set while transferring

DMSTART bit must not be set while there is active transfer.
This commit sets the DMSTART bit only when the transfer begins.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Satoru Okamoto <okamoto.satoru@socionext.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
4 years agospi: synquacer: wait until slave is deselected
Masahisa Kojima [Tue, 17 May 2022 08:41:37 +0000 (17:41 +0900)] 
spi: synquacer: wait until slave is deselected

synquacer_cs_set() function does not wait the chip select
is deasserted when the driver sets the DMSTOP to deselect
the slave.
This commit checks the Slave Select Released(SRS) bit to wait
until the slave is deselected.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Satoru Okamoto <okamoto.satoru@socionext.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
4 years agospi: synquacer: busy variable must be initialized before use
Masahisa Kojima [Tue, 17 May 2022 08:41:36 +0000 (17:41 +0900)] 
spi: synquacer: busy variable must be initialized before use

"busy" variable is ORed without being initialized,
must be zeroed before use.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Satoru Okamoto <okamoto.satoru@socionext.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
4 years agopinctrl: nuvoton: Add NPCM7xx pinctrl driver
Jim Liu [Tue, 17 May 2022 08:30:32 +0000 (16:30 +0800)] 
pinctrl: nuvoton: Add NPCM7xx pinctrl driver

Add Nuvoton BMC NPCM750 Pinmux and Pinconf support.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
4 years agoARM: omap3: evm: Fix 'fitImage' booting
Derald D. Woods [Mon, 16 May 2022 03:25:05 +0000 (22:25 -0500)] 
ARM: omap3: evm: Fix 'fitImage' booting

This commit sets two additional variables in the default BOOTCOMMAND.
Adding 'boot=mmc' and 'addr_fit=0x8b000000' removes the need for a
special 'uEnv.txt' to be created. The 'addr_fit' variable is the key
piece here. It is normally defined as 0x90000000, in the macro
DEFAULT_FIT_TI_ARGS. For this OMAP34XX board, 0x8b000000 works without
touching other varibles. This was tested with a 'fitImage' created
using the following FIT source:

----------------------------------------------------------------------
/dts-v1/;

/ {
description = "Simple image with single Linux kernel and FDT blob";
#address-cells = <1>;

images {
kernel {
description = "Linux kernel: omap2plus";
data = /incbin/("./zImage");
type = "kernel";
arch = "arm";
os = "linux";
compression = "none";
load = <0x80008000>;
entry = <0x80008000>;
hash-1 {
algo = "sha256";
};
};
fdt-omap3-evm.dtb {
description = "FDT: omap3-evm.dtb";
data = /incbin/("./omap3-evm.dtb");
type = "flat_dt";
arch = "arm";
compression = "none";
load = <0x8ff00000>;
hash-1 {
algo = "sha256";
};
};
};

configurations {
default = "conf-omap3-evm.dtb";
conf-omap3-evm.dtb {
description = "Boot Linux kernel with FDT blob";
kernel = "kernel";
fdt = "fdt-omap3-evm.dtb";
};
};
};
----------------------------------------------------------------------

Additionally, the default environment is now stored in "uboot.env" on
the FAT partition of MMC '0'.

Fixes: 11e2ab3f0b ("ARM: omap3: evm: Enable booting 'fitImage' with DEFAULT_FIT_TI_ARGS")
Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
4 years agoARM: omap3: evm: Complete DM_I2C migration
Derald D. Woods [Mon, 16 May 2022 03:25:04 +0000 (22:25 -0500)] 
ARM: omap3: evm: Complete DM_I2C migration

This commits enables DM_I2C and sets the default bus to 0.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
4 years agoARM: omap3: evm: Power on MMC when setting up PMIC
Derald D. Woods [Mon, 16 May 2022 03:25:03 +0000 (22:25 -0500)] 
ARM: omap3: evm: Power on MMC when setting up PMIC

This commit copies the related code changes from the BeagleBoard.

Reference:
- https://source.denx.de/u-boot/u-boot/-/commit/848cfe098f59c47a2542385513fb554430b874d6

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
4 years agoarm: bcmbca: introduce the bcmbca architecture and 47622 SOC
William Zhang [Mon, 9 May 2022 16:28:02 +0000 (09:28 -0700)] 
arm: bcmbca: introduce the bcmbca architecture and 47622 SOC

This is the initial support for Broadcom's ARM-based 47622 SOC.

In this change, our first SOC is an armv7 platform called 47622. The
initial support includes a bare-bone implementation and dts with ARM
PL011 uart.

The SOC-specific code resides in arch/arm/mach-bcmbca/<soc> and board
related code is in board/broadcom/bcmba.

The u-boot image can be loaded from flash or network to the entry
point address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Kursad Oney <kursad.oney@broadcom.com>
Signed-off-by: Anand Gore <anand.gore@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
4 years agoconfigs: j721e_evm_defconfig: Add HBMC related configs
Vaishnav Achath [Mon, 9 May 2022 06:20:17 +0000 (11:50 +0530)] 
configs: j721e_evm_defconfig: Add HBMC related configs

Enable HBMC and HyperFlash in R5SPL, A72 SPL and A72 U-Boot

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
[trini: Update j721e_hs_evm_a72 as well]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoti: j721e: enable hyperflash spl fixup for j721e
Vaishnav Achath [Mon, 9 May 2022 06:20:16 +0000 (11:50 +0530)] 
ti: j721e: enable hyperflash spl fixup for j721e

On j721e, its not possible to use OSPI0 and HBMC simultaneously as they
are muxed within the Flash Subsystem hence disable HBMC by default and
keep OSPI enabled. Bootloader will fixup DT when it detects HyperFlash
mux selection instead of OSPI.

Also updated detect_enable_hyperflash to use correct GPIO when checking
hypermux selection state:
* J7200 - hypermux sel connected to WKUP_GPIO0_6
* J721E - hypermux·sel·connected·to·WKUP_GPIO0_8

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoconfigs: j721e_evm.h: define CONFIG_SYS_FLASH_BASE
Vaishnav Achath [Mon, 9 May 2022 06:20:15 +0000 (11:50 +0530)] 
configs: j721e_evm.h: define CONFIG_SYS_FLASH_BASE

Define CONFIG_SYS_FLASH_BASE to indicate start address of
Flash memory

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: k3: sysfw-loader: add hyperflash support
Vaishnav Achath [Mon, 9 May 2022 06:20:14 +0000 (11:50 +0530)] 
arm: k3: sysfw-loader: add hyperflash support

add support for loading system firmware from hyperflash.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: dts: k3-j721e-common-proc-board: enable hyperflash mux sel GPIO
Vaishnav Achath [Mon, 9 May 2022 06:20:13 +0000 (11:50 +0530)] 
arm: dts: k3-j721e-common-proc-board: enable hyperflash mux sel GPIO

Add wkup_gpio pinmux setting which will be used for performing the
DT fixup for hbmc node according to mux selection state, on J721E
EVM, hypermux sel is tied to ·WKUP_GPIO0_8.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: dts: k3-j721e-common-proc-board-u-boot: enable HyperFlash in SPL
Vaishnav Achath [Mon, 9 May 2022 06:20:12 +0000 (11:50 +0530)] 
arm: dts: k3-j721e-common-proc-board-u-boot: enable HyperFlash in SPL

add u-boot,dm-spl pre-relocation property to enable hbmc in SPL.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: dts: k3-j721e-r5-common-proc-board: Add HyperFlash node
Vaishnav Achath [Mon, 9 May 2022 06:20:11 +0000 (11:50 +0530)] 
arm: dts: k3-j721e-r5-common-proc-board: Add HyperFlash node

J721e SoM as a 64MB HyperFlash on board. Add pinmux and DT node
for the same.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: dts: k3-j721e-som-p0: Add HyperFlash node
Vaishnav Achath [Mon, 9 May 2022 06:20:10 +0000 (11:50 +0530)] 
arm: dts: k3-j721e-som-p0: Add HyperFlash node

J721e SoM as a 64MB HyperFlash on board. Add pinmux and DT node
for the same.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoarm: dts: k3-j721e-mcu-wakeup: Add HyperBus Controller node
Vaishnav Achath [Mon, 9 May 2022 06:20:09 +0000 (11:50 +0530)] 
arm: dts: k3-j721e-mcu-wakeup: Add HyperBus Controller node

Add DT node for HyperBus Memory Controller and hbmc-mux in the
FSS. hbmc-am654 driver uses syscon_get_regmap() call which fails
with current compatible setting.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
4 years agoMerge branch '2022-06-09-add-support-for-nvmem-api' into next
Tom Rini [Thu, 9 Jun 2022 19:20:11 +0000 (15:20 -0400)] 
Merge branch '2022-06-09-add-support-for-nvmem-api' into next

To quote the author:
This adds support for the nvmem-cells properties cropping up in manyb
device trees. This is an easy way to load configuration, version
information, or calibration data from a non-volatile memory source. For
more information, refer to patch 6 ("misc: Add support for nvmem
cells").

For the moment I have only added some integration tests using the
ethernet addresses. This hits the main code paths (looking up nvmem
cells) but doesn't test writing. I can add a few stand-alone tests if
desired.

4 years agotest: Load mac address using misc device
Sean Anderson [Thu, 5 May 2022 17:11:44 +0000 (13:11 -0400)] 
test: Load mac address using misc device

This loads a mac address using a misc device using the nvmem interface.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
4 years agotest: Load mac address using RTC
Sean Anderson [Thu, 5 May 2022 17:11:43 +0000 (13:11 -0400)] 
test: Load mac address using RTC

This uses the nvmem API to load a mac address from an RTC.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agotest: Load mac address with i2c eeprom
Sean Anderson [Thu, 5 May 2022 17:11:42 +0000 (13:11 -0400)] 
test: Load mac address with i2c eeprom

This uses an i2c eeprom to load a mac address using the nvmem interface.
Enable I2C_EEPROM for sandbox SPL since it is the only sandbox config
which doesn't enable it eeprom.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agonet: Add support for reading mac addresses from nvmem cells
Sean Anderson [Thu, 5 May 2022 17:11:41 +0000 (13:11 -0400)] 
net: Add support for reading mac addresses from nvmem cells

This adds support for reading mac addresses from the "mac-address" nvmem
cell. If there is no (local-)mac-address property, then we will try
reading from an nvmem cell.

For some existing examples of this property, refer to imx8mn.dtsi and
imx8mp.dtsi. Unfortunately, fuse drivers have not yet been converted
to DM.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agosandbox: Enable NVMEM
Sean Anderson [Thu, 5 May 2022 17:11:40 +0000 (13:11 -0400)] 
sandbox: Enable NVMEM

This enables NVMEM for all sandbox defconfigs, enabling it to be used in
unit tests in the next few commits.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agomisc: Add support for nvmem cells
Sean Anderson [Thu, 5 May 2022 17:11:39 +0000 (13:11 -0400)] 
misc: Add support for nvmem cells

This adds support for "nvmem cells" as seen in Linux. The nvmem device
class in Linux is used for various assorted ROMs and EEPROMs. In this
sense, it is similar to UCLASS_MISC, but also includes
UCLASS_I2C_EEPROM, UCLASS_RTC, and UCLASS_MTD. New drivers corresponding
to a Linux-style nvmem device should be implemented as one of the
previously-mentioned uclasses. The nvmem API acts as a compatibility
layer to adapt the (slightly different) APIs of these uclasses. It also
handles the lookup of nvmem cells.

While nvmem devices can be accessed directly, they are most often used
by reading/writing contiguous values called "cells". Cells typically
hold information like calibration, versions, or configuration (such as
mac addresses).

nvmem devices can specify "cells" in their device tree:

qfprom: eeprom@700000 {
#address-cells = <1>;
#size-cells = <1>;
reg = <0x00700000 0x100000>;

/* ... */

tsens_calibration: calib@404 {
reg = <0x404 0x10>;
};
};

which can then be referenced like:

tsens {
/* ... */
nvmem-cells = <&tsens_calibration>;
nvmem-cell-names = "calibration";
};

The tsens driver could then read the calibration value like:

struct nvmem_cell cal_cell;
u8 cal[16];
nvmem_cell_get_by_name(dev, "calibration", &cal_cell);
nvmem_cell_read(&cal_cell, cal, sizeof(cal));

Because nvmem devices are not all of the same uclass, supported uclasses
must register a nvmem_interface struct. This allows CONFIG_NVMEM to be
enabled without depending on specific uclasses. At the moment,
nvmem_interface is very bare-bones, and assumes that no initialization
is necessary. However, this could be amended in the future.

Although I2C_EEPROM and MISC are quite similar (and could likely be
unified), they present different read/write function signatures. To
abstract over this, NVMEM uses the same read/write signature as Linux.
In particular, short read/writes are not allowed, which is allowed by
MISC.

The functionality implemented by nvmem cells is very similar to that
provided by i2c_eeprom_partition. "fixed-partition"s for eeproms does
not seem to have made its way into Linux or into any device tree other
than sandbox. It is possible that with the introduction of this API it
would be possible to remove it.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
4 years agomisc: i2c_eeprom: Add fallbacks
Sean Anderson [Thu, 5 May 2022 17:11:38 +0000 (13:11 -0400)] 
misc: i2c_eeprom: Add fallbacks

Add some fallback functions for when i2c_eeprom is disabled. This allows
code to reference i2c_eeprom_* functions without needing to check
whether support has been compiled in.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
4 years agomisc: i2c_eeprom: Make i2c_eeprom_write use a const buf
Sean Anderson [Thu, 5 May 2022 17:11:37 +0000 (13:11 -0400)] 
misc: i2c_eeprom: Make i2c_eeprom_write use a const buf

i2c_eeprom_ops->write uses a const buf, so use one for the wrapper
function as well.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agonet: dsa: Fix segmentation fault if master fails to probe
Sean Anderson [Thu, 5 May 2022 17:11:36 +0000 (13:11 -0400)] 
net: dsa: Fix segmentation fault if master fails to probe

If the DSA master fails to probe for whatever reason, then DSA devices
will continue on as if nothing is wrong. This can cause incorrect
behavior. In particular, on sandbox, dsa_sandbox_probe attempts to
access the master's private data. This is only safe to do if the master
has been probed first. Fix this by probing the master after we look it
up, and bailing out if we get an error.

Fixes: fc054d563b ("net: Introduce DSA class for Ethernet switches")
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
4 years agosandbox: Move some mac addresses to device tree
Sean Anderson [Thu, 5 May 2022 17:11:35 +0000 (13:11 -0400)] 
sandbox: Move some mac addresses to device tree

This prevents some conflicts when running sandbox with -D, since the
"rom" mac address will be random and won't match the environment. We
still need to keep addresses for eth1 and eth6 in the environment,
because dm_test_eth_rotate expects to be able to disable them by
removing their envaddr variables. This can likely be fixed in a future
series by adding a function to cause sandbox eth_opts callback for a
particular mac to fail immediately.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>