+--- a/drivers/serial/ns16550.c
++++ b/drivers/serial/ns16550.c
+@@ -118,6 +118,14 @@ int ns16550_calc_divisor(NS16550_t port,
+ }
+ port->osc_12m_sel = 0; /* clear if previsouly set */
+ #endif
++#ifdef CONFIG_OX820
++ {
++ /* with additional 3 bit fractional */
++ u32 div = (CONFIG_SYS_NS16550_CLK + baudrate) / (baudrate * 2);
++ port->reg9 = (div & 7) << 5;
++ return (div >> 3);
++ }
++#endif
+
+ return DIV_ROUND_CLOSEST(clock, mode_x_div * baudrate);
+ }
+--- a/scripts/Makefile.spl
++++ b/scripts/Makefile.spl
+@@ -202,6 +202,9 @@ OBJCOPYFLAGS_$(SPL_BIN).bin = $(SPL_OBJC
+
+ $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN) FORCE
+ $(call if_changed,objcopy)
++ifdef CONFIG_OX820
++ $(OBJTREE)/tools/mkox820crc $@
++endef
+
+ LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
+ ifneq ($(CONFIG_SPL_TEXT_BASE),)
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -488,6 +488,9 @@ config TARGET_BALLOON3
+ config TARGET_H2200
+ bool "Support h2200"
+
++config TARGET_OX820
++ bool "Support ox820"
++
+ config TARGET_PALMLD
+ bool "Support palmld"
+
+@@ -650,6 +653,7 @@ source "board/logicpd/imx27lite/Kconfig"
+ source "board/logicpd/imx31_litekit/Kconfig"
+ source "board/mpl/vcma9/Kconfig"
+ source "board/olimex/mx23_olinuxino/Kconfig"
++source "board/ox820/Kconfig"
+ source "board/palmld/Kconfig"
+ source "board/palmtc/Kconfig"
+ source "board/palmtreo680/Kconfig"