diff options
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | arch/arm/Kconfig.debug | 80 | ||||
| -rw-r--r-- | arch/arm/include/debug/renesas-scif.S | 52 | ||||
| -rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7740.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7779.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-shmobile/setup-sh7372.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-shmobile/setup-sh73a0.c | 1 |
7 files changed, 136 insertions, 1 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index a20df9bf8ab0..7d843099e9c6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -1387,6 +1387,7 @@ F: arch/arm/configs/lager_defconfig | |||
| 1387 | F: arch/arm/configs/mackerel_defconfig | 1387 | F: arch/arm/configs/mackerel_defconfig |
| 1388 | F: arch/arm/configs/marzen_defconfig | 1388 | F: arch/arm/configs/marzen_defconfig |
| 1389 | F: arch/arm/configs/shmobile_defconfig | 1389 | F: arch/arm/configs/shmobile_defconfig |
| 1390 | F: arch/arm/include/debug/renesas-scif.S | ||
| 1390 | F: arch/arm/mach-shmobile/ | 1391 | F: arch/arm/mach-shmobile/ |
| 1391 | F: drivers/sh/ | 1392 | F: drivers/sh/ |
| 1392 | 1393 | ||
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 03dc4c1a8736..6ac3758f85d8 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
| @@ -653,6 +653,64 @@ choice | |||
| 653 | Say Y here if you want kernel low-level debugging support | 653 | Say Y here if you want kernel low-level debugging support |
| 654 | on Rockchip RK32xx based platforms. | 654 | on Rockchip RK32xx based platforms. |
| 655 | 655 | ||
| 656 | config DEBUG_R7S72100_SCIF2 | ||
| 657 | bool "Kernel low-level debugging messages via SCIF2 on R7S72100" | ||
| 658 | depends on ARCH_R7S72100 | ||
| 659 | help | ||
| 660 | Say Y here if you want kernel low-level debugging support | ||
| 661 | via SCIF2 on Renesas RZ/A1H (R7S72100). | ||
| 662 | |||
| 663 | config DEBUG_RCAR_GEN1_SCIF0 | ||
| 664 | bool "Kernel low-level debugging messages via SCIF0 on R8A7778" | ||
| 665 | depends on ARCH_R8A7778 | ||
| 666 | help | ||
| 667 | Say Y here if you want kernel low-level debugging support | ||
| 668 | via SCIF0 on Renesas R-Car M1A (R8A7778). | ||
| 669 | |||
| 670 | config DEBUG_RCAR_GEN1_SCIF2 | ||
| 671 | bool "Kernel low-level debugging messages via SCIF2 on R8A7779" | ||
| 672 | depends on ARCH_R8A7779 | ||
| 673 | help | ||
| 674 | Say Y here if you want kernel low-level debugging support | ||
| 675 | via SCIF2 on Renesas R-Car H1 (R8A7779). | ||
| 676 | |||
| 677 | config DEBUG_RCAR_GEN2_SCIF0 | ||
| 678 | bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793)" | ||
| 679 | depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793 | ||
| 680 | help | ||
| 681 | Say Y here if you want kernel low-level debugging support | ||
| 682 | via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), or | ||
| 683 | M2-N (R8A7793). | ||
| 684 | |||
| 685 | config DEBUG_RCAR_GEN2_SCIF2 | ||
| 686 | bool "Kernel low-level debugging messages via SCIF2 on R8A7794" | ||
| 687 | depends on ARCH_R8A7794 | ||
| 688 | help | ||
| 689 | Say Y here if you want kernel low-level debugging support | ||
| 690 | via SCIF2 on Renesas R-Car E2 (R8A7794). | ||
| 691 | |||
| 692 | config DEBUG_RMOBILE_SCIFA0 | ||
| 693 | bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4/SH7372" | ||
| 694 | depends on ARCH_R8A73A4 || ARCH_SH7372 | ||
| 695 | help | ||
| 696 | Say Y here if you want kernel low-level debugging support | ||
| 697 | via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4) or SH-Mobile | ||
| 698 | AP4 (SH7372). | ||
| 699 | |||
| 700 | config DEBUG_RMOBILE_SCIFA1 | ||
| 701 | bool "Kernel low-level debugging messages via SCIFA1 on R8A7740" | ||
| 702 | depends on ARCH_R8A7740 | ||
| 703 | help | ||
| 704 | Say Y here if you want kernel low-level debugging support | ||
| 705 | via SCIFA1 on Renesas R-Mobile A1 (R8A7740). | ||
| 706 | |||
| 707 | config DEBUG_RMOBILE_SCIFA4 | ||
| 708 | bool "Kernel low-level debugging messages via SCIFA4 on SH73A0" | ||
| 709 | depends on ARCH_SH73A0 | ||
| 710 | help | ||
| 711 | Say Y here if you want kernel low-level debugging support | ||
| 712 | via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0). | ||
| 713 | |||
| 656 | config DEBUG_S3C_UART0 | 714 | config DEBUG_S3C_UART0 |
| 657 | depends on PLAT_SAMSUNG | 715 | depends on PLAT_SAMSUNG |
| 658 | select DEBUG_EXYNOS_UART if ARCH_EXYNOS | 716 | select DEBUG_EXYNOS_UART if ARCH_EXYNOS |
| @@ -1061,6 +1119,14 @@ config DEBUG_LL_INCLUDE | |||
| 1061 | DEBUG_IMX6SX_UART | 1119 | DEBUG_IMX6SX_UART |
| 1062 | default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM | 1120 | default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM |
| 1063 | default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART | 1121 | default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART |
| 1122 | default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2 | ||
| 1123 | default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0 | ||
| 1124 | default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2 | ||
| 1125 | default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0 | ||
| 1126 | default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2 | ||
| 1127 | default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0 | ||
| 1128 | default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1 | ||
| 1129 | default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 | ||
| 1064 | default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART | 1130 | default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART |
| 1065 | default "debug/s5pv210.S" if DEBUG_S5PV210_UART | 1131 | default "debug/s5pv210.S" if DEBUG_S5PV210_UART |
| 1066 | default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 | 1132 | default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 |
| @@ -1152,6 +1218,12 @@ config DEBUG_UART_PHYS | |||
| 1152 | default 0xd4018000 if DEBUG_MMP_UART3 | 1218 | default 0xd4018000 if DEBUG_MMP_UART3 |
| 1153 | default 0xe0000000 if ARCH_SPEAR13XX | 1219 | default 0xe0000000 if ARCH_SPEAR13XX |
| 1154 | default 0xe4007000 if DEBUG_HIP04_UART | 1220 | default 0xe4007000 if DEBUG_HIP04_UART |
| 1221 | default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0 | ||
| 1222 | default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1 | ||
| 1223 | default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4 | ||
| 1224 | default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2 | ||
| 1225 | default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0 | ||
| 1226 | default 0xe8008000 if DEBUG_R7S72100_SCIF2 | ||
| 1155 | default 0xf0000be0 if ARCH_EBSA110 | 1227 | default 0xf0000be0 if ARCH_EBSA110 |
| 1156 | default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE | 1228 | default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE |
| 1157 | default 0xf1012000 if ARCH_DOVE || ARCH_MV78XX0 || \ | 1229 | default 0xf1012000 if ARCH_DOVE || ARCH_MV78XX0 || \ |
| @@ -1164,13 +1236,19 @@ config DEBUG_UART_PHYS | |||
| 1164 | default 0xff690000 if DEBUG_RK32_UART2 | 1236 | default 0xff690000 if DEBUG_RK32_UART2 |
| 1165 | default 0xffc02000 if DEBUG_SOCFPGA_UART | 1237 | default 0xffc02000 if DEBUG_SOCFPGA_UART |
| 1166 | default 0xffd82340 if ARCH_IOP13XX | 1238 | default 0xffd82340 if ARCH_IOP13XX |
| 1239 | default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0 | ||
| 1240 | default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2 | ||
| 1167 | default 0xfff36000 if DEBUG_HIGHBANK_UART | 1241 | default 0xfff36000 if DEBUG_HIGHBANK_UART |
| 1168 | default 0xfffe8600 if DEBUG_UART_BCM63XX | 1242 | default 0xfffe8600 if DEBUG_UART_BCM63XX |
| 1169 | default 0xfffff700 if ARCH_IOP33X | 1243 | default 0xfffff700 if ARCH_IOP33X |
| 1170 | depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ | 1244 | depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ |
| 1171 | DEBUG_LL_UART_EFM32 || \ | 1245 | DEBUG_LL_UART_EFM32 || \ |
| 1172 | DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ | 1246 | DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ |
| 1173 | DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ | 1247 | DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \ |
| 1248 | DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \ | ||
| 1249 | DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ | ||
| 1250 | DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ | ||
| 1251 | DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ | ||
| 1174 | DEBUG_UART_BCM63XX | 1252 | DEBUG_UART_BCM63XX |
| 1175 | 1253 | ||
| 1176 | config DEBUG_UART_VIRT | 1254 | config DEBUG_UART_VIRT |
diff --git a/arch/arm/include/debug/renesas-scif.S b/arch/arm/include/debug/renesas-scif.S new file mode 100644 index 000000000000..97820a8df51a --- /dev/null +++ b/arch/arm/include/debug/renesas-scif.S | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* | ||
| 2 | * Renesas SCIF(A) debugging macro include header | ||
| 3 | * | ||
| 4 | * Based on r8a7790.S | ||
| 5 | * | ||
| 6 | * Copyright (C) 2012-2013 Renesas Electronics Corporation | ||
| 7 | * Copyright (C) 1994-1999 Russell King | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #define SCIF_PHYS CONFIG_DEBUG_UART_PHYS | ||
| 15 | #define SCIF_VIRT ((SCIF_PHYS & 0x00ffffff) | 0xfd000000) | ||
| 16 | |||
| 17 | #if CONFIG_DEBUG_UART_PHYS < 0xe6e00000 | ||
| 18 | /* SCIFA */ | ||
| 19 | #define FTDR 0x20 | ||
| 20 | #define FSR 0x14 | ||
| 21 | #else | ||
| 22 | /* SCIF */ | ||
| 23 | #define FTDR 0x0c | ||
| 24 | #define FSR 0x10 | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #define TDFE (1 << 5) | ||
| 28 | #define TEND (1 << 6) | ||
| 29 | |||
| 30 | .macro addruart, rp, rv, tmp | ||
| 31 | ldr \rp, =SCIF_PHYS | ||
| 32 | ldr \rv, =SCIF_VIRT | ||
| 33 | .endm | ||
| 34 | |||
| 35 | .macro waituart, rd, rx | ||
| 36 | 1001: ldrh \rd, [\rx, #FSR] | ||
| 37 | tst \rd, #TDFE | ||
| 38 | beq 1001b | ||
| 39 | .endm | ||
| 40 | |||
| 41 | .macro senduart, rd, rx | ||
| 42 | strb \rd, [\rx, #FTDR] | ||
| 43 | ldrh \rd, [\rx, #FSR] | ||
| 44 | bic \rd, \rd, #TEND | ||
| 45 | strh \rd, [\rx, #FSR] | ||
| 46 | .endm | ||
| 47 | |||
| 48 | .macro busyuart, rd, rx | ||
| 49 | 1001: ldrh \rd, [\rx, #FSR] | ||
| 50 | tst \rd, #TEND | ||
| 51 | beq 1001b | ||
| 52 | .endm | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c index 8894e1b7ab0e..0bfe2261c4e7 100644 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c | |||
| @@ -71,6 +71,7 @@ static struct map_desc r8a7740_io_desc[] __initdata = { | |||
| 71 | 71 | ||
| 72 | void __init r8a7740_map_io(void) | 72 | void __init r8a7740_map_io(void) |
| 73 | { | 73 | { |
| 74 | debug_ll_io_init(); | ||
| 74 | iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc)); | 75 | iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc)); |
| 75 | } | 76 | } |
| 76 | 77 | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c index 136078ab9407..434d1504066a 100644 --- a/arch/arm/mach-shmobile/setup-r8a7779.c +++ b/arch/arm/mach-shmobile/setup-r8a7779.c | |||
| @@ -70,6 +70,7 @@ static struct map_desc r8a7779_io_desc[] __initdata = { | |||
| 70 | 70 | ||
| 71 | void __init r8a7779_map_io(void) | 71 | void __init r8a7779_map_io(void) |
| 72 | { | 72 | { |
| 73 | debug_ll_io_init(); | ||
| 73 | iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc)); | 74 | iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc)); |
| 74 | } | 75 | } |
| 75 | 76 | ||
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index 769ff008571d..322e2dc3fa36 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
| @@ -60,6 +60,7 @@ static struct map_desc sh7372_io_desc[] __initdata = { | |||
| 60 | 60 | ||
| 61 | void __init sh7372_map_io(void) | 61 | void __init sh7372_map_io(void) |
| 62 | { | 62 | { |
| 63 | debug_ll_io_init(); | ||
| 63 | iotable_init(sh7372_io_desc, ARRAY_SIZE(sh7372_io_desc)); | 64 | iotable_init(sh7372_io_desc, ARRAY_SIZE(sh7372_io_desc)); |
| 64 | } | 65 | } |
| 65 | 66 | ||
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index 3447ca7e90d9..fa7cab820ab9 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c | |||
| @@ -58,6 +58,7 @@ static struct map_desc sh73a0_io_desc[] __initdata = { | |||
| 58 | 58 | ||
| 59 | void __init sh73a0_map_io(void) | 59 | void __init sh73a0_map_io(void) |
| 60 | { | 60 | { |
| 61 | debug_ll_io_init(); | ||
| 61 | iotable_init(sh73a0_io_desc, ARRAY_SIZE(sh73a0_io_desc)); | 62 | iotable_init(sh73a0_io_desc, ARRAY_SIZE(sh73a0_io_desc)); |
| 62 | } | 63 | } |
| 63 | 64 | ||
