diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper
index 8f1be3ef20c2a20772bbb02732b008f1d2fe2ed3..b60518808ccf264cc028f1068fbcf970741d60ea 100755
--- a/resources/scripts/build/boot/roms_helper
+++ b/resources/scripts/build/boot/roms_helper
@@ -121,7 +121,7 @@ load_config()
 	fi
 
 	romdir="bin/${board}"
-	cbfstool="${cbdir}/util/cbfstool/cbfstool"
+	cbfstool="cbutils/${cbtree}/cbfstool"
 	seavgabiosrom="payload/seabios/seavgabios.bin"
 	corebootrom="${cbdir}/build/coreboot.rom"
 
@@ -236,9 +236,7 @@ build_dependencies()
 	if [ ! -d "${cbdir}" ]; then
 		./download coreboot ${cbtree}
 	fi
-	if [ ! -f "${cbfstool}" ]; then
-		./build module cbutils ${cbtree} || exit 1
-	fi
+	./build module cbutils ${cbtree} || exit 1
 	cat version > "${cbdir}/.coreboot-version"
 
 	build_dependency_crossgcc
@@ -499,7 +497,6 @@ mkCoreboot()
 	fi
 
 	cp "${_cbcfg}" "${cbdir}"/.config
-	./build module cbutils ${cbdir#coreboot/} || exit 1
 
 	make -j$(nproc) -BC "${cbdir}"
 }
diff --git a/resources/scripts/build/clean/cbutils b/resources/scripts/build/clean/cbutils
index d129ff6ed379f65e6a6439a66b3e9b2082ed982e..5465956457954c5bdcda70bd436f74767ffa3ea9 100755
--- a/resources/scripts/build/clean/cbutils
+++ b/resources/scripts/build/clean/cbutils
@@ -2,7 +2,7 @@
 
 #  helper script: clean the dependencies that were built in coreboot
 #
-#	Copyright (C) 2014, 2015, 2016, 2020 Leah Rowe <info@minifree.org>
+#	Copyright (C) 2014-2016, 2020, 2023 Leah Rowe <info@minifree.org>
 #	Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
 #
 #	This program is free software: you can redistribute it and/or modify
@@ -28,6 +28,8 @@ set -u -e
 
 printf "Cleaning the previous build of coreboot and its utilities\n"
 
