diff --git a/recipes/core/drivers-initfs/recipe.toml b/recipes/core/drivers-initfs/recipe.toml
index d567c9071f4782264982d900d208418f4bd35b3c..80622ca87612c0c45258ebc1f8556cb68ae53b4e 100644
--- a/recipes/core/drivers-initfs/recipe.toml
+++ b/recipes/core/drivers-initfs/recipe.toml
@@ -15,6 +15,22 @@ BINS=(
     lived
 )
 
+aarch64_redefine_bin()
+{
+    BINS=(inputd lived)
+    case "${BOARD}" in
+        raspi3bp)
+            BINS+=(bcm2835-sdhcid)
+        ;;
+        raspi3b)
+            BINS+=(bcm2835-sdhcid)
+        ;;
+        *)
+        #qemu-virt
+        ;;
+    esac
+}
+
 case "${TARGET}" in
     i686-unknown-redox)
         BINS+=(ided ps2d)
@@ -22,6 +38,9 @@ case "${TARGET}" in
     x86_64-unknown-redox)
         BINS+=(acpid ided ps2d)
         ;;
+    aarch64-unknown-redox)
+        aarch64_redefine_bin
+        ;;
     *)
         ;;
 esac
diff --git a/recipes/core/initfs/aarch64-unknown-redox/init.rc b/recipes/core/initfs/aarch64-unknown-redox/init.rc
new file mode 100644
index 0000000000000000000000000000000000000000..f8f24c7b30534442533635c88cb600c5d73d23a8
--- /dev/null
+++ b/recipes/core/initfs/aarch64-unknown-redox/init.rc
@@ -0,0 +1,15 @@
+export PATH /bin
+export TMPDIR /tmp
+nulld
+zerod
+randd
+inputd
+vesad T T G
+logd debug: display.vesa:1
+stdio log:
+ramfs logging
+lived
+redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
+cd file:
+export PATH file:/bin
+run.d /etc/init.d
diff --git a/recipes/core/initfs/aarch64-unknown-redox/init.rc.raspi3bp b/recipes/core/initfs/aarch64-unknown-redox/init.rc.raspi3bp
new file mode 100644
index 0000000000000000000000000000000000000000..99750e6f2adb8f0dc3670e0b7382d49fda1ea646
--- /dev/null
+++ b/recipes/core/initfs/aarch64-unknown-redox/init.rc.raspi3bp
@@ -0,0 +1,16 @@
+export PATH /bin
+export TMPDIR /tmp
+nulld
+zerod
+randd
+inputd
+vesad T T G
+logd debug: display.vesa:1
+stdio log:
+ramfs logging
+lived
+bcm2835-sdhcid
+redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
+cd file:
+export PATH file:/bin
+run.d /etc/init.d
diff --git a/recipes/core/initfs/recipe.toml b/recipes/core/initfs/recipe.toml
index 4bc9f307f06d8e3e06666f84b2ffb6cd77f37380..ddb39b60cead15bd8138704023849d1f4d9177e7 100644
--- a/recipes/core/initfs/recipe.toml
+++ b/recipes/core/initfs/recipe.toml
@@ -21,6 +21,11 @@ cp -r "${COOKBOOK_SYSROOT}/"* "${COOKBOOK_BUILD}/initfs"
 
 # TODO: Move init.rc to another recipe, perhaps initfs-misc? Then it can be installed as a regular dependency.
 cp "${COOKBOOK_RECIPE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
+if [ -e ${COOKBOOK_RECIPE}/${TARGET}/init.rc.${BOARD} ]; then
+    cp "${COOKBOOK_RECIPE}/${TARGET}/init.rc.${BOARD}" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
+elif [ -e ${COOKBOOK_RECIPE}/${TARGET}/init.rc ]; then
+    cp "${COOKBOOK_RECIPE}/${TARGET}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
+fi
 
 for bin in ${INITFS_RM_BINS}; do
   rm -f "${COOKBOOK_BUILD}/initfs/bin/$bin"