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

ARM: vf610: add UART choice for low-level debug

Add choice for low-level debug UART. Similar to i.MX6, there is a
numeric configuration, valid choices are 0 to 3.
Note that the kernel assumes that the boot loader initialized clock
properly.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

authored by

Stefan Agner and committed by
Shawn Guo
cfdb7d56 477fbf1d

+22 -2
+9
arch/arm/Kconfig.debug
··· 942 942 Choose UART port on which kernel low-level debug messages 943 943 should be output. 944 944 945 + config DEBUG_VF_UART_PORT 946 + int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART 947 + default 1 948 + range 0 3 949 + depends on SOC_VF610 950 + help 951 + Choose UART port on which kernel low-level debug messages 952 + should be output. 953 + 945 954 config DEBUG_TEGRA_UART 946 955 bool 947 956 depends on ARCH_TEGRA
+13 -2
arch/arm/include/debug/vf.S
··· 7 7 * 8 8 */ 9 9 10 + #define VF_UART0_BASE_ADDR 0x40027000 11 + #define VF_UART1_BASE_ADDR 0x40028000 12 + #define VF_UART2_BASE_ADDR 0x40029000 13 + #define VF_UART3_BASE_ADDR 0x4002a000 14 + #define VF_UART_BASE_ADDR(n) VF_UART##n##_BASE_ADDR 15 + #define VF_UART_BASE(n) VF_UART_BASE_ADDR(n) 16 + #define VF_UART_PHYSICAL_BASE VF_UART_BASE(CONFIG_DEBUG_VF_UART_PORT) 17 + 18 + #define VF_UART_VIRTUAL_BASE 0xfe000000 19 + 10 20 .macro addruart, rp, rv, tmp 11 - ldr \rp, =0x40028000 @ physical 12 - ldr \rv, =0xfe028000 @ virtual 21 + ldr \rp, =VF_UART_PHYSICAL_BASE @ physical 22 + and \rv, \rp, #0xffffff @ offset within 16MB section 23 + add \rv, \rv, #VF_UART_VIRTUAL_BASE 13 24 .endm 14 25 15 26 .macro senduart, rd, rx