]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
3 years agoconfig: stm32mp15: remove CONFIG_FASTBOOT_CMD_OEM_FORMAT
Patrick Delaunay [Tue, 30 May 2023 12:26:21 +0000 (14:26 +0200)] 
config: stm32mp15: remove CONFIG_FASTBOOT_CMD_OEM_FORMAT

Remove the support of the fastboot "oem format" command for STM32MP15x
boards and removed the associated env variable "partitions".
This command is not required; with fastboot tool, the GPT partition can
be handle with "flash" command in "gpt" target (=CONFIG_FASTBOOT_GPT_NAME),
for example: fastboot flash gpt gpt.bin

This patch avoids to define the GPT partitioning in U-Boot environment,
which is incompatible with planned modifications, for example to
support TF-A firmware update.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoconfig: stm32mp15: remove CONFIG_FASTBOOT_USB_DEV
Patrick Delaunay [Tue, 30 May 2023 12:26:20 +0000 (14:26 +0200)] 
config: stm32mp15: remove CONFIG_FASTBOOT_USB_DEV

The CONFIG_FASTBOOT_USB_DEV is used to select USB OTG controller other
than 0 but it is not the case for STM32MP15 boards; it can be removed
to simplify the STM32MP15 defconfig files.

On STM32MP15x boards, we have only one USB device with instance 0,
so the device is hardcoded arch/arm/mach-stm32mp/cpu.c with
the command "fastboot 0" and this define is not used in config files
(include/configs/stm32mp15_st_common.h).

Fixes: 4633fd51c5d7 ("stm32mp1: activate FASTBOOT on eMMC")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agostm32mp: stm32prog: Add support of FWU_MDATA partition type
Patrick Delaunay [Thu, 8 Jun 2023 15:09:56 +0000 (17:09 +0200)] 
stm32mp: stm32prog: Add support of FWU_MDATA partition type

