* [PATCH 0/4] ARM: S3C24XX: cleanup debug macro/earlyprintk @ 2014-04-24 10:23 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:23 UTC (permalink / raw) To: Kukjin Kim; +Cc: t.figa, linux-arm-kernel, linux-samsung-soc, arm, Russell King This series tries to simplify the s3c24xx debug macro, removing dependencies on mach/ includes, static mappings and finally moving it into include/debug. The one slightly invasive change is the need for the developer to select the uart type by himself, which gets rid of the debug macro trying to determine the uart type itself. But as usage of the debug-uart is not the common case - especially in a multiplatform scenario - I didn't worry to much. Based on 3.15-rc1 and tested on a S3C2442 Openmoko Freerunner (GTA02) Heiko Stuebner (4): ARM: compressed/head.S: remove s3c24xx special case ARM: S3C24XX: trim down debug uart handling ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro ARM: S3C24XX: move debug-macro.S into the common space arch/arm/Kconfig.debug | 36 +++++++- arch/arm/boot/compressed/head.S | 5 -- arch/arm/include/debug/s3c24xx.S | 46 +++++++++++ arch/arm/mach-s3c24xx/Kconfig | 28 ------- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 101 ----------------------- 5 files changed, 80 insertions(+), 136 deletions(-) create mode 100644 arch/arm/include/debug/s3c24xx.S delete mode 100644 arch/arm/mach-s3c24xx/include/mach/debug-macro.S -- 1.9.0 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 0/4] ARM: S3C24XX: cleanup debug macro/earlyprintk @ 2014-04-24 10:23 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:23 UTC (permalink / raw) To: linux-arm-kernel This series tries to simplify the s3c24xx debug macro, removing dependencies on mach/ includes, static mappings and finally moving it into include/debug. The one slightly invasive change is the need for the developer to select the uart type by himself, which gets rid of the debug macro trying to determine the uart type itself. But as usage of the debug-uart is not the common case - especially in a multiplatform scenario - I didn't worry to much. Based on 3.15-rc1 and tested on a S3C2442 Openmoko Freerunner (GTA02) Heiko Stuebner (4): ARM: compressed/head.S: remove s3c24xx special case ARM: S3C24XX: trim down debug uart handling ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro ARM: S3C24XX: move debug-macro.S into the common space arch/arm/Kconfig.debug | 36 +++++++- arch/arm/boot/compressed/head.S | 5 -- arch/arm/include/debug/s3c24xx.S | 46 +++++++++++ arch/arm/mach-s3c24xx/Kconfig | 28 ------- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 101 ----------------------- 5 files changed, 80 insertions(+), 136 deletions(-) create mode 100644 arch/arm/include/debug/s3c24xx.S delete mode 100644 arch/arm/mach-s3c24xx/include/mach/debug-macro.S -- 1.9.0 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] ARM: compressed/head.S: remove s3c24xx special case 2014-04-24 10:23 ` Heiko Stübner @ 2014-04-24 10:24 ` Heiko Stübner -1 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:24 UTC (permalink / raw) To: Kukjin Kim; +Cc: t.figa, linux-arm-kernel, linux-samsung-soc, arm, Russell King addruart from the generic debug macro is doing exactly the same using the common lowlevel uart definition, so there is no cause for this special casing for s3c24xx. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/boot/compressed/head.S | 5 ----- 1 file changed, 5 deletions(-) diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 066b034..3a8b32d 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -60,11 +60,6 @@ add \rb, \rb, #0x00010000 @ Ser1 #endif .endm -#elif defined(CONFIG_ARCH_S3C24XX) - .macro loadsp, rb, tmp - mov \rb, #0x50000000 - add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT - .endm #else .macro loadsp, rb, tmp addruart \rb, \tmp -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 1/4] ARM: compressed/head.S: remove s3c24xx special case @ 2014-04-24 10:24 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:24 UTC (permalink / raw) To: linux-arm-kernel addruart from the generic debug macro is doing exactly the same using the common lowlevel uart definition, so there is no cause for this special casing for s3c24xx. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/boot/compressed/head.S | 5 ----- 1 file changed, 5 deletions(-) diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 066b034..3a8b32d 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -60,11 +60,6 @@ add \rb, \rb, #0x00010000 @ Ser1 #endif .endm -#elif defined(CONFIG_ARCH_S3C24XX) - .macro loadsp, rb, tmp - mov \rb, #0x50000000 - add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT - .endm #else .macro loadsp, rb, tmp addruart \rb, \tmp -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling 2014-04-24 10:23 ` Heiko Stübner @ 2014-04-24 10:24 ` Heiko Stübner -1 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:24 UTC (permalink / raw) To: Kukjin Kim; +Cc: t.figa, linux-arm-kernel, linux-samsung-soc, arm, Russell King Using the lowlevel debug uart is a corner case - even more so in a multiplatform environment. So it seems reasonable to simply let the developer set the appropriate uart type for the debugged SoC. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 16 ++++++++ arch/arm/mach-s3c24xx/Kconfig | 28 ------------- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 52 +----------------------- 3 files changed, 17 insertions(+), 79 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 4a2fc0b..43b94a9 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -918,6 +918,22 @@ choice endchoice +choice + prompt "S3C24XX low-level debugging port type" + depends on DEBUG_LL && ARCH_S3C24XX + + config DEBUG_S3C24XX_UART_S3C2440 + bool "S3C2440 uart type" + help + Select this if you're debugging S3C2416, S3C2440, S3C2442, + S3C2443 or S3C2450 SoCs. + + config DEBUG_S3C24XX_UART_S3C2410 + bool "S3C2410 uart type" + help + Select this if you're debugging S3C2410 or S3C2412 SoCs. +endchoice + config DEBUG_EXYNOS_UART bool diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 40cf50b..98d17af 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig @@ -26,7 +26,6 @@ config CPU_S3C2410 bool "SAMSUNG S3C2410" default y select CPU_ARM920T - select CPU_LLSERIAL_S3C2410 select S3C2410_CLOCK select S3C2410_DMA if S3C24XX_DMA select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ @@ -39,7 +38,6 @@ config CPU_S3C2410 config CPU_S3C2412 bool "SAMSUNG S3C2412" select CPU_ARM926T - select CPU_LLSERIAL_S3C2440 select S3C2412_DMA if S3C24XX_DMA select S3C2412_PM if PM help @@ -48,7 +46,6 @@ config CPU_S3C2412 config CPU_S3C2416 bool "SAMSUNG S3C2416/S3C2450" select CPU_ARM926T - select CPU_LLSERIAL_S3C2440 select S3C2416_PM if PM select S3C2443_COMMON select S3C2443_DMA if S3C24XX_DMA @@ -59,7 +56,6 @@ config CPU_S3C2416 config CPU_S3C2440 bool "SAMSUNG S3C2440" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2410_CLOCK select S3C2410_PM if PM select S3C2440_DMA if S3C24XX_DMA @@ -69,7 +65,6 @@ config CPU_S3C2440 config CPU_S3C2442 bool "SAMSUNG S3C2442" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2410_CLOCK select S3C2410_DMA if S3C24XX_DMA select S3C2410_PM if PM @@ -84,7 +79,6 @@ config CPU_S3C244X config CPU_S3C2443 bool "SAMSUNG S3C2443" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2443_COMMON select S3C2443_DMA if S3C24XX_DMA select SAMSUNG_CLKSRC @@ -158,28 +152,6 @@ config S3C2410_PM help Power Management code common to S3C2410 and better -# low-level serial option nodes - -config CPU_LLSERIAL_S3C2410_ONLY - bool - default y if CPU_LLSERIAL_S3C2410 && !CPU_LLSERIAL_S3C2440 - -config CPU_LLSERIAL_S3C2440_ONLY - bool - default y if CPU_LLSERIAL_S3C2440 && !CPU_LLSERIAL_S3C2410 - -config CPU_LLSERIAL_S3C2410 - bool - help - Selected if there is an S3C2410 (or register compatible) serial - low-level implementation needed - -config CPU_LLSERIAL_S3C2440 - bool - help - Selected if there is an S3C2440 (or register compatible) serial - low-level implementation needed - config S3C24XX_PLL bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" depends on ARM_S3C24XX_CPUFREQ diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S index 2f39737..3077a5f 100644 --- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S @@ -13,11 +13,9 @@ */ #include <mach/map.h> -#include <mach/regs-gpio.h> #include <linux/serial_s3c.h> #define S3C2410_UART1_OFF (0x4000) -#define SHIFT_2440TXF (14-9) .macro addruart, rp, rv, tmp ldr \rp, = S3C24XX_PA_UART @@ -28,56 +26,11 @@ #endif .endm - .macro fifo_full_s3c24xx rd, rx - @ check for arm920 vs arm926. currently assume all arm926 - @ devices have an 64 byte FIFO identical to the s3c2440 - mrc p15, 0, \rd, c0, c0 - and \rd, \rd, #0xff0 - teq \rd, #0x260 - beq 1004f - mrc p15, 0, \rd, c1, c0 - tst \rd, #1 - addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) - addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) - bic \rd, \rd, #0xff000 - ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] - and \rd, \rd, #0x00ff0000 - teq \rd, #0x00440000 @ is it 2440? -1004: - ldr \rd, [\rx, # S3C2410_UFSTAT] - moveq \rd, \rd, lsr #SHIFT_2440TXF - tst \rd, #S3C2410_UFSTAT_TXFULL - .endm - .macro fifo_full_s3c2410 rd, rx ldr \rd, [\rx, # S3C2410_UFSTAT] tst \rd, #S3C2410_UFSTAT_TXFULL .endm -/* fifo level reading */ - - .macro fifo_level_s3c24xx rd, rx - @ check for arm920 vs arm926. currently assume all arm926 - @ devices have an 64 byte FIFO identical to the s3c2440 - mrc p15, 0, \rd, c0, c0 - and \rd, \rd, #0xff0 - teq \rd, #0x260 - beq 10000f - mrc p15, 0, \rd, c1, c0 - tst \rd, #1 - addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) - addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) - bic \rd, \rd, #0xff000 - ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] - and \rd, \rd, #0x00ff0000 - teq \rd, #0x00440000 @ is it 2440? - -10000: - ldr \rd, [\rx, # S3C2410_UFSTAT] - andne \rd, \rd, #S3C2410_UFSTAT_TXMASK - andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK - .endm - .macro fifo_level_s3c2410 rd, rx ldr \rd, [\rx, # S3C2410_UFSTAT] and \rd, \rd, #S3C2410_UFSTAT_TXMASK @@ -88,12 +41,9 @@ * used variants of these */ -#if defined(CONFIG_CPU_LLSERIAL_S3C2410_ONLY) +#if defined(CONFIG_DEBUG_S3C24XX_UART_S3C2410) #define fifo_full fifo_full_s3c2410 #define fifo_level fifo_level_s3c2410 -#elif !defined(CONFIG_CPU_LLSERIAL_S3C2440_ONLY) -#define fifo_full fifo_full_s3c24xx -#define fifo_level fifo_level_s3c24xx #endif /* include the reset of the code which will do the work */ -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling @ 2014-04-24 10:24 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:24 UTC (permalink / raw) To: linux-arm-kernel Using the lowlevel debug uart is a corner case - even more so in a multiplatform environment. So it seems reasonable to simply let the developer set the appropriate uart type for the debugged SoC. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 16 ++++++++ arch/arm/mach-s3c24xx/Kconfig | 28 ------------- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 52 +----------------------- 3 files changed, 17 insertions(+), 79 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 4a2fc0b..43b94a9 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -918,6 +918,22 @@ choice endchoice +choice + prompt "S3C24XX low-level debugging port type" + depends on DEBUG_LL && ARCH_S3C24XX + + config DEBUG_S3C24XX_UART_S3C2440 + bool "S3C2440 uart type" + help + Select this if you're debugging S3C2416, S3C2440, S3C2442, + S3C2443 or S3C2450 SoCs. + + config DEBUG_S3C24XX_UART_S3C2410 + bool "S3C2410 uart type" + help + Select this if you're debugging S3C2410 or S3C2412 SoCs. +endchoice + config DEBUG_EXYNOS_UART bool diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 40cf50b..98d17af 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig @@ -26,7 +26,6 @@ config CPU_S3C2410 bool "SAMSUNG S3C2410" default y select CPU_ARM920T - select CPU_LLSERIAL_S3C2410 select S3C2410_CLOCK select S3C2410_DMA if S3C24XX_DMA select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ @@ -39,7 +38,6 @@ config CPU_S3C2410 config CPU_S3C2412 bool "SAMSUNG S3C2412" select CPU_ARM926T - select CPU_LLSERIAL_S3C2440 select S3C2412_DMA if S3C24XX_DMA select S3C2412_PM if PM help @@ -48,7 +46,6 @@ config CPU_S3C2412 config CPU_S3C2416 bool "SAMSUNG S3C2416/S3C2450" select CPU_ARM926T - select CPU_LLSERIAL_S3C2440 select S3C2416_PM if PM select S3C2443_COMMON select S3C2443_DMA if S3C24XX_DMA @@ -59,7 +56,6 @@ config CPU_S3C2416 config CPU_S3C2440 bool "SAMSUNG S3C2440" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2410_CLOCK select S3C2410_PM if PM select S3C2440_DMA if S3C24XX_DMA @@ -69,7 +65,6 @@ config CPU_S3C2440 config CPU_S3C2442 bool "SAMSUNG S3C2442" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2410_CLOCK select S3C2410_DMA if S3C24XX_DMA select S3C2410_PM if PM @@ -84,7 +79,6 @@ config CPU_S3C244X config CPU_S3C2443 bool "SAMSUNG S3C2443" select CPU_ARM920T - select CPU_LLSERIAL_S3C2440 select S3C2443_COMMON select S3C2443_DMA if S3C24XX_DMA select SAMSUNG_CLKSRC @@ -158,28 +152,6 @@ config S3C2410_PM help Power Management code common to S3C2410 and better -# low-level serial option nodes - -config CPU_LLSERIAL_S3C2410_ONLY - bool - default y if CPU_LLSERIAL_S3C2410 && !CPU_LLSERIAL_S3C2440 - -config CPU_LLSERIAL_S3C2440_ONLY - bool - default y if CPU_LLSERIAL_S3C2440 && !CPU_LLSERIAL_S3C2410 - -config CPU_LLSERIAL_S3C2410 - bool - help - Selected if there is an S3C2410 (or register compatible) serial - low-level implementation needed - -config CPU_LLSERIAL_S3C2440 - bool - help - Selected if there is an S3C2440 (or register compatible) serial - low-level implementation needed - config S3C24XX_PLL bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" depends on ARM_S3C24XX_CPUFREQ diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S index 2f39737..3077a5f 100644 --- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S @@ -13,11 +13,9 @@ */ #include <mach/map.h> -#include <mach/regs-gpio.h> #include <linux/serial_s3c.h> #define S3C2410_UART1_OFF (0x4000) -#define SHIFT_2440TXF (14-9) .macro addruart, rp, rv, tmp ldr \rp, = S3C24XX_PA_UART @@ -28,56 +26,11 @@ #endif .endm - .macro fifo_full_s3c24xx rd, rx - @ check for arm920 vs arm926. currently assume all arm926 - @ devices have an 64 byte FIFO identical to the s3c2440 - mrc p15, 0, \rd, c0, c0 - and \rd, \rd, #0xff0 - teq \rd, #0x260 - beq 1004f - mrc p15, 0, \rd, c1, c0 - tst \rd, #1 - addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) - addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) - bic \rd, \rd, #0xff000 - ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] - and \rd, \rd, #0x00ff0000 - teq \rd, #0x00440000 @ is it 2440? -1004: - ldr \rd, [\rx, # S3C2410_UFSTAT] - moveq \rd, \rd, lsr #SHIFT_2440TXF - tst \rd, #S3C2410_UFSTAT_TXFULL - .endm - .macro fifo_full_s3c2410 rd, rx ldr \rd, [\rx, # S3C2410_UFSTAT] tst \rd, #S3C2410_UFSTAT_TXFULL .endm -/* fifo level reading */ - - .macro fifo_level_s3c24xx rd, rx - @ check for arm920 vs arm926. currently assume all arm926 - @ devices have an 64 byte FIFO identical to the s3c2440 - mrc p15, 0, \rd, c0, c0 - and \rd, \rd, #0xff0 - teq \rd, #0x260 - beq 10000f - mrc p15, 0, \rd, c1, c0 - tst \rd, #1 - addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) - addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) - bic \rd, \rd, #0xff000 - ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] - and \rd, \rd, #0x00ff0000 - teq \rd, #0x00440000 @ is it 2440? - -10000: - ldr \rd, [\rx, # S3C2410_UFSTAT] - andne \rd, \rd, #S3C2410_UFSTAT_TXMASK - andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK - .endm - .macro fifo_level_s3c2410 rd, rx ldr \rd, [\rx, # S3C2410_UFSTAT] and \rd, \rd, #S3C2410_UFSTAT_TXMASK @@ -88,12 +41,9 @@ * used variants of these */ -#if defined(CONFIG_CPU_LLSERIAL_S3C2410_ONLY) +#if defined(CONFIG_DEBUG_S3C24XX_UART_S3C2410) #define fifo_full fifo_full_s3c2410 #define fifo_level fifo_level_s3c2410 -#elif !defined(CONFIG_CPU_LLSERIAL_S3C2440_ONLY) -#define fifo_full fifo_full_s3c24xx -#define fifo_level fifo_level_s3c24xx #endif /* include the reset of the code which will do the work */ -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling 2014-04-24 10:24 ` Heiko Stübner @ 2014-04-24 10:34 ` Russell King - ARM Linux -1 siblings, 0 replies; 14+ messages in thread From: Russell King - ARM Linux @ 2014-04-24 10:34 UTC (permalink / raw) To: Heiko Stübner Cc: Kukjin Kim, t.figa, linux-arm-kernel, linux-samsung-soc, arm On Thu, Apr 24, 2014 at 12:24:31PM +0200, Heiko Stübner wrote: > +choice > + prompt "S3C24XX low-level debugging port type" > + depends on DEBUG_LL && ARCH_S3C24XX > + > + config DEBUG_S3C24XX_UART_S3C2440 > + bool "S3C2440 uart type" > + help > + Select this if you're debugging S3C2416, S3C2440, S3C2442, > + S3C2443 or S3C2450 SoCs. > + > + config DEBUG_S3C24XX_UART_S3C2410 > + bool "S3C2410 uart type" > + help > + Select this if you're debugging S3C2410 or S3C2412 SoCs. > +endchoice Why does this need to be a separate choice statement? What's special about S3C24XX? Is there something wrong with the main choice statement just above this where everyone else lists their debugging UART? -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling @ 2014-04-24 10:34 ` Russell King - ARM Linux 0 siblings, 0 replies; 14+ messages in thread From: Russell King - ARM Linux @ 2014-04-24 10:34 UTC (permalink / raw) To: linux-arm-kernel On Thu, Apr 24, 2014 at 12:24:31PM +0200, Heiko St?bner wrote: > +choice > + prompt "S3C24XX low-level debugging port type" > + depends on DEBUG_LL && ARCH_S3C24XX > + > + config DEBUG_S3C24XX_UART_S3C2440 > + bool "S3C2440 uart type" > + help > + Select this if you're debugging S3C2416, S3C2440, S3C2442, > + S3C2443 or S3C2450 SoCs. > + > + config DEBUG_S3C24XX_UART_S3C2410 > + bool "S3C2410 uart type" > + help > + Select this if you're debugging S3C2410 or S3C2412 SoCs. > +endchoice Why does this need to be a separate choice statement? What's special about S3C24XX? Is there something wrong with the main choice statement just above this where everyone else lists their debugging UART? -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling 2014-04-24 10:34 ` Russell King - ARM Linux @ 2014-04-24 10:48 ` Heiko Stübner -1 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:48 UTC (permalink / raw) To: Russell King - ARM Linux Cc: linux-samsung-soc, t.figa, Kukjin Kim, arm, linux-arm-kernel Am Donnerstag, 24. April 2014, 11:34:55 schrieb Russell King - ARM Linux: > On Thu, Apr 24, 2014 at 12:24:31PM +0200, Heiko Stübner wrote: > > +choice > > + prompt "S3C24XX low-level debugging port type" > > + depends on DEBUG_LL && ARCH_S3C24XX > > + > > + config DEBUG_S3C24XX_UART_S3C2440 > > + bool "S3C2440 uart type" > > + help > > + Select this if you're debugging S3C2416, S3C2440, S3C2442, > > + S3C2443 or S3C2450 SoCs. > > + > > + config DEBUG_S3C24XX_UART_S3C2410 > > + bool "S3C2410 uart type" > > + help > > + Select this if you're debugging S3C2410 or S3C2412 SoCs. > > +endchoice > > Why does this need to be a separate choice statement? What's special > about S3C24XX? Is there something wrong with the main choice statement > just above this where everyone else lists their debugging UART? The special case is that s3c24xx as architecture has two different uart types. Everything else is the same so I didn't want to duplicate the s3c_debug_uartX entries. The other option would have been to duplicate these, like having - s3c_debug_uart[0-3] for the more common s3c2440 type and - s3c2410_debug_uart[0-3] for the named type I guess, judging from your comment this would be better? [or I'm just overlooking the obvious third way :-) ] Heiko ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling @ 2014-04-24 10:48 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:48 UTC (permalink / raw) To: linux-arm-kernel Am Donnerstag, 24. April 2014, 11:34:55 schrieb Russell King - ARM Linux: > On Thu, Apr 24, 2014 at 12:24:31PM +0200, Heiko St?bner wrote: > > +choice > > + prompt "S3C24XX low-level debugging port type" > > + depends on DEBUG_LL && ARCH_S3C24XX > > + > > + config DEBUG_S3C24XX_UART_S3C2440 > > + bool "S3C2440 uart type" > > + help > > + Select this if you're debugging S3C2416, S3C2440, S3C2442, > > + S3C2443 or S3C2450 SoCs. > > + > > + config DEBUG_S3C24XX_UART_S3C2410 > > + bool "S3C2410 uart type" > > + help > > + Select this if you're debugging S3C2410 or S3C2412 SoCs. > > +endchoice > > Why does this need to be a separate choice statement? What's special > about S3C24XX? Is there something wrong with the main choice statement > just above this where everyone else lists their debugging UART? The special case is that s3c24xx as architecture has two different uart types. Everything else is the same so I didn't want to duplicate the s3c_debug_uartX entries. The other option would have been to duplicate these, like having - s3c_debug_uart[0-3] for the more common s3c2440 type and - s3c2410_debug_uart[0-3] for the named type I guess, judging from your comment this would be better? [or I'm just overlooking the obvious third way :-) ] Heiko ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/4] ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro 2014-04-24 10:23 ` Heiko Stübner @ 2014-04-24 10:25 ` Heiko Stübner -1 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:25 UTC (permalink / raw) To: Kukjin Kim; +Cc: t.figa, linux-arm-kernel, linux-samsung-soc, arm, Russell King This removes the need for mach/-headers in the debug macro. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 19 +++++++++++++++++-- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 9 ++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 43b94a9..2476f84 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -625,6 +625,7 @@ choice config DEBUG_S3C_UART0 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 0 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -637,6 +638,7 @@ choice config DEBUG_S3C_UART1 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 1 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -649,6 +651,7 @@ choice config DEBUG_S3C_UART2 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 2 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -661,6 +664,7 @@ choice config DEBUG_S3C_UART3 depends on PLAT_SAMSUNG && ARCH_EXYNOS select DEBUG_EXYNOS_UART + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 3 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -937,6 +941,9 @@ endchoice config DEBUG_EXYNOS_UART bool +config DEBUG_S3C24XX_UART + bool + config DEBUG_OMAP2PLUS_UART bool depends on ARCH_OMAP2PLUS @@ -1045,6 +1052,10 @@ config DEBUG_UART_PHYS default 0x40090000 if ARCH_LPC32XX default 0x40100000 if DEBUG_PXA_UART1 default 0x42000000 if ARCH_GEMINI + default 0x50000000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART0 + default 0x50004000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART1 + default 0x50008000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART2 + default 0x5000C000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART3 default 0x7c0003f8 if FOOTBRIDGE default 0x80230000 if DEBUG_PICOXCELL_UART default 0x80070000 if DEBUG_IMX23_UART @@ -1074,7 +1085,7 @@ config DEBUG_UART_PHYS default 0xfffff700 if ARCH_IOP33X depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ DEBUG_LL_UART_EFM32 || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART config DEBUG_UART_VIRT hex "Virtual base address of debug UART" @@ -1091,6 +1102,10 @@ config DEBUG_UART_VIRT default 0xf2100000 if DEBUG_PXA_UART1 default 0xf4090000 if ARCH_LPC32XX default 0xf4200000 if ARCH_GEMINI + default 0xf7000000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART0 + default 0xf7004000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART1 + default 0xf7008000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART2 + default 0xf700c000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART3 default 0xf7fc9000 if DEBUG_BERLIN_UART default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 @@ -1132,7 +1147,7 @@ config DEBUG_UART_VIRT default 0xff003000 if DEBUG_U300_UART default DEBUG_UART_PHYS if !MMU depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART config DEBUG_UART_8250_SHIFT int "Register offset shift for the 8250 debug UART" diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S index 3077a5f..5b165d8 100644 --- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S @@ -12,18 +12,13 @@ * published by the Free Software Foundation. */ -#include <mach/map.h> #include <linux/serial_s3c.h> #define S3C2410_UART1_OFF (0x4000) .macro addruart, rp, rv, tmp - ldr \rp, = S3C24XX_PA_UART - ldr \rv, = S3C24XX_VA_UART -#if CONFIG_DEBUG_S3C_UART != 0 - add \rp, \rp, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) - add \rv, \rv, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) -#endif + ldr \rp, = CONFIG_DEBUG_UART_PHYS + ldr \rv, = CONFIG_DEBUG_UART_VIRT .endm .macro fifo_full_s3c2410 rd, rx -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/4] ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro @ 2014-04-24 10:25 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:25 UTC (permalink / raw) To: linux-arm-kernel This removes the need for mach/-headers in the debug macro. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 19 +++++++++++++++++-- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 9 ++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 43b94a9..2476f84 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -625,6 +625,7 @@ choice config DEBUG_S3C_UART0 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 0 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -637,6 +638,7 @@ choice config DEBUG_S3C_UART1 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 1 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -649,6 +651,7 @@ choice config DEBUG_S3C_UART2 depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 2 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -661,6 +664,7 @@ choice config DEBUG_S3C_UART3 depends on PLAT_SAMSUNG && ARCH_EXYNOS select DEBUG_EXYNOS_UART + select DEBUG_S3C24XX_UART if ARCH_S3C24XX bool "Use S3C UART 3 for low-level debug" help Say Y here if you want the debug print routines to direct @@ -937,6 +941,9 @@ endchoice config DEBUG_EXYNOS_UART bool +config DEBUG_S3C24XX_UART + bool + config DEBUG_OMAP2PLUS_UART bool depends on ARCH_OMAP2PLUS @@ -1045,6 +1052,10 @@ config DEBUG_UART_PHYS default 0x40090000 if ARCH_LPC32XX default 0x40100000 if DEBUG_PXA_UART1 default 0x42000000 if ARCH_GEMINI + default 0x50000000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART0 + default 0x50004000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART1 + default 0x50008000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART2 + default 0x5000C000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART3 default 0x7c0003f8 if FOOTBRIDGE default 0x80230000 if DEBUG_PICOXCELL_UART default 0x80070000 if DEBUG_IMX23_UART @@ -1074,7 +1085,7 @@ config DEBUG_UART_PHYS default 0xfffff700 if ARCH_IOP33X depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ DEBUG_LL_UART_EFM32 || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART config DEBUG_UART_VIRT hex "Virtual base address of debug UART" @@ -1091,6 +1102,10 @@ config DEBUG_UART_VIRT default 0xf2100000 if DEBUG_PXA_UART1 default 0xf4090000 if ARCH_LPC32XX default 0xf4200000 if ARCH_GEMINI + default 0xf7000000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART0 + default 0xf7004000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART1 + default 0xf7008000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART2 + default 0xf700c000 if DEBUG_S3C24XX_UART && DEBUG_S3C_UART3 default 0xf7fc9000 if DEBUG_BERLIN_UART default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 @@ -1132,7 +1147,7 @@ config DEBUG_UART_VIRT default 0xff003000 if DEBUG_U300_UART default DEBUG_UART_PHYS if !MMU depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ - DEBUG_UART_8250 || DEBUG_UART_PL01X + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART config DEBUG_UART_8250_SHIFT int "Register offset shift for the 8250 debug UART" diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S index 3077a5f..5b165d8 100644 --- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S @@ -12,18 +12,13 @@ * published by the Free Software Foundation. */ -#include <mach/map.h> #include <linux/serial_s3c.h> #define S3C2410_UART1_OFF (0x4000) .macro addruart, rp, rv, tmp - ldr \rp, = S3C24XX_PA_UART - ldr \rv, = S3C24XX_VA_UART -#if CONFIG_DEBUG_S3C_UART != 0 - add \rp, \rp, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) - add \rv, \rv, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) -#endif + ldr \rp, = CONFIG_DEBUG_UART_PHYS + ldr \rv, = CONFIG_DEBUG_UART_VIRT .endm .macro fifo_full_s3c2410 rd, rx -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/4] ARM: S3C24XX: move debug-macro.S into the common space 2014-04-24 10:23 ` Heiko Stübner @ 2014-04-24 10:25 ` Heiko Stübner -1 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:25 UTC (permalink / raw) To: Kukjin Kim; +Cc: t.figa, linux-arm-kernel, linux-samsung-soc, arm, Russell King Move debug-macro.S from mach/include to include/debug where all other common debug macros are. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 1 + .../{mach-s3c24xx/include/mach/debug-macro.S => include/debug/s3c24xx.S} | 0 2 files changed, 1 insertion(+) rename arch/arm/{mach-s3c24xx/include/mach/debug-macro.S => include/debug/s3c24xx.S} (100%) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 2476f84..00d3ee6 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -996,6 +996,7 @@ config DEBUG_LL_INCLUDE DEBUG_IMX6SL_UART default "debug/msm.S" if DEBUG_MSM_UART default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART + default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 default "debug/sti.S" if DEBUG_STI_UART default "debug/tegra.S" if DEBUG_TEGRA_UART diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/include/debug/s3c24xx.S similarity index 100% rename from arch/arm/mach-s3c24xx/include/mach/debug-macro.S rename to arch/arm/include/debug/s3c24xx.S -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/4] ARM: S3C24XX: move debug-macro.S into the common space @ 2014-04-24 10:25 ` Heiko Stübner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stübner @ 2014-04-24 10:25 UTC (permalink / raw) To: linux-arm-kernel Move debug-macro.S from mach/include to include/debug where all other common debug macros are. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- arch/arm/Kconfig.debug | 1 + .../{mach-s3c24xx/include/mach/debug-macro.S => include/debug/s3c24xx.S} | 0 2 files changed, 1 insertion(+) rename arch/arm/{mach-s3c24xx/include/mach/debug-macro.S => include/debug/s3c24xx.S} (100%) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 2476f84..00d3ee6 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -996,6 +996,7 @@ config DEBUG_LL_INCLUDE DEBUG_IMX6SL_UART default "debug/msm.S" if DEBUG_MSM_UART default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART + default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 default "debug/sti.S" if DEBUG_STI_UART default "debug/tegra.S" if DEBUG_TEGRA_UART diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/include/debug/s3c24xx.S similarity index 100% rename from arch/arm/mach-s3c24xx/include/mach/debug-macro.S rename to arch/arm/include/debug/s3c24xx.S -- 1.9.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-04-24 10:48 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-04-24 10:23 [PATCH 0/4] ARM: S3C24XX: cleanup debug macro/earlyprintk Heiko Stübner 2014-04-24 10:23 ` Heiko Stübner 2014-04-24 10:24 ` [PATCH 1/4] ARM: compressed/head.S: remove s3c24xx special case Heiko Stübner 2014-04-24 10:24 ` Heiko Stübner 2014-04-24 10:24 ` [PATCH 2/4] ARM: S3C24XX: trim down debug uart handling Heiko Stübner 2014-04-24 10:24 ` Heiko Stübner 2014-04-24 10:34 ` Russell King - ARM Linux 2014-04-24 10:34 ` Russell King - ARM Linux 2014-04-24 10:48 ` Heiko Stübner 2014-04-24 10:48 ` Heiko Stübner 2014-04-24 10:25 ` [PATCH 3/4] ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro Heiko Stübner 2014-04-24 10:25 ` Heiko Stübner 2014-04-24 10:25 ` [PATCH 4/4] ARM: S3C24XX: move debug-macro.S into the common space Heiko Stübner 2014-04-24 10:25 ` Heiko Stübner
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.