Some cleanup in uart fixes.

This commit is contained in:
Amit Mahajan
2009-11-02 21:52:33 +05:30
parent 55eb6260c3
commit a41a8e0d93
3 changed files with 18 additions and 23 deletions

View File

@@ -16,7 +16,6 @@
/* FIXME: Take this value in agreement from kernel, or from kernel only */
#define PL011_USR_BASE 0x500000
#define PL011_BASE PL011_USR_BASE
/* Architecture specific memory access macros */
#define read(val, address) val = *((volatile unsigned int *) address)
@@ -48,10 +47,15 @@
#define PL011_BEIRQ (1 << 9)
#define PL011_OEIRQ (1 << 10)
/* FIXME: Need to define this somewhere else */
struct pl011_uart uart;
struct pl011_uart {
unsigned int base;
unsigned int frame_errors;
unsigned int parity_errors;
unsigned int break_errors;
unsigned int overrun_errors;
unsigned int rx_timeout_errors;
};
int pl011_initialise(struct pl011_uart *uart);
int pl011_tx_char(unsigned int base, char c);
int pl011_rx_char(unsigned int base, char *c);
@@ -90,15 +94,6 @@ static inline void pl011_set_parity_odd(unsigned int base);
static inline void pl011_enable_fifos(unsigned int base);
static inline void pl011_parity_disable(unsigned int base);
struct pl011_uart {
unsigned int base;
unsigned int frame_errors;
unsigned int parity_errors;
unsigned int break_errors;
unsigned int overrun_errors;
unsigned int rx_timeout_errors;
};
#define PL011_UARTEN (1 << 0)
static inline void pl011_uart_enable(unsigned int base)
{

View File

@@ -1,15 +1,9 @@
#include <arch/pl011_uart.h>
/* TODO: May need to remove this */
struct pl011_uart uart;
void platform_init(void);
void platform_init(void)
{
uart.base = PL011_USR_BASE;
pl011_initialise(&uart);
}
struct pl011_uart uart = {
.base = PL011_USR_BASE,
};
/*
* Initialises the uart class data structures, and the device.
@@ -51,3 +45,9 @@ int pl011_initialise(struct pl011_uart * uart)
return 0;
}
void platform_init(void)
{
uart.base = PL011_USR_BASE;
pl011_initialise(&uart);
}

View File

@@ -7,7 +7,7 @@
virtual_base = %s;
physical_base = %s;
__stack = (0x20000000 - 0x1000 - 8); /* First page before the env/args */
__stack = (virtual_base - 0x1000 - 8); /* First page before the env/args */
offset = virtual_base - physical_base;