ARM: socfpga: Fix socfpga compilation with early_printk() enabled
This fixes early_printk() compilation for socfpga. (senduart/busyuart/waituart were missing). It does that by making Picochip code generic. Signed-off-by: Pavel Machek <pavel@denx.de> Acked-by: Dinh Nguyen <dinguyen@altera.com> Acked-by: Jamie Iles <jamie@jamieiles.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
committed by
Arnd Bergmann
parent
5e3059b2cb
commit
ef3f94412a
27
arch/arm/include/debug/8250_32.S
Normal file
27
arch/arm/include/debug/8250_32.S
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2011 Picochip Ltd., Jamie Iles
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit
|
||||||
|
* accesses to the 8250.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/serial_reg.h>
|
||||||
|
|
||||||
|
.macro senduart,rd,rx
|
||||||
|
str \rd, [\rx, #UART_TX << UART_SHIFT]
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro busyuart,rd,rx
|
||||||
|
1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
|
||||||
|
and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
|
||||||
|
teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
|
||||||
|
bne 1002b
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/* The UART's don't have any flow control IO's wired up. */
|
||||||
|
.macro waituart,rd,rx
|
||||||
|
.endm
|
@@ -5,10 +5,7 @@
|
|||||||
* it under the terms of the GNU General Public License version 2 as
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*
|
*
|
||||||
* Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit
|
|
||||||
* accesses to the 8250.
|
|
||||||
*/
|
*/
|
||||||
#include <linux/serial_reg.h>
|
|
||||||
|
|
||||||
#define UART_SHIFT 2
|
#define UART_SHIFT 2
|
||||||
#define PICOXCELL_UART1_BASE 0x80230000
|
#define PICOXCELL_UART1_BASE 0x80230000
|
||||||
@@ -19,17 +16,4 @@
|
|||||||
ldr \rp, =PICOXCELL_UART1_BASE
|
ldr \rp, =PICOXCELL_UART1_BASE
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro senduart,rd,rx
|
#include "8250_32.S"
|
||||||
str \rd, [\rx, #UART_TX << UART_SHIFT]
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro busyuart,rd,rx
|
|
||||||
1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
|
|
||||||
and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
|
|
||||||
teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
|
|
||||||
bne 1002b
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/* The UART's don't have any flow control IO's wired up. */
|
|
||||||
.macro waituart,rd,rx
|
|
||||||
.endm
|
|
||||||
|
@@ -7,6 +7,9 @@
|
|||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define UART_SHIFT 2
|
||||||
|
#define DEBUG_LL_UART_OFFSET 0x00002000
|
||||||
|
|
||||||
.macro addruart, rp, rv, tmp
|
.macro addruart, rp, rv, tmp
|
||||||
mov \rp, #DEBUG_LL_UART_OFFSET
|
mov \rp, #DEBUG_LL_UART_OFFSET
|
||||||
orr \rp, \rp, #0x00c00000
|
orr \rp, \rp, #0x00c00000
|
||||||
@@ -14,3 +17,5 @@
|
|||||||
orr \rp, \rp, #0xff000000 @ physical base
|
orr \rp, \rp, #0xff000000 @ physical base
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
#include "8250_32.S"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user