diff options
author | Alexey Brodkin <abrodkin@synopsys.com> | 2015-02-24 19:31:51 +0300 |
---|---|---|
committer | Alexey Brodkin <abrodkin@synopsys.com> | 2015-04-03 09:47:49 +0300 |
commit | 36d68668e33191d55b2a23c9f0ec0c1ffecd6897 (patch) | |
tree | 74495b4e3c9884d6d1495375b91ebd049b9c5cf5 | |
parent | 8a5c9ca4d0b8aa13a1bb321494d24f656a9a7d72 (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.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c index 2ddbf32a507..0ee8ce5e7d1 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; } |