Add support of "FWU_MDATA" partition type in flashlayout to select
the TF-A firmware update metadata partition type guid, associated to
U-Boot "system" partition type guid, FWU_MDATA_GUID introduced by
commit 2eaedc95164f ("FWU: Add FWU metadata structure and driver for
accessing metadata") and used in gpt_get_mdata_partitions() for
commit 554b38f7a532 ("FWU: Add FWU metadata access driver for GPT
partitioned block devices")

See also recommendation in FWU-PSA-A_DEN0118_1.0ALP3.pdf
  4.1.2 Metadata integration with GPT
  When embedded in a GPT, each metadata replica occupies a single
  partition with PartitionTypeGUID = metadata_uuid.
  UUID = 8a7a84a0-8387-40f6-ab41-a8b9a5a60d23

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agostm32mp: stm32prog: Add support of ESP partition type
Patrick Delaunay [Thu, 8 Jun 2023 15:09:55 +0000 (17:09 +0200)] 
stm32mp: stm32prog: Add support of ESP partition type

Add support of "ESP" partition type in flashlayout to select
the "EFI System Partition", associated to U-Boot "system"
partition type  guid, PARTITION_SYSTEM_GUID =
C12A7328-F81F-11d2-BA4B-00A0C93EC93B.

This partition is the bootable partition for efi boot.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agostm32mp: stm32prog: Add support of ENV partition type
Patrick Delaunay [Thu, 8 Jun 2023 15:09:54 +0000 (17:09 +0200)] 
stm32mp: stm32prog: Add support of ENV partition type

Add support of "ENV" partition type in flashlayout to select
the "u-boot-env" GUID, with PARTITION_U_BOOT_ENVIRONMENT =
3de21764-95bd-54bd-a5c3-4abe786f38a8, that mean a partition
holding a U-Boot environment introduced by
commit c0364ce1c695 ("doc/README.gpt: define partition type
GUID for U-Boot environment")'

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoboard: pm9g45: add missing gpio_request()
Ilko Iliev [Tue, 13 Jun 2023 15:09:58 +0000 (17:09 +0200)] 
board: pm9g45: add missing gpio_request()

This fixes the following run time error message:

set_dir_flags: error: gpio PIOD3 not reserved
set_dir_flags: error: gpio PIOC14 not reserved

Signed-off-by: Ilko Iliev <iliev@ronetix.at>
3 years agoarm: dts: stm32: Add partitions in flash0 and nand node for stm32mp15xx-dhcom/dhcor
Patrick Delaunay [Thu, 8 Jun 2023 15:16:48 +0000 (17:16 +0200)] 
arm: dts: stm32: Add partitions in flash0 and nand node for stm32mp15xx-dhcom/dhcor

Add partitions subnode in flash0 for stm32mp157xx-dhcom/dhcor boards.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoconfigs: stm32mp1: disable CMD_MTDPARTS
Patrice Chotard [Thu, 8 Jun 2023 15:16:47 +0000 (17:16 +0200)] 
configs: stm32mp1: disable CMD_MTDPARTS

Disable CMD_MTDPARTS as it's no more needed and it is strongly
encouraged to avoid using this command anymore.
(see comments in ./cmd/Kconfig:2422).

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agostm32mp: stm32prog: Remove tee_detected from stm32prog_data struct
Patrice Chotard [Thu, 8 Jun 2023 15:16:46 +0000 (17:16 +0200)] 
stm32mp: stm32prog: Remove tee_detected from stm32prog_data struct

As stm32prog_get_tee_partitions() is no more used, remove tee_detected
boolean from stm32prog_data struct and all code using it.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoboard: st: remove board_mtdparts_default
Patrick Delaunay [Thu, 8 Jun 2023 15:16:45 +0000 (17:16 +0200)] 
board: st: remove board_mtdparts_default

Remove the function board_mtdparts_default and the associated file
or configs, only used by the CONFIG_SYS_MTDPARTS_RUNTIME now removed.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoboard: stm32mp1: use fdt_copy_fixed_partitions
Patrick Delaunay [Thu, 8 Jun 2023 15:16:44 +0000 (17:16 +0200)] 
board: stm32mp1: use fdt_copy_fixed_partitions

Copy the fixed partition nodes from U-Boot device tree to Linux kernel
device tree to dynamically configure the MTD partitions.

fdt_copy_fixed_partitions is only based on device tree
and replace the function fdt_fixup_mtdparts based on mtdparts variable;
the variable mtdid and mtdparts are not more required.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoconfigs: stm32mp: Disable SYS_MTDPARTS_RUNTIME for stm32mp15 and stm32mp13
Patrice Chotard [Thu, 8 Jun 2023 15:16:43 +0000 (17:16 +0200)] 
configs: stm32mp: Disable SYS_MTDPARTS_RUNTIME for stm32mp15 and stm32mp13

As we don't use anymore MTDPARTS_xx Kconfig variables
(MTDPARTS_NAND0_BOOT, MTDPARTS_NOR0_BOOT...),
disable SYS_MTDPARTS_RUNTIME.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoarm: dts: stm32: Add partitions in flash0 and nand node for stm32mp15xx-ev1
Patrice Chotard [Thu, 8 Jun 2023 15:16:42 +0000 (17:16 +0200)] 
arm: dts: stm32: Add partitions in flash0 and nand node for stm32mp15xx-ev1

Add partitions subnode in flash0 and nand nodes for all stm32mp157xx-ev1
boards. Update only the file stm32mp157c-ev1-*u-boot.dtsi, included by
other files  stm32mp15*-ev1-*-u-boot.dtsi.

For SCMI variant of device tree used with stm32mp15_defconfig
add partitions needed by TF-A firmware update:
- metadata to save the TF-A information: 2 copy
- fip-a / fip-b: two FIP slots, used for system A/B (seamless) update
- the previous "fsbl" partition with 2 copy of TFA is replaced
  by 2 partitions (only one copy in each MTD partition) to simplify
  the update: no need to managed this copy on update, need to update the
  two partition (skip bad block for NAND)
The offset for ENV partition are also updated in stm32mp15_defconfig

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agoarm: dts: stm32: Align stm32mp15xx-*-scmi-u-boot.dtsi file
Patrick Delaunay [Thu, 8 Jun 2023 15:16:41 +0000 (17:16 +0200)] 
arm: dts: stm32: Align stm32mp15xx-*-scmi-u-boot.dtsi file

Update "secure" version of STM32 boards based on SCMI when RCC_TZCR.TZEN=1
stm32mp15xx-*-scmi-u-boot.dtsi with latest patches on files
stm32mp15xx-*-u-boot.dtsi.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agostm32mp: stm32prog: Remove usage of "mtdparts" function
Patrice Chotard [Thu, 8 Jun 2023 15:16:40 +0000 (17:16 +0200)] 
stm32mp: stm32prog: Remove usage of "mtdparts" function

Motivation for this patch is to remove usage of function define
in cmd/mtdparts.c interface, based on env variables mtdids and mtdparts:
mtdparts_init() and find_dev_and_part().
See commit 938db6fe5da3 ("cmd: mtdparts: describe as legacy")

Now, all MTD devices are populated with their partition's information
found in DT, accessible in MTD devices. Use these information to find
the wanted partitions, no more need of find_dev_and_part() usage.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agodfu: mtd: remove direct call of mtdparts_init function
Patrick Delaunay [Thu, 8 Jun 2023 15:16:39 +0000 (17:16 +0200)] 
dfu: mtd: remove direct call of mtdparts_init function

With MTD support in driver model, the direct call of mtdparts_init
should be avoided and replaced by mtd_probe_devices.

With the modificaton when MTDIDS/MTDPARTS are empty the OF fallback
with partition describe in device tree is correctly performed,
introduced by commit dc339bf784f0 ("mtd: add support for parsing
partitions defined in OF").
With this patch the dependency with CONFIG_CMD_MTDPARTS is removed.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agofdt_support: add fdt_copy_fixed_partitions function
Patrick Delaunay [Thu, 8 Jun 2023 15:16:38 +0000 (17:16 +0200)] 
fdt_support: add fdt_copy_fixed_partitions function

Add a new function fdt_copy_fixed_partitions to copy the fixed
partition nodes from U-Boot device tree to Linux kernel
device tree and to dynamically configure the MTD partitions.

This function fdt_copy_fixed_partitions is only based on device tree
with livetree compatible function and replace the function
fdt_fixup_mtdparts based on mtdparts variable.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
3 years agofdt_support: include dm/ofnode.h
Patrick Delaunay [Thu, 8 Jun 2023 15:16:37 +0000 (17:16 +0200)] 
fdt_support: include dm/ofnode.h

This patch is a preliminary patch to use ofnode function
is fdt_support to read the U-Boot device tree with livetree
compatible functions.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoefi_selftests: fix protocol repeated selftesting
Ilias Apalodimas [Tue, 13 Jun 2023 13:23:06 +0000 (16:23 +0300)] 
efi_selftests: fix protocol repeated selftesting

Running the protocols  selftest more than one times fails with

=> setenv efi_selftest 'manage protocols' && bootefi selftest
Testing EFI API implementation
Selected test: 'manage protocols'
Setting up 'manage protocols'
Setting up 'manage protocols' succeeded
Executing 'manage protocols'
Executing 'manage protocols' succeeded
Tearing down 'manage protocols'
Tearing down 'manage protocols' succeeded
Summary: 0 failures

=> bootefi selftest
Testing EFI API implementation
Selected test: 'manage protocols'
Setting up 'manage protocols'
lib/efi_selftest/efi_selftest_manageprotocols.c(88):
ERROR: InstallProtocolInterface failed
lib/efi_selftest/efi_selftest.c(89):
ERROR: Setting up 'manage protocols' failed
Tearing down 'manage protocols'
Tearing down 'manage protocols' succeeded
Summary: 1 failures

The reason is that we don't set the handles to NULL after deleting and
freeing them.  As a result the subsequent protocol installation will try
to use an existing handle which we just removed that from our object list.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: simplify efi_disk_remove
Ilias Apalodimas [Mon, 12 Jun 2023 15:35:58 +0000 (18:35 +0300)] 
efi_loader: simplify efi_disk_remove

Instead of discovering the ID of the device and call two different
functions for a block device or a partition, we can rewrite
efi_disk_remove() and handle the minor differences between the two
variants internally.  As a results we can simplify efi_disk_remove()
a lot and get rid of the extra efi_disk_delete_raw/blk calls.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
If a handle is not found, return 0 to let the device be removed.

Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoefi_selftests: fix controllers repeated selftesting
Ilias Apalodimas [Wed, 14 Jun 2023 06:55:48 +0000 (09:55 +0300)] 
efi_selftests: fix controllers repeated selftesting

Running the controller selftest more than one times fails with

=> setenv efi_selftest 'controllers' && bootefi selftest
Testing EFI API implementation
Selected test: 'controllers'
Setting up 'controllers'
Setting up 'controllers' succeeded
Executing 'controllers'
Executing 'controllers' succeeded
Summary: 0 failures

=> bootefi selftest
Testing EFI API implementation
Selected test: 'controllers'
Setting up 'controllers'
lib/efi_selftest/efi_selftest_controllers.c(280):
ERROR: InstallProtocolInterface failed
lib/efi_selftest/efi_selftest.c(89):
ERROR: Setting up 'controllers' failed
Summary: 1 failures

There are multiple reason for this.  We don't uninstall the binding
interface from the controller handle and we don't reset the handle
pointers either.  So let's uninstall all the protocols properly and
reset the handles to NULL on setup().

While at it add a forgotten check when uninstalling protocols from the
handle_controller and make sure the number of child controllers is 0

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agotest: correct architecture in EFI FIT test
Heinrich Schuchardt [Thu, 15 Jun 2023 11:40:05 +0000 (13:40 +0200)] 
test: correct architecture in EFI FIT test

On arm64 the its we use to generate the test FIT image has

arch = "arm";

We should use "arm64" here which is mapped to IH_ARCH_ARM64 via
uimage_arch[].

Fixes: 8391f955494e ("test/py: Create a test for launching UEFI binaries from FIT images")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agobootm: don't call booti_setup for EFI images
Heinrich Schuchardt [Tue, 13 Jun 2023 06:18:27 +0000 (08:18 +0200)] 
bootm: don't call booti_setup for EFI images

On the arm64 architecture booti_setup() is called for EFI FIT images.
This function call fails because EFI images typically do not have a
kernel signature.

Check that the operating system property "os" of the image is "linux"
before invoking booti_setup().

Fixes: 487b5fa6deb1 ("bootm: Handle kernel_noload on arm64")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoefi_selftest: ReinstallProtocolInterface test
Heinrich Schuchardt [Sat, 10 Jun 2023 19:25:18 +0000 (21:25 +0200)] 
efi_selftest: ReinstallProtocolInterface test

Test ReinstallProtocolInterface() more rigorously.

Replacing the sole installed protocol interface must not result in deleting
the handle and creating a new one.

Check which interface is actually installed before and after
ReinstallProtocolInterface().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoMakefile: clean lib/efi_loader/helloworld_efi.S
Heinrich Schuchardt [Fri, 2 Jun 2023 20:18:23 +0000 (22:18 +0200)] 
Makefile: clean lib/efi_loader/helloworld_efi.S

lib/efi_loader/helloworld_efi.S is a generated file and shall be removed by
'make clean'.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: event: Correct EVT_DM_POST_INIT_F description
Bin Meng [Mon, 12 Jun 2023 06:12:13 +0000 (14:12 +0800)] 
doc: event: Correct EVT_DM_POST_INIT_F description

EVT_DM_POST_INIT_F only works in U-Boot proper, not SPL.

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Polish the wording a bit

Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: man-page for imxtract
Heinrich Schuchardt [Tue, 13 Jun 2023 19:02:01 +0000 (21:02 +0200)] 
doc: man-page for imxtract

Provide a man-page for the imxtract command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agoMerge tag 'fsl-qoriq-2023-6-15' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Thu, 15 Jun 2023 15:02:22 +0000 (11:02 -0400)] 
Merge tag 'fsl-qoriq-2023-6-15' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq into next

DM_MDIO/CMD for ls1046afrwy
sync APIs for fsl-mc
ldpaa_eth update
lx2160ardb recv support.
net: dsa fix of fallback lookup

3 years agoconfigs: ls1046afrwy: enable DM_MDIO and DM_CMD
Camelia Groza [Wed, 7 Jun 2023 11:20:47 +0000 (14:20 +0300)] 
configs: ls1046afrwy: enable DM_MDIO and DM_CMD

With DM_ETH configured by default, complete the Ethernet enablement for
LS1046AFRWY by activating DM_MDIO.

Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoboard: freescale: ls1046afrwy: enumerate PCI devices
Camelia Groza [Wed, 7 Jun 2023 11:20:46 +0000 (14:20 +0300)] 
board: freescale: ls1046afrwy: enumerate PCI devices

Call pci_init() from board_init() to force PCI enumeration at probe time.

Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoarm: dts: ls1046afrwy: add the FMan Ethernet nodes
Camelia Groza [Wed, 7 Jun 2023 11:20:45 +0000 (14:20 +0300)] 
arm: dts: ls1046afrwy: add the FMan Ethernet nodes

Describe the FMan Ethernet interfaces present on the board.

Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync remaining MC commands
Ioana Ciornei [Wed, 31 May 2023 16:04:36 +0000 (19:04 +0300)] 
net: fsl-mc: sync remaining MC commands

This patch targets the last remaining commands left to sync to their
latest form - mainly the mc_get_version() API.

Besides this, remove any macro which is now of no help.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPIO MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:35 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPIO MC APIs

Sync the Data Path IO APIs to their latest form, this means the layout
of each command is created based on structures which clearly describe
the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPSPARSER MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:34 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPSPARSER MC APIs

Sync the Data Path Soft Parser APIs to their latest form, this
means the layout of each command is created based on structures which
clearly describe the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPNI MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:33 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPNI MC APIs

Sync the Data Path Network Interface APIs to their latest form, this
means the layout of each command is created based on structures which
clearly describe the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPRC MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:32 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPRC MC APIs

Sync the Data Resource Container APIs to their latest form, this means
the layout of each command is created based on structures which clearly
describe the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPMAC MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:31 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPMAC MC APIs

Sync the Data Path MAC APIs to their latest form, this means the
layout of each command is created based on structures which clearly
describe the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: sync DPBP MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:30 +0000 (19:04 +0300)] 
net: fsl-mc: sync DPBP MC APIs

Sync the Data Path Buffer Pool APIs to their latest form, this means the
layout of each command is created based on structures which clearly
describe the endianness of each field rather than some macros.

The command version is kept in place, meaning that the minimum MC
version accepted is not changed in any way.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: fsl-mc: remove unused MC APIs
Ioana Ciornei [Wed, 31 May 2023 16:04:29 +0000 (19:04 +0300)] 
net: fsl-mc: remove unused MC APIs

There are multiple MC APIs which were added years ago but they are not
used at all in the u-boot source code. Remove all these APIs.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoboard: fsl: lx2160ardb: add dts fixup function for RevC and newer
Florin Chiculita [Wed, 31 May 2023 15:02:18 +0000 (18:02 +0300)] 
board: fsl: lx2160ardb: add dts fixup function for RevC and newer

Since the new RevC LX2160A-RDB board has its 10G Aquantia PHYs at
different MDIO bus addresses, we must update both the kernel DTS and
u-boot's DTS (in case of DM_ETH) in case the board is indeed RevC or
newer. Use the newly introduced get_board_rev() function to trigger a
fixup of the kernel DTS to properly match the actual PHY addresses.
All this is encapsulated in the fdt_fixup_board_phy_revc() function
which will be used in the next patch.

Use the newly fdt_fixup_board_phy_revc() function introduced to
update both kernel's DTS and u-boot's DTS.

Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoboard: fsl: lx2160ardb: add api for obtaining board revision
Florin Chiculita [Wed, 31 May 2023 15:02:17 +0000 (18:02 +0300)] 
board: fsl: lx2160ardb: add api for obtaining board revision

Add new API for obtaining board revision and trigger the i2c node
fixup with this new API.

Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoMerge branch '2023-06-14-assorted-fixes'
Tom Rini [Wed, 14 Jun 2023 19:50:04 +0000 (15:50 -0400)] 
Merge branch '2023-06-14-assorted-fixes'

- Fix some issues Coverity Scan reported in IPv6, SPL EXTn support fix,
  two small bootstd fixes, one Kconfig dependency fix, and fix booting
  on Pinephone Pro

3 years agonet: dhcp6: Fix VCI string
Sean Edmond [Thu, 18 May 2023 19:35:41 +0000 (12:35 -0700)] 
net: dhcp6: Fix VCI string

Change VCI string from "U-boot" to "U-Boot".

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agonet: ipv6: Fix CID 453851 and CID 436278
Sean Edmond [Thu, 18 May 2023 19:35:40 +0000 (12:35 -0700)] 
net: ipv6: Fix CID 453851 and CID 436278

CID 453851 : sprintf() shouldn't copy from/to tmp
CID 436278 : DHCP6 option_len should be checked before use

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agorockchip: Pinephone Pro: Add DDR RAM type config
Peter Robinson [Sun, 11 Jun 2023 17:18:34 +0000 (18:18 +0100)] 
rockchip: Pinephone Pro: Add DDR RAM type config

Add the RAM_ROCKCHIP_LPDDR4 to fix the Pinephone Pro booting.
When the configs were updated in 26f92be07e2 it somehow broke
the PPP boot process so let's fix it.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
CC: Jagan Teki <jagan@edgeble.ai>
CC: Kever Yang <kever.yang@rock-chips.com>
3 years agobootstd: Fix relative path use in extlinux bootmeth
Jonas Karlman [Fri, 9 Jun 2023 14:59:01 +0000 (14:59 +0000)] 
bootstd: Fix relative path use in extlinux bootmeth

Using relative path in a /boot/extlinux/extlinux.conf file fails to load
linux kernel.

Using a /boot/extlinux/extlinux.conf file:

  LABEL test
    LINUX ../linux/Image

Result in following error:

  Retrieving file: ../linux/Image
  Skipping test for failure retrieving kernel
  Boot failed (err=-14)

However, using sysboot cmd successfully load kernel using same file:

  sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf

  Retrieving file: /boot/extlinux/../linux/Image

Fix relative path using bootmeth extlinux by supplying bootfile path
instead of subdir path in the call to pxe_setup_ctx, same as done in the
sysboot command.

Fixes: 31aefaf89a5b ("bootstd: Add an implementation of distro boot")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agobootstd: Make BOOTSTD_FULL depend on BOOTSTD
Simon Glass [Wed, 22 Feb 2023 21:06:23 +0000 (14:06 -0700)] 
bootstd: Make BOOTSTD_FULL depend on BOOTSTD

Move BOOTSTD_FULL down in the file so that it can be enabled only when
BOOTSTD is enabled. This prevents a build error if BOOTSTD is disabled
but BOOTSTD_FULL is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agonet: rtl8169: add depends on PCI
Eugen Hristev [Wed, 17 May 2023 10:41:24 +0000 (13:41 +0300)] 
net: rtl8169: add depends on PCI

The rtl8169 driver uses calls to dm_pci_bus_to_phys,
which are compiled under CONFIG_PCI.

Without CONFIG_PCI, this happens:

drivers/net/rtl8169.o: in function `rtl_recv_common':
drivers/net/rtl8169.c:555: undefined reference to `dm_pci_bus_to_phys'

It is only natural that this driver depends on CONFIG_PCI then.
The device does not work connected in another way anyway, and the driver
does not assume anything else at this moment.

Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agospl: ext: Use partition size for mount
Mayuresh Chitale [Tue, 2 May 2023 16:10:20 +0000 (21:40 +0530)] 
spl: ext: Use partition size for mount

Since commit 9905cae65e03 ("fs: ext4: check the minimal partition size
to mount"), a valid size needs to be provided when mounting
an ext filesystem. Fix the spl ext driver to use the parition size
instead of 0 when mounting the filesystem.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
3 years agonet: ldpaa_eth: export DPNI and DPMAC counters through 'net stats'
Ioana Ciornei [Tue, 23 May 2023 13:47:48 +0000 (16:47 +0300)] 
net: ldpaa_eth: export DPNI and DPMAC counters through 'net stats'

Export the already existing DPNI and DPMAC counters through the newly
added callbacks.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agocmd: net: add a 'net stats' command to dump network statistics
Ioana Ciornei [Tue, 23 May 2023 13:47:47 +0000 (16:47 +0300)] 
cmd: net: add a 'net stats' command to dump network statistics

Add a new option to the 'net' command which can be used to dump network
statistics.

To do this, 3 new callbacks are added to the eth_ops structure:
.get_sset_count(), .get_strings(), .get_stats(). These callbacks
have the same functions as in Linux: to return the number of counters,
the strings which describe those counters and the actual values.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: ldpaa_eth: extend debug capabilities with DPMAC statistics
Ioana Ciornei [Tue, 23 May 2023 13:47:46 +0000 (16:47 +0300)] 
net: ldpaa_eth: extend debug capabilities with DPMAC statistics

The ldpaa_eth driver already had a DPMAC statistics dump, this patch
extends the list of stats and adds a bit more structure to the code.

For a bit more context, the DPAA2 u-boot software architecture uses a
default network interface object - a DPNI - which, at runtime, will get
connected to the currently used DPMAC object.
Each time the .stop() eth callback is called, the DPMAC is destroyed
thus any previous counters will get lost.

As a preparation for the next patches, we add a software kept set of
DPMAC counters which will get updated before each destroy operation
takes place.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: ldpaa_eth: extend debug capabilities with DPNI statistics
Ioana Ciornei [Tue, 23 May 2023 13:47:45 +0000 (16:47 +0300)] 
net: ldpaa_eth: extend debug capabilities with DPNI statistics

The ldpaa_eth driver already had a DPNI statistics dump, this patch
extends the list of stats and adds a bit more structure to the code.

For a bit more context, the DPAA2 u-boot software architecture uses a
default network interface object - a DPNI - which, at runtime, will get
connected to the currently used DPMAC object.
Each time the .stop() eth callback is called, the DPNI is reset to its
original state, including its counters.

As a preparation for the next patches, we add a software kept set of
DPNI counters which will get updated before each reset operation takes
place.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: ldpaa_eth: transform dpni_statistics from a struct to a union
Ioana Ciornei [Tue, 23 May 2023 13:47:44 +0000 (16:47 +0300)] 
net: ldpaa_eth: transform dpni_statistics from a struct to a union

In order to simplify code, dpni_statistics can be written as a union.
Using the raw accessors we can just loop through all the statistics from
a page without trying to access each an every one independently.
Make this change to a union.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: ldpaa_eth: fix the memory layout of the dpmac_get_counters() API
Ioana Ciornei [Tue, 23 May 2023 13:47:43 +0000 (16:47 +0300)] 
net: ldpaa_eth: fix the memory layout of the dpmac_get_counters() API

Each MC commands has a specific predefined memory layout that gets
interpreted by the firmware. The dpmac_get_counters() API memory layout
is wrong, thus the results returned by the command are incorrect.

Fix this by updating the offset of the counter field.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agonet: dsa: Fix OF fallback lookup for ports
Marcus Comstedt [Mon, 15 May 2023 15:44:23 +0000 (15:44 +0000)] 
net: dsa: Fix OF fallback lookup for ports

The variable 'node' was already invalid, so using it for further
lookup will not work.

Signed-off-by: Marcus Comstedt <marcus.comstedt@requtech.se>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 years agoMerge tag 'tpm-for_tom-13062023' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Tue, 13 Jun 2023 17:14:49 +0000 (13:14 -0400)] 
Merge tag 'tpm-for_tom-13062023' of https://source.denx.de/u-boot/custodians/u-boot-tpm into next

tpm autostart

3 years agotest/py: Account PCR updates properly during testing
Ilias Apalodimas [Wed, 7 Jun 2023 09:18:12 +0000 (12:18 +0300)] 
test/py: Account PCR updates properly during testing

Currently we only read the pcr updates once on test_tpm2_pcr_read().
It turns out that the tpm init sequence of force_init() which consists
of:
- tpm2 init
- tpm2 startup TPM2_SU_CLEAR
- tpm2 self_test full
- tpm2 clear TPM2_RH_LOCKOUT

also counts as an update.  Running this in the console verifies the
update bump
=> tpm2 init
=> tpm2 startup TPM2_SU_CLEAR
=> tpm2 self_test full
=> tpm pcr_read 10 $loadaddr
PCR #10 content (28 known updates):
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=> tpm2 clear TPM2_RH_LOCKOUT
=> tpm pcr_read 10 $loadaddr
PCR #10 content (29 known updates):
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>

With the recent changes of replacing 'tpm2 init' with 'tpm2 autostart'
we end up always running the full init.  The reason is 'tpm init'
returns -EBUSY if the tpm is already open, while 'tpm autostart' handles
ths gracefully and continues with the initialization.  It's worth noting
that this won't affect the device functionality at all since
retriggering the startup sequence and selftests has no side effects.

Instead of relying on the initial value, reread the 'known updates'
just before updating the PCR to ensure we read the correct values
before testing

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agotest/py: replace 'tpm2 init, startup, selftest' sequences
Ilias Apalodimas [Wed, 7 Jun 2023 09:18:11 +0000 (12:18 +0300)] 
test/py: replace 'tpm2 init, startup, selftest' sequences

Instead of copy pasting the commands needed to start a TPM consisting
of:
- tpm init
- tpm startup TPM2_SU_CLEAR
- tpm2 self_test full
use the newly added 'autostart' which does the same thing and simplify
our python scripts

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agotpm: Add 'tpm autostart' shell command
Ilias Apalodimas [Wed, 7 Jun 2023 09:18:10 +0000 (12:18 +0300)] 
tpm: Add 'tpm autostart' shell command

For a TPM device to be operational we need to initialize it and
perform its startup sequence.  The 'tpm init' command currently calls
tpm_init() which ends up calling the ->open() per-device callback and
performs the initial hardware configuration as well as requesting
locality 0 for the caller.  There no code that currently calls
tpm_init() without following up with a tpm_startup() and tpm_self_test_full()
or tpm_continue_self_test().

So let's add a 'tpm autostart' command and call tpm_auto_start() which
leaves the device in an operational state.

It's worth noting that calling tpm_init() only, doesn't allow a someone
to use the TPM since the startup sequence is mandatory. We always
repeat the pattern of calling
- tpm_init()
- tpm_startup()
- tpm_self_test_full() or tpm_continue_self_test()

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoMerge tag 'xilinx-for-v2023.10-rc1' of https://source.denx.de/u-boot/custodians/u...
Tom Rini [Mon, 12 Jun 2023 20:42:37 +0000 (16:42 -0400)] 
Merge tag 'xilinx-for-v2023.10-rc1' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next

Xilinx changes for v2023.10-rc1

global:
- Use proper U-Boot project name

Fix sparse warnings in zynqmp-clk, zynqmp handoff, board

cmd:
- Cover incorrect 0 length entries

Versal NET:
- Add bootmode logic
- Support SPP production version
- Add loadpdi command

ZynqMP:
- Clear pmufw node command ID handling
- Change power domain behavior around zynqmp_pmufw_node()
- Fix zynqmp cmd return values and pmufw command
- Fix R5 tcm init and modes

mmc:
- Sync Versal NET emmc DT binding

pcie:
- Add support for ZynqMP PCIe root port

video:
- Add support for ZynqMP DP

tools:
- Fix debug message in relocate-rela

3 years agoMerge tag v2023.07-rc4 into next
Tom Rini [Mon, 12 Jun 2023 18:55:33 +0000 (14:55 -0400)] 
Merge tag v2023.07-rc4 into next

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoPrepare v2023.07-rc4 v2023.07-rc4
Tom Rini [Mon, 12 Jun 2023 17:45:09 +0000 (13:45 -0400)] 
Prepare v2023.07-rc4

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoarm64: versal: Add missing prototypes
Algapally Santosh Sagar [Fri, 9 Jun 2023 09:05:31 +0000 (03:05 -0600)] 
arm64: versal: Add missing prototypes

Add missing prototypes to fix the below sparse warnings
1. warning: no previous prototype for 'set_r5_halt_mode'
[-Wmissing-prototypes]
2. warning: no previous prototype for 'set_r5_tcm_mode'
[-Wmissing-prototypes]
3. warning: no previous prototype for 'release_r5_reset'
[-Wmissing-prototypes]
4.warning: no previous prototype for 'enable_clock_r5'
[-Wmissing-prototypes]

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230609090531.31794-3-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoarm64: versal: Add missing prototype for initialize_tcm
Algapally Santosh Sagar [Fri, 9 Jun 2023 09:05:30 +0000 (03:05 -0600)] 
arm64: versal: Add missing prototype for initialize_tcm

Add the missing prototype pointed by below sparse warning
warning: no previous prototype for 'initialize_tcm'
[-Wmissing-prototypes]

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230609090531.31794-2-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoarm64: zynqmp: Fix lockstep mode cpu release functionality
Venkatesh Yadav Abbarapu [Thu, 8 Jun 2023 03:21:52 +0000 (08:51 +0530)] 
arm64: zynqmp: Fix lockstep mode cpu release functionality

For lockstep mode, cpu_release function is expecting to execute
on R5 core 0, if there is attempt to pass other than R5 core 0,
through an error saying "Lockstep mode should run on R5 core 0 only".

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230608032152.980-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoarm64: zynqmp: Fix tcminit mode param
Venkatesh Yadav Abbarapu [Thu, 8 Jun 2023 03:21:51 +0000 (08:51 +0530)] 
arm64: zynqmp: Fix tcminit mode param

While invoking "zynqmp tcminit mode" command (which is invalid command)
on U-Boot, it just works. Check the mode param, if it is valid then
only initialize the TCM.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230608032152.980-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoPCI: zynqmp: Add ZynqMP NWL PCIe root port driver
Stefan Roese [Thu, 25 May 2023 09:49:18 +0000 (11:49 +0200)] 
PCI: zynqmp: Add ZynqMP NWL PCIe root port driver

This patch adds the PCIe controller driver for the Xilinx / AMD ZynqMP
NWL PCIe Bridge as root port. The driver source is partly copied from
the Linux PCI driver and modified to enable usage in U-Boot (e.g.
simplified and interrupt support removed).

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Pali Rohár <pali@kernel.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Michal Simek <michal.simek@amd.com>
Tested-by: Michal Simek <michal.simek@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20230525094918.111949-1-sr@denx.de
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agofirmware: zynqmp: Extend debug message to show parameters
Michal Simek [Thu, 1 Jun 2023 11:34:34 +0000 (13:34 +0200)] 
firmware: zynqmp: Extend debug message to show parameters

Also print more arguments not just ID when xilinx_pm_request is called.
It helps to decode what firmware is asked to do.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/54928d061da75bd972a3b6a1219204e730b49225.1685619271.git.michal.simek@amd.com
3 years agoarm64: zynqmp: Fix return code from do_zynqmp_pmufw()
Michal Simek [Thu, 1 Jun 2023 11:25:04 +0000 (13:25 +0200)] 
arm64: zynqmp: Fix return code from do_zynqmp_pmufw()

zynqmp_pmufw_node() can also return values like -ENODEV which means that
NODE has been already configured that's why don't propagate this error
code.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/e52d24d8d3efb276778d387dc716e4e065e0626f.1685618701.git.michal.simek@amd.com
3 years agoarm64: zynqmp: Fix command error values properly
Michal Simek [Thu, 1 Jun 2023 11:21:07 +0000 (13:21 +0200)] 
arm64: zynqmp: Fix command error values properly

Process errors from command via cmd_process_error() as is done on Versal.
When internal function returns different number then CMD_RET_SUCCESS(0),
CMD_RET_FAILURE(1) or CMD_RET_USAGE(-1) shell react on these errors by
throwing an error like
"exit not allowed from main input shell." that's why use
cmd_process_error() to make sure that error code is all the time correct.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/d511935ba10daf95c70996fae6e6ffc374efffa0.1685618464.git.michal.simek@amd.com
3 years agovideo: zynqmp: Enable 1024x768 resolution
Michal Simek [Wed, 17 May 2023 08:42:12 +0000 (10:42 +0200)] 
video: zynqmp: Enable 1024x768 resolution

Add support for 1024x768 60p resolution and set it up this resolution by
default. This resolution is still able to use only one GT line. But for
example 800x600 60p has some issues with settings. That's why extend this
table by tested resolutions.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/957e1e85a05744326ec2606dadc1af6e69976f37.1684312924.git.michal.simek@amd.com
3 years agoxilinx: zynqmp: Enable the vidconsole by default
Venkatesh Yadav Abbarapu [Wed, 17 May 2023 08:42:11 +0000 (10:42 +0200)] 
xilinx: zynqmp: Enable the vidconsole by default

Add the vidconsole flags for video serial console.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f1b58d1d1052bf2d8cb8b25af44ecbb567ebbd4a.1684312924.git.michal.simek@amd.com
3 years agovideo: zynqmp: Driver for Xilinx ZynqMP DisplayPort Subsystem
Venkatesh Yadav Abbarapu [Wed, 17 May 2023 08:42:10 +0000 (10:42 +0200)] 
video: zynqmp: Driver for Xilinx ZynqMP DisplayPort Subsystem

The Xilinx ZynqMP SoC has a hardened display pipeline named DisplayPort
Subsystem. It includes a buffer manager, blender, an audio mixer and a
DisplayPort source controller (transmitter). The DisplayPort controller can
source data from memory (non-live input) or the stream (live input). The
DisplayPort controller is responsible for managing the link and physical
layer functionality. The controller packs audio/video data into transfer
units and sends them over the main link. The link rate and lane counts can
be selected based on the application bandwidth requirements. The
DisplayPort pipeline consists of the DisplayPort direct memory access (DMA)
for fetching data from memory. The DisplayPort DMA controller (DPDMA)
supports up to six input channels as non-live input.

This driver supports the DisplayPort Subsystem and implements
1)640x480 resolution
2)RGBA8888 32bpp format
3)DPDMA channel 3 for Graphics
4)Non-live input
5)Fixed 5.4G link rate
6)Tested on ZCU102 board

