diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index c97ea4156b49a78f474b1bf62ea1c16f4c5a2a81..d07b92d1b442b86be928b28ee08b0cb1fbfe23c4 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -97,6 +97,7 @@ config TARGET_BOSTON
 	select MIPS_CM
 	select MIPS_L1_CACHE_SHIFT_6
 	select MIPS_L2_CACHE
+	select OF_BOARD_SETUP
 	select SUPPORTS_BIG_ENDIAN
 	select SUPPORTS_LITTLE_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
@@ -221,6 +222,17 @@ config ROM_EXCEPTION_VECTORS
 	  Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
 	  In that case the image size will be reduced by 0x500 bytes.
 
+config MIPS_CM_BASE
+	hex "MIPS CM GCR Base Address"
+	depends on MIPS_CM
+	default 0x16100000 if TARGET_BOSTON
+	default 0x1fbf8000
+	help
+	  The physical base address at which to map the MIPS Coherence Manager
+	  Global Configuration Registers (GCRs). This should be set such that
+	  the GCRs occupy a region of the physical address space which is
+	  otherwise unused, or at minimum that software doesn't need to access.
+
 endmenu
 
 menu "OS boot interface"
@@ -393,15 +405,6 @@ config MIPS_CM
 	  wish U-Boot to configure it or make use of it to retrieve system
 	  information such as cache configuration.
 
-config MIPS_CM_BASE
-	hex
-	default 0x1fbf8000
-	help
-	  The physical base address at which to map the MIPS Coherence Manager
-	  Global Configuration Registers (GCRs). This should be set such that
-	  the GCRs occupy a region of the physical address space which is
-	  otherwise unused, or at minimum that software doesn't need to access.
-
 endif
 
 endmenu
diff --git a/arch/mips/dts/brcm,bcm63268.dtsi b/arch/mips/dts/brcm,bcm63268.dtsi
index 3d0f8e0ea14c2c9d3ab72330d8a6e09c5d4badbf..b03763f09395e505a49ab5ca2faf0cb0a364d40c 100644
--- a/arch/mips/dts/brcm,bcm63268.dtsi
+++ b/arch/mips/dts/brcm,bcm63268.dtsi
@@ -136,7 +136,7 @@
 
 		memory-controller@10003000 {
 			compatible = "brcm,bcm6328-mc";
-			reg = <0x10003000 0x1000>;
+			reg = <0x10003000 0x894>;
 			u-boot,dm-pre-reloc;
 		};
 	};
diff --git a/arch/mips/dts/brcm,bcm6328.dtsi b/arch/mips/dts/brcm,bcm6328.dtsi
index 4adc83fcb43713bebb9cabf624edd600862c9cd9..3926885899d6db24b3c3fec334ff198bd6f722d0 100644
--- a/arch/mips/dts/brcm,bcm6328.dtsi
+++ b/arch/mips/dts/brcm,bcm6328.dtsi
@@ -120,7 +120,7 @@
 
 		memory-controller@10003000 {
 			compatible = "brcm,bcm6328-mc";
-			reg = <0x10003000 0x1000>;
+			reg = <0x10003000 0x864>;
 			u-boot,dm-pre-reloc;
 		};
 	};
diff --git a/arch/mips/dts/brcm,bcm6358.dtsi b/arch/mips/dts/brcm,bcm6358.dtsi
index df75988c82316905783b07e67deba3260987cf1e..0dad9985016456332ec00bdf3e1a81dcbb420056 100644
--- a/arch/mips/dts/brcm,bcm6358.dtsi
+++ b/arch/mips/dts/brcm,bcm6358.dtsi
@@ -133,7 +133,7 @@
 
 		memory-controller@fffe1200 {
 			compatible = "brcm,bcm6358-mc";
-			reg = <0xfffe1200 0x1000>;
+			reg = <0xfffe1200 0x4c>;
 			u-boot,dm-pre-reloc;
 		};
 	};
diff --git a/arch/mips/lib/cache.c b/arch/mips/lib/cache.c
index bd14ba6ea7c5fdc82f31ede48d6ea3c569565fc4..91b037f87d7240c3a17bce4540564d9d6e29bc19 100644
--- a/arch/mips/lib/cache.c
+++ b/arch/mips/lib/cache.c
@@ -7,7 +7,9 @@
 
 #include <common.h>
 #include <asm/cacheops.h>
