#define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_DISPLAY_CPUINFO
 
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
 #define CONFIG_CMD_BOOTZ
 #define CONFIG_OF_LIBFDT               /* Device Tree support */
 
 #define CONFIG_CMD_DHCP
 
 #ifdef CONFIG_SYS_USE_MMC
+/* u-boot env in sd/mmc card */
+#define CONFIG_ENV_IS_IN_FAT
+#define CONFIG_FAT_WRITE
+#define FAT_ENV_INTERFACE      "mmc"
+#define FAT_ENV_DEVICE_AND_PART        "0"
+#define FAT_ENV_FILE           "uboot.env"
+#define CONFIG_ENV_SIZE                0x4000
+
+#define CONFIG_BOOTCOMMAND     "fatload mmc 0:1 0x21000000 at91-${board_name}.dtb; " \
+                               "fatload mmc 0:1 0x22000000 zImage; "   \
+                               "bootz 0x22000000 - 0x21000000"
 #define CONFIG_BOOTARGS                                                        \
        "console=ttyS0,115200 earlyprintk "                             \
        "root=/dev/mmcblk0p2 rw rootwait"
 
                                "nand read 0x22000000 0x200000 0x600000;" \
                                "bootz 0x22000000 - 0x21000000"
 #elif CONFIG_SYS_USE_MMC
-/* bootstrap + u-boot + env in sd card */
-#define CONFIG_ENV_IS_IN_FAT
-#define FAT_ENV_INTERFACE      "mmc"
-#define FAT_ENV_FILE           "uboot.env"
-#define FAT_ENV_DEVICE_AND_PART        "0"
-#define CONFIG_ENV_SIZE                0x4000
-#define CONFIG_BOOTCOMMAND     "fatload mmc 0:1 0x21000000 at91-sama5d3_xplained.dtb; " \
-                               "fatload mmc 0:1 0x22000000 zImage; " \
-                               "bootz 0x22000000 - 0x21000000"
+/* override the bootcmd, bootargs and other configuration for sd/mmc env */
 #else
 #define CONFIG_ENV_IS_NOWHERE
 #endif
 
                                "nand read 0x22000000 0x200000 0x600000;" \
                                "bootm 0x22000000 - 0x21000000"
 #elif CONFIG_SYS_USE_MMC
-/* bootstrap + u-boot + env in sd card */
-#define CONFIG_ENV_IS_IN_FAT
-#define FAT_ENV_INTERFACE      "mmc"
-#define FAT_ENV_FILE           "uboot.env"
-#define FAT_ENV_DEVICE_AND_PART        "0"
-#define CONFIG_ENV_SIZE                0x4000
-#define CONFIG_BOOTCOMMAND     "fatload mmc 0:1 0x21000000 dtb; " \
-                               "fatload mmc 0:1 0x22000000 uImage; " \
-                               "bootm 0x22000000 - 0x21000000"
+/* override the bootcmd, bootargs and other configuration for sd/mmc env */
 #else
 #define CONFIG_ENV_IS_NOWHERE
 #endif
 
                                "nand read 0x22000000 0x200000 0x600000;" \
                                "bootz 0x22000000 - 0x21000000"
 #elif CONFIG_SYS_USE_MMC
-/* bootstrap + u-boot + env in sd card */
-#define CONFIG_ENV_IS_IN_FAT
-#define CONFIG_FAT_WRITE
-#define FAT_ENV_INTERFACE      "mmc"
-/*
- * We don't specify the part number, if device 0 has partition table, it means
- * the first partition; it no partition table, then take whole device as a
- * FAT file system.
- */
-#define FAT_ENV_DEVICE_AND_PART        "0"
-#define FAT_ENV_FILE           "uboot.env"
-#define CONFIG_ENV_SIZE                0x4000
-#define CONFIG_BOOTCOMMAND     "fatload mmc 0:1 0x21000000 at91-sama5d4_xplained.dtb; " \
-                               "fatload mmc 0:1 0x22000000 zImage; " \
-                               "bootz 0x22000000 - 0x21000000"
+/* override the bootcmd, bootargs and other configuration for sd/mmc env */
 #endif
 
-
-
 /* SPL */
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE           0x200000
 
                                "nand read 0x22000000 0x200000 0x600000;" \
                                "bootz 0x22000000 - 0x21000000"
 #elif CONFIG_SYS_USE_MMC
-/* bootstrap + u-boot + env in sd card */
-#define CONFIG_ENV_IS_IN_FAT
-#define CONFIG_FAT_WRITE
-#define FAT_ENV_INTERFACE      "mmc"
-/*
- * We don't specify the part number, if device 0 has partition table, it means
- * the first partition; it no partition table, then take whole device as a
- * FAT file system.
- */
-#define FAT_ENV_DEVICE_AND_PART        "0"
-#define FAT_ENV_FILE           "uboot.env"
-#define CONFIG_ENV_SIZE                0x4000
-#define CONFIG_BOOTCOMMAND     "fatload mmc 0:1 0x21000000 sama5d4ek.dtb; " \
-                               "fatload mmc 0:1 0x22000000 zImage; " \
-                               "bootz 0x22000000 - 0x21000000"
+/* override the bootcmd, bootargs and other configuration for sd/mmc env */
 #endif
 
 /* SPL */