There will be additional work to configure GT lines based on DT, higher
resolutions, support for more compressed video formats, spliting code to
more files, add support for EDID, audio support, using clock framework for
all clocks and in general code clean up.

Codevelop-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/5c1567b63d0280dacc7efba2998857c399c25358.1684312924.git.michal.simek@amd.com
3 years agovideo: move zynqmp files to subdirectory
Venkatesh Yadav Abbarapu [Wed, 17 May 2023 08:42:09 +0000 (10:42 +0200)] 
video: move zynqmp files to subdirectory

Place zynqmp files and headers in custom driver subdirectory.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9aae6d217f0673c310818e3de38bb239c79c060c.1684312924.git.michal.simek@amd.com
3 years agovideo: bmp: Support rgba8888 pixel format
Michal Simek [Wed, 17 May 2023 08:42:08 +0000 (10:42 +0200)] 
video: bmp: Support rgba8888 pixel format

Adding the support for RGBA8888 format for BMP decoding.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/322910eb24692f6140a001796501270eb1c53d9a.1684312924.git.michal.simek@amd.com
3 years agovideo: Add support for RGBA8888 format
Michal Simek [Wed, 17 May 2023 08:42:07 +0000 (10:42 +0200)] 
video: Add support for RGBA8888 format

Add support for RGBA8888 32bpp format where pixels are picked in
32-bit integers, where the colors are stored in memory such that
R is at lowest address, G after that, B after that, and A last.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/aa1de54b7d4ff46df6858f76d52634e0c5c71a4a.1684312924.git.michal.simek@amd.com
3 years agofirmware: zynqmp: Store driver data in data section
Stefan Herbrechtsmeier [Tue, 23 May 2023 12:42:14 +0000 (14:42 +0200)] 
firmware: zynqmp: Store driver data in data section

