diff options
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/Makefile | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/early_printk.c | 30 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/prom.c | 14 | 
3 files changed, 31 insertions, 14 deletions
| diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile index 2d3ec1661..ee439698a 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile @@ -10,6 +10,7 @@  obj-y	:= prom.o irq.o setup.o devices.o gpio.o ar71xx.o +obj-$(CONFIG_EARLY_PRINTK)		+= early_printk.o  obj-$(CONFIG_PCI)			+= pci.o  obj-$(CONFIG_AR71XX_MACH_AP81)		+= mach-ap81.o diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/early_printk.c b/target/linux/ar71xx/files/arch/mips/ar71xx/early_printk.c new file mode 100644 index 000000000..4661d970b --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/early_printk.c @@ -0,0 +1,30 @@ +/* + *  Atheros AR71xx SoC early printk support + * + *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org> + *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org> + * + *  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 <linux/io.h> +#include <linux/serial_reg.h> +#include <asm/addrspace.h> + +#include <asm/mach-ar71xx/ar71xx.h> + +#define UART_READ(r) \ +	__raw_readl((void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE) + 4 * (r))) + +#define UART_WRITE(r, v) \ +	__raw_writel((v), (void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE) + 4*(r))) + +void prom_putchar(unsigned char ch) +{ +	while (((UART_READ(UART_LSR)) & UART_LSR_THRE) == 0); +	UART_WRITE(UART_TX, ch); +	while (((UART_READ(UART_LSR)) & UART_LSR_THRE) == 0); +} + diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c index eee55edff..d72bff3fe 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c @@ -12,7 +12,6 @@  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/io.h> -#include <linux/serial_reg.h>  #include <asm/bootinfo.h>  #include <asm/addrspace.h> @@ -234,16 +233,3 @@ void __init prom_free_prom_memory(void)  {  	/* We do not have to prom memory to free */  } - -#define UART_READ(r) \ -	__raw_readl((void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE) + 4 * (r))) - -#define UART_WRITE(r, v) \ -	__raw_writel((v), (void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE) + 4*(r))) - -void prom_putchar(unsigned char ch) -{ -	while (((UART_READ(UART_LSR)) & UART_LSR_THRE) == 0); -	UART_WRITE(UART_TX, ch); -	while (((UART_READ(UART_LSR)) & UART_LSR_THRE) == 0); -} | 
