diff -urNp a/target/linux/ramips/dts/mt7620a_yukai_bocco.dts b/target/linux/ramips/dts/mt7620a_yukai_bocco.dts
--- a/target/linux/ramips/dts/mt7620a_yukai_bocco.dts	2026-08-13 11:58:49.400544949 +0000
+++ b/target/linux/ramips/dts/mt7620a_yukai_bocco.dts	2026-08-13 12:07:47.055101313 +0000
@@ -7,6 +7,10 @@
 	compatible = "yukai,bocco", "ralink,mt7620a-soc";
 	model = "YUKAI Engineering BOCCO";
 
+	chosen {
+		bootargs = "console=ttyS0,57600 root=/dev/ubiblock0_0 ubi.mtd=ubi ubi.block=0,0 rootfstype=squashfs ro";
+	};
+
 	sound {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "Audio-I2S";
@@ -36,6 +40,17 @@
 
 	nand {
 		compatible = "mtk,mt7620-nand";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		nand-ecc-mode = "hw";
+		nand-ecc-strength = <4>;
+		nand-ecc-step-size = <512>;
+
+		nand-bus-width = <8>;
+
+		page-size = <2048>;
+		block-size = <131072>;
 
 		partitions {
 			compatible = "fixed-partitions";
@@ -43,16 +58,8 @@
 			#size-cells = <1>;
 
 			partition@0 {
-				label = "nand0";
-				reg = <0x0 0x17f00000>;
-			};
-			partition@17f00000 {
-				label = "nand1";
-				reg = <0x17f00000 0x100000>;
-			};
-			partition@18000000 {
-				label = "nand2";
-				reg = <0x18000000 0x2000000>;
+				label = "ubi";
+				reg = <0x0 0x20000000>;
 			};
 		};
 	};
@@ -111,8 +118,7 @@
 			};
 
 			partition@50000 {
-				compatible = "denx,uimage";
-				label = "firmware";
+				label = "kernel";
 				reg = <0x50000 0x7b0000>;
 			};
 		};
diff -urNp a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
--- a/target/linux/ramips/image/mt7620.mk	2026-05-27 23:24:03.000000000 +0000
+++ b/target/linux/ramips/image/mt7620.mk	2026-08-13 12:09:28.352274643 +0000
@@ -1387,6 +1387,14 @@ TARGET_DEVICES += youku_yk-l1c
 define Device/yukai_bocco
   SOC := mt7620a
   IMAGE_SIZE := 7872k
+  FILESYSTEMS += ubifs
+  PAGESIZE := 2048
+  BLOCKSIZE := 128k
+  SUBPAGESIZE := 2048
+  IMAGES := kernel.bin rootfs.ubi sysupgrade.bin
+  IMAGE/kernel.bin := append-kernel
+  IMAGE/rootfs.ubi := append-ubi
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   DEVICE_VENDOR := YUKAI Engineering
   DEVICE_MODEL := BOCCO
   DEVICE_PACKAGES := kmod-sound-core kmod-sound-mt7620 kmod-i2c-ralink
diff -urNp a/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh
--- a/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh	2026-05-27 23:24:03.000000000 +0000
+++ b/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh	2026-08-13 12:10:37.866784464 +0000
@@ -38,6 +38,14 @@ platform_do_upgrade() {
 				of=/dev/mtdblock$idx
 		default_do_upgrade "$1"
 		;;
+	yukai,bocco)
+		CI_KERNPART="kernel"
+		kernel_mtd=$(find_mtd_part "$CI_KERNPART")
+		if [ -n "$kernel_mtd" ]; then
+			tar -xf "$1" -O "sysupgrade-yukai_bocco/kernel" > "$kernel_mtd"
+		fi
+		nand_do_upgrade "$1"
+		;;
 	*)
 		default_do_upgrade "$1"
 		;;
diff -urNp a/target/linux/ramips/mt7620/config-5.15 b/target/linux/ramips/mt7620/config-5.15
--- a/target/linux/ramips/mt7620/config-5.15	2026-08-13 11:58:49.403545036 +0000
+++ b/target/linux/ramips/mt7620/config-5.15	2026-08-13 12:12:31.936540206 +0000
@@ -32,6 +32,10 @@ CONFIG_CPU_R4K_CACHE_TLB=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_HIGHMEM=y
 CONFIG_CPU_SUPPORTS_MSA=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
 CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
 CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2
 CONFIG_CRYPTO_RNG2=y
@@ -90,6 +94,8 @@ CONFIG_IRQ_MIPS_CPU=y
 CONFIG_IRQ_WORK=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -124,6 +130,12 @@ CONFIG_MTD_SPLIT_SEAMA_FW=y
 CONFIG_MTD_SPLIT_TPLINK_FW=y
 CONFIG_MTD_SPLIT_UIMAGE_FW=y
 CONFIG_MTD_VIRT_CONCAT=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEED_PER_CPU_KM=y
 CONFIG_NET_RALINK_GSW_MT7620=y
@@ -196,6 +208,11 @@ CONFIG_TICK_CPU_ACCOUNTING=y
 CONFIG_TIMER_OF=y
 CONFIG_TIMER_PROBE=y
 CONFIG_TINY_SRCU=y
+CONFIG_UBIFS_ATIME_SUPPORT=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USE_OF=y
 CONFIG_WATCHDOG_CORE=y