Store the driver data in the data section to make the data usable before
relocation. Additionally mark the driver data static to restrict the
access.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Link: https://lore.kernel.org/r/20230523124215.30915-5-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agofirmware: zynqmp: Move permission to change config object message
Stefan Herbrechtsmeier [Tue, 23 May 2023 12:42:13 +0000 (14:42 +0200)] 
firmware: zynqmp: Move permission to change config object message

Move the permission to change a config object message from
zynqmp_pmufw_load_config_object function to zynqmp_pmufw_node function
to simplify the code and check the permission only if required.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Link: https://lore.kernel.org/r/20230523124215.30915-4-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agopower: zynqmp: Mask node already configured error
Stefan Herbrechtsmeier [Tue, 23 May 2023 12:42:12 +0000 (14:42 +0200)] 
power: zynqmp: Mask node already configured error

Do not return an error (ENODEV) from the request function if the node is
already configured.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Link: https://lore.kernel.org/r/20230523124215.30915-3-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agofirmware: zynqmp: Remove redundant child device bind
Stefan Herbrechtsmeier [Tue, 23 May 2023 12:42:11 +0000 (14:42 +0200)] 
firmware: zynqmp: Remove redundant child device bind

Remove the redundant child device bind from the driver bind function and
rely on the post_bind of the class which calls the same function.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Link: https://lore.kernel.org/r/20230523124215.30915-2-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agofirmware: zynqmp: Remove extraordinary return value
Stefan Herbrechtsmeier [Tue, 23 May 2023 12:42:10 +0000 (14:42 +0200)] 
firmware: zynqmp: Remove extraordinary return value

