diff --git a/scripts/mkimg.base.sh b/scripts/mkimg.base.sh
index f577b9eff587ca5c1b766588871d24b31fb4aaf3..1c08e52604e4c2326ee85532017f6cf9c2c6f658 100755
--- a/scripts/mkimg.base.sh
+++ b/scripts/mkimg.base.sh
@@ -1,5 +1,5 @@
 build_kernel() {
-	local _flavor="$2" _modloopsign=
+	local _flavor="$2" _modloopsign= _add
 	shift 3
 	local _pkgs="$@"
 	[ "$modloop_sign" = "yes" ] && _modloopsign="--modloopsign"
@@ -15,6 +15,11 @@ build_kernel() {
 		--modloopfw "$modloopfw" \
 		--repositories-file "$APKROOT/etc/apk/repositories" \
 		"$DESTDIR"
+    if [ -n "$boot_addons" ]; then
+        for _add in $boot_addons; do
+           apk fetch --quiet --stdout $_add | tar -C "${DESTDIR}" -zx boot/
+        done
+    fi
 }
 
 section_kernels() {
@@ -95,15 +100,22 @@ syslinux_gen_config() {
 	echo "PROMPT ${syslinux_prompt:-1}"
 	echo "DEFAULT ${kernel_flavors%% *}"
 
-	local _f
+	local _f _p _initrd
 	for _f in $kernel_flavors; do
 		if [ -z "${xen_params+set}" ]; then
+			_initrd="/boot/initramfs-$_f"
+			if [ -n "$initrd_ucode" ]; then
+				for _p in $initrd_ucode; do
+					_initrd="$_p,$_initrd"
+				done
+			fi
+
 			cat <<- EOF
 
 			LABEL $_f
 				MENU LABEL Linux $_f
 				KERNEL /boot/vmlinuz-$_f
-				INITRD /boot/initramfs-$_f
+				INITRD $_initrd
 				FDTDIR /boot/dtbs-$_f
 				APPEND $initfs_cmdline $kernel_cmdline
 			EOF
@@ -120,15 +132,22 @@ syslinux_gen_config() {
 }
 
 grub_gen_config() {
-	local _f
+	local _f _p _initrd
 	echo "set timeout=2"
 	for _f in $kernel_flavors; do
 		if [ -z "${xen_params+set}" ]; then
+			_initrd="/boot/initramfs-$_f"
+			if [ -n "$initrd_ucode" ]; then
+				for _p in $initrd_ucode; do
+					_initrd="$_p $_initrd"
+				done
+			fi
+
 			cat <<- EOF
 
 			menuentry "Linux $_f" {
 				linux	/boot/vmlinuz-$_f $initfs_cmdline $kernel_cmdline
-				initrd	/boot/initramfs-$_f
+				initrd	$_initrd
 			}
 			EOF
 		else