public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2)
@ 2005-01-07 11:00 Martin Egholm Nielsen
  2005-01-09 17:03 ` Craig Hughes
  0 siblings, 1 reply; 10+ messages in thread
From: Martin Egholm Nielsen @ 2005-01-07 11:00 UTC (permalink / raw)
  To: u-boot

Hi there,

Now I've gotten a bit further in my quest for getting JFFS2 images to 
work between U-Boot and Linux.
I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to the 
proper size. So, now I can succesfully put an image on the flash from 
U-Boot and "ls" it. (Thanks again for that...)

Further, if I erase the NAND from Linux and create some files/dir's, I 
can see them succesfully from U-Boot with "ls".
However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux cannot 
mount the device any longer:

# cd /tmp
# mkdir image
# cd image/
# echo "Test1" > testfile
# mkdir testdir
# echo "Test12" > testdir/testfile
# mkfs.jffs2 --pad --big-endian --root=. --output=../test20050107.jffs2

=> nand erase clean
=> tftp 100000 test20050107.jffs2
=> nand write.jffs2 100000 0 $(filesize)

=> ls
Scanning JFFS2 FS: . done.
  drwxr-xr-x        0 Tue Nov 30 17:45:59 2004 testdir
  -rw-r--r--        6 Tue Nov 30 17:45:45 2004 testfile
=> ls testdir
  -rw-r--r--        7 Tue Nov 30 17:45:59 2004 testfile

# mkdir /mnt
# mount -t jffs2 /dev/mtdblock0 /mnt
jffs2: Erase block size too small (16KiB). Using virtual blocks size 
(32KiB) instead
Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument

I have the following kernel configuration options concerning JFFS2:
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_NAND=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_JFFS2_LZO is not set
# CONFIG_JFFS2_LZARI is not set
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_JFFS2_PROC is not set

Are there anything else needed in order to support the way U-Boot writes 
an image?

Best regards,
  Martin Egholm

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-07 11:00 [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) Martin Egholm Nielsen
@ 2005-01-09 17:03 ` Craig Hughes
  2005-01-09 17:30   ` Allen Curtis
  0 siblings, 1 reply; 10+ messages in thread
From: Craig Hughes @ 2005-01-09 17:03 UTC (permalink / raw)
  To: u-boot

On Jan 7, 2005, at 3:00 AM, Martin Egholm Nielsen wrote:

> Hi there,
>
> Now I've gotten a bit further in my quest for getting JFFS2 images to 
> work between U-Boot and Linux.
> I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to 
> the proper size. So, now I can succesfully put an image on the flash 
> from U-Boot and "ls" it. (Thanks again for that...)
>
> Further, if I erase the NAND from Linux and create some files/dir's, I 
> can see them succesfully from U-Boot with "ls".
> However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux 
> cannot mount the device any longer:
>
> # cd /tmp
> # mkdir image
> # cd image/
> # echo "Test1" > testfile
> # mkdir testdir
> # echo "Test12" > testdir/testfile
> # mkfs.jffs2 --pad --big-endian --root=. --output=../test20050107.jffs2
>
> => nand erase clean
> => tftp 100000 test20050107.jffs2
> => nand write.jffs2 100000 0 $(filesize)
>
> => ls
> Scanning JFFS2 FS: . done.
>  drwxr-xr-x        0 Tue Nov 30 17:45:59 2004 testdir
>  -rw-r--r--        6 Tue Nov 30 17:45:45 2004 testfile
> => ls testdir
>  -rw-r--r--        7 Tue Nov 30 17:45:59 2004 testfile
>
> # mkdir /mnt
> # mount -t jffs2 /dev/mtdblock0 /mnt
> jffs2: Erase block size too small (16KiB). Using virtual blocks size 
> (32KiB) instead
> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 
> nodes
> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument

Martin, I noticed something similar recently when I upgraded kernels to 
a more recent one (not sure the exact version change), and it looked 
like actually the problem was that mtd-utils mkjffs2 tool was not 
agreeing with the kernel about how what the FS should look like, when 
dealing with entries which are both in the filetree being turned into 
the image, and also in a device_table.txt file (for example if you're 
specifying permission changes or ownership changes that way).  The 
mtdutils tool seemed to be creating 2 physical copies of the file in 
the root_fs (which massively increased its size), and marking one of 
the copies as "erased" or something but not actually removing it.  When 
the new kernel saw that, it borked.  I fixed the problem temporarily by 
just chmod'ing the files I wanted to change perms on before running 
mkjffs2 -- but a better fix would be to resolve the bug in the tool 
instead.  I haven't had a chance to do this yet.  Anyway, I think it's 
not u-boot's fault -- u-boot is actually being better than the kernel 
about reading a damaged JFFS2 fs, where the kernel refuses to.

C

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-09 17:03 ` Craig Hughes
@ 2005-01-09 17:30   ` Allen Curtis
  2005-01-09 18:32     ` Craig Hughes
  2005-01-10  8:50     ` [U-Boot-Users] " Martin Egholm Nielsen
  0 siblings, 2 replies; 10+ messages in thread
From: Allen Curtis @ 2005-01-09 17:30 UTC (permalink / raw)
  To: u-boot

Did you try upgrading to the latest MTD tools?

On Jan 9, 2005, at 9:03 AM, Craig Hughes wrote:

> On Jan 7, 2005, at 3:00 AM, Martin Egholm Nielsen wrote:
>
>> Hi there,
>>
>> Now I've gotten a bit further in my quest for getting JFFS2 images to 
>> work between U-Boot and Linux.
>> I upgraded to ELDK 3.1 and configured the CONFIG_JFFS2_NAND_SIZE to 
>> the proper size. So, now I can succesfully put an image on the flash 
>> from U-Boot and "ls" it. (Thanks again for that...)
>>
>> Further, if I erase the NAND from Linux and create some files/dir's, 
>> I can see them succesfully from U-Boot with "ls".
>> However, if I put a JFFS2-image on the NAND _from U-Boot_, Linux 
>> cannot mount the device any longer:
>>
>> # cd /tmp
>> # mkdir image
>> # cd image/
>> # echo "Test1" > testfile
>> # mkdir testdir
>> # echo "Test12" > testdir/testfile
>> # mkfs.jffs2 --pad --big-endian --root=. 
>> --output=../test20050107.jffs2
>>
>> => nand erase clean
>> => tftp 100000 test20050107.jffs2
>> => nand write.jffs2 100000 0 $(filesize)
>>
>> => ls
>> Scanning JFFS2 FS: . done.
>>  drwxr-xr-x        0 Tue Nov 30 17:45:59 2004 testdir
>>  -rw-r--r--        6 Tue Nov 30 17:45:45 2004 testfile
>> => ls testdir
>>  -rw-r--r--        7 Tue Nov 30 17:45:59 2004 testfile
>>
>> # mkdir /mnt
>> # mount -t jffs2 /dev/mtdblock0 /mnt
>> jffs2: Erase block size too small (16KiB). Using virtual blocks size 
>> (32KiB) instead
>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 
>> nodes
>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument
>
> Martin, I noticed something similar recently when I upgraded kernels 
> to a more recent one (not sure the exact version change), and it 
> looked like actually the problem was that mtd-utils mkjffs2 tool was 
> not agreeing with the kernel about how what the FS should look like, 
> when dealing with entries which are both in the filetree being turned 
> into the image, and also in a device_table.txt file (for example if 
> you're specifying permission changes or ownership changes that way).  
> The mtdutils tool seemed to be creating 2 physical copies of the file 
> in the root_fs (which massively increased its size), and marking one 
> of the copies as "erased" or something but not actually removing it.  
> When the new kernel saw that, it borked.  I fixed the problem 
> temporarily by just chmod'ing the files I wanted to change perms on 
> before running mkjffs2 -- but a better fix would be to resolve the bug 
> in the tool instead.  I haven't had a chance to do this yet.  Anyway, 
> I think it's not u-boot's fault -- u-boot is actually being better 
> than the kernel about reading a damaged JFFS2 fs, where the kernel 
> refuses to.
>
> C
>
>
>
> -------------------------------------------------------
> The SF.Net email is sponsored by: Beat the post-holiday blues
> Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
> It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-09 17:30   ` Allen Curtis
@ 2005-01-09 18:32     ` Craig Hughes
  2005-01-10  8:50     ` [U-Boot-Users] " Martin Egholm Nielsen
  1 sibling, 0 replies; 10+ messages in thread
