diff --git a/hardware/turris1x/turris1x-support/Makefile b/hardware/turris1x/turris1x-support/Makefile
index b5f53a544f9efe84540cb45853ee2990b2cd7176..83b177e5483bad6f62940a32f2291ad506d4b9b8 100644
--- a/hardware/turris1x/turris1x-support/Makefile
+++ b/hardware/turris1x/turris1x-support/Makefile
@@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=turris1x-support
-PKG_VERSION:=1.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.3
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=CZ.NIC <packaging@turris.cz>
 
@@ -34,7 +34,8 @@ endef
 
 define Package/turris1x-support/install
 	$(INSTALL_DIR) $(1)/boot
-	$(INSTALL_DATA) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/turris1x.dtb "$(1)"/boot/fdt
+	$(INSTALL_DATA) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/dts/turris1x.dtb "$(1)"/boot/
+	ln -sf turris1x.dtb "$(1)"/boot/fdt
 	mkimage -T script -C none -n boot -d files/boot.txt "$(1)"/boot.scr
 endef
 
diff --git a/hardware/turris1x/turris1x-support/files/boot.txt b/hardware/turris1x/turris1x-support/files/boot.txt
index ce44ce40099d9be9c5af18b58fca3dbe216d6bc0..22d8b04ba9c11fb0b8b870c0465230fb4ae5c582 100644
--- a/hardware/turris1x/turris1x-support/files/boot.txt
+++ b/hardware/turris1x/turris1x-support/files/boot.txt
@@ -1,3 +1,85 @@
-setenv bootargsubi 'root=ubi0:rootfs rootfstype=ubifs ubi.mtd=9,2048 rootflags=chk_data_crc rw console=ttyS0,115200'
-setenv ubiboot 'max6370_wdt_off; setenv bootargs $bootargsubi; ubi part rootfs; ubifsmount ubi0:rootfs; ubifsload $nandfdtaddr /boot/fdt; ubifsload $nandbootaddr /boot/zImage; bootm $nandbootaddr - $nandfdtaddr'
-run ubiboot
+if test "${bootfstype}" = "btrfs"; then
+	subvol="/@"
+else
+	subvol=""
+fi
+
+loaded=0
+for bootdir in ${prefix} ${boot_prefixes}; do
+	if test "${loaded}" != "1"; then
+		if test -e ${devtype} ${devnum}:${distro_bootpart} ${subvol}${bootdir}zImage && test -e ${devtype} ${devnum}:${distro_bootpart} ${subvol}${bootdir}${fdtfile}; then
+			echo "Found Kernel image ${subvol}${bootdir}zImage"
+			if load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${subvol}${bootdir}zImage; then
+				echo "Found Device Tree file ${subvol}${bootdir}${fdtfile}"
+				if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${subvol}${bootdir}${fdtfile}; then
+					loaded=1
+				fi
+			fi
+		fi
+	fi
+done
+
+if test "${loaded}" = "1"; then
+	# Kernel may be stored on first FAT partition and rootfs on second btrfs partition
+	if test "${bootfstype}" = "fat"; then
+		setexpr bootpart2 ${distro_bootpart} + 1
+		if part size ${devtype} ${devnum} ${bootpart2} fssize; then
+			if fstype ${devtype} ${devnum}:${bootpart2} fstype; then else
+				# U-Boot does not have to support btrfs, so check for btrfs superblock
+				part start ${devtype} ${devnum} ${bootpart2} fsstart
+				setexpr superblock ${fsstart} + 0x80
+				${devtype} read ${loadaddr} ${superblock} 1
+				setexpr loadaddr4 ${loadaddr} + 0x4
+				setexpr loadaddr40 ${loadaddr} + 0x40
+				mw ${loadaddr} 0x5f424852 # _BHR
+				mw ${loadaddr4} 0x66535f4d # fS_M
+				if cmp ${loadaddr} ${loadaddr40} 2; then
+					setenv fstype "btrfs"
+				else
+					setenv fstype
+				fi
+				setenv fsstart
+				setenv superblock
+				setenv loadaddr4
+				setenv loadaddr40
+			fi
+			if test ${fstype} = "btrfs"; then
+				setenv bootfstype "btrfs"
+				setenv distro_bootpart ${bootpart2}
+			fi
+			setenv fstype
+		fi
+		setenv bootpart2
+		setenv fssize
+	fi
+
+	if test "${devtype}" = "ubi"; then
+		rootflags="chk_data_crc"
+	elif test "${bootfstype}" = "btrfs"; then
+		rootflags="subvol=@,commit=5"
+	elif test "${bootfstype}" = "ext4"; then
+		rootflags="commit=5"
+	else
+		rootflags=""
+	fi
+
+	if test "${devtype}" = "ubi"; then
+		# old fdt files have rootfs mtd named "rootfs-ubifs" and new just "rootfs"
+		# read mtd label from loaded fdt file, it may be on two different locations
+		fdt addr ${fdt_addr_r}
+		fdt get value rootfsmtd /localbus@ffe05000/nand@1,0/partitions/partition@0 label || fdt get value rootfsmtd /localbus@ffe05000/nand@1,0/partition@00 label || setenv rootfsmtd rootfs
+		setenv bootfstype "ubifs"
+		setenv bootargs root=ubi0:${bootubivol} ubi.mtd=${rootfsmtd},2048
+		setenv rootfsmtd
+	else
+		part uuid ${devtype} ${devnum}:${distro_bootpart} partuuid
+		setenv bootargs root=PARTUUID=${partuuid}
+	fi
+	setenv bootargs ${bootargs} rootfstype=${bootfstype} rootflags=${rootflags} rootwait rw cfg80211.freg=${regdomain} console=ttyS0,115200 ${quirks}
+
+	# Disable watchdog
+	mw.b 0xffa00002 0x03
+
+	# In reality kernel image is in uImage format and not in zImage format
+	bootm ${kernel_addr_r} - ${fdt_addr_r}
+fi