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

ARM: add lolevel debug support for asm9260

Since there is no public documentation, this patch also provide register
offsets for different UART units on this SoC.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

authored by

Oleksij Rempel and committed by
Arnd Bergmann
d5bd4e8d d9bfc86d

+55 -2
+26 -2
arch/arm/Kconfig.debug
··· 93 93 prompt "Kernel low-level debugging port" 94 94 depends on DEBUG_LL 95 95 96 + config DEBUG_ASM9260_UART 97 + bool "Kernel low-level debugging via asm9260 UART" 98 + depends on MACH_ASM9260 99 + help 100 + Say Y here if you want the debug print routines to direct 101 + their output to an UART or USART port on asm9260 based 102 + machines. 103 + 104 + DEBUG_UART_PHYS | DEBUG_UART_VIRT 105 + 106 + 0x80000000 | 0xf0000000 | UART0 107 + 0x80004000 | 0xf0004000 | UART1 108 + 0x80008000 | 0xf0008000 | UART2 109 + 0x8000c000 | 0xf000c000 | UART3 110 + 0x80010000 | 0xf0010000 | UART4 111 + 0x80014000 | 0xf0014000 | UART5 112 + 0x80018000 | 0xf0018000 | UART6 113 + 0x8001c000 | 0xf001c000 | UART7 114 + 0x80020000 | 0xf0020000 | UART8 115 + 0x80024000 | 0xf0024000 | UART9 116 + 96 117 config AT91_DEBUG_LL_DBGU0 97 118 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 98 119 depends on HAVE_AT91_DBGU0 ··· 1165 1144 string 1166 1145 default "debug/sa1100.S" if DEBUG_SA1100 1167 1146 default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250 1147 + default "debug/asm9260.S" if DEBUG_ASM9260_UART 1168 1148 default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2 1169 1149 default "debug/meson.S" if DEBUG_MESON_UARTAO 1170 1150 default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X ··· 1270 1248 default 0x78000000 if DEBUG_CNS3XXX 1271 1249 default 0x7c0003f8 if FOOTBRIDGE 1272 1250 default 0x78000000 if DEBUG_CNS3XXX 1251 + default 0x80010000 if DEBUG_ASM9260_UART 1273 1252 default 0x80070000 if DEBUG_IMX23_UART 1274 1253 default 0x80074000 if DEBUG_IMX28_UART 1275 1254 default 0x80230000 if DEBUG_PICOXCELL_UART ··· 1320 1297 DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ 1321 1298 DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ 1322 1299 DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ 1323 - DEBUG_UART_BCM63XX 1300 + DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1324 1301 1325 1302 config DEBUG_UART_VIRT 1326 1303 hex "Virtual base address of debug UART" 1327 1304 default 0xe0010fe0 if ARCH_RPC 1328 1305 default 0xe1000000 if DEBUG_MSM_UART 1329 1306 default 0xf0000be0 if ARCH_EBSA110 1307 + default 0xf0010000 if DEBUG_ASM9260_UART 1330 1308 default 0xf01fb000 if DEBUG_NOMADIK_UART 1331 1309 default 0xf0201000 if DEBUG_BCM2835 1332 1310 default 0xf1000300 if DEBUG_BCM_5301X ··· 1398 1374 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1399 1375 DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ 1400 1376 DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ 1401 - DEBUG_UART_BCM63XX 1377 + DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART 1402 1378 1403 1379 config DEBUG_UART_8250_SHIFT 1404 1380 int "Register offset shift for the 8250 debug UART"
+29
arch/arm/include/debug/asm9260.S
··· 1 + /* Debugging macro include header 2 + * 3 + * Copyright (C) 1994-1999 Russell King 4 + * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks 5 + * Modified for ASM9260 by Oleksij Remepl <linux@rempel-privat.de> 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + * 11 + */ 12 + 13 + .macro addruart, rp, rv, tmp 14 + ldr \rp, = CONFIG_DEBUG_UART_PHYS 15 + ldr \rv, = CONFIG_DEBUG_UART_VIRT 16 + .endm 17 + 18 + .macro waituart,rd,rx 19 + .endm 20 + 21 + .macro senduart,rd,rx 22 + str \rd, [\rx, #0x50] @ TXDATA 23 + .endm 24 + 25 + .macro busyuart,rd,rx 26 + 1002: ldr \rd, [\rx, #0x60] @ STAT 27 + tst \rd, #1 << 27 @ TXEMPTY 28 + beq 1002b @ wait until transmit done 29 + .endm