ath79: bsap18x0: specify FIS directory location in dts
authorTomasz Maciej Nowak <tmn505@gmail.com>
Tue, 7 Jun 2022 13:58:32 +0000 (15:58 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 24 Jun 2022 15:10:24 +0000 (17:10 +0200)
The redboot-fis parser has option to specify the location of FIS
directory, use that, instead of patching the parser to scan for it, and
specifying location in kernel config.

Tested-by: Brian Gonyer <bgonyer@gmail.com>
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi
target/linux/ath79/generic/config-default
target/linux/ath79/patches-5.10/408-mtd-redboot_partition_scan.patch [deleted file]
target/linux/ath79/patches-5.15/408-mtd-redboot_partition_scan.patch [deleted file]

index a6ad8e490abe85adcc81eff95ec2eb60997b073e..d7b961d8f6308797fb669a0fa31040957a667c9f 100644 (file)
@@ -86,6 +86,7 @@
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "redboot-fis";
+                       fis-index-block = <0xfd>;
                };
        };
 };
index 21e14aa3ab2a14cdb9e0a744043dfa5b119cdd88..f160cc8d0733c08b069600d42e9772cab4b58316 100644 (file)
@@ -13,7 +13,6 @@ CONFIG_IP17XX_PHY=y
 CONFIG_LEDS_RESET=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MICREL_PHY=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-3
 CONFIG_MTD_REDBOOT_PARTS=y
 CONFIG_MTD_SPLIT_EVA_FW=y
 CONFIG_PHY_AR7100_USB=y
diff --git a/target/linux/ath79/patches-5.10/408-mtd-redboot_partition_scan.patch b/target/linux/ath79/patches-5.10/408-mtd-redboot_partition_scan.patch
deleted file mode 100644 (file)
index e5b06e1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/drivers/mtd/parsers/redboot.c
-+++ b/drivers/mtd/parsers/redboot.c
-@@ -90,12 +90,18 @@ static int parse_redboot_partitions(stru
-       parse_redboot_of(master);
-+      buf = vmalloc(master->erasesize);
-+      if (!buf)
-+              return -ENOMEM;
-+
-+ restart:
-       if ( directory < 0 ) {
-               offset = master->size + directory * master->erasesize;
-               while (mtd_block_isbad(master, offset)) {
-                       if (!offset) {
-                       nogood:
-                               printk(KERN_NOTICE "Failed to find a non-bad block to check for RedBoot partition table\n");
-+                              vfree(buf);
-                               return -EIO;
-                       }
-                       offset -= master->erasesize;
-@@ -108,10 +114,6 @@ static int parse_redboot_partitions(stru
-                               goto nogood;
-               }
-       }
--      buf = vmalloc(master->erasesize);
--
--      if (!buf)
--              return -ENOMEM;
-       printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
-              master->name, offset);
-@@ -184,6 +186,11 @@ static int parse_redboot_partitions(stru
-       }
-       if (i == numslots) {
-               /* Didn't find it */
-+              if (offset + master->erasesize < master->size) {
-+                      /* not at the end of the flash yet, maybe next block :) */
-+                      directory++;
-+                      goto restart;
-+              }
-               printk(KERN_NOTICE "No RedBoot partition table detected in %s\n",
-                      master->name);
-               ret = 0;
diff --git a/target/linux/ath79/patches-5.15/408-mtd-redboot_partition_scan.patch b/target/linux/ath79/patches-5.15/408-mtd-redboot_partition_scan.patch
deleted file mode 100644 (file)
index 07c0a25..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/drivers/mtd/parsers/redboot.c
-+++ b/drivers/mtd/parsers/redboot.c
-@@ -90,12 +90,18 @@ static int parse_redboot_partitions(stru
-       parse_redboot_of(master);
-+      buf = vmalloc(master->erasesize);
-+      if (!buf)
-+              return -ENOMEM;
-+
-+ restart:
-       if (directory < 0) {
-               offset = master->size + directory * master->erasesize;
-               while (mtd_block_isbad(master, offset)) {
-                       if (!offset) {
- nogood:
-                               pr_notice("Failed to find a non-bad block to check for RedBoot partition table\n");
-+                              vfree(buf);
-                               return -EIO;
-                       }
-                       offset -= master->erasesize;
-@@ -108,10 +114,6 @@ nogood:
-                               goto nogood;
-               }
-       }
--      buf = vmalloc(master->erasesize);
--
--      if (!buf)
--              return -ENOMEM;
-       pr_notice("Searching for RedBoot partition table in %s at offset 0x%lx\n",
-                 master->name, offset);
-@@ -183,6 +185,12 @@ nogood:
-       }
-       if (i == numslots) {
-               /* Didn't find it */
-+              if (offset + master->erasesize < master->size) {
-+                      /* not at the end of the flash yet, maybe next block :) */
-+                      directory++;
-+                      goto restart;
-+              }
-+
-               pr_notice("No RedBoot partition table detected in %s\n",
-                         master->name);
-               ret = 0;