diff options
-rw-r--r-- | arch/arc/include/asm/global_data.h | 1 | ||||
-rw-r--r-- | arch/arc/include/asm/io.h | 5 | ||||
-rw-r--r-- | arch/arc/lib/cpu.c | 6 | ||||
-rw-r--r-- | drivers/serial/serial_arc.c | 16 |
4 files changed, 5 insertions, 23 deletions
diff --git a/arch/arc/include/asm/global_data.h b/arch/arc/include/asm/global_data.h index d644e80..e25b966 100644 --- a/arch/arc/include/asm/global_data.h +++ b/arch/arc/include/asm/global_data.h @@ -9,7 +9,6 @@ /* Architecture-specific global data */ struct arch_global_data { - int running_on_hw; }; #include <asm-generic/global_data.h> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h index 281682c..b6f7724 100644 --- a/arch/arc/include/asm/io.h +++ b/arch/arc/include/asm/io.h @@ -239,4 +239,9 @@ static inline int __raw_writesl(unsigned int addr, void *data, int longlen) #define setbits_8(addr, set) setbits(8, addr, set) #define clrsetbits_8(addr, clear, set) clrsetbits(8, addr, clear, set) +static inline phys_addr_t virt_to_phys(void *vaddr) +{ + return (phys_addr_t)((unsigned long)vaddr); +} + #endif /* __ASM_ARC_IO_H */ diff --git a/arch/arc/lib/cpu.c b/arch/arc/lib/cpu.c index 4e4dd74..d1f10ab 100644 --- a/arch/arc/lib/cpu.c +++ b/arch/arc/lib/cpu.c @@ -14,12 +14,6 @@ int arch_cpu_init(void) { timer_init(); -/* In simulation (ISS) "CHIPID" and "ARCNUM" are all "ff" */ - if ((read_aux_reg(ARC_AUX_IDENTITY) & 0xffffff00) == 0xffffff00) - gd->arch.running_on_hw = 0; - else - gd->arch.running_on_hw = 1; - gd->cpu_clk = CONFIG_SYS_CLK_FREQ; gd->ram_size = CONFIG_SYS_SDRAM_SIZE; diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c index 6292eb1..326a536 100644 --- a/drivers/serial/serial_arc.c +++ b/drivers/serial/serial_arc.c @@ -42,23 +42,7 @@ static int arc_serial_setbrg(struct udevice *dev, int baudrate) int arc_console_baud = gd->cpu_clk / (baudrate * 4) - 1; writeb(arc_console_baud & 0xff, ®s->baudl); - -#ifdef CONFIG_ARC - /* - * UART ISS(Instruction Set simulator) emulation has a subtle bug: - * A existing value of Baudh = 0 is used as a indication to startup - * it's internal state machine. - * Thus if baudh is set to 0, 2 times, it chokes. - * This happens with BAUD=115200 and the formaula above - * Until that is fixed, when running on ISS, we will set baudh to !0 - */ - if (gd->arch.running_on_hw) - writeb((arc_console_baud & 0xff00) >> 8, ®s->baudh); - else - writeb(1, ®s->baudh); -#else writeb((arc_console_baud & 0xff00) >> 8, ®s->baudh); -#endif return 0; } |