diff --git a/Makefile b/Makefile
index ddea53485a1e016ec80e8e4dc5a526a72fada41d..590fec88415911abb1867095dcfffab42d26491e 100644
--- a/Makefile
+++ b/Makefile
@@ -610,9 +610,6 @@ HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makef
 libs-y += lib/
 libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
 libs-y += $(CPUDIR)/
-ifdef SOC
-libs-y += $(CPUDIR)/$(SOC)/
-endif
 libs-$(CONFIG_OF_EMBED) += dts/
 libs-y += arch/$(ARCH)/lib/
 libs-y += fs/
diff --git a/arch/arm/cpu/arm1136/Makefile b/arch/arm/cpu/arm1136/Makefile
index 3279f125f6534e2c1348c9d0561ee2044ba9ffc0..90dc7aa32b3d607b4b2617aae9c9670117b3b8d6 100644
--- a/arch/arm/cpu/arm1136/Makefile
+++ b/arch/arm/cpu/arm1136/Makefile
@@ -7,3 +7,5 @@
 
 extra-y	= start.o
 obj-y	= cpu.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/arm1176/Makefile b/arch/arm/cpu/arm1176/Makefile
index deec4274477551b17b13b8e1b601892246d2641c..b64edf9d97cbaa6b3cfcaad3d791338e41ff87ec 100644
--- a/arch/arm/cpu/arm1176/Makefile
+++ b/arch/arm/cpu/arm1176/Makefile
@@ -10,3 +10,5 @@
 
 extra-y	= start.o
 obj-y	= cpu.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/arm720t/Makefile b/arch/arm/cpu/arm720t/Makefile
index 6badb3bb84b7200d9714c47d7f99ab09fdc11430..9893b08dfc899f00343c977b14ffb6d5ea27c138 100644
--- a/arch/arm/cpu/arm720t/Makefile
+++ b/arch/arm/cpu/arm720t/Makefile
@@ -9,3 +9,5 @@ extra-y	= start.o
 obj-y	= interrupts.o cpu.o
 
 obj-$(CONFIG_TEGRA) += tegra-common/
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/arm920t/Makefile b/arch/arm/cpu/arm920t/Makefile
index aac8043f6a8d0039ed8298164dfd0d6fc571955d..9f885ff2305787ff9886d10f2d7c8c6a2c22fcba 100644
--- a/arch/arm/cpu/arm920t/Makefile
+++ b/arch/arm/cpu/arm920t/Makefile
@@ -9,3 +9,5 @@ extra-y	= start.o
 
 obj-y	+= cpu.o
 obj-$(CONFIG_USE_IRQ)	+= interrupts.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/arm926ejs/Makefile b/arch/arm/cpu/arm926ejs/Makefile
index 125299537f4dd60fe85b77ac76d7588f107d9fd5..bd1ef8b7d46e38464f5a2e3a7c27e5e8679d14aa 100644
--- a/arch/arm/cpu/arm926ejs/Makefile
+++ b/arch/arm/cpu/arm926ejs/Makefile
@@ -13,3 +13,5 @@ ifdef	CONFIG_SPL_NO_CPU_SUPPORT_CODE
 extra-y	:=
 endif
 endif
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index afeed4dad84bdddd4557604d6978549879e2dc59..7d8ca08b4d0238ec28c8e59c20fcc5c95cc553b0 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -37,3 +37,5 @@ obj-$(CONFIG_TEGRA) += tegra-common/
 ifneq (,$(filter s5pc1xx exynos,$(SOC)))
 obj-y += s5p-common/
 endif
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile
index 7d93f59428ea79e7c7f7ee825376e62b2b598061..d2488e70fffac5964958f9e555d887f422d3566f 100644
--- a/arch/arm/cpu/armv8/Makefile
+++ b/arch/arm/cpu/armv8/Makefile
@@ -14,3 +14,5 @@ obj-y	+= exceptions.o
 obj-y	+= cache.o
 obj-y	+= tlb.o
 obj-y	+= transition.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/avr32/cpu/Makefile b/arch/avr32/cpu/Makefile
index 5e117212574af315bb3df2b3950271c8ea5bd0ce..2f7adf8136d9df42d7e04fbf7575bc9a15622c81 100644
--- a/arch/avr32/cpu/Makefile
+++ b/arch/avr32/cpu/Makefile
@@ -16,3 +16,5 @@ obj-y			+= cache.o
 obj-y			+= interrupts.o
 obj-$(CONFIG_PORTMUX_PIO) += portmux-pio.o
 obj-$(CONFIG_PORTMUX_GPIO) += portmux-gpio.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/mips/cpu/mips32/Makefile b/arch/mips/cpu/mips32/Makefile
index e0e6309c6f04e44c62825e02c9641c6adf51fb59..1221b9e513badaed878877edd400207d12689ae6 100644
--- a/arch/mips/cpu/mips32/Makefile
+++ b/arch/mips/cpu/mips32/Makefile
@@ -8,3 +8,5 @@
 extra-y	= start.o
 obj-y	= cache.o
 obj-y	+= cpu.o interrupts.o time.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/nds32/cpu/n1213/Makefile b/arch/nds32/cpu/n1213/Makefile
index 206d304d4c5ff597f41b248c7c2af01c525d93f3..be98c4a73828fffb303694579255755528c4695e 100644
--- a/arch/nds32/cpu/n1213/Makefile
+++ b/arch/nds32/cpu/n1213/Makefile
@@ -13,3 +13,5 @@
 obj- := __dummy__.o
 
 extra-y	= start.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/arch/x86/cpu/Makefile b/arch/x86/cpu/Makefile
index 9d38ef73a7d302a41fb2e536d3b45be2cfb3a9aa..b5ad1baa46fbc3c8119d671e5d67413548998249 100644
--- a/arch/x86/cpu/Makefile
+++ b/arch/x86/cpu/Makefile
@@ -11,3 +11,5 @@
 extra-y	= start.o
 obj-$(CONFIG_X86_RESET_VECTOR) += resetvec.o start16.o
 obj-y	+= interrupts.o cpu.o call64.o
+
+obj-y += $(if $(SOC),$(SOC)/)
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index 682f2685dc11293111419f77d9913dff927157f1..5c629db139bae17b89ff55121c180513d62f4bd1 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -20,7 +20,7 @@ SECTIONS
 	{
 	  *(.vectors)
 	  arch/arm/cpu/arm926ejs/start.o		(.text*)
-	  arch/arm/cpu/arm926ejs/davinci/built-in.o	(.text*)
+	  arch/arm/cpu/arm926ejs/built-in.o		(.text*)
 	  drivers/mtd/nand/built-in.o			(.text*)
 
 	  *(.text*)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 07db0bff8dfb364195bdf08529d1f30d342bdaee..69f7c9fb99db158fcf0a268bddd130a749d7984e 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -60,9 +60,6 @@ libs-y += arch/$(ARCH)/lib/
 
 libs-y += $(CPUDIR)/
 
-ifdef SOC
-libs-y += $(CPUDIR)/$(SOC)/
-endif
 libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
 libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/