summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Brodkin <abrodkin@synopsys.com>2015-02-24 19:31:51 +0300
committerAlexey Brodkin <abrodkin@synopsys.com>2015-04-03 09:47:49 +0300
commit36d68668e33191d55b2a23c9f0ec0c1ffecd6897 (patch)
tree74495b4e3c9884d6d1495375b91ebd049b9c5cf5
parent8a5c9ca4d0b8aa13a1bb321494d24f656a9a7d72 (diff)
serial/serial_arc: set registers address during compilation
Being global variable with 0 value it falls into .bss area which we may only use after relocation to RAM. And right afetr relocation we zero .bss - effectively cleaing register address set for early console. Now with pre-set value "regs" variable is no longer in .bss and this way safely survives relocation. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-rw-r--r--drivers/serial/serial_arc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c
index 2ddbf32a50..0ee8ce5e7d 100644
--- a/drivers/serial/serial_arc.c
+++ b/drivers/serial/serial_arc.c
@@ -28,7 +28,7 @@ struct arc_serial_regs {
#define UART_OVERFLOW_ERR (1 << 1)
#define UART_TXEMPTY (1 << 7)
-struct arc_serial_regs *regs;
+struct arc_serial_regs *regs = (struct arc_serial_regs *)CONFIG_ARC_UART_BASE;
static void arc_serial_setbrg(void)
{
@@ -60,7 +60,6 @@ static void arc_serial_setbrg(void)
static int arc_serial_init(void)
{
- regs = (struct arc_serial_regs *)CONFIG_ARC_UART_BASE;
serial_setbrg();
return 0;
}