On Tue, Apr 02, 2024 at 10:54:06PM +0200, Christian Melki wrote:
> Not overly exciting.
> https://lists.infradead.org/pipermail/linux-mtd/2024-March/104058.html
> 
> * Fix options that changed from endis to wwo.
> 
> * Forward patchset, applies cleanly.

You forgot to remove the patches for the old version.

Michael

> 
> Signed-off-by: Christian Melki <christian.me...@t2data.com>
> ---
>  ...rkbad-new-util-to-mark-blocks-as-bad.patch | 158 ++++++++++++++++++
>  patches/mtd-utils-2.2.0/autogen.sh            |   1 +
>  patches/mtd-utils-2.2.0/series                |   4 +
>  rules/mtd-utils.make                          |   8 +-
>  4 files changed, 167 insertions(+), 4 deletions(-)
>  create mode 100644 
> patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
>  create mode 120000 patches/mtd-utils-2.2.0/autogen.sh
>  create mode 100644 patches/mtd-utils-2.2.0/series
> 
> diff --git 
> a/patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
>  
> b/patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
> new file mode 100644
> index 000000000..e6ff202a7
> --- /dev/null
> +++ 
> b/patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
> @@ -0,0 +1,158 @@
> +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koe...@pengutronix.de>
> +Date: Wed, 30 Aug 2017 13:31:46 +0200
> +Subject: [PATCH] nandmarkbad: new util to mark blocks as bad
> +
> +---
> + nand-utils/Makemodule.am |   5 +-
> + nand-utils/nandmarkbad.c | 119 
> +++++++++++++++++++++++++++++++++++++++++++++++
> + 2 files changed, 123 insertions(+), 1 deletion(-)
> + create mode 100644 nand-utils/nandmarkbad.c
> +
> +diff --git a/nand-utils/Makemodule.am b/nand-utils/Makemodule.am
> +index cee677783e7a..7fd1de5aa9ae 100644
> +--- a/nand-utils/Makemodule.am
> ++++ b/nand-utils/Makemodule.am
> +@@ -7,6 +7,9 @@ nandwrite_LDADD = libmtd.a
> + nandtest_SOURCES = nand-utils/nandtest.c
> + nandtest_LDADD = libmtd.a
> + 
> ++nandmarkbad_SOURCES = nand-utils/nandmarkbad.c
> ++nandmarkbad_LDADD = libmtd.a
> ++
> + nftldump_SOURCES = nand-utils/nftldump.c include/mtd_swab.h
> + nftldump_SOURCES += include/mtd/nftl-user.h include/mtd/ftl-user.h
> + nftldump_LDADD = libmtd.a
> +@@ -23,7 +26,7 @@ NAND_SH = \
> + 
> + EXTRA_DIST += $(NAND_SH)
> + 
> +-sbin_PROGRAMS += nanddump nandwrite nandtest nftldump nftl_format 
> nandflipbits
> ++sbin_PROGRAMS += nanddump nandwrite nandtest nandmarkbad nftldump 
> nftl_format nandflipbits
> + 
> + if BUILD_TESTS
> + test_SCRIPTS += $(NAND_SH)
> +diff --git a/nand-utils/nandmarkbad.c b/nand-utils/nandmarkbad.c
> +new file mode 100644
> +index 000000000000..cf05698c3609
> +--- /dev/null
> ++++ b/nand-utils/nandmarkbad.c
> +@@ -0,0 +1,119 @@
> ++#define PROGRAM_NAME "nandmarkbad"
> ++
> ++#include <stdio.h>
> ++#include <stdlib.h>
> ++#include <unistd.h>
> ++#include <getopt.h>
> ++
> ++#include "common.h"
> ++#include <libmtd.h>
> ++
> ++static void usage(int status)
> ++{
> ++    fprintf(status ? stderr : stdout,
> ++            "usage: %s [OPTIONS] <device>\n\n"
> ++            "  -b, --markbad=blockno        Mark block bad\n"
> ++            "  -h, --help                   Display this help and exit\n"
> ++            "  -V, --version                Output version information and 
> exit\n"
> ++            "  -y, --i-know-what-i-do       really do mark blocks as bad\n",
> ++            PROGRAM_NAME);
> ++    exit(status);
> ++}
> ++
> ++/*
> ++ * Main program
> ++ */
> ++int main(int argc, char **argv)
> ++{
> ++    loff_t mark_bad[32];
> ++    unsigned cnt_bad = 0;
> ++    struct mtd_dev_info mtd;
> ++    libmtd_t mtd_desc;
> ++    int fd;
> ++    int error = 0;
> ++    int ret;
> ++    unsigned int i;
> ++    int iknowwhatido = 0;
> ++
> ++    for (;;) {
> ++            static const char short_options[] = "b:hVy";
> ++            static const struct option long_options[] = {
> ++                    { "help", no_argument, 0, 'h' },
> ++                    { "markbad", required_argument, 0, 'b' },
> ++                    { "version", no_argument, 0, 'V'},
> ++                    { "i-know-what-i-do", no_argument, 0, 'y' },
> ++                    {0, 0, 0, 0},
> ++            };
> ++            int option_index = 0;
> ++            int c = getopt_long(argc, argv, short_options, long_options,
> ++                                &option_index);
> ++            if (c == EOF)
> ++                    break;
> ++
> ++            switch (c) {
> ++            case '?':
> ++                    usage(EXIT_FAILURE);
> ++                    break;
> ++
> ++            case 'b':
> ++                    if (cnt_bad < ARRAY_SIZE(mark_bad)) {
> ++                            mark_bad[cnt_bad] =
> ++                                    simple_strtoll(optarg, &error);
> ++                            ++cnt_bad;
> ++                    } else {
> ++                            errmsg_die("Can't handle so many bad blocks\n");
> ++                    }
> ++
> ++                    break;
> ++
> ++            case 'h':
> ++                    usage(EXIT_SUCCESS);
> ++                    break;
> ++
> ++            case 'V':
> ++                    common_print_version();
> ++                    return EXIT_SUCCESS;
> ++
> ++            case 'y':
> ++                    iknowwhatido = 1;
> ++                    break;
> ++            }
> ++    }
> ++
> ++    argc -= optind;
> ++    argv += optind;
> ++
> ++    if (error)
> ++            usage(EXIT_FAILURE);
> ++
> ++    if (argc != 1)
> ++            errmsg_die("You must specify a device to operate on\n");
> ++
> ++    if (!cnt_bad)
> ++            errmsg_die("You must specify at least one block to mark bad\n");
> ++
> ++    if (!iknowwhatido)
> ++            errmsg_die(PROGRAM_NAME " does things that are hard to undo.\n"
> ++                       "\tPlease convince yourself you understand the 
> risks,\n"
> ++                       "\tthen add --i-know-what-i-do to the options.\n");
> ++
> ++    fd = open(argv[0], O_RDWR);
> ++    if (fd < 0)
> ++            sys_errmsg_die("Failed to open mtd device\n");
> ++
> ++    mtd_desc = libmtd_open();
> ++    if (!mtd_desc)
> ++            errmsg_die("Can't initialize libmtd");
> ++
> ++    if (mtd_get_dev_info(mtd_desc, argv[0], &mtd) < 0)
> ++            errmsg_die("mtd_get_dev_info failed");
> ++
> ++    for (i = 0; i < cnt_bad; ++i) {
> ++            ret = mtd_mark_bad(&mtd, fd, mark_bad[i]);
> ++            if (ret)
> ++                    sys_errmsg_die("%s: MTD Mark bad block failure",
> ++                                   argv[0]);
> ++    }
> ++
> ++    return EXIT_SUCCESS;
> ++}
> diff --git a/patches/mtd-utils-2.2.0/autogen.sh 
> b/patches/mtd-utils-2.2.0/autogen.sh
> new file mode 120000
> index 000000000..9f8a4cb7d
> --- /dev/null
> +++ b/patches/mtd-utils-2.2.0/autogen.sh
> @@ -0,0 +1 @@
> +../autogen.sh
> \ No newline at end of file
> diff --git a/patches/mtd-utils-2.2.0/series b/patches/mtd-utils-2.2.0/series
> new file mode 100644
> index 000000000..92dc1b94f
> --- /dev/null
> +++ b/patches/mtd-utils-2.2.0/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
> +# 407ded52b82ffa3ff91d50cf6b2388e0  - git-ptx-patches magic
> diff --git a/rules/mtd-utils.make b/rules/mtd-utils.make
> index bef25b9ab..9722c20a5 100644
> --- a/rules/mtd-utils.make
> +++ b/rules/mtd-utils.make
> @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_MTD_UTILS) += mtd-utils
>  #
>  # Paths and names
>  #
> -MTD_UTILS_VERSION    := 2.1.6
> -MTD_UTILS_MD5                := 2851d4b13e5c1cf9415f76102a34d623
> +MTD_UTILS_VERSION    := 2.2.0
> +MTD_UTILS_MD5                := 35d71328107c54068c8df5a3b980c06e
>  MTD_UTILS            := mtd-utils-$(MTD_UTILS_VERSION)
>  MTD_UTILS_SUFFIX     := tar.bz2
>  MTD_UTILS_URL                := 
> https://infraroot.at/pub/mtd/$(MTD_UTILS).$(MTD_UTILS_SUFFIX)
> @@ -35,9 +35,9 @@ MTD_UTILS_CONF_OPT  := \
>       $(CROSS_AUTOCONF_USR) \
>       --disable-unit-tests \
>       $(GLOBAL_LARGE_FILE_OPTION) \
> -     --$(call ptx/endis,PTXCONF_MTD_UTILS_TESTS)-tests \
> +     --$(call ptx/wwo,PTXCONF_MTD_UTILS_TESTS)-tests \
>       --$(call ptx/endis,PTXCONF_MTD_UTILS_UBIHEALTHD)-ubihealthd \
> -     --$(call ptx/endis, PTXCONF_MTD_UTILS_LSMTD)-lsmtd \
> +     --$(call ptx/wwo, PTXCONF_MTD_UTILS_LSMTD)-lsmtd \
>       --$(call ptx/wwo, PTXCONF_MTD_UTILS_JFFS)-jffs \
>       --$(call ptx/wwo, PTXCONF_MTD_UTILS_UBIFS)-ubifs \
>       --without-xattr \
> -- 
> 2.34.1
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Reply via email to