[PATCH 38/50] ARM: zynqmp: Add multi-arch support

Sascha Hauer s.hauer at pengutronix.de
Fri Mar 3 01:21:19 PST 2023


Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 arch/arm/Kconfig                | 32 ++++++++++++++++----------------
 arch/arm/include/asm/debug_ll.h |  6 ++++--
 arch/arm/mach-zynqmp/zynqmp.c   |  3 +++
 common/Kconfig                  |  7 +++++++
 4 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7ac24ba1de..a7b8b0da01 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -231,22 +231,6 @@ config ARCH_ZYNQ
 	select PBL_IMAGE
 	select GPIOLIB
 
-config ARCH_ZYNQMP
-	bool "Xilinx ZynqMP-based boards"
-	select CPU_V8
-	select HAS_DEBUG_LL
-	select HAVE_PBL_MULTI_IMAGES
-	select ARM_SMCCC
-	select COMMON_CLK
-	select COMMON_CLK_OF_PROVIDER
-	select CLKDEV_LOOKUP
-	select GPIOLIB
-	select OFDEVICE
-	select OFTREE
-	select RELOCATABLE
-	select CPU_SUPPORTS_64BIT_KERNEL
-	select HAS_MACB
-
 config ARCH_ARM64_VIRT
 	bool "ARM64 QEMU Virt board"
 	select CPU_V8
@@ -296,6 +280,22 @@ config ARCH_ROCKCHIP
 	select HAVE_PBL_MULTI_IMAGES
 	select HAS_DEBUG_LL
 
+config ARCH_ZYNQMP
+	bool "Xilinx ZynqMP-based boards"
+	select CPU_V8
+	select HAS_DEBUG_LL
+	select HAVE_PBL_MULTI_IMAGES
+	select ARM_SMCCC
+	select COMMON_CLK
+	select COMMON_CLK_OF_PROVIDER
+	select CLKDEV_LOOKUP
+	select GPIOLIB
+	select OFDEVICE
+	select OFTREE
+	select RELOCATABLE
+	select CPU_SUPPORTS_64BIT_KERNEL
+	select HAS_MACB
+
 source "arch/arm/cpu/Kconfig"
 source "arch/arm/mach-at91/Kconfig"
 source "arch/arm/mach-bcm283x/Kconfig"
diff --git a/arch/arm/include/asm/debug_ll.h b/arch/arm/include/asm/debug_ll.h
index 7c1152c6d9..8005980f28 100644
--- a/arch/arm/include/asm/debug_ll.h
+++ b/arch/arm/include/asm/debug_ll.h
@@ -15,11 +15,13 @@
 #include <mach/omap/debug_ll.h>
 #endif
 
+#ifdef CONFIG_DEBUG_ZYNQMP_UART
+#include <mach/zynqmp/debug_ll.h>
+#endif
+
 #ifdef CONFIG_DEBUG_QEMU_ARM64_VIRT
 #define DEBUG_LL_UART_ADDR		0x9000000
 #include <debug_ll/pl011.h>
-#elif defined CONFIG_ARCH_ZYNQMP
-#include <mach/zynqmp/debug_ll.h>
 #elif defined CONFIG_ARCH_MVEBU
 #include <mach/mvebu/debug_ll.h>
 #elif defined CONFIG_ARCH_DAVINCI
diff --git a/arch/arm/mach-zynqmp/zynqmp.c b/arch/arm/mach-zynqmp/zynqmp.c
index 312325956a..f86bda1693 100644
--- a/arch/arm/mach-zynqmp/zynqmp.c
+++ b/arch/arm/mach-zynqmp/zynqmp.c
@@ -147,6 +147,9 @@ static int zynqmp_init(void)
 	enum bootsource boot_src;
 	int boot_instance;
 
+	if (!of_machine_is_compatible("xlnx,zynqmp"))
+		return 0;
+
 	zynqmp_get_bootsource(&boot_src, &boot_instance);
 	bootsource_set_raw(boot_src, boot_instance);
 
diff --git a/common/Kconfig b/common/Kconfig
index eeb33f3042..c396c3a238 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1470,6 +1470,13 @@ config DEBUG_RPI4_MINI_UART
 	  Say Y here if you want low-level debugging support on
 	  RaspberryPi 4 board mini UART.
 
+config DEBUG_ZYNQMP_UART
+	bool "Zynqmp Debug UART"
+	depends on ARCH_ZYNQMP
+	help
+	  Say Y here if you want kernel low-level debugging support
+	  on Zynqmp.
+
 config DEBUG_ERIZO
 	bool "Erizo ns16550 port"
 	depends on SOC_ERIZO
-- 
2.30.2




More information about the barebox mailing list