+#ifdef CONFIG_MIPS_L2_CACHE
 #include <asm/cm.h>
+#endif
 #include <asm/mipsregs.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index d1684486a85f7cb23ba217b12b74c22bc11a6536..4a0c383475a03321e80f536c548831f170061874 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -63,6 +63,11 @@ config BOARD_HUAWEI_HG556A
 	depends on SOC_BMIPS_BCM6358
 	select BMIPS_SUPPORTS_BOOT_RAM
 
+config BOARD_SFR_NB4_SER
+	bool "SFR NeufBox 4 (Sercomm)"
+	depends on SOC_BMIPS_BCM6358
+	select BMIPS_SUPPORTS_BOOT_RAM
+
 endchoice
 
 choice
@@ -84,5 +89,6 @@ config BMIPS_SUPPORTS_BOOT_RAM
 source "board/comtrend/ar5387un/Kconfig"
 source "board/comtrend/vr3032u/Kconfig"
 source "board/huawei/hg556a/Kconfig"
+source "board/sfr/nb4_ser/Kconfig"
 
 endmenu
diff --git a/board/imgtec/boston/Makefile b/board/imgtec/boston/Makefile
index deda457f3cdb6103d2731a4f7127214e43f77a45..d3fd49d285ecdb27c9784f9671fadeb41adc39d8 100644
--- a/board/imgtec/boston/Makefile
+++ b/board/imgtec/boston/Makefile
@@ -6,4 +6,5 @@
 
 obj-y += checkboard.o
 obj-y += ddr.o
+obj-y += dt.o
 obj-y += lowlevel_init.o
