Merge tag 'tpm-23122022' of https://source.denx.de/u-boot/custodians/u-boot-tpm

OP-TEE autodiscovery
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index d02c663..2121336 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -447,6 +447,8 @@
       matrix:
         arc_microblaze_xtensa:
           BUILDMAN: "arc microblaze xtensa"
+        amlogic:
+          BUILDMAN: "amlogic"
         arm11_arm7_arm920t_arm946es:
           BUILDMAN: "arm11 arm7 arm920t arm946es"
         arm926ejs:
@@ -476,9 +478,9 @@
         imx6:
           BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
         imx:
-          BUILDMAN: "mx -x mx6,freescale,technexion,toradex"
-        imx8:
-          BUILDMAN: "imx8"
+          BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex"
+        imx8_imx9:
+          BUILDMAN: "imx8 imx9"
         keystone2_keystone3:
           BUILDMAN: "k2 k3"
         sandbox_asan:
@@ -532,7 +534,7 @@
         uniphier:
           BUILDMAN: "uniphier"
         aarch64_catch_all:
-          BUILDMAN: "aarch64 -x bcm,imx8,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
+          BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
         rockchip:
           BUILDMAN: "rk"
         renesas:
diff --git a/arch/powerpc/cpu/mpc85xx/config.mk b/arch/powerpc/cpu/mpc85xx/config.mk
index 7a1d81c..71a98f0 100644
--- a/arch/powerpc/cpu/mpc85xx/config.mk
+++ b/arch/powerpc/cpu/mpc85xx/config.mk
@@ -3,11 +3,26 @@
 # (C) Copyright 2002,2003 Motorola Inc.
 # Xianghua Xiao, X.Xiao@motorola.com
 
-PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string
+PLATFORM_CPPFLAGS += -msoft-float -mno-string
 PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables
 
-# -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;
+# No SPE instruction when building u-boot
+# (We use all available options to help semi-broken compilers)
 # see "[PATCH,rs6000] make -mno-spe work as expected" on
 # http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html
-PLATFORM_CPPFLAGS += $(call cc-option,-mspe=yes) \
-		   $(call cc-option,-mno-spe)
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-spe) \
+		     $(call cc-option,-mspe=no)
+
+# No AltiVec or VSX instructions when building u-boot
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-altivec)
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-vsx)
+
+ifdef CONFIG_E6500
+PLATFORM_CPPFLAGS += -mcpu=e6500
+else ifdef CONFIG_E5500
+PLATFORM_CPPFLAGS += -mcpu=e5500
+else ifdef CONFIG_E500MC
+PLATFORM_CPPFLAGS += -mcpu=e500mc
+else
+PLATFORM_CPPFLAGS += -mcpu=8540
+endif
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 6c4848f..d774c93 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1481,6 +1481,7 @@
 config SPL_OPTEE_IMAGE
 	bool "Support OP-TEE Trusted OS image in SPL"
 	depends on ARM
+	depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
 	help
 	  OP-TEE is an open source Trusted OS which is loaded by SPL.
 	  More detail at: https://github.com/OP-TEE/optee_os
diff --git a/drivers/net/npcm750_eth.c b/drivers/net/npcm750_eth.c
index 409d5cc..bd29a10 100644
--- a/drivers/net/npcm750_eth.c
+++ b/drivers/net/npcm750_eth.c
@@ -710,12 +710,12 @@
 
 	pdata->phy_interface = -1;
 	phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode", NULL);
+
 	if (phy_mode)
-		pdata->phy_interface = phy_get_interface_by_name(phy_mode);
-	if (pdata->phy_interface == -1) {
-		printf("%s: Invalid PHY interface '%s'\n", __func__, phy_mode);
+		pdata->phy_interface = dev_read_phy_mode(dev);
+
+	if (pdata->phy_interface == PHY_INTERFACE_MODE_NA)
 		return -EINVAL;
-	}
 
 	pdata->max_speed = 0;
 	cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "max-speed", NULL);
diff --git a/net/ndisc.c b/net/ndisc.c
index 3c0eeea..367dae7 100644
--- a/net/ndisc.c
+++ b/net/ndisc.c
@@ -265,7 +265,7 @@
 
 			/* save address for later use */
 			if (!net_nd_packet_mac)
-				memcpy(net_nd_packet_mac, neigh_eth_addr, 7);
+				net_nd_packet_mac = neigh_eth_addr;
 
 			/* modify header, and transmit it */
 			memcpy(((struct ethernet_hdr *)net_nd_tx_packet)->et_dest,
diff --git a/net/net.c b/net/net.c
index 1c39acc..57da9bd 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1269,6 +1269,7 @@
 #if IS_ENABLED(CONFIG_IPV6)
 	case PROT_IP6:
 		net_ip6_handler(et, (struct ip6_hdr *)ip, len);
+		break;
 #endif
 	case PROT_IP:
 		debug_cond(DEBUG_NET_PKT, "Got IP\n");
diff --git a/scripts/dtc/pylibfdt/setup.py b/scripts/dtc/pylibfdt/setup.py
index ec1fc50..9abdb57 100755
--- a/scripts/dtc/pylibfdt/setup.py
+++ b/scripts/dtc/pylibfdt/setup.py
@@ -22,10 +22,14 @@
 
 from setuptools import setup, Extension
 from setuptools.command.build_py import build_py as _build_py
+from setuptools.extern.packaging import version
 import os
 import re
 import sys
 
+# Disable version normalization
+version.Version = version.LegacyVersion
+
 srcdir = os.path.dirname(__file__)
 
 with open(os.path.join(srcdir, "../README"), "r") as fh: