ARM: exynos: move debug-macro.S to include/debug/
The move is necessary to support early debug output on exynos with multiplatform configurations. This implies also moving the plat/debug-macro.S file, but we are leaving the remaining users of that file in place, to avoid adding large numbers of extra configuration options to Kconfig.debug Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/* pull in the relevant register and map files. */
|
||||
|
||||
#define S3C_ADDR_BASE 0xF6000000
|
||||
#define S3C_VA_UART S3C_ADDR_BASE + 0x01000000
|
||||
#define EXYNOS4_PA_UART 0x13800000
|
||||
#define EXYNOS5_PA_UART 0x12C00000
|
||||
|
||||
/* note, for the boot process to work we have to keep the UART
|
||||
* virtual address aligned to an 1MiB boundary for the L1
|
||||
* mapping the head code makes. We keep the UART virtual address
|
||||
* aligned and add in the offset when we load the value here.
|
||||
*/
|
||||
|
||||
.macro addruart, rp, rv, tmp
|
||||
mrc p15, 0, \tmp, c0, c0, 0
|
||||
and \tmp, \tmp, #0xf0
|
||||
teq \tmp, #0xf0 @@ A15
|
||||
ldreq \rp, =EXYNOS5_PA_UART
|
||||
movne \rp, #EXYNOS4_PA_UART @@ EXYNOS4
|
||||
ldr \rv, =S3C_VA_UART
|
||||
#if CONFIG_DEBUG_S3C_UART != 0
|
||||
add \rp, \rp, #(0x10000 * CONFIG_DEBUG_S3C_UART)
|
||||
add \rv, \rv, #(0x10000 * CONFIG_DEBUG_S3C_UART)
|
||||
#endif
|
||||
.endm
|
||||
|
||||
#define fifo_full fifo_full_s5pv210
|
||||
#define fifo_level fifo_level_s5pv210
|
||||
|
||||
#include <debug/samsung.S>
|
||||
@@ -0,0 +1,87 @@
|
||||
/* arch/arm/plat-samsung/include/plat/debug-macro.S
|
||||
*
|
||||
* Copyright 2005, 2007 Simtec Electronics
|
||||
* http://armlinux.simtec.co.uk/
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <plat/regs-serial.h>
|
||||
|
||||
/* The S5PV210/S5PC110 implementations are as belows. */
|
||||
|
||||
.macro fifo_level_s5pv210 rd, rx
|
||||
ldr \rd, [\rx, # S3C2410_UFSTAT]
|
||||
and \rd, \rd, #S5PV210_UFSTAT_TXMASK
|
||||
.endm
|
||||
|
||||
.macro fifo_full_s5pv210 rd, rx
|
||||
ldr \rd, [\rx, # S3C2410_UFSTAT]
|
||||
tst \rd, #S5PV210_UFSTAT_TXFULL
|
||||
.endm
|
||||
|
||||
/* The S3C2440 implementations are used by default as they are the
|
||||
* most widely re-used */
|
||||
|
||||
.macro fifo_level_s3c2440 rd, rx
|
||||
ldr \rd, [\rx, # S3C2410_UFSTAT]
|
||||
and \rd, \rd, #S3C2440_UFSTAT_TXMASK
|
||||
.endm
|
||||
|
||||
#ifndef fifo_level
|
||||
#define fifo_level fifo_level_s3c2440
|
||||
#endif
|
||||
|
||||
.macro fifo_full_s3c2440 rd, rx
|
||||
ldr \rd, [\rx, # S3C2410_UFSTAT]
|
||||
tst \rd, #S3C2440_UFSTAT_TXFULL
|
||||
.endm
|
||||
|
||||
#ifndef fifo_full
|
||||
#define fifo_full fifo_full_s3c2440
|
||||
#endif
|
||||
|
||||
.macro senduart,rd,rx
|
||||
strb \rd, [\rx, # S3C2410_UTXH]
|
||||
.endm
|
||||
|
||||
.macro busyuart, rd, rx
|
||||
ldr \rd, [\rx, # S3C2410_UFCON]
|
||||
tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?
|
||||
beq 1001f @
|
||||
@ FIFO enabled...
|
||||
1003:
|
||||
fifo_full \rd, \rx
|
||||
bne 1003b
|
||||
b 1002f
|
||||
|
||||
1001:
|
||||
@ busy waiting for non fifo
|
||||
ldr \rd, [\rx, # S3C2410_UTRSTAT]
|
||||
tst \rd, #S3C2410_UTRSTAT_TXFE
|
||||
beq 1001b
|
||||
|
||||
1002: @ exit busyuart
|
||||
.endm
|
||||
|
||||
.macro waituart,rd,rx
|
||||
ldr \rd, [\rx, # S3C2410_UFCON]
|
||||
tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?
|
||||
beq 1001f @
|
||||
@ FIFO enabled...
|
||||
1003:
|
||||
fifo_level \rd, \rx
|
||||
teq \rd, #0
|
||||
bne 1003b
|
||||
b 1002f
|
||||
1001:
|
||||
@ idle waiting for non fifo
|
||||
ldr \rd, [\rx, # S3C2410_UTRSTAT]
|
||||
tst \rd, #S3C2410_UTRSTAT_TXFE
|
||||
beq 1001b
|
||||
|
||||
1002: @ exit busyuart
|
||||
.endm
|
||||
Reference in New Issue
Block a user