From: Craig Hughes @ 2005-01-09 18:32 UTC (permalink / raw)
  To: u-boot

On Jan 9, 2005, at 9:30 AM, Allen Curtis wrote:

> Did you try upgrading to the latest MTD tools?

Yes, I did, and it made it break in a slightly different place, but 
still didn't work as long as I had an entry in device_table.txt which 
was an existing file or directory in the root_fs tree.

C

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-09 17:30   ` Allen Curtis
  2005-01-09 18:32     ` Craig Hughes
@ 2005-01-10  8:50     ` Martin Egholm Nielsen
  2005-01-10 20:15       ` Martin Egholm Nielsen
  1 sibling, 1 reply; 10+ messages in thread
From: Martin Egholm Nielsen @ 2005-01-10  8:50 UTC (permalink / raw)
  To: u-boot

> Did you try upgrading to the latest MTD tools?
I'm running with mkfs.jffs2 from ELDK 3.1 and tried a similar version on 
target - namely revision 1.42.

=== 8< 8< 8< ===
>>> # mount -t jffs2 /dev/mtdblock0 /mnt
>>> jffs2: Erase block size too small (16KiB). Using virtual blocks size 
>>> (32KiB) instead
>>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 
>>> nodes
>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument
>> Martin, I noticed something similar recently when I upgraded kernels 
>> to a more recent one (not sure the exact version change), and it 
>> looked like actually the problem was that mtd-utils mkjffs2 tool was 
>> not agreeing with the kernel about how what the FS should look like, 
>> when dealing with entries which are both in the filetree being turned 
>> into the image, and also in a device_table.txt file (for example if 
>> you're specifying permission changes or ownership changes that way).  
>> The mtdutils tool seemed to be creating 2 physical copies of the file 
>> in the root_fs (which massively increased its size), and marking one 
>> of the copies as "erased" or something but not actually removing it.  
>> When the new kernel saw that, it borked.  I fixed the problem 
>> temporarily by just chmod'ing the files I wanted to change perms on 
>> before running mkjffs2 -- but a better fix would be to resolve the bug 
>> in the tool instead.  I haven't had a chance to do this yet.  Anyway, 
But I have no such file. I'm just creating this simple root-filesystem...

But I'm getting some info from the Kernel at startup:

Scanning device for bad blocks
Bad eraseblock 1 at 0x00004000
Bad eraseblock 2 at 0x00008000
Bad eraseblock 3 at 0x0000c000
Bad eraseblock 4 at 0x00010000
Bad eraseblock 5 at 0x00014000
Bad eraseblock 6 at 0x00018000
Bad eraseblock 7 at 0x0001c000
Bad eraseblock 1600 at 0x01900000

Though I'm not sure what it means, or if has anything to do with this at 
all...

>> I think it's not u-boot's fault -- u-boot is actually being better 
>> than the kernel about reading a damaged JFFS2 fs, where the kernel 
>> refuses to.
Sounds resonable to assume yes - I just wondered whether U-Boot had some 
sophisticated way of writing the image to the nand, that required some 
specific kernel configuration.

BR,
  Martin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-10  8:50     ` [U-Boot-Users] " Martin Egholm Nielsen
@ 2005-01-10 20:15       ` Martin Egholm Nielsen
  2005-01-12 12:29         ` Pantelis Antoniou
  0 siblings, 1 reply; 10+ messages in thread
From: Martin Egholm Nielsen @ 2005-01-10 20:15 UTC (permalink / raw)
  To: u-boot

Hi again,

New information entered the scene: I tried another (identical) board 
today having none of the "Bad eraseblock" messages from my Linux kernel. 
And then everything worked!
Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad 
eraseblock" that the NAND presumable was born with... What do you think?

BR,
  Martin Egholm

>>>> # mount -t jffs2 /dev/mtdblock0 /mnt
>>>> jffs2: Erase block size too small (16KiB). Using virtual blocks size 
>>>> (32KiB) instead
>>>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 
>>>> nodes
>>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
>>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument
==== 8< 8< 8< ====
> But I'm getting some info from the Kernel at startup:
> Scanning device for bad blocks
> Bad eraseblock 1 at 0x00004000
> Bad eraseblock 2 at 0x00008000
> Bad eraseblock 3 at 0x0000c000
> Bad eraseblock 4 at 0x00010000
> Bad eraseblock 5 at 0x00014000
> Bad eraseblock 6 at 0x00018000
> Bad eraseblock 7 at 0x0001c000
> Bad eraseblock 1600 at 0x01900000

>>> I think it's not u-boot's fault -- u-boot is actually being better 
>>> than the kernel about reading a damaged JFFS2 fs, where the kernel 
>>> refuses to.
> Sounds resonable to assume yes - I just wondered whether U-Boot had some 
> sophisticated way of writing the image to the nand, that required some 
> specific kernel configuration.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-01-10 20:15       ` Martin Egholm Nielsen
@ 2005-01-12 12:29         ` Pantelis Antoniou
  2005-01-12 13:46           ` Martin Egholm Nielsen
  2005-02-16  7:35           ` Martin Egholm Nielsen
  0 siblings, 2 replies; 10+ messages in thread
From: Pantelis Antoniou @ 2005-01-12 12:29 UTC (permalink / raw)
  To: u-boot

Martin Egholm Nielsen wrote:
> Hi again,
> 
> New information entered the scene: I tried another (identical) board 
> today having none of the "Bad eraseblock" messages from my Linux kernel. 
> And then everything worked!
> Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad 
> eraseblock" that the NAND presumable was born with... What do you think?
> 
> BR,
>  Martin Egholm
> 
>>>>> # mount -t jffs2 /dev/mtdblock0 /mnt
>>>>> jffs2: Erase block size too small (16KiB). Using virtual blocks 
>>>>> size (32KiB) instead
>>>>> Cowardly refusing to erase blocks on filesystem with no valid JFFS2 
>>>>> nodes
>>>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
>>>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument
> 
> ==== 8< 8< 8< ====
> 
>> But I'm getting some info from the Kernel at startup:
>> Scanning device for bad blocks
>> Bad eraseblock 1 at 0x00004000
>> Bad eraseblock 2 at 0x00008000
>> Bad eraseblock 3 at 0x0000c000
>> Bad eraseblock 4 at 0x00010000
>> Bad eraseblock 5 at 0x00014000
>> Bad eraseblock 6 at 0x00018000
>> Bad eraseblock 7 at 0x0001c000
>> Bad eraseblock 1600 at 0x01900000
> 
> 
>>>> I think it's not u-boot's fault -- u-boot is actually being better 
>>>> than the kernel about reading a damaged JFFS2 fs, where the kernel 
>>>> refuses to.
>>
>> Sounds resonable to assume yes - I just wondered whether U-Boot had 
>> some sophisticated way of writing the image to the nand, that required 
>> some specific kernel configuration.
> 
> 
> 
> 
> -------------------------------------------------------
> The SF.Net email is sponsored by: Beat the post-holiday blues
> Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
> It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
> 
> 

NAND support is currently broken when bad blocks are present.

Will sent patches shortly dealing with the problems...

Regards

Pantelis

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable   in Linux? (Round 2)
  2005-01-12 12:29         ` Pantelis Antoniou
@ 2005-01-12 13:46           ` Martin Egholm Nielsen
  2005-02-16  7:35           ` Martin Egholm Nielsen
  1 sibling, 0 replies; 10+ messages in thread
From: Martin Egholm Nielsen @ 2005-01-12 13:46 UTC (permalink / raw)
  To: u-boot

>>>>>> # mount -t jffs2 /dev/mtdblock0 /mnt
>>>>>> jffs2: Erase block size too small (16KiB). Using virtual blocks 
>>>>>> size (32KiB) instead
>>>>>> Cowardly refusing to erase blocks on filesystem with no valid 
>>>>>> JFFS2 nodes
>>>>>> empty_blocks 0, bad_blocks 5, c->nr_blocks 2048
>>>>>> mount: Mounting /dev/mtdblock0 on /mnt failed: Invalid argument
>> New information entered the scene: I tried another (identical) board 
>> today having none of the "Bad eraseblock" messages from my Linux 
>> kernel. And then everything worked!
>> Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad 
>> eraseblock" that the NAND presumable was born with... What do you think?
>> ==== 8< 8< 8< ====
>>
>>> But I'm getting some info from the Kernel at startup:
>>> Scanning device for bad blocks
>>> Bad eraseblock 1 at 0x00004000
>>> Bad eraseblock 2 at 0x00008000
>>> Bad eraseblock 3 at 0x0000c000
>>> Bad eraseblock 4 at 0x00010000
>>> Bad eraseblock 5 at 0x00014000
>>> Bad eraseblock 6 at 0x00018000
>>> Bad eraseblock 7 at 0x0001c000
>>> Bad eraseblock 1600 at 0x01900000
> NAND support is currently broken when bad blocks are present.
> Will sent patches shortly dealing with the problems...
Aahaaa! That explains a bit (alot)! :-)
Is this also broken in U-Boot 1.1.2 or just CVS?
Any estimates on when - months? ;-)