Return a common -EACCES error value instead of a positive private error
value XST_PM_NO_ACCESS (2002) in zynqmp_pmufw_load_config_object
function if the config object is not loadable to simplify the error
checking.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Link: https://lore.kernel.org/r/20230523124215.30915-1-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoarm64: zynqmp: Check 0 node ID
Michal Simek [Thu, 1 Jun 2023 10:32:36 +0000 (12:32 +0200)] 
arm64: zynqmp: Check 0 node ID

ID is decimal not hexadecimal that's why passing hex number all the time
end's up as 0 that's why check it. Node ID 0 is not valid anyway.
Also properly say it in help.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/68c5cd5eade216f3c5aa6eb703ee9f69f14acad1.1685615549.git.michal.simek@amd.com
3 years agotools: relocate-rela: Fix typo
Marek Vasut [Tue, 30 May 2023 22:53:19 +0000 (00:53 +0200)] 
tools: relocate-rela: Fix typo

Position is written with one s, fix typo.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://lore.kernel.org/r/20230530225319.949968-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoglobal: Use proper project name U-Boot
Michal Simek [Wed, 17 May 2023 07:17:16 +0000 (09:17 +0200)] 
global: Use proper project name U-Boot

Use proper project name in comments, Kconfig, readmes.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0dbdf0432405c1c38ffca55703b6737a48219e79.1684307818.git.michal.simek@amd.com
3 years agoboard: xilinx: Add missing prototypes
Algapally Santosh Sagar [Tue, 23 May 2023 05:56:26 +0000 (23:56 -0600)] 
board: xilinx: Add missing prototypes

