Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Arnd Bergmann <arnd@arndb.de>

+136 -1
+1
MAINTAINERS
··· 1387 1387 F: arch/arm/configs/mackerel_defconfig 1388 1388 F: arch/arm/configs/marzen_defconfig 1389 1389 F: arch/arm/configs/shmobile_defconfig 1390 + F: arch/arm/include/debug/renesas-scif.S 1390 1391 F: arch/arm/mach-shmobile/ 1391 1392 F: drivers/sh/ 1392 1393
+79 -1
arch/arm/Kconfig.debug
··· 664 664 Say Y here if you want kernel low-level debugging support 665 665 on Rockchip RK32xx based platforms. 666 666 667 + config DEBUG_R7S72100_SCIF2 668 + bool "Kernel low-level debugging messages via SCIF2 on R7S72100" 669 + depends on ARCH_R7S72100 670 + help 671 + Say Y here if you want kernel low-level debugging support 672 + via SCIF2 on Renesas RZ/A1H (R7S72100). 673 + 674 + config DEBUG_RCAR_GEN1_SCIF0 675 + bool "Kernel low-level debugging messages via SCIF0 on R8A7778" 676 + depends on ARCH_R8A7778 677 + help 678 + Say Y here if you want kernel low-level debugging support 679 + via SCIF0 on Renesas R-Car M1A (R8A7778). 680 + 681 + config DEBUG_RCAR_GEN1_SCIF2 682 + bool "Kernel low-level debugging messages via SCIF2 on R8A7779" 683 + depends on ARCH_R8A7779 684 + help 685 + Say Y here if you want kernel low-level debugging support 686 + via SCIF2 on Renesas R-Car H1 (R8A7779). 687 + 688 + config DEBUG_RCAR_GEN2_SCIF0 689 + bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793)" 690 + depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793 691 + help 692 + Say Y here if you want kernel low-level debugging support 693 + via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), or 694 + M2-N (R8A7793). 695 + 696 + config DEBUG_RCAR_GEN2_SCIF2 697 + bool "Kernel low-level debugging messages via SCIF2 on R8A7794" 698 + depends on ARCH_R8A7794 699 + help 700 + Say Y here if you want kernel low-level debugging support 701 + via SCIF2 on Renesas R-Car E2 (R8A7794). 702 + 703 + config DEBUG_RMOBILE_SCIFA0 704 + bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4/SH7372" 705 + depends on ARCH_R8A73A4 || ARCH_SH7372 706 + help 707 + Say Y here if you want kernel low-level debugging support 708 + via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4) or SH-Mobile 709 + AP4 (SH7372). 710 + 711 + config DEBUG_RMOBILE_SCIFA1 712 + bool "Kernel low-level debugging messages via SCIFA1 on R8A7740" 713 + depends on ARCH_R8A7740 714 + help 715 + Say Y here if you want kernel low-level debugging support 716 + via SCIFA1 on Renesas R-Mobile A1 (R8A7740). 717 + 718 + config DEBUG_RMOBILE_SCIFA4 719 + bool "Kernel low-level debugging messages via SCIFA4 on SH73A0" 720 + depends on ARCH_SH73A0 721 + help 722 + Say Y here if you want kernel low-level debugging support 723 + via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0). 724 + 667 725 config DEBUG_S3C_UART0 668 726 depends on PLAT_SAMSUNG 669 727 select DEBUG_EXYNOS_UART if ARCH_EXYNOS ··· 1163 1105 DEBUG_IMX6SX_UART 1164 1106 default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM 1165 1107 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART 1108 + default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2 1109 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0 1110 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2 1111 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0 1112 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2 1113 + default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0 1114 + default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1 1115 + default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 1166 1116 default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART 1167 1117 default "debug/s5pv210.S" if DEBUG_S5PV210_UART 1168 1118 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 ··· 1265 1199 default 0xd4018000 if DEBUG_MMP_UART3 1266 1200 default 0xe0000000 if ARCH_SPEAR13XX 1267 1201 default 0xe4007000 if DEBUG_HIP04_UART 1202 + default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0 1203 + default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1 1204 + default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4 1205 + default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2 1206 + default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0 1207 + default 0xe8008000 if DEBUG_R7S72100_SCIF2 1268 1208 default 0xf0000be0 if ARCH_EBSA110 1269 1209 default 0xf040ab00 if DEBUG_BRCMSTB_UART 1270 1210 default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE ··· 1284 1212 default 0xff690000 if DEBUG_RK32_UART2 1285 1213 default 0xffc02000 if DEBUG_SOCFPGA_UART 1286 1214 default 0xffd82340 if ARCH_IOP13XX 1215 + default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0 1216 + default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2 1287 1217 default 0xfff36000 if DEBUG_HIGHBANK_UART 1288 1218 default 0xfffe8600 if DEBUG_UART_BCM63XX 1289 1219 default 0xfffff700 if ARCH_IOP33X 1290 1220 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1291 1221 DEBUG_LL_UART_EFM32 || \ 1292 1222 DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ 1293 - DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ 1223 + DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \ 1224 + DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \ 1225 + DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ 1226 + DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ 1227 + DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ 1294 1228 DEBUG_UART_BCM63XX 1295 1229 1296 1230 config DEBUG_UART_VIRT
+52
arch/arm/include/debug/renesas-scif.S
··· 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
+1
arch/arm/mach-shmobile/setup-r8a7740.c
··· 71 71 72 72 void __init r8a7740_map_io(void) 73 73 { 74 + debug_ll_io_init(); 74 75 iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc)); 75 76 } 76 77
+1
arch/arm/mach-shmobile/setup-r8a7779.c
··· 70 70 71 71 void __init r8a7779_map_io(void) 72 72 { 73 + debug_ll_io_init(); 73 74 iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc)); 74 75 } 75 76
+1
arch/arm/mach-shmobile/setup-sh7372.c
··· 60 60 61 61 void __init sh7372_map_io(void) 62 62 { 63 + debug_ll_io_init(); 63 64 iotable_init(sh7372_io_desc, ARRAY_SIZE(sh7372_io_desc)); 64 65 } 65 66
+1
arch/arm/mach-shmobile/setup-sh73a0.c
··· 58 58 59 59 void __init sh73a0_map_io(void) 60 60 { 61 + debug_ll_io_init(); 61 62 iotable_init(sh73a0_io_desc, ARRAY_SIZE(sh73a0_io_desc)); 62 63 } 63 64