Thanks for the super info!
  Martin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable   in Linux? (Round 2)
  2005-01-12 12:29         ` Pantelis Antoniou
  2005-01-12 13:46           ` Martin Egholm Nielsen
@ 2005-02-16  7:35           ` Martin Egholm Nielsen
  2005-02-16  9:34             ` Wolfgang Denk
  1 sibling, 1 reply; 10+ messages in thread
From: Martin Egholm Nielsen @ 2005-02-16  7:35 UTC (permalink / raw)
  To: u-boot

>> New information entered the scene: I tried another (identical) board 
>> today having none of the "Bad eraseblock" messages from my Linux 
>> kernel. And then everything worked!
>> Hence, my boardsupplier suggested that U-Boot "ignored" these "Bad 
>> eraseblock" that the NAND presumable was born with... What do you think?
=== 8< 8< 8< ===
Pantelis Antoniou wrote:
> NAND support is currently broken when bad blocks are present.
> Will sent patches shortly dealing with the problems...
Has these been submitted yet?

BR,
  Martin Egholm

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot-Users] Re: JFFS2 images written from U-Boot unusable in Linux? (Round 2)
  2005-02-16  7:35           ` Martin Egholm Nielsen
@ 2005-02-16  9:34             ` Wolfgang Denk
  0 siblings, 0 replies; 10+ messages in thread