Add missing prototypes to fix the below sparse warnings
1. warning: no previous prototype for 'soc_name_decode'
[-Wmissing-prototypes]
2. warning: no previous prototype for 'soc_detection'
[-Wmissing-prototypes]
3. warning: no previous prototype for 'board_name_decode'
[-Wmissing-prototypes]
4. warning: no previous prototype for 'board_detection'
[-Wmissing-prototypes]

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230523055626.14742-1-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoxilinx: versal-net: Add new versalnet loadpdi command
Algapally Santosh Sagar [Mon, 22 May 2023 13:21:08 +0000 (15:21 +0200)] 
xilinx: versal-net: Add new versalnet loadpdi command

Versal NET loadpdi command is used for loading secure & non-secure
pdi images.

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f43709af894b669833770acb39ff5856fecf6d66.1684761656.git.michal.simek@amd.com
3 years agommc: zynq: Sync with upstream DT binding
Michal Simek [Wed, 17 May 2023 08:22:48 +0000 (10:22 +0200)] 
mmc: zynq: Sync with upstream DT binding

Versal NET is not in production yet that's why no need to keep backward
compatible with previously used compatible string.

Link: https://lore.kernel.org/r/20230403102551.3763054-2-sai.krishna.potthuri@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0d355f4fbaf6a3521d41ee43f17dde2515ff7ab7.1684311766.git.michal.simek@amd.com
3 years agoarm64: versal-net: Add support for SPP production version
Michal Simek [Wed, 17 May 2023 08:21:32 +0000 (10:21 +0200)] 
arm64: versal-net: Add support for SPP production version

