* mkfs.jffs2 buggy?
@ 2003-01-31 14:31 Holger Schurig
2003-01-31 15:49 ` George G. Davis
0 siblings, 1 reply; 3+ messages in thread
From: Holger Schurig @ 2003-01-31 14:31 UTC (permalink / raw)
To: linux-mtd
When I compile mkfs.jffs2 from CVS HEAD, I get the following errors:
mkfs.jffs2.c: In function `write_regular_file':
mkfs.jffs2.c:823: incompatible types in assignment
mkfs.jffs2.c: In function `write_symlink':
mkfs.jffs2.c:925: incompatible types in assignment
mkfs.jffs2.c: In function `write_pipe':
mkfs.jffs2.c:967: incompatible types in assignment
mkfs.jffs2.c: In function `write_special_file':
mkfs.jffs2.c:1007: incompatible types in assignment
Anyway, I somehow got it working, I think with a some older version.
$ mkfs.jffs2 -d rootfs -p 262144 -e 262144 -o /tftpboot/bdi/root.jffs2
and flash the result with
$ burner.py /tftpboot/bdi/root.jffs 0x140000
...
00440000: burning 262144 bytes to flash
00480000: reading 262144 bytes from flash (68.4 %)
00480000: erase flash
00480000: burning 262144 bytes to flash
004c0000: reading 262144 bytes from flash (73.7 %)
004c0000: erase flash
004c0000: burning 262144 bytes to flash
00500000: reading 262144 bytes from flash (78.9 %)
00500000: erase flash
00500000: burning 262144 bytes to flash
...
I get a strange error. Immediately after the flashing, I pressed reset and
booted into Linux. Then I see:
Probing flash at physical address 0x00000000 (32-bit buswidth)
Using buffer write method
Using static partition definition
Creating 3 MTD partitions on "Flash":
0x00000000-0x00040000 : "Bootloader"
0x00040000-0x00140000 : "Kernel"
0x00140000-0x02000000 : "Filesystem"
...
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
ffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0000: 0x6574
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0004: 0x665f
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0008: 0x6873
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c000c: 0x3030
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0010: 0x3030
instead
JFFS2: Erase block at 0x004c0000 is not formatted. It will be erased
Shouldn't a sector that has been freshly created by mkfs.jffs2 have the right
ID?
So, I re-flashed it again and looked at this address. At physically 0x4c0000 I
see
$ telnet bdi
bdi>mdb 0x004c0000
004c0000 : 85 19 03 20 0c 00 00 00 ... ....
004c0008 : b1 b0 1e e4 85 19 02 e0 ........
004c0010 : 03 09 00 00 16 a0 e5 91 ........
004c0018 : cb 02 00 00 38 00 00 00 ....8...
004c0020 : ed 81 00 00 00 00 00 00 ........
004c0028 : 24 1d 06 00 08 40 c3 3b $....@.;
004c0030 : 08 40 c3 3b 08 40 c3 3b .@.;.@.;
004c0038 : 00 70 03 00 bf 08 00 00 .p......
... and that looks like a valid ID.
And also in root.fs at file offset 0x380000 = 3670016 I can see this.
Am I doing something wrong? Maybe confusing physical and virtual addressed?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mkfs.jffs2 buggy?
2003-01-31 14:31 mkfs.jffs2 buggy? Holger Schurig
@ 2003-01-31 15:49 ` George G. Davis
2003-01-31 16:06 ` Holger Schurig
0 siblings, 1 reply; 3+ messages in thread
From: George G. Davis @ 2003-01-31 15:49 UTC (permalink / raw)
To: Holger Schurig; +Cc: linux-mtd
Holger Schurig wrote:
>
> When I compile mkfs.jffs2 from CVS HEAD, I get the following errors:
>
> mkfs.jffs2.c: In function `write_regular_file':
> mkfs.jffs2.c:823: incompatible types in assignment
> mkfs.jffs2.c: In function `write_symlink':
> mkfs.jffs2.c:925: incompatible types in assignment
> mkfs.jffs2.c: In function `write_pipe':
> mkfs.jffs2.c:967: incompatible types in assignment
> mkfs.jffs2.c: In function `write_special_file':
> mkfs.jffs2.c:1007: incompatible types in assignment
>
> Anyway, I somehow got it working, I think with a some older version.
>
> $ mkfs.jffs2 -d rootfs -p 262144 -e 262144 -o /tftpboot/bdi/root.jffs2
>
> and flash the result with
>
> $ burner.py /tftpboot/bdi/root.jffs 0x140000
> ...
> 00440000: burning 262144 bytes to flash
> 00480000: reading 262144 bytes from flash (68.4 %)
> 00480000: erase flash
> 00480000: burning 262144 bytes to flash
> 004c0000: reading 262144 bytes from flash (73.7 %)
> 004c0000: erase flash
> 004c0000: burning 262144 bytes to flash
> 00500000: reading 262144 bytes from flash (78.9 %)
> 00500000: erase flash
> 00500000: burning 262144 bytes to flash
> ...
>
> I get a strange error. Immediately after the flashing, I pressed reset and
> booted into Linux. Then I see:
>
> Probing flash at physical address 0x00000000 (32-bit buswidth)
> Using buffer write method
> Using static partition definition
> Creating 3 MTD partitions on "Flash":
> 0x00000000-0x00040000 : "Bootloader"
> 0x00040000-0x00140000 : "Kernel"
> 0x00140000-0x02000000 : "Filesystem"
> ...
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
> ffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0000: 0x6574
'At'
> instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0004: 0x665f
'b_'
> instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0008: 0x6873
'hs'
> instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c000c: 0x3030
'00'
> instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x004c0010: 0x3030
'00'
Hmm, is that interesting or merely a coincidence?
--
Regards,
George
> instead
> JFFS2: Erase block at 0x004c0000 is not formatted. It will be erased
>
> Shouldn't a sector that has been freshly created by mkfs.jffs2 have the right
> ID?
>
> So, I re-flashed it again and looked at this address. At physically 0x4c0000 I
> see
>
> $ telnet bdi
> bdi>mdb 0x004c0000
> 004c0000 : 85 19 03 20 0c 00 00 00 ... ....
> 004c0008 : b1 b0 1e e4 85 19 02 e0 ........
> 004c0010 : 03 09 00 00 16 a0 e5 91 ........
> 004c0018 : cb 02 00 00 38 00 00 00 ....8...
> 004c0020 : ed 81 00 00 00 00 00 00 ........
> 004c0028 : 24 1d 06 00 08 40 c3 3b $....@.;
> 004c0030 : 08 40 c3 3b 08 40 c3 3b .@.;.@.;
> 004c0038 : 00 70 03 00 bf 08 00 00 .p......
>
> ... and that looks like a valid ID.
>
> And also in root.fs at file offset 0x380000 = 3670016 I can see this.
>
> Am I doing something wrong? Maybe confusing physical and virtual addressed?
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mkfs.jffs2 buggy?
2003-01-31 15:49 ` George G. Davis
@ 2003-01-31 16:06 ` Holger Schurig
0 siblings, 0 replies; 3+ messages in thread
From: Holger Schurig @ 2003-01-31 16:06 UTC (permalink / raw)
To: George G. Davis; +Cc: linux-mtd
> > 0x6574
>
> 'At'
>
> > 0x665f
>
> 'b_'
>
> > 0x6873
>
> 'hs'
>
> > 0x3030
>
> '00'
>
> > 0x3030
>
> '00'
>
> Hmm, is that interesting or merely a coincidence?
I think this is a conincidence.
From my flash-tester I had in every sector a text like this:
bdi>mdb 0x00a00000
00a00000 : 74 65 73 74 5f 66 6c 61 test_fla
00a00008 : 73 68 3a 20 30 30 61 30 sh: 00a0
00a00010 : 30 30 30 30 ff ff ff ff 0000....
00a00018 : ff ff ff ff ff ff ff ff ........
bdi>mdb 0x00a00000
00a40000 : 74 65 73 74 5f 66 6c 61 test_fla
00a40008 : 73 68 3a 20 30 30 61 34 sh: 00a4
00a40010 : 30 30 30 30 ff ff ff ff 0000....
00a40018 : ff ff ff ff ff ff ff ff ........
I used this to make sure that each sector get's address indeed, and that no
overwrapping happens, e.g. by bad soldered address lines.
However, the found characters can't be from those sectors, so it looks very
much like a conincidence. My memory area looks, in the flash, currently like
this:
00000 40000 80000 c0000
00000000: used used used used
00100000: test jffs jffs jffs
00200000: jffs jffs jffs jffs
00300000: jffs jffs jffs jffs
00400000: jffs jffs jffs jffs
00500000: jffs jffs jffs jffs
00600000: jffs jffs jffs jffs
00700000: jffs jffs jffs jffs
00800000: jffs jffs jffs jffs
00900000: jffs jffs jffs test
00a00000: test test test test
00b00000: test test test test
00c00000: test test test test
00d00000: test test test test
00e00000: test test test test
00f00000: test test test test
01000000: test test test test
01100000: test test test test
01200000: test test test test
01300000: test test test test
01400000: test test test test
01500000: test test test test
01600000: test test test test
01700000: test test test test
01800000: test test test test
01900000: test test test test
01a00000: test test test test
01b00000: test test test test
01c00000: test test test test
01d00000: test test test test
01e00000: test test test test
01f00000: test test test test
test: means that a valid test mark like above has been found
jffs: means that in the first byte I found 0x85 and in the second 0x19
free: the whole page contained \xFF
used: the page contained other stuff
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-01-31 15:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-31 14:31 mkfs.jffs2 buggy? Holger Schurig
2003-01-31 15:49 ` George G. Davis
2003-01-31 16:06 ` Holger Schurig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox