diff --git a/board/sysam/amcore/amcore.c b/board/sysam/amcore/amcore.c
index 42b7c23f06fa95de05e440a2d0922a463861b01c..b7217c56ec9de3a474b872c65e8bfb40ccce57ac 100644
--- a/board/sysam/amcore/amcore.c
+++ b/board/sysam/amcore/amcore.c
@@ -1,7 +1,7 @@
 /*
  * Board functions for Sysam AMCORE (MCF5307 based) board
  *
- * (C) Copyright 2015  Angelo Dureghello <angelo@sysam.it>
+ * (C) Copyright 2016  Angelo Dureghello <angelo@sysam.it>
  *
  * SPDX-License-Identifier:     GPL-2.0+
  *
@@ -11,6 +11,8 @@
 #include <common.h>
 #include <asm/immap.h>
 #include <asm/io.h>
+#include <dm.h>
+#include <dm/platform_data/serial_coldfire.h>
 
 void init_lcd(void)
 {
@@ -99,3 +101,14 @@ phys_size_t initdram(int board_type)
 
 	return get_ram_size(CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_SDRAM_SIZE);
 }
+
+static struct coldfire_serial_platdata mcf5307_serial_plat = {
+	.base = CONFIG_SYS_UART_BASE,
+	.port = 0,
+	.baudrate = CONFIG_BAUDRATE,
+};
+
+U_BOOT_DEVICE(coldfire_serial) = {
+	.name = "serial_coldfire",
+	.platdata = &mcf5307_serial_plat,
+};
diff --git a/configs/amcore_defconfig b/configs/amcore_defconfig
index 0361418d904d5a8545fe952dafe73d5c550457a3..5cc512ce7aee3bf3581af3ce7af169cfcb2acfe1 100644
--- a/configs/amcore_defconfig
+++ b/configs/amcore_defconfig
@@ -3,6 +3,10 @@ CONFIG_TARGET_AMCORE=y
 CONFIG_SYS_TEXT_BASE=0xffc00000
 CONFIG_BOOTDELAY=1
 CONFIG_SYS_PROMPT="amcore $ "
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
+CONFIG_SYS_MALLOC_F=y
+CONFIG_SYS_MALLOC_F_LEN=0x800
 # CONFIG_CMD_BOOTD is not set
 # CONFIG_CMD_XIMG is not set
 CONFIG_LOOPW=y
diff --git a/include/configs/amcore.h b/include/configs/amcore.h
index 5667680230aa088581967d43e03fd0c17715be1e..fcb82e286c32d7485338bbd7073b28a4b86806c6 100644
--- a/include/configs/amcore.h
+++ b/include/configs/amcore.h
@@ -1,7 +1,7 @@
 /*
  * Sysam AMCORE board configuration
  *
- * (C) Copyright 2015  Angelo Dureghello <angelo@sysam.it>
+ * (C) Copyright 2016  Angelo Dureghello <angelo@sysam.it>
  *
  * SPDX-License-Identifier:     GPL-2.0+
  */
@@ -19,6 +19,17 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
 
 #define CONFIG_BOOTCOMMAND		"bootm ffc20000"
+#define CONFIG_EXTRA_ENV_SETTINGS				\
+	"upgrade_uboot=loady; "					\
+		"protect off 0xffc00000 0xffc1ffff; "		\
+		"erase 0xffc00000 0xffc1ffff; "			\
+		"cp.b 0x20000 0xffc00000 ${filesize}\0"		\
+	"upgrade_kernel=loady; "				\
+		"erase 0xffc20000 0xffefffff; "			\
+		"cp.b 0x20000 0xffc20000 ${filesize}\0"		\
+	"upgrade_jffs2=loady; "					\
+		"erase 0xfff00000 0xffffffff; "			\
+		"cp.b 0x20000 0xfff00000 ${filesize}\0"
 
 #undef CONFIG_CMD_AES
 #define CONFIG_CMD_DIAG