diff --git a/Makefile b/Makefile
index 53dbdd3..d6d8ab2 100644
--- a/Makefile
+++ b/Makefile
@@ -461,8 +461,11 @@ $(obj)u-boot.ais:       $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
 		cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.bin > \
 			$(obj)u-boot.ais
 
+# Specify the target for use in elftosb call
+ELFTOSB_TARGET-$(CONFIG_MX28) = imx28
+
 $(obj)u-boot.sb:       $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
-		elftosb -zdf imx28 -c $(TOPDIR)/$(CPUDIR)/$(SOC)/u-boot.bd \
+		elftosb -zdf $(ELFTOSB_TARGET-y) -c $(TOPDIR)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd \
 			-o $(obj)u-boot.sb
 
 # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd
new file mode 100644
index 0000000..c60615a
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd
@@ -0,0 +1,14 @@
+sources {
+	u_boot_spl="spl/u-boot-spl.bin";
+	u_boot="u-boot.bin";
+}
+
+section (0) {
+	load u_boot_spl > 0x0000;
+	load ivt (entry = 0x0014) > 0x8000;
+	hab call 0x8000;
+
+	load u_boot > 0x40000100;
+	load ivt (entry = 0x40000100) > 0x8000;
+	hab call 0x8000;
+}
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot.bd b/arch/arm/cpu/arm926ejs/mxs/u-boot.bd
deleted file mode 100644
index c60615a..0000000
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot.bd
+++ /dev/null
@@ -1,14 +0,0 @@
-sources {
-	u_boot_spl="spl/u-boot-spl.bin";
-	u_boot="u-boot.bin";
-}
-
-section (0) {
-	load u_boot_spl > 0x0000;
-	load ivt (entry = 0x0014) > 0x8000;
-	hab call 0x8000;
-
-	load u_boot > 0x40000100;
-	load ivt (entry = 0x40000100) > 0x8000;
-	hab call 0x8000;
-}