summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arc/include/asm/global_data.h1
-rw-r--r--arch/arc/include/asm/io.h5
-rw-r--r--arch/arc/lib/cpu.c6
-rw-r--r--drivers/serial/serial_arc.c16
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, &regs->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, &regs->baudh);
- else
- writeb(1, &regs->baudh);
-#else
writeb((arc_console_baud & 0xff00) >> 8, &regs->baudh);
-#endif
return 0;
}