From: Wolfgang Denk @ 2005-02-16  9:34 UTC (permalink / raw)
  To: u-boot

In message <cuusuk$ifd$1@sea.gmane.org> you wrote:
>
> Pantelis Antoniou wrote:
> > NAND support is currently broken when bad blocks are present.
> > Will sent patches shortly dealing with the problems...
> Has these been submitted yet?

No.

Best regards,

Wolfgang Denk

-- 
See us @ Embedded World, Nuremberg, Feb 22 - 24,  Hall 10.0 Booth 310
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
As in certain cults it is possible to kill a process if you know  its
true name.                      -- Ken Thompson and Dennis M. Ritchie

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-02-16  9:34 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-07 11:00 [U-Boot-Users] JFFS2 images written from U-Boot unusable in Linux? (Round 2) Martin Egholm Nielsen
2005-01-09 17:03 ` Craig Hughes
2005-01-09 17:30   ` Allen Curtis
2005-01-09 18:32     ` Craig Hughes
2005-01-10  8:50     ` [U-Boot-Users] " Martin Egholm Nielsen
2005-01-10 20:15       ` Martin Egholm Nielsen
2005-01-12 12:29         ` Pantelis Antoniou
2005-01-12 13:46           ` Martin Egholm Nielsen
2005-02-16  7:35           ` Martin Egholm Nielsen
2005-02-16  9:34             ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox