From f594a1145eb5b952265a3fdf6b158ef41b148b12 Mon Sep 17 00:00:00 2001 From: Enric Balletbo i Serra Date: Sun, 13 Jun 2010 11:58:31 +0200 Subject: mtd-utils: update to 1.3.1 to allow UBI support. Signed-off-by: Enric Balletbo i Serra --- .../add-exclusion-to-mkfs-jffs2-git-2.patch | 101 +++++++++++++++++++++ ...size-64-and-writesize-4096-as-normal-nand.patch | 24 +++++ meta/packages/mtd/mtd-utils_1.3.1.bb | 27 ++++++ 3 files changed, 152 insertions(+) create mode 100644 meta/packages/mtd/mtd-utils-1.3.1/add-exclusion-to-mkfs-jffs2-git-2.patch create mode 100644 meta/packages/mtd/mtd-utils-1.3.1/add-oobsize-64-and-writesize-4096-as-normal-nand.patch create mode 100644 meta/packages/mtd/mtd-utils_1.3.1.bb (limited to 'meta/packages') diff --git a/meta/packages/mtd/mtd-utils-1.3.1/add-exclusion-to-mkfs-jffs2-git-2.patch b/meta/packages/mtd/mtd-utils-1.3.1/add-exclusion-to-mkfs-jffs2-git-2.patch new file mode 100644 index 0000000000..fb776fddce --- /dev/null +++ b/meta/packages/mtd/mtd-utils-1.3.1/add-exclusion-to-mkfs-jffs2-git-2.patch @@ -0,0 +1,101 @@ +--- /tmp/mkfs.jffs2.c 2009-01-11 15:28:41.000000000 +0100 ++++ git/mkfs.jffs2.c 2009-01-11 15:59:29.000000000 +0100 +@@ -100,6 +100,11 @@ + struct rb_node hardlink_rb; + }; + ++struct ignorepath_entry { ++ struct ignorepath_entry* next; /* Points to the next ignorepath element */ ++ char name[PATH_MAX]; /* Name of the entry */ ++}; ++static struct ignorepath_entry* ignorepath = 0; + struct rb_root hardlinks; + static int out_fd = -1; + static int in_fd = -1; +@@ -408,7 +413,7 @@ + char *hpath, *tpath; + struct dirent *dp, **namelist; + struct filesystem_entry *entry; +- ++ struct ignorepath_entry* element = ignorepath; + + if (lstat(hostpath, &sb)) { + perror_msg_and_die("%s", hostpath); +@@ -417,6 +422,15 @@ + entry = add_host_filesystem_entry(targetpath, hostpath, + sb.st_uid, sb.st_gid, sb.st_mode, 0, parent); + ++ while ( element ) { ++ if ( strcmp( element->name, targetpath ) == 0 ) { ++ printf( "Note: ignoring directories below '%s'\n", targetpath ); ++ return entry; ++ break; ++ } ++ element = element->next; ++ } ++ + n = scandir(hostpath, &namelist, 0, alphasort); + if (n < 0) { + perror_msg_and_die("opening directory %s", hostpath); +@@ -1453,6 +1467,7 @@ + {"root", 1, NULL, 'r'}, + {"pagesize", 1, NULL, 's'}, + {"eraseblock", 1, NULL, 'e'}, ++ {"ignore", 1, NULL, 'I'}, + {"output", 1, NULL, 'o'}, + {"help", 0, NULL, 'h'}, + {"verbose", 0, NULL, 'v'}, +@@ -1500,6 +1515,7 @@ + " -L, --list-compressors Show the list of the avaiable compressors\n" + " -t, --test-compression Call decompress and compare with the original (for test)\n" + " -n, --no-cleanmarkers Don't add a cleanmarker to every eraseblock\n" ++" -I, --ignore=PATH Ignore sub directory and file tree below PATH when recursing over the file system\n" + " -o, --output=FILE Output to FILE (default: stdout)\n" + " -l, --little-endian Create a little-endian filesystem\n" + " -b, --big-endian Create a big-endian filesystem\n" +@@ -1666,6 +1682,7 @@ + char *compr_name = NULL; + int compr_prior = -1; + int warn_page_size = 0; ++ struct ignorepath_entry* element = ignorepath; + + page_size = sysconf(_SC_PAGESIZE); + if (page_size < 0) /* System doesn't know so ... */ +@@ -1676,7 +1693,7 @@ + jffs2_compressors_init(); + + while ((opt = getopt_long(argc, argv, +- "D:d:r:s:o:qUPfh?vVe:lbp::nc:m:x:X:Lty:i:", long_options, &c)) >= 0) ++ "D:d:r:s:I:o:qUPfh?vVe:lbp::nc:m:x:X:Lty:i:", long_options, &c)) >= 0) + { + switch (opt) { + case 'D': +@@ -1700,6 +1717,28 @@ + warn_page_size = 0; /* set by user, so don't need to warn */ + break; + ++ case 'I': ++ printf( "Note: Adding '%s' to ignore Path\n", optarg ); ++ element = ignorepath; ++ if ( !ignorepath ) { ++ ignorepath = xmalloc( sizeof( struct ignorepath_entry ) ); ++ ignorepath->next = 0; ++ strcpy( &ignorepath->name[0], optarg ); ++ } else { ++ while ( element->next ) element = element->next; ++ element->next = xmalloc( sizeof( struct ignorepath_entry ) ); ++ element->next->next = 0; ++ strcpy( &element->next->name[0], optarg ); ++ } ++ printf( "--------- Dumping ignore path list ----------------\n" ); ++ element = ignorepath; ++ while ( element ) { ++ printf( " * '%s'\n", &element->name[0] ); ++ element = element->next; ++ } ++ printf( "---------------------------------------------------\n" ); ++ break; ++ + case 'o': + if (out_fd != -1) { + error_msg_and_die("output filename specified more than once"); diff --git a/meta/packages/mtd/mtd-utils-1.3.1/add-oobsize-64-and-writesize-4096-as-normal-nand.patch b/meta/packages/mtd/mtd-utils-1.3.1/add-oobsize-64-and-writesize-4096-as-normal-nand.patch new file mode 100644 index 0000000000..64f25f79e1 --- /dev/null +++ b/meta/packages/mtd/mtd-utils-1.3.1/add-oobsize-64-and-writesize-4096-as-normal-nand.patch @@ -0,0 +1,24 @@ +Index: git/nanddump.c +=================================================================== +--- git.orig/nanddump.c 2010-04-29 10:24:15.000000000 +0200 ++++ git/nanddump.c 2010-04-29 10:28:45.000000000 +0200 +@@ -210,6 +210,7 @@ + + /* Make sure device page sizes are valid */ + if (!(meminfo.oobsize == 128 && meminfo.writesize == 4096) && ++ !(meminfo.oobsize == 64 && meminfo.writesize == 4096) && + !(meminfo.oobsize == 64 && meminfo.writesize == 2048) && + !(meminfo.oobsize == 32 && meminfo.writesize == 1024) && + !(meminfo.oobsize == 16 && meminfo.writesize == 512) && +Index: git/nandwrite.c +=================================================================== +--- git.orig/nandwrite.c 2010-04-29 09:59:30.000000000 +0200 ++++ git/nandwrite.c 2010-04-29 10:27:51.000000000 +0200 +@@ -294,6 +294,7 @@ + if (!(meminfo.oobsize == 16 && meminfo.writesize == 512) && + !(meminfo.oobsize == 8 && meminfo.writesize == 256) && + !(meminfo.oobsize == 64 && meminfo.writesize == 2048) && ++ !(meminfo.oobsize == 64 && meminfo.writesize == 4096) && + !(meminfo.oobsize == 128 && meminfo.writesize == 4096)) { + fprintf(stderr, "Unknown flash (not normal NAND)\n"); + close(fd); diff --git a/meta/packages/mtd/mtd-utils_1.3.1.bb b/meta/packages/mtd/mtd-utils_1.3.1.bb new file mode 100644 index 0000000000..909b28b21c --- /dev/null +++ b/meta/packages/mtd/mtd-utils_1.3.1.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Tools for managing memory technology devices." +SECTION = "base" +DEPENDS = "zlib lzo e2fsprogs util-linux" +HOMEPAGE = "http://www.linux-mtd.infradead.org/" +LICENSE = "GPLv2" + +SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=v${PV} \ + file://add-exclusion-to-mkfs-jffs2-git-2.patch;patch=1 \ + file://fix-ignoreerrors-git.patch;patch=1 \ + file://add-oobsize-64-and-writesize-4096-as-normal-nand.patch;patch=1" + +S = "${WORKDIR}/git/" + +EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" + +do_install () { + oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} + install -d ${D}${includedir}/mtd/ + for f in ${S}/include/mtd/*.h; do + install -m 0644 $f ${D}${includedir}/mtd/ + done +} + +PARALLEL_MAKE = "" + +BBCLASSEXTEND = "native" +NATIVE_INSTALL_WORKS = "1" -- cgit v1.2.3