Production version restarting platform version field from 0 that's why add
new calculation to be able to use different DT for these platforms.
Requested DT names for production silicons for IPP/SPP and EMU platform are
versal-net-ipp-rev2.0.dts and versal-net-emu-rev2.0.dts.
If platform version increase numbers revision can be even higher.
As of today platform version is 2 that's why expected is rev2.2.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/691e166b3cf2643d7edf482bda5500163eecb35a.1684311689.git.michal.simek@amd.com
3 years agocmd: sf/nand: Print and return failure when 0 length is passed
Ashok Reddy Soma [Tue, 16 May 2023 11:52:36 +0000 (05:52 -0600)] 
cmd: sf/nand: Print and return failure when 0 length is passed

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

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

Example:

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

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230516115236.22458-1-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agomach-zynqmp: handoff: Add missing header
Algapally Santosh Sagar [Fri, 19 May 2023 11:38:16 +0000 (17:08 +0530)] 
mach-zynqmp: handoff: Add missing header

Add missing prototype to fix the sparse warning.
warning: no previous prototype for 'bl2_plat_get_bl31_params'
[-Wmissing-prototypes]

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230519113816.22083-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoclk: zynqmp: Add fallthrough statement in the switch case
Algapally Santosh Sagar [Fri, 19 May 2023 11:38:15 +0000 (17:08 +0530)] 
clk: zynqmp: Add fallthrough statement in the switch case

