فهرست منبع

ppc40x: add sysupgrade support

Cc: [email protected]

SVN-Revision: 20821
Gabor Juhos 15 سال پیش
والد
کامیت
185965e128

+ 11 - 0
target/linux/ppc40x/base-files/lib/ppc40x.sh

@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+
+ppc40x_board_name() {
+	local model
+
+	model=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /model/ {print $2}' /proc/cpuinfo)
+	echo $model
+}

+ 38 - 0
target/linux/ppc40x/base-files/lib/upgrade/platform.sh

@@ -0,0 +1,38 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+
+. /lib/ppc40x.sh
+
+PART_NAME=firmware
+RAMFS_COPY_DATA=/lib/ppc40x.sh
+
+platform_check_image() {
+	local board=$(ppc40x_board_name)
+	local magic="$(get_magic_word "$1")"
+
+	[ "$ARGC" -gt 1 ] && return 1
+
+	case "$board" in
+	kilauea | openrb | magicbox)
+		[ "$magic" != "2705" ] && {
+			echo "Invalid image type."
+			return 1
+		}
+		return 0
+		;;
+	esac
+
+	echo "Sysupgrade is not yet supported on $board."
+	return 1
+}
+
+platform_do_upgrade() {
+	local board=$(ppc40x_board_name)
+
+	case "$board" in
+	*)
+		default_do_upgrade "$ARGV"
+		;;
+	esac
+}

+ 8 - 4
target/linux/ppc40x/patches/004-magicbox.patch

@@ -93,7 +93,7 @@
 +}
 --- /dev/null
 +++ b/arch/powerpc/boot/dts/magicbox.dts
-@@ -0,0 +1,281 @@
+@@ -0,0 +1,285 @@
 +/*
 + * Device Tree Source for Magicbox boards
 + *
@@ -316,19 +316,23 @@
 +				reg = <0x00000000 0xffc00000 0x00400000>;
 +				#address-cells = <1>;
 +				#size-cells = <1>;
-+				partition@0 {
++				partition0@0 {
 +					label = "linux";
 +					reg = <0x0 0x140000>;
 +				};
-+				partition@120000 {
++				partition1@120000 {
 +					label = "rootfs";
 +					reg = <0x140000 0x680000>;
 +				};
-+				partition@7c0000 {
++				partition2@7c0000 {
 +					label = "u-boot";
 +					reg = <0x7c0000 0x30000>;
 +					read-only;
 +				};
++				partition3@0 {
++					label = "firmware";
++					reg = <0x0 0x7c0000>;
++				};
 +			};
 +		};
 +

+ 8 - 4
target/linux/ppc40x/patches/005-openrb.patch

@@ -74,7 +74,7 @@
 +}
 --- /dev/null
 +++ b/arch/powerpc/boot/dts/openrb.dts
-@@ -0,0 +1,276 @@
+@@ -0,0 +1,280 @@
 +/*
 + * Device Tree Source for OpenRB boards
 + *
@@ -292,19 +292,23 @@
 +				reg = <0x00000000 0xff800000 0x00800000>;
 +				#address-cells = <1>;
 +				#size-cells = <1>;
-+				partition@0 {
++				partition0@0 {
 +					label = "linux";
 +					reg = <0x0 0x140000>;
 +				};
-+				partition@120000 {
++				partition1@120000 {
 +					label = "rootfs";
 +					reg = <0x140000 0x680000>;
 +				};
-+				partition@7c0000 {
++				partition2@7c0000 {
 +					label = "u-boot";
 +					reg = <0x7c0000 0x30000>;
 +					read-only;
 +				};
++				partition3@0 {
++					label = "firmware";
++					reg = <0x0 0x7c0000>;
++				};
 +			};
 +		};
 +

+ 45 - 7
target/linux/ppc40x/patches/110-kilauea_openwrt_flashmap.patch

@@ -1,17 +1,55 @@
 --- a/arch/powerpc/boot/dts/kilauea.dts
 +++ b/arch/powerpc/boot/dts/kilauea.dts
-@@ -157,12 +157,8 @@
+@@ -93,8 +93,8 @@
+ 			compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
+ 			dcr-reg = <0x010 0x002>;
+ 			interrupt-parent = <&UIC2>;
+-			interrupts = <0x5 0x4	/* ECC DED Error */ 
+-				      0x6 0x4>;	/* ECC SEC Error */ 
++			interrupts = <0x5 0x4	/* ECC DED Error */
++				      0x6 0x4>;	/* ECC SEC Error */
+ 		};
+ 
+ 		CRYPTO: crypto@ef700000 {
+@@ -148,30 +148,30 @@
+ 					reg = <0x00000000 0x00000000 0x04000000>;
+ 					#address-cells = <1>;
+ 					#size-cells = <1>;
+-					partition@0 {
++					partition0@0 {
+ 						label = "kernel";
+ 						reg = <0x00000000 0x001e0000>;
+ 					};
+-					partition@1e0000 {
++					partition1@1e0000 {
+ 						label = "dtb";
  						reg = <0x001e0000 0x00020000>;
  					};
- 					partition@200000 {
+-					partition@200000 {
 -						label = "root";
 -						reg = <0x00200000 0x00200000>;
--					};
--					partition@400000 {
--						label = "user";
--						reg = <0x00400000 0x03b60000>;
++					partition2@200000 {
 +						label = "rootfs";
 +						reg = <0x00200000 0x03d60000>;
  					};
- 					partition@3f60000 {
+-					partition@400000 {
+-						label = "user";
+-						reg = <0x00400000 0x03b60000>;
+-					};
+-					partition@3f60000 {
++					partition3@3f60000 {
  						label = "env";
+ 						reg = <0x03f60000 0x00040000>;
+ 					};
+-					partition@3fa0000 {
++					partition4@3fa0000 {
+ 						label = "u-boot";
+ 						reg = <0x03fa0000 0x00060000>;
+ 					};
++					partition5@0 {
++						label = "firmware";
++						reg = <0x00000000 0x03f60000>;
++					};
+ 				};
+ 
+ 				ndfc@1,0 {