Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6febbf47 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'renesas-soc4-for-v3.19' of...

Merge tag 'renesas-soc4-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Pull "Fourth Round of Renesas ARM Based SoC Updates for v3.19" from Simon Horman:

* Add early debugging support using SCIF(A)

* tag 'renesas-soc4-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas

:
  ARM: shmobile: Add early debugging support using SCIF(A)

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 00f879be 7a2071c5
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1387,6 +1387,7 @@ F: arch/arm/configs/lager_defconfig
F:	arch/arm/configs/mackerel_defconfig
F:	arch/arm/configs/mackerel_defconfig
F:	arch/arm/configs/marzen_defconfig
F:	arch/arm/configs/marzen_defconfig
F:	arch/arm/configs/shmobile_defconfig
F:	arch/arm/configs/shmobile_defconfig
F:	arch/arm/include/debug/renesas-scif.S
F:	arch/arm/mach-shmobile/
F:	arch/arm/mach-shmobile/
F:	drivers/sh/
F:	drivers/sh/


+79 −1
Original line number Original line Diff line number Diff line
@@ -664,6 +664,64 @@ choice
		  Say Y here if you want kernel low-level debugging support
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip RK32xx based platforms.
		  on Rockchip RK32xx based platforms.


	config DEBUG_R7S72100_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R7S72100"
		depends on ARCH_R7S72100
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas RZ/A1H (R7S72100).

	config DEBUG_RCAR_GEN1_SCIF0
		bool "Kernel low-level debugging messages via SCIF0 on R8A7778"
		depends on ARCH_R8A7778
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF0 on Renesas R-Car M1A (R8A7778).

	config DEBUG_RCAR_GEN1_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R8A7779"
		depends on ARCH_R8A7779
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas R-Car H1 (R8A7779).

	config DEBUG_RCAR_GEN2_SCIF0
		bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793)"
		depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), or
		  M2-N (R8A7793).

	config DEBUG_RCAR_GEN2_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R8A7794"
		depends on ARCH_R8A7794
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas R-Car E2 (R8A7794).

	config DEBUG_RMOBILE_SCIFA0
		bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4/SH7372"
		depends on ARCH_R8A73A4 || ARCH_SH7372
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4) or SH-Mobile
		  AP4 (SH7372).

	config DEBUG_RMOBILE_SCIFA1
		bool "Kernel low-level debugging messages via SCIFA1 on R8A7740"
		depends on ARCH_R8A7740
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA1 on Renesas R-Mobile A1 (R8A7740).

	config DEBUG_RMOBILE_SCIFA4
		bool "Kernel low-level debugging messages via SCIFA4 on SH73A0"
		depends on ARCH_SH73A0
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0).

	config DEBUG_S3C_UART0
	config DEBUG_S3C_UART0
		depends on PLAT_SAMSUNG
		depends on PLAT_SAMSUNG
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
@@ -1105,6 +1163,14 @@ config DEBUG_LL_INCLUDE
				 DEBUG_IMX6SX_UART
				 DEBUG_IMX6SX_UART
	default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
	default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
	default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
	default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
	default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
@@ -1199,6 +1265,12 @@ config DEBUG_UART_PHYS
	default 0xd4018000 if DEBUG_MMP_UART3
	default 0xd4018000 if DEBUG_MMP_UART3
	default 0xe0000000 if ARCH_SPEAR13XX
	default 0xe0000000 if ARCH_SPEAR13XX
	default 0xe4007000 if DEBUG_HIP04_UART
	default 0xe4007000 if DEBUG_HIP04_UART
	default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0
	default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1
	default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4
	default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2
	default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0
	default 0xe8008000 if DEBUG_R7S72100_SCIF2
	default 0xf0000be0 if ARCH_EBSA110
	default 0xf0000be0 if ARCH_EBSA110
	default 0xf040ab00 if DEBUG_BRCMSTB_UART
	default 0xf040ab00 if DEBUG_BRCMSTB_UART
	default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
	default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
@@ -1212,13 +1284,19 @@ config DEBUG_UART_PHYS
	default 0xff690000 if DEBUG_RK32_UART2
	default 0xff690000 if DEBUG_RK32_UART2
	default 0xffc02000 if DEBUG_SOCFPGA_UART
	default 0xffc02000 if DEBUG_SOCFPGA_UART
	default 0xffd82340 if ARCH_IOP13XX
	default 0xffd82340 if ARCH_IOP13XX
	default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0
	default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2
	default 0xfff36000 if DEBUG_HIGHBANK_UART
	default 0xfff36000 if DEBUG_HIGHBANK_UART
	default 0xfffe8600 if DEBUG_UART_BCM63XX
	default 0xfffe8600 if DEBUG_UART_BCM63XX
	default 0xfffff700 if ARCH_IOP33X
	default 0xfffff700 if ARCH_IOP33X
	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
		DEBUG_LL_UART_EFM32 || \
		DEBUG_LL_UART_EFM32 || \
		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
		DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
		DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
		DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \
		DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
		DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
		DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
		DEBUG_UART_BCM63XX
		DEBUG_UART_BCM63XX


config DEBUG_UART_VIRT
config DEBUG_UART_VIRT
+52 −0
Original line number Original line Diff line number Diff line
/*
 * Renesas SCIF(A) debugging macro include header
 *
 * Based on r8a7790.S
 *
 * Copyright (C) 2012-2013 Renesas Electronics Corporation
 * Copyright (C) 1994-1999 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#define SCIF_PHYS	CONFIG_DEBUG_UART_PHYS
#define SCIF_VIRT	((SCIF_PHYS & 0x00ffffff) | 0xfd000000)

#if CONFIG_DEBUG_UART_PHYS < 0xe6e00000
/* SCIFA */
#define FTDR		0x20
#define FSR		0x14
#else
/* SCIF */
#define FTDR		0x0c
#define FSR		0x10
#endif

#define TDFE	(1 << 5)
#define TEND	(1 << 6)

	.macro	addruart, rp, rv, tmp
	ldr	\rp, =SCIF_PHYS
	ldr	\rv, =SCIF_VIRT
	.endm

	.macro	waituart, rd, rx
1001:	ldrh	\rd, [\rx, #FSR]
	tst	\rd, #TDFE
	beq	1001b
	.endm

	.macro	senduart, rd, rx
	strb	\rd, [\rx, #FTDR]
	ldrh	\rd, [\rx, #FSR]
	bic	\rd, \rd, #TEND
	strh	\rd, [\rx, #FSR]
	.endm

	.macro	busyuart, rd, rx
1001:	ldrh	\rd, [\rx, #FSR]
	tst	\rd, #TEND
	beq	1001b
	.endm
+1 −0
Original line number Original line Diff line number Diff line
@@ -71,6 +71,7 @@ static struct map_desc r8a7740_io_desc[] __initdata = {


void __init r8a7740_map_io(void)
void __init r8a7740_map_io(void)
{
{
	debug_ll_io_init();
	iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc));
	iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc));
}
}


+1 −0
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ static struct map_desc r8a7779_io_desc[] __initdata = {


void __init r8a7779_map_io(void)
void __init r8a7779_map_io(void)
{
{
	debug_ll_io_init();
	iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc));
	iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc));
}
}


Loading