Browse Source

oxnas: kd20: generate image compatible with stock firmware

 * adjust MTD partitions to match vendor's scheme
 * generate *factory.tar.gz image compatible with stock web-if
   firmware upgrade interface

Signed-off-by: Daniel Golle <[email protected]>
Daniel Golle 9 years ago
parent
commit
c773a2c46e

+ 21 - 5
target/linux/oxnas/files/arch/arm/boot/dts/ox820-kd20.dts

@@ -13,7 +13,7 @@
 	model = "Shuttle KD20";
 
 	chosen {
-		bootargs = "console=ttyS0,115200n8 earlyprintk=serial";
+		bootargs = "console=ttyS0,115200n8 earlyprintk=serial mem=256M";
 	};
 
 	pcie-controller@47C00000 {
@@ -33,14 +33,30 @@
 		status = "okay";
 
 		partition@0 {
-			label = "boot";
-			reg = <0x00000000 0x00e00000>;
-			/*read-only;*/
+			label = "stage1";
+			reg = <0x00000000 0x00040000>;
+			read-only;
+		};
+
+		partition@40000 {
+			label = "u-boot";
+			reg = <0x00040000 0x00200000>;
+			read-only;
+		};
+
+		partition@240000 {
+			label = "initrd";
+			reg = <0x00240000 0x00600000>;
+		};
+
+		partition@840000 {
+			label = "kernel";
+			reg = <0x00840000 0x007C0000>;
 		};
 
 		partition@e00000 {
 			label = "ubi";
-			reg = <0x00e00000 0x07200000>;
+			reg = <0x01000000 0x07000000>;
 		};
 	};
 

+ 26 - 1
target/linux/oxnas/image/Makefile

@@ -48,11 +48,36 @@ define Device/akitio
 endef
 TARGET_DEVICES += akitio
 
+define Build/omninas-factory
+	rm -rf [email protected] [email protected] [email protected]
+	mkdir -p [email protected]
+	$(CP) $@ [email protected]/uImage
+	dd if=/dev/zero bs=64k count=4 [email protected]
+	gzip [email protected]
+	mkimage -A arm -T ramdisk -C gzip -n "dummy" \
+		-d [email protected] \
+		[email protected]/rdimg.gz
+	echo 2.35.20140102 > [email protected]/version ; echo >> [email protected]/version
+	chmod 0744 [email protected]/*
+	$(TAR) -C [email protected] -czvf $@ .
+endef
+
+define Build/encrypt-3des
+	openssl enc -des3 -a -k $(1) -in $@ -out [email protected] && mv [email protected] $@
+endef
+
 define Device/kd20
-  DTS := kd20
+  DEVICE_DTS := ox820-kd20
   DEVICE_TITLE := Shuttle KD20
+  KERNEL := kernel-bin | append-dtb | uImage none
+  KERNEL_INITRAMFS_PREFIX = $$(IMAGE_PREFIX)-factory
+  KERNEL_INITRAMFS_SUFFIX := .tar.gz
+  KERNEL_INITRAMFS = kernel-bin | append-dtb | uImage none | omninas-factory | encrypt-3des sohmuntitnlaes
+  KERNEL_IMAGE := zImage
   DEVICE_PACKAGES := kmod-usb3 kmod-i2c-gpio kmod-rtc-pcf8563 kmod-gpio-beeper \
                      kmod-hwmon-core kmod-hwmon-gpiofan
+  KERNEL_IN_UBI := 
+  UBOOTENV_IN_UBI := 
 endef
 TARGET_DEVICES += kd20