+rm -Rf cbutils
+
 [ ! -d "coreboot/" ] && exit 0
 
 for cbtree in coreboot/*; do
@@ -42,9 +44,9 @@ for cbtree in coreboot/*; do
 
 	# Clean its utilities as well
 	for util in cbfstool ifdtool nvramtool cbmem; do
-		make -C "${cbtree}/util/${util}/" clean
+		make distclean -C "${cbtree}/util/${util}/"
 	done
-	make -C "${cbtree}/payloads/libpayload/" distclean
+	make distclean -C "${cbtree}/payloads/libpayload/"
 done
 
 printf "\n\n"
diff --git a/resources/scripts/build/module/cbutils b/resources/scripts/build/module/cbutils
index ee6e8692d601f25fdcb1056105b2063ab7f245d3..8d4e2f2f1becb9ec9e7fa6a7b771d383430b6698 100755
--- a/resources/scripts/build/module/cbutils
+++ b/resources/scripts/build/module/cbutils
@@ -59,10 +59,17 @@ buildutils() {
 		./download coreboot $cbtree || return 1
 	fi
 	for util in cbfstool ifdtool; do
-		utildir="coreboot/${cbtree}/util/${util}/"
-		make distclean -C "${utildir}"
-		make -j$(nproc) -C "${utildir}" \
-				|| return 1
+		[ -f "cbutils/${cbtree}/${util}" ] \
+			&& continue
+		if [ ! -d "cbutils/${cbtree}" ]; then
+			mkdir -p "cbutils/${cbtree}" || return 1
+		fi
+
+		utildir="coreboot/${cbtree}/util/${util}"
+		make distclean -C "${utildir}" || return 1
+		make -j$(nproc) -C "${utildir}" || return 1
+		mv "${utildir}/${util}" "cbutils/${cbtree}" || return 1
+		make distclean -C "${utildir}" || return 1
 	done
 }
 
diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms
index 33200cc4616106e00127b39db0935cf64e148a86..d81ec09a6364654a5ece16b99d279f2deb9db8d2 100755
--- a/resources/scripts/build/release/roms
+++ b/resources/scripts/build/release/roms
@@ -24,14 +24,13 @@ set -u -e
 projectname="$(cat projectname)"
 version="version-unknown"
 versiondate="version-date-unknown"
+cbtree="default"
 target=""
 CONFIG_HAVE_MRC=""
 CONFIG_HAVE_ME_BIN=""
 CONFIG_KBC1126_FIRMWARE=""
-ifdtooldir="coreboot/default/util/ifdtool"
-ifdtool="${ifdtooldir}/ifdtool"
-cbfstooldir="coreboot/default/util/cbfstool"
-cbfstool="${cbfstooldir}/cbfstool"
+ifdtool="cbutils/${cbtree}/ifdtool"
+cbfstool="cbutils/${cbtree}/cbfstool"
 
 main()
 {
@@ -114,12 +113,10 @@ strip_archive()
 {
 	romdir=${1}
 
-	if [ ! -d coreboot/default ]; then
-		./download coreboot default || exit 1
-	fi
-	if [ ! -f "${ifdtool}" ] || [ ! -f "${cbfstool}" ]; then
-		./build module cbutils default || exit 1
+	if [ ! -d coreboot/${cbtree} ]; then
+		./download coreboot ${cbtree} || exit 1
 	fi
+	./build module cbutils ${cbtree} || exit 1
 
 	rm -Rf "${romdir}_tmp" # dirty hack, to reduce disk io later
 	# rather than using /tmp, which might not be tmpfs
diff --git a/resources/scripts/update/blobs/inject b/resources/scripts/update/blobs/inject
index ca8aae4cc0c9001bd99f2153319026abe4d15232..891cb19820874907dfdc83467eede9981d7dbf3c 100755
--- a/resources/scripts/update/blobs/inject
+++ b/resources/scripts/update/blobs/inject
@@ -17,8 +17,8 @@ releasearchive=""
 
 cbdir="coreboot/default"
 cbcfgsdir="resources/coreboot"
-ifdtool="${cbdir}/util/ifdtool/ifdtool"
-cbfstool="${cbdir}/util/cbfstool/cbfstool"
+ifdtool="cbutils/default/ifdtool"
+cbfstool="cbutils/default/cbfstool"
 nvmutil="util/nvmutil/nvm"
 boarddir=""
 pciromsdir="pciroms"
@@ -140,17 +140,7 @@ build_dependencies()
 		./download coreboot default
 	fi
 
-	if [ ! -f "${ifdtool}" ]; then
-		printf "building ifdtool from coreboot\n"
-		./build module cbutils default \
-				|| fail 'could not build ifdtool'
-	fi
-
-	if [ ! -f "${cbfstool}" ]; then
-		printf "building cbfstool from coreboot\n"
-		./build module cbutils default \
-				|| fail 'could not build cbfstool'
-	fi
+	./build module cbutils default || fail "could not build cbutils"
 
 	./blobutil download ${board} || \
 			fail "Could not download blobs for ${board}"
diff --git a/resources/scripts/update/module/mrc b/resources/scripts/update/module/mrc
index ed0b38f3a8b99817ed1b4fb06370283fa09a8378..d6a1c3a603acb65883391bb89fc0b3b491e0a3b8 100755
--- a/resources/scripts/update/module/mrc
+++ b/resources/scripts/update/module/mrc
@@ -41,7 +41,7 @@ _mrc_complete_hash="d18de1e3d52c0815b82ea406ca07897c56c65696"
 _mrc_complete="mrc/haswell/mrc.bin"
 
 cbdir="coreboot/default"
-cbfstool="${cbdir}/util/cbfstool/cbfstool"
+cbfstool="cbutils/default/cbfstool"
 
 sname=""
 
@@ -76,9 +76,7 @@ build_dependencies()
 	if [ ! -d "${cbdir}/" ]; then
 	    ./download coreboot default || return 1
 	fi
-	if [ ! -f "${cbfstool}" ]; then
-	    ./build module cbutils default || return 1
-	fi
+	./build module cbutils default || return 1
 	return 0
 }