diff --git a/board/imgtec/boston/dt.c b/board/imgtec/boston/dt.c
new file mode 100644
index 0000000000000000000000000000000000000000..b34f9bc205e2eb0558905118e5ffffd34e9c19f6
--- /dev/null
+++ b/board/imgtec/boston/dt.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2016 Imagination Technologies
+ *
+ * SPDX-License-Identifier:	GPL-2.0
+ */
+
+#include <common.h>
+#include <fdt_support.h>
+
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+	u64 mem_start[2], mem_size[2];
+	int mem_regions;
+
+	mem_start[0] = 0;
+	mem_size[0] = min_t(u64, 256llu << 20, gd->ram_size);
+	mem_regions = 1;
+
+	if (gd->ram_size > mem_size[0]) {
+		mem_start[1] = 0x80000000 + mem_size[0];
+		mem_size[1] = gd->ram_size - mem_size[0];
+		mem_regions++;
+	}
+
+	return fdt_fixup_memory_banks(blob, mem_start, mem_size, mem_regions);
+}
diff --git a/configs/boston32r2_defconfig b/configs/boston32r2_defconfig
index 05095bf1600f1bf3ebd1ab26e6978f81d1c7aca0..6d93edc358e59fef531fcda97b14030d2cf2d08e 100644
--- a/configs/boston32r2_defconfig
+++ b/configs/boston32r2_defconfig
@@ -4,11 +4,11 @@ CONFIG_TARGET_BOSTON=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_DEFAULT_DEVICE_TREE="img,boston"
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_FIT_BEST_MATCH=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="boston # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMLS is not set
@@ -17,16 +17,11 @@ CONFIG_CMD_MEMTEST=y
 # CONFIG_CMD_LOADB is not set
 # CONFIG_CMD_LOADS is not set
 # CONFIG_CMD_FPGA is not set
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_DNS=y
 CONFIG_CMD_LINK_LOCAL=y
 CONFIG_CMD_TIME=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 # CONFIG_DOS_PARTITION is not set
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_EMBED=y
diff --git a/configs/boston32r2el_defconfig b/configs/boston32r2el_defconfig
index 244c688c5f433da4d5949926cefd97c03dcd2a4c..9e494eee106f392e66f5d0b94bbd6d49912f3077 100644
--- a/configs/boston32r2el_defconfig
+++ b/configs/boston32r2el_defconfig
@@ -5,11 +5,11 @@ CONFIG_SYS_LITTLE_ENDIAN=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_DEFAULT_DEVICE_TREE="img,boston"
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_FIT_BEST_MATCH=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="boston # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMLS is not set
@@ -18,16 +18,11 @@ CONFIG_CMD_MEMTEST=y
 # CONFIG_CMD_LOADB is not set
 # CONFIG_CMD_LOADS is not set
 # CONFIG_CMD_FPGA is not set
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_DNS=y
 CONFIG_CMD_LINK_LOCAL=y
 CONFIG_CMD_TIME=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 # CONFIG_DOS_PARTITION is not set
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_EMBED=y
diff --git a/configs/boston64r2_defconfig b/configs/boston64r2_defconfig
index 8cc0bee44c7a56c69bd8c7081cc30b672e658a35..6913d2ba62e87bbf48fad6003455b2aae57adb19 100644
--- a/configs/boston64r2_defconfig
+++ b/configs/boston64r2_defconfig
@@ -5,11 +5,11 @@ CONFIG_CPU_MIPS64_R2=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_DEFAULT_DEVICE_TREE="img,boston"
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_FIT_BEST_MATCH=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="boston # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMLS is not set
@@ -18,16 +18,11 @@ CONFIG_CMD_MEMTEST=y
 # CONFIG_CMD_LOADB is not set
 # CONFIG_CMD_LOADS is not set
 # CONFIG_CMD_FPGA is not set
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_DNS=y
 CONFIG_CMD_LINK_LOCAL=y
 CONFIG_CMD_TIME=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 # CONFIG_DOS_PARTITION is not set
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_EMBED=y
diff --git a/configs/boston64r2el_defconfig b/configs/boston64r2el_defconfig
index c427d43091ce285b753b2dc1ab391ad58afce845..10ccc5427c38bf6c412e18c65770c550f35cb701 100644
--- a/configs/boston64r2el_defconfig
+++ b/configs/boston64r2el_defconfig
@@ -6,11 +6,11 @@ CONFIG_CPU_MIPS64_R2=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_DEFAULT_DEVICE_TREE="img,boston"
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_FIT_BEST_MATCH=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="boston # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMLS is not set
@@ -19,16 +19,11 @@ CONFIG_CMD_MEMTEST=y
 # CONFIG_CMD_LOADB is not set
 # CONFIG_CMD_LOADS is not set
 # CONFIG_CMD_FPGA is not set
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_SNTP=y
 CONFIG_CMD_DNS=y
 CONFIG_CMD_LINK_LOCAL=y
 CONFIG_CMD_TIME=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 # CONFIG_DOS_PARTITION is not set
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_EMBED=y
diff --git a/drivers/ram/bmips_ram.c b/drivers/ram/bmips_ram.c
index 9c0b23b914e2f350735ee325889edea083260489..d0f7cd737688868ddeefd415cd5941506b896e66 100644
--- a/drivers/ram/bmips_ram.c
+++ b/drivers/ram/bmips_ram.c
@@ -90,11 +90,7 @@ static const struct udevice_id bmips_ram_ids[] = {
 	}, {
 		.compatible = "brcm,bcm6358-mc",
 		.data = (ulong)&bmips_ram_bcm6358,
-	}, {
-		.compatible = "brcm,bcm63268-mc",
-		.data = (ulong)&bmips_ram_bcm6328,
-	},
-	{ /* sentinel */ }
+	}, { /* sentinel */ }
 };
 
 static int bmips_ram_probe(struct udevice *dev)
diff --git a/include/configs/boston.h b/include/configs/boston.h
index 1915ad52494216c38e8203b229d7d453731efe7d..50aaa7be8c9f3f33b47eb174aa188ea7d0e43575 100644
--- a/include/configs/boston.h
+++ b/include/configs/boston.h
@@ -7,6 +7,11 @@
 #ifndef __CONFIGS_BOSTON_H__
 #define __CONFIGS_BOSTON_H__
 
+/*
+ * General board configuration
+ */
+#define CONFIG_SYS_BOOTM_LEN		(64 * 1024 * 1024)
+
 /*
  * CPU
  */