Add fallthrough statement in switch case to fix the sparse warning.
In function 'zynqmp_clk_get_rate': warning: this statement may
fall through [-Wimplicit-fallthrough=]

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230519113816.22083-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoarm64: versal-net: Detect and display bootmode
Ashok Reddy Soma [Tue, 16 May 2023 14:47:53 +0000 (08:47 -0600)] 
arm64: versal-net: Detect and display bootmode

Read boodmode register using versal_net_get_bootmode() in board_late_init
and prepare corresponding distro boot command sequence based on it.

versal_net_get_bootmode() will be changed to use smc calls later, but
for now directly reads the register.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230516144753.30869-1-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
3 years agoMerge branch 'master_reserved' of https://source.denx.de/u-boot/custodians/u-boot-sh
Tom Rini [Sun, 11 Jun 2023 20:23:32 +0000 (16:23 -0400)] 
Merge branch 'master_reserved' of https://source.denx.de/u-boot/custodians/u-boot-sh

3 years agoMerge branch 'next_net/phy_connect_dev' of https://source.denx.de/u-boot/custodians...
Tom Rini [Sat, 10 Jun 2023 18:08:00 +0000 (14:08 -0400)] 
Merge branch 'next_net/phy_connect_dev' of https://source.denx.de/u-boot/custodians/u-boot-sh into next

3 years agoMerge branch 'next_mtd/rpc-spi' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Sat, 10 Jun 2023 18:07:49 +0000 (14:07 -0400)] 
Merge branch 'next_mtd/rpc-spi' of https://source.denx.de/u-boot/custodians/u-boot-sh into next

3 years agorenesas: rcar: Apply ATF overlay for reserved-memory
Detlev Casanova [Fri, 9 Jun 2023 15:19:08 +0000 (11:19 -0400)] 
renesas: rcar: Apply ATF overlay for reserved-memory

The function fdtdec_board_setup() is called early and adds the overlay
from ATF to the u-boot device tree. That is necessary so that u-boot
doesn't use reserved memory.

Linux also needs to know about that reserved memory so the overlay from
ATF needs to be aplied on the linux device tree as well.

This commit makes sure that the ATF overlay is applied to both device trees.

Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Adam Ford <aford173@gmail.com>
3 years agoARM: renesas: Enable DM_ETH_PHY and SMSC PHY driver
Marek Vasut [Mon, 29 May 2023 18:28:54 +0000 (20:28 +0200)] 
ARM: renesas: Enable DM_ETH_PHY and SMSC PHY driver

The board comes with SMSC LAN8710A PHY, enable matching driver.
Enable DM_ETH_PHY in the process to start using DM drivers more.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Michal Simek <michal.simek@amd.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
3 years agoARM: dts: renesas: Add compatible properties to LAN8710A Ethernet PHYs
Geert Uytterhoeven [Thu, 9 Sep 2021 08:49:40 +0000 (10:49 +0200)] 
ARM: dts: renesas: Add compatible properties to LAN8710A Ethernet PHYs

Add compatible values to Ethernet PHY subnodes representing SMSC
LAN8710A PHYs on RZ/A1 and R-Mobile A1 boards.  This allows software to
identify the PHY model at any time, regardless of the state of the PHY
reset line.

Ported from Linux kernel commit 1c65ef1c71e473c00f2a7a1b9c140f0b4862f282 .

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/247dc2074dae149af07b6d014985ad30eb362eda.1631174218.git.geert+renesas@glider.be
---
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Michal Simek <michal.simek@amd.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
3 years agonet: sh_eth: Fix RX error handling
Valentine Barshak [Tue, 30 May 2023 22:51:31 +0000 (00:51 +0200)] 
net: sh_eth: Fix RX error handling

In case RX error occurs, and the RD_RFE bit is set, the descriptor
is never returned back to the queue. Make sh_eth_recv_start return
zero length in this case so that the descriptor can be released
and pushed back to the list. Also return the more appropriate
-EAGAIN instead of -EINVAL if the descriptor is not ready yet.

Signed-off-by: Valentine Barshak <valentine.barshak@cogentembedded.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>