mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[adm8668] implement early_printk without an early_console
Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34547 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -3,5 +3,5 @@
|
||||
#
|
||||
|
||||
obj-y := irq.o pci.o prom.o platform.o serial.o proc.o \
|
||||
setup.o time.o \
|
||||
setup.o time.o early_printk.o \
|
||||
net_core.o net_intr.o
|
||||
|
||||
16
target/linux/adm8668/files/arch/mips/adm8668/early_printk.c
Normal file
16
target/linux/adm8668/files/arch/mips/adm8668/early_printk.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/serial_core.h>
|
||||
#include <adm8668.h>
|
||||
|
||||
#define UART_READ(r) \
|
||||
__raw_readl((void __iomem *)(KSEG1ADDR(ADM8668_UART0_BASE) + (r)))
|
||||
|
||||
#define UART_WRITE(v, r) \
|
||||
__raw_writel((v), (void __iomem *)(KSEG1ADDR(ADM8668_UART0_BASE) + (r)))
|
||||
|
||||
void prom_putchar(char c)
|
||||
{
|
||||
UART_WRITE(c, UART_DR_REG);
|
||||
while ((UART_READ(UART_FR_REG) & UART_TX_FIFO_FULL) != 0)
|
||||
;
|
||||
}
|
||||
@@ -25,44 +25,6 @@
|
||||
|
||||
register volatile struct global_data *gd asm ("k0");
|
||||
|
||||
#ifdef CONFIG_SERIAL_ADM8668_CONSOLE
|
||||
static inline unsigned int adm_uart_readl(unsigned int offset)
|
||||
{
|
||||
return (*(volatile unsigned int *)(0xbe400000 + offset));
|
||||
}
|
||||
|
||||
static inline void adm_uart_writel(unsigned int value, unsigned int offset)
|
||||
{
|
||||
(*((volatile unsigned int *)(0xbe400000 + offset))) = value;
|
||||
}
|
||||
|
||||
static void prom_putchar(char c)
|
||||
{
|
||||
adm_uart_writel(c, UART_DR_REG);
|
||||
while ((adm_uart_readl(UART_FR_REG) & UART_TX_FIFO_FULL) != 0)
|
||||
;
|
||||
}
|
||||
|
||||
static void __init
|
||||
early_console_write(struct console *con, const char *s, unsigned n)
|
||||
{
|
||||
while (n-- && *s) {
|
||||
if (*s == '\n')
|
||||
prom_putchar('\r');
|
||||
prom_putchar(*s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
static struct console early_console __initdata = {
|
||||
.name = "early",
|
||||
.write = early_console_write,
|
||||
.flags = CON_BOOT,
|
||||
.index = -1
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
void __init prom_free_prom_memory(void)
|
||||
{
|
||||
/* No prom memory to free */
|
||||
@@ -122,10 +84,6 @@ void __init prom_init(void)
|
||||
bd_t *bd = gd->bd;
|
||||
int memsize;
|
||||
|
||||
#ifdef CONFIG_SERIAL_ADM8668_CONSOLE
|
||||
register_console(&early_console);
|
||||
#endif
|
||||
|
||||
memsize = bd->bi_memsize;
|
||||
printk("Board info:\n");
|
||||
printk(" RAM size: %d MB\n", (int)memsize/(1024*1024));
|
||||
|
||||
Reference in New Issue
Block a user