diff --git a/target/linux/adm5120/image/router_be.mk b/target/linux/adm5120/image/router_be.mk
index 24030f5468ac43d4a6ce306c5520d72bc3dbcbaf..5a166722fbc44ae75e565aabc23e9f9f1be93d2a 100644
--- a/target/linux/adm5120/image/router_be.mk
+++ b/target/linux/adm5120/image/router_be.mk
@@ -6,7 +6,24 @@
 #
 
 define Image/Build/ZyXEL
+	$(call Image/Build/Loader,$(2),bin,0x80500000,0,y,$(2))
 	$(call Image/Build/TRXNoloader,$(call imgname,$(1),$(2)).trx,$(1))
+	$(STAGING_DIR_HOST)/bin/mkzynfw -B $(2) \
+		-b $(KDIR)/loader-$(2).bin \
+		-r $(call imgname,$(1),$(2)).trx:0x10000 \
+		-o $(call imgname,$(1),$(2))-webui.bin
+endef
+
+define Image/Build/Template/ZyXEL
+	$(call Image/Build/ZyXEL,$(1),$(2))
+endef
+
+define Image/Build/Template/ZyXEL/squashfs
+	$(call Image/Build/Template/ZyXEL,squashfs,$(1))
+endef
+
+define Image/Build/Template/ZyXEL/jffs2
+	$(call Image/Build/Template/ZyXEL,jffs2,$(1))
 endef
 
 define Image/Build/Template/ZyXEL/Initramfs