[OpenWrt-Devel] [PATCH] gemini: Fix up flash accesses

Linus Walleij linus.walleij at linaro.org
Wed Jul 17 13:22:40 EDT 2019


The SL93512r and the NAS4220B have Redboot partition
tables (rely on these) and need to boot from mtdblock3.
Add two patches from upstream to fix this.

Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
---
 ...-Switch-to-redboot-partition-parsing.patch | 104 ++++++++++++++++++
 ...dts-gemini-Mount-root-from-mtdblock3.patch |  36 ++++++
 2 files changed, 140 insertions(+)
 create mode 100644 target/linux/gemini/patches-4.19/0022-RM-dts-gemini-Switch-to-redboot-partition-parsing.patch
 create mode 100644 target/linux/gemini/patches-4.19/0023-ARM-dts-gemini-Mount-root-from-mtdblock3.patch

diff --git a/target/linux/gemini/patches-4.19/0022-RM-dts-gemini-Switch-to-redboot-partition-parsing.patch b/target/linux/gemini/patches-4.19/0022-RM-dts-gemini-Switch-to-redboot-partition-parsing.patch
new file mode 100644
index 000000000000..12c899ea3020
--- /dev/null
+++ b/target/linux/gemini/patches-4.19/0022-RM-dts-gemini-Switch-to-redboot-partition-parsing.patch
@@ -0,0 +1,104 @@
+From cad2161e64aca9e1c94fd11b0d0f7b53c9e80de0 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij at linaro.org>
+Date: Fri, 12 Jul 2019 22:57:11 +0200
+Subject: [PATCH 1/2] ARM: dts: gemini: Switch to redboot partition parsing
+
+This switches the kernel to parse the Redboot partitions
+in the SL93512r and the NAS4220B properly using the
+right compatible string instead of using hard-coded
+partitions.
+
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
+---
+ arch/arm/boot/dts/gemini-nas4220b.dts | 35 +++------------------------
+ arch/arm/boot/dts/gemini-sl93512r.dts | 35 +++------------------------
+ 2 files changed, 8 insertions(+), 62 deletions(-)
+
+--- a/arch/arm/boot/dts/gemini-nas4220b.dts
++++ b/arch/arm/boot/dts/gemini-nas4220b.dts
+@@ -81,37 +81,10 @@
+ 			/* 16MB of flash */
+ 			reg = <0x30000000 0x01000000>;
+ 
+-			partition at 0 {
+-				label = "RedBoot";
+-				reg = <0x00000000 0x00020000>;
+-				read-only;
+-			};
+-			partition at 20000 {
+-				label = "Kernel";
+-				reg = <0x00020000 0x00300000>;
+-			};
+-			partition at 320000 {
+-				label = "Ramdisk";
+-				reg = <0x00320000 0x00600000>;
+-			};
+-			partition at 920000 {
+-				label = "Application";
+-				reg = <0x00920000 0x00600000>;
+-			};
+-			partition at f20000 {
+-				label = "VCTL";
+-				reg = <0x00f20000 0x00020000>;
+-				read-only;
+-			};
+-			partition at f40000 {
+-				label = "CurConf";
+-				reg = <0x00f40000 0x000a0000>;
+-				read-only;
+-			};
+-			partition at fe0000 {
+-				label = "FIS directory";
+-				reg = <0x00fe0000 0x00020000>;
+-				read-only;
++			partitions {
++				compatible = "redboot-fis";
++				/* Eraseblock at 0xfe0000 */
++				fis-index-block = <0x1fc>;
+ 			};
+ 		};
+ 
+--- a/arch/arm/boot/dts/gemini-sl93512r.dts
++++ b/arch/arm/boot/dts/gemini-sl93512r.dts
+@@ -143,37 +143,10 @@
+ 			/* 16MB of flash */
+ 			reg = <0x30000000 0x01000000>;
+ 
+-			partition at 0 {
+-				label = "BOOT";
+-				reg = <0x00000000 0x00020000>;
+-				read-only;
+-			};
+-			partition at 120000 {
+-				label = "Kern";
+-				reg = <0x00020000 0x00300000>;
+-			};
+-			partition at 320000 {
+-				label = "Ramdisk";
+-				reg = <0x00320000 0x00600000>;
+-			};
+-			partition at 920000 {
+-				label = "Application";
+-				reg = <0x00920000 0x00600000>;
+-			};
+-			partition at f20000 {
+-				label = "VCTL";
+-				reg = <0x00f20000 0x00020000>;
+-				read-only;
+-			};
+-			partition at f40000 {
+-				label = "CurConf";
+-				reg = <0x00f40000 0x000a0000>;
+-				read-only;
+-			};
+-			partition at fe0000 {
+-				label = "FIS directory";
+-				reg = <0x00fe0000 0x00020000>;
+-				read-only;
++			partitions {
++				compatible = "redboot-fis";
++				/* Eraseblock at 0xfe0000 */
++				fis-index-block = <0x1fc>;
+ 			};
+ 		};
+ 
diff --git a/target/linux/gemini/patches-4.19/0023-ARM-dts-gemini-Mount-root-from-mtdblock3.patch b/target/linux/gemini/patches-4.19/0023-ARM-dts-gemini-Mount-root-from-mtdblock3.patch
new file mode 100644
index 000000000000..2c2ddfaaf45f
--- /dev/null
+++ b/target/linux/gemini/patches-4.19/0023-ARM-dts-gemini-Mount-root-from-mtdblock3.patch
@@ -0,0 +1,36 @@
+From b40cd2116ea0ba3584db12ab9dab7e02dd1e3333 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij at linaro.org>
+Date: Fri, 12 Jul 2019 22:59:39 +0200
+Subject: [PATCH 2/2] ARM: dts: gemini: Mount root from mtdblock3
+
+The third mtdblock device named "Application" is where we
+want to mount our root filesystem.
+
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
+---
+ arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
+ arch/arm/boot/dts/gemini-sl93512r.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/gemini-nas4220b.dts
++++ b/arch/arm/boot/dts/gemini-nas4220b.dts
+@@ -20,7 +20,7 @@
+ 	};
+ 
+ 	chosen {
+-		bootargs = "console=ttyS0,19200n8";
++		bootargs = "console=ttyS0,19200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
+ 		stdout-path = &uart0;
+ 	};
+ 
+--- a/arch/arm/boot/dts/gemini-sl93512r.dts
++++ b/arch/arm/boot/dts/gemini-sl93512r.dts
+@@ -24,7 +24,7 @@
+ 	};
+ 
+ 	chosen {
+-		bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait";
++		bootargs = "console=ttyS0,19200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
+ 		stdout-path = &uart0;
+ 	};
+ 
-- 
2.21.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list