Skip to content

Commit

Permalink
ARM: socfpga: Fix socfpga compilation with early_printk() enabled
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Pavel Machek authored and Arnd Bergmann committed Oct 25, 2012
1 parent 5e3059b commit ef3f944
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 17 deletions.
27 changes: 27 additions & 0 deletions arch/arm/include/debug/8250_32.S
Original file line number Diff line number Diff line change
@@ -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
18 changes: 1 addition & 17 deletions arch/arm/include/debug/picoxcell.S
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@
* 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>

#define UART_SHIFT 2
#define PICOXCELL_UART1_BASE 0x80230000
Expand All @@ -19,17 +16,4 @@
ldr \rp, =PICOXCELL_UART1_BASE
.endm

.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
#include "8250_32.S"
5 changes: 5 additions & 0 deletions arch/arm/include/debug/socfpga.S
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,15 @@
* published by the Free Software Foundation.
*/

#define UART_SHIFT 2
#define DEBUG_LL_UART_OFFSET 0x00002000

.macro addruart, rp, rv, tmp
mov \rp, #DEBUG_LL_UART_OFFSET
orr \rp, \rp, #0x00c00000
orr \rv, \rp, #0xfe000000 @ virtual base
orr \rp, \rp, #0xff000000 @ physical base
.endm

#include "8250_32.S"

0 comments on commit ef3f944

Please sign in to comment.