mtd-utils: update to 1.3.1 to allow UBI support.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
This commit is contained in:
Enric Balletbo i Serra
2010-06-13 11:58:31 +02:00
committed by Joshua Lock
parent 1d22846b48
commit f594a1145e
3 changed files with 152 additions and 0 deletions

View File

@@ -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");

View File

@@ -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);

View File

@@ -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"