aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuo Zeng <Guo.Zeng@csr.com>2015-01-04 04:40:54 -0500
committerBarry Song <Baohua.Song@csr.com>2015-01-20 06:42:56 -0500
commit01ea63d99397fcdcb9cc235c77a8e11f4e4a63e9 (patch)
tree5b3b14748d048a3feddbe28b4e9f9e6b8bd26296
parent07dde66c29aaba3055fec074af223a26ba433af4 (diff)
ARM: sirf: add two debug ports for CSRatlas7 SoC
this patch adds UART0 and UART1 as LLUART port, as the new Atlas7 registers layout are different, it also refines some names of old hard-coded MARCOs and uses CONFIG_DEBUG_UART_PHYS/DEBUG_UART_VIRT to define different base addresses for multiple ports. Signed-off-by: Guo Zeng <Guo.Zeng@csr.com> Signed-off-by: Zhiwu Song <Zhiwu.Song@csr.com> Signed-off-by: Barry Song <Baohua.Song@csr.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--arch/arm/Kconfig.debug36
-rw-r--r--arch/arm/include/debug/sirf.S28
2 files changed, 46 insertions, 18 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index e0a3cc9cb1a7..0c2e6cd399b6 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -916,10 +916,29 @@ choice
916 config DEBUG_SIRFPRIMA2_UART1 916 config DEBUG_SIRFPRIMA2_UART1
917 bool "Kernel low-level debugging messages via SiRFprimaII UART1" 917 bool "Kernel low-level debugging messages via SiRFprimaII UART1"
918 depends on ARCH_PRIMA2 918 depends on ARCH_PRIMA2
919 select DEBUG_SIRFSOC_UART
919 help 920 help
920 Say Y here if you want the debug print routines to direct 921 Say Y here if you want the debug print routines to direct
921 their output to the uart1 port on SiRFprimaII devices. 922 their output to the uart1 port on SiRFprimaII devices.
922 923
924 config DEBUG_SIRFATLAS7_UART0
925 bool "Kernel low-level debugging messages via SiRFatlas7 UART0"
926 depends on ARCH_ATLAS7
927 select DEBUG_SIRFSOC_UART
928 help
929 Say Y here if you want the debug print routines to direct
930 their output to the uart0 port on SiRFATLAS7 devices.The uart0
931 is used on SiRFATLAS7 as a extra debug port.sometimes an extra
932 debug port can be very useful.
933
934 config DEBUG_SIRFATLAS7_UART1
935 bool "Kernel low-level debugging messages via SiRFatlas7 UART1"
936 depends on ARCH_ATLAS7
937 select DEBUG_SIRFSOC_UART
938 help
939 Say Y here if you want the debug print routines to direct
940 their output to the uart1 port on SiRFATLAS7 devices.
941
923 config STIH41X_DEBUG_ASC2 942 config STIH41X_DEBUG_ASC2
924 bool "Use StiH415/416 ASC2 UART for low-level debug" 943 bool "Use StiH415/416 ASC2 UART for low-level debug"
925 depends on ARCH_STI 944 depends on ARCH_STI
@@ -1154,6 +1173,10 @@ config DEBUG_STI_UART
1154 bool 1173 bool
1155 depends on ARCH_STI 1174 depends on ARCH_STI
1156 1175
1176config DEBUG_SIRFSOC_UART
1177 bool
1178 depends on ARCH_SIRF
1179
1157config DEBUG_LL_INCLUDE 1180config DEBUG_LL_INCLUDE
1158 string 1181 string
1159 default "debug/sa1100.S" if DEBUG_SA1100 1182 default "debug/sa1100.S" if DEBUG_SA1100
@@ -1188,7 +1211,7 @@ config DEBUG_LL_INCLUDE
1188 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 1211 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
1189 default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART 1212 default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
1190 default "debug/s5pv210.S" if DEBUG_S5PV210_UART 1213 default "debug/s5pv210.S" if DEBUG_S5PV210_UART
1191 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 1214 default "debug/sirf.S" if DEBUG_SIRFSOC_UART
1192 default "debug/sti.S" if DEBUG_STI_UART 1215 default "debug/sti.S" if DEBUG_STI_UART
1193 default "debug/tegra.S" if DEBUG_TEGRA_UART 1216 default "debug/tegra.S" if DEBUG_TEGRA_UART
1194 default "debug/ux500.S" if DEBUG_UX500_UART 1217 default "debug/ux500.S" if DEBUG_UX500_UART
@@ -1244,6 +1267,8 @@ config DEBUG_UART_PHYS
1244 default 0x11009000 if DEBUG_MT8135_UART3 1267 default 0x11009000 if DEBUG_MT8135_UART3
1245 default 0x16000000 if ARCH_INTEGRATOR 1268 default 0x16000000 if ARCH_INTEGRATOR
1246 default 0x18000300 if DEBUG_BCM_5301X 1269 default 0x18000300 if DEBUG_BCM_5301X
1270 default 0x18010000 if DEBUG_SIRFATLAS7_UART0
1271 default 0x18020000 if DEBUG_SIRFATLAS7_UART1
1247 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 1272 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1248 default 0x20060000 if DEBUG_RK29_UART0 1273 default 0x20060000 if DEBUG_RK29_UART0
1249 default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 1274 default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
@@ -1270,6 +1295,7 @@ config DEBUG_UART_PHYS
1270 default 0x808c0000 if ARCH_EP93XX 1295 default 0x808c0000 if ARCH_EP93XX
1271 default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 1296 default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1272 default 0xa9a00000 if DEBUG_MSM_UART 1297 default 0xa9a00000 if DEBUG_MSM_UART
1298 default 0xb0060000 if DEBUG_SIRFPRIMA2_UART1
1273 default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX 1299 default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1274 default 0xc0013000 if DEBUG_U300_UART 1300 default 0xc0013000 if DEBUG_U300_UART
1275 default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN 1301 default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
@@ -1313,7 +1339,8 @@ config DEBUG_UART_PHYS
1313 DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ 1339 DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
1314 DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ 1340 DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
1315 DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ 1341 DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
1316 DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1342 DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
1343 DEBUG_SIRFSOC_UART
1317 1344
1318config DEBUG_UART_VIRT 1345config DEBUG_UART_VIRT
1319 hex "Virtual base address of debug UART" 1346 hex "Virtual base address of debug UART"
@@ -1370,8 +1397,11 @@ config DEBUG_UART_VIRT
1370 default 0xfeb30c00 if DEBUG_KEYSTONE_UART0 1397 default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
1371 default 0xfeb31000 if DEBUG_KEYSTONE_UART1 1398 default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1372 default 0xfec02000 if DEBUG_SOCFPGA_UART 1399 default 0xfec02000 if DEBUG_SOCFPGA_UART
1400 default 0xfec10000 if DEBUG_SIRFATLAS7_UART0
1373 default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE 1401 default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
1374 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 1402 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
1403 default 0xfec20000 if DEBUG_SIRFATLAS7_UART1
1404 default 0xfec60000 if DEBUG_SIRFPRIMA2_UART1
1375 default 0xfec90000 if DEBUG_RK32_UART2 1405 default 0xfec90000 if DEBUG_RK32_UART2
1376 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 1406 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1377 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 1407 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
@@ -1391,7 +1421,7 @@ config DEBUG_UART_VIRT
1391 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1421 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1392 DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ 1422 DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1393 DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ 1423 DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
1394 DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1424 DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || DEBUG_SIRFSOC_UART
1395 1425
1396config DEBUG_UART_8250_SHIFT 1426config DEBUG_UART_8250_SHIFT
1397 int "Register offset shift for the 8250 debug UART" 1427 int "Register offset shift for the 8250 debug UART"
diff --git a/arch/arm/include/debug/sirf.S b/arch/arm/include/debug/sirf.S
index 006ec9fb20c6..630f231f2f37 100644
--- a/arch/arm/include/debug/sirf.S
+++ b/arch/arm/include/debug/sirf.S
@@ -6,35 +6,33 @@
6 * Licensed under GPLv2 or later. 6 * Licensed under GPLv2 or later.
7 */ 7 */
8 8
9#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1) 9#define SIRF_LLUART_TXFIFO_STATUS 0x0114
10#define SIRFSOC_UART1_PA_BASE 0xb0060000 10#define SIRF_LLUART_TXFIFO_DATA 0x0118
11#else
12#define SIRFSOC_UART1_PA_BASE 0
13#endif
14 11
15#define SIRFSOC_UART1_VA_BASE 0xFEC60000 12#define SIRF_LLUART_TXFIFO_FULL (1 << 5)
16 13
17#define SIRFSOC_UART_TXFIFO_STATUS 0x0114 14#ifdef CONFIG_DEBUG_SIRFATLAS7_UART0
18#define SIRFSOC_UART_TXFIFO_DATA 0x0118 15#define SIRF_LLUART_TXFIFO_EMPTY (1 << 8)
16#else
17#define SIRF_LLUART_TXFIFO_EMPTY (1 << 6)
18#endif
19 19
20#define SIRFSOC_UART1_TXFIFO_FULL (1 << 5)
21#define SIRFSOC_UART1_TXFIFO_EMPTY (1 << 6)
22 20
23 .macro addruart, rp, rv, tmp 21 .macro addruart, rp, rv, tmp
24 ldr \rp, =SIRFSOC_UART1_PA_BASE @ physical 22 ldr \rp, =CONFIG_DEBUG_UART_PHYS @ physical
25 ldr \rv, =SIRFSOC_UART1_VA_BASE @ virtual 23 ldr \rv, =CONFIG_DEBUG_UART_VIRT @ virtual
26 .endm 24 .endm
27 25
28 .macro senduart,rd,rx 26 .macro senduart,rd,rx
29 str \rd, [\rx, #SIRFSOC_UART_TXFIFO_DATA] 27 str \rd, [\rx, #SIRF_LLUART_TXFIFO_DATA]
30 .endm 28 .endm
31 29
32 .macro busyuart,rd,rx 30 .macro busyuart,rd,rx
33 .endm 31 .endm
34 32
35 .macro waituart,rd,rx 33 .macro waituart,rd,rx
361001: ldr \rd, [\rx, #SIRFSOC_UART_TXFIFO_STATUS] 341001: ldr \rd, [\rx, #SIRF_LLUART_TXFIFO_STATUS]
37 tst \rd, #SIRFSOC_UART1_TXFIFO_EMPTY 35 tst \rd, #SIRF_LLUART_TXFIFO_EMPTY
38 beq 1001b 36 beq 1001b
39 .endm 37 .endm
40 38