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

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>

authored by

Guo Zeng and committed by
Barry Song
01ea63d9 07dde66c

+46 -18
+33 -3
arch/arm/Kconfig.debug
··· 916 916 config DEBUG_SIRFPRIMA2_UART1 917 917 bool "Kernel low-level debugging messages via SiRFprimaII UART1" 918 918 depends on ARCH_PRIMA2 919 + select DEBUG_SIRFSOC_UART 919 920 help 920 921 Say Y here if you want the debug print routines to direct 921 922 their output to the uart1 port on SiRFprimaII devices. 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. 922 941 923 942 config STIH41X_DEBUG_ASC2 924 943 bool "Use StiH415/416 ASC2 UART for low-level debug" ··· 1173 1154 bool 1174 1155 depends on ARCH_STI 1175 1156 1157 + config DEBUG_SIRFSOC_UART 1158 + bool 1159 + depends on ARCH_SIRF 1160 + 1176 1161 config DEBUG_LL_INCLUDE 1177 1162 string 1178 1163 default "debug/sa1100.S" if DEBUG_SA1100 ··· 1211 1188 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 1212 1189 default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART 1213 1190 default "debug/s5pv210.S" if DEBUG_S5PV210_UART 1214 - default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 1191 + default "debug/sirf.S" if DEBUG_SIRFSOC_UART 1215 1192 default "debug/sti.S" if DEBUG_STI_UART 1216 1193 default "debug/tegra.S" if DEBUG_TEGRA_UART 1217 1194 default "debug/ux500.S" if DEBUG_UX500_UART ··· 1267 1244 default 0x11009000 if DEBUG_MT8135_UART3 1268 1245 default 0x16000000 if ARCH_INTEGRATOR 1269 1246 default 0x18000300 if DEBUG_BCM_5301X 1247 + default 0x18010000 if DEBUG_SIRFATLAS7_UART0 1248 + default 0x18020000 if DEBUG_SIRFATLAS7_UART1 1270 1249 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 1271 1250 default 0x20060000 if DEBUG_RK29_UART0 1272 1251 default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 ··· 1295 1270 default 0x808c0000 if ARCH_EP93XX 1296 1271 default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 1297 1272 default 0xa9a00000 if DEBUG_MSM_UART 1273 + default 0xb0060000 if DEBUG_SIRFPRIMA2_UART1 1298 1274 default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX 1299 1275 default 0xc0013000 if DEBUG_U300_UART 1300 1276 default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN ··· 1339 1313 DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ 1340 1314 DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ 1341 1315 DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ 1342 - DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1316 + DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \ 1317 + DEBUG_SIRFSOC_UART 1343 1318 1344 1319 config DEBUG_UART_VIRT 1345 1320 hex "Virtual base address of debug UART" ··· 1397 1370 default 0xfeb30c00 if DEBUG_KEYSTONE_UART0 1398 1371 default 0xfeb31000 if DEBUG_KEYSTONE_UART1 1399 1372 default 0xfec02000 if DEBUG_SOCFPGA_UART 1373 + default 0xfec10000 if DEBUG_SIRFATLAS7_UART0 1400 1374 default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE 1401 1375 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 1376 + default 0xfec20000 if DEBUG_SIRFATLAS7_UART1 1377 + default 0xfec60000 if DEBUG_SIRFPRIMA2_UART1 1402 1378 default 0xfec90000 if DEBUG_RK32_UART2 1403 1379 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 1404 1380 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 ··· 1421 1391 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1422 1392 DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ 1423 1393 DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ 1424 - DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1394 + DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || DEBUG_SIRFSOC_UART 1425 1395 1426 1396 config DEBUG_UART_8250_SHIFT 1427 1397 int "Register offset shift for the 8250 debug UART"
+13 -15
arch/arm/include/debug/sirf.S
··· 6 6 * Licensed under GPLv2 or later. 7 7 */ 8 8 9 - #if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1) 10 - #define SIRFSOC_UART1_PA_BASE 0xb0060000 9 + #define SIRF_LLUART_TXFIFO_STATUS 0x0114 10 + #define SIRF_LLUART_TXFIFO_DATA 0x0118 11 + 12 + #define SIRF_LLUART_TXFIFO_FULL (1 << 5) 13 + 14 + #ifdef CONFIG_DEBUG_SIRFATLAS7_UART0 15 + #define SIRF_LLUART_TXFIFO_EMPTY (1 << 8) 11 16 #else 12 - #define SIRFSOC_UART1_PA_BASE 0 17 + #define SIRF_LLUART_TXFIFO_EMPTY (1 << 6) 13 18 #endif 14 19 15 - #define SIRFSOC_UART1_VA_BASE 0xFEC60000 16 - 17 - #define SIRFSOC_UART_TXFIFO_STATUS 0x0114 18 - #define SIRFSOC_UART_TXFIFO_DATA 0x0118 19 - 20 - #define SIRFSOC_UART1_TXFIFO_FULL (1 << 5) 21 - #define SIRFSOC_UART1_TXFIFO_EMPTY (1 << 6) 22 20 23 21 .macro addruart, rp, rv, tmp 24 - ldr \rp, =SIRFSOC_UART1_PA_BASE @ physical 25 - ldr \rv, =SIRFSOC_UART1_VA_BASE @ virtual 22 + ldr \rp, =CONFIG_DEBUG_UART_PHYS @ physical 23 + ldr \rv, =CONFIG_DEBUG_UART_VIRT @ virtual 26 24 .endm 27 25 28 26 .macro senduart,rd,rx 29 - str \rd, [\rx, #SIRFSOC_UART_TXFIFO_DATA] 27 + str \rd, [\rx, #SIRF_LLUART_TXFIFO_DATA] 30 28 .endm 31 29 32 30 .macro busyuart,rd,rx 33 31 .endm 34 32 35 33 .macro waituart,rd,rx 36 - 1001: ldr \rd, [\rx, #SIRFSOC_UART_TXFIFO_STATUS] 37 - tst \rd, #SIRFSOC_UART1_TXFIFO_EMPTY 34 + 1001: ldr \rd, [\rx, #SIRF_LLUART_TXFIFO_STATUS] 35 + tst \rd, #SIRF_LLUART_TXFIFO_EMPTY 38 36 beq 1001b 39 37 .endm 40 38