This fixes the following issues in the debug UART config for Raspberry Pi boards: When debug UART support is enabled, only R.Pi 1 or 2/3 boards can be supported in a single build. However, this limitation was not enforced in the "boards to be built" menu. E.g. it was possible to build a R.Pi 3 image with (non-functional) debug UART support for R.Pi 1. In contrast to other architectures, R.Pi debug UART config was placed under the "System Type" menu, not under the "Debugging -> low-level debugging port". This made this setting easy to miss when enabling low level debug mesages. --- arch/arm/mach-bcm283x/Kconfig | 24 ++++------------------ arch/arm/mach-bcm283x/include/mach/debug_ll.h | 6 +++--- common/Kconfig | 29 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig index bb5f75dc9..df9206d61 100644 --- a/arch/arm/mach-bcm283x/Kconfig +++ b/arch/arm/mach-bcm283x/Kconfig @@ -13,44 +13,28 @@ config MACH_RPI bool "RaspberryPi (BCM2835/ARM1176JZF-S)" select CPU_V6 select MACH_RPI_COMMON + depends on (!DEBUG_LL) || DEBUG_RPI1_UART config MACH_RPI2 bool "RaspberryPi 2 (BCM2836/CORTEX-A7)" select CPU_V7 select MACH_RPI_COMMON + depends on (!DEBUG_LL) || DEBUG_RPI2_UART config MACH_RPI3 bool "RaspberryPi 3 (BCM2837/CORTEX-A53)" select CPU_V7 select MACH_RPI_COMMON select ARM_SECURE_MONITOR + depends on (!DEBUG_LL) || DEBUG_RPI2_UART config MACH_RPI_CM3 bool "RaspberryPi Compute Module 3 (BCM2837/CORTEX-A53)" select CPU_V7 select MACH_RPI_COMMON select ARM_SECURE_MONITOR + depends on (!DEBUG_LL) || DEBUG_RPI2_UART endmenu -config MACH_RPI_DEBUG_UART_BASE - hex - default 0x20201000 if MACH_RPI_DEBUG_UART_RPI - default 0x3f201000 if MACH_RPI_DEBUG_UART_RPI2 - -if DEBUG_LL - -choice - prompt "Lowlevel debug UART" - -config MACH_RPI_DEBUG_UART_RPI - bool "use RaspberryPi 1 compatible base" - -config MACH_RPI_DEBUG_UART_RPI2 - bool "use RaspberryPi 2 and 3 compatible base" - -endchoice - -endif - endif diff --git a/arch/arm/mach-bcm283x/include/mach/debug_ll.h b/arch/arm/mach-bcm283x/include/mach/debug_ll.h index a625a8bdb..e4a935800 100644 --- a/arch/arm/mach-bcm283x/include/mach/debug_ll.h +++ b/arch/arm/mach-bcm283x/include/mach/debug_ll.h @@ -20,11 +20,11 @@ #include <mach/platform.h> -#ifndef CONFIG_MACH_RPI_DEBUG_UART_BASE -#define CONFIG_MACH_RPI_DEBUG_UART_BASE 0 +#ifndef CONFIG_DEBUG_RPI_UART_BASE +#define CONFIG_DEBUG_RPI_UART_BASE 0 #endif -#define DEBUG_LL_UART_ADDR CONFIG_MACH_RPI_DEBUG_UART_BASE +#define DEBUG_LL_UART_ADDR CONFIG_DEBUG_RPI_UART_BASE #include <asm/debug_ll_pl011.h> diff --git a/common/Kconfig b/common/Kconfig index 21b33f06f..7e2ac2feb 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1159,6 +1159,29 @@ config DEBUG_SOCFPGA_UART1 Say Y here if you want kernel low-level debugging support on SOCFPGA(Arria 10) based platforms. +config DEBUG_RPI1_UART + bool "RaspberryPi 1 low-level debug UART" + depends on ARCH_BCM283X + help + Say Y here if you want low-level debugging support on + RaspberryPi 1 boards. + + Selecting this also limits available choices in "boards to + be built" under "system type". If you want to build images + that work on both RaspberryPi 1 and 2/3, you need to deselect + low-level debug. + +config DEBUG_RPI2_UART + bool "RaspberryPi 2/3 low-level debug UART" + depends on ARCH_BCM283X + help + Say Y here if you want low-level debugging support on + RaspberryPi 2 and 3 boards. + + Selecting this also limits available choices in "boards to + be built" under "system type". If you want to build images + that work on both RaspberryPi 1 and 2/3, you need to deselect + low-level debug. endchoice @@ -1209,6 +1232,12 @@ config DEBUG_SOCFPGA_UART_PHYS_ADDR default 0xffc02100 if DEBUG_SOCFPGA_UART1 depends on ARCH_SOCFPGA +config DEBUG_RPI_UART_BASE + hex + default 0x20201000 if DEBUG_RPI1_UART + default 0x3f201000 if DEBUG_RPI2_UART + depends on ARCH_BCM283X + config DEBUG_SOCFPGA_UART_CLOCK int "SoCFPGA UART debug clock" if DEBUG_LL default 100000000 if ARCH_SOCFPGA_CYCLONE5 -- 2.11.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox