gemini: Fix up flash accesses
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 17 Jul 2019 17:22:40 +0000 (19:22 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 17 Aug 2019 14:57:32 +0000 (16:57 +0200)
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@linaro.org>
target/linux/gemini/patches-4.19/0022-RM-dts-gemini-Switch-to-redboot-partition-parsing.patch [new file with mode: 0644]
target/linux/gemini/patches-4.19/0023-ARM-dts-gemini-Mount-root-from-mtdblock3.patch [new file with mode: 0644]

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 (file)
index 0000000..12c899e
--- /dev/null
@@ -0,0 +1,104 @@
+From cad2161e64aca9e1c94fd11b0d0f7b53c9e80de0 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@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@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@0 {
+-                              label = "RedBoot";
+-                              reg = <0x00000000 0x00020000>;
+-                              read-only;
+-                      };
+-                      partition@20000 {
+-                              label = "Kernel";
+-                              reg = <0x00020000 0x00300000>;
+-                      };
+-                      partition@320000 {
+-                              label = "Ramdisk";
+-                              reg = <0x00320000 0x00600000>;
+-                      };
+-                      partition@920000 {
+-                              label = "Application";
+-                              reg = <0x00920000 0x00600000>;
+-                      };
+-                      partition@f20000 {
+-                              label = "VCTL";
+-                              reg = <0x00f20000 0x00020000>;
+-                              read-only;
+-                      };
+-                      partition@f40000 {
+-                              label = "CurConf";
+-                              reg = <0x00f40000 0x000a0000>;
+-                              read-only;
+-                      };
+-                      partition@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@0 {
+-                              label = "BOOT";
+-                              reg = <0x00000000 0x00020000>;
+-                              read-only;
+-                      };
+-                      partition@120000 {
+-                              label = "Kern";
+-                              reg = <0x00020000 0x00300000>;
+-                      };
+-                      partition@320000 {
+-                              label = "Ramdisk";
+-                              reg = <0x00320000 0x00600000>;
+-                      };
+-                      partition@920000 {
+-                              label = "Application";
+-                              reg = <0x00920000 0x00600000>;
+-                      };
+-                      partition@f20000 {
+-                              label = "VCTL";
+-                              reg = <0x00f20000 0x00020000>;
+-                              read-only;
+-                      };
+-                      partition@f40000 {
+-                              label = "CurConf";
+-                              reg = <0x00f40000 0x000a0000>;
+-                              read-only;
+-                      };
+-                      partition@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 (file)
index 0000000..2c2ddfa
--- /dev/null
@@ -0,0 +1,36 @@
+From b40cd2116ea0ba3584db12ab9dab7e02dd1e3333 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@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@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;
+       };