Welcome! Log In Create A New Profile

Advanced

2017.07- 2024.10 U-Boot Kirkwood

Posted by bodhi 
I still believe there is something not right about the fsload command in the 2014.07 uBoot for the Pogoplug E02. None of the fs commands that access the flash work -- they all put the uBoot into an infinite loop printing "get_fl_mem: unknown device type, using raw offset!" that I've only been able to remedy by power cycling the device. The fsinfo command does the same thing, although the nand commands seem to work. Unless it is a specific problem with my Plug, I suspect a uBoot misconfiguration (perhaps due to the fact that the E02 only has half the NAND memory that most ARM boards have?).

Can anyone confirm that the 2014.07 fsload works OK on their E02?
bodhi Wrote:
-------------------------------------------------------
> fsload does work. graymanforhire reported that it
> works in the Pogoplug V4 chainloading the stock
> u-boot from NAND rootfs. I believe it did for me,
> but I would have to retry to know for sure (my
> boxes have never failed to boot because of bad
> rootfs, I have to purposely cause it). The error
> you saw perhaps has something to do with that
> specific NAND partition. Have you tried to mount
> it in Debian?

FYI - the PPV4 uses UBI (ubifsload) versus JFFS2 on the E02 so I haven't personally tested fsload. I'm still using Jeff's uBoot on my E02 and haven't found a reason to upgrade yet.
grayman4hire

> FYI - the PPV4 uses UBI (ubifsload) versus JFFS2
> on the E02 so I haven't personally tested fsload.
> I'm still using Jeff's uBoot on my E02 and haven't
> found a reason to upgrade yet.

Ah! thanks for that gray! I've since verified that fsload loads the dockstar orginal u-boot image just fine on my Dockstar. I will try the Pogo E02 shortly.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
@restamp,

> Can anyone confirm that the 2014.07 fsload
> works OK on their E02?

I've just run a test and got the same errors! so I think you're right. It does seem to be an issue with u-boot configuration regarding this jffs2 partition.

UPDATE:

I've just peeked at the code (difference between Dockstar and Pogo E02). Yes, there was a missing configuration for jffs2 in Pogo E02 u-boot! I will add this in the next release.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 03/30/2015 06:05PM by bodhi.
Thanks, bodhi, we ought to double your salary!
Ok, thanks boss :)

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
TEN/restamp et al,


If you happen to have an unmodded Pogo E02, and with serial console connected, could you capture a serial boot log and post here? The boot log should be from the time u-boot starts until the Pogo OS login prompt.

Thanks!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Sorry, bodhi, I don't have a completely unmodded system.



Edited 2 time(s). Last edit at 04/01/2015 06:36PM by restamp.
Bodhi, here is the chain-loaded boot sequence, which I think would be very close to what you'd see on an unmodded system. The chained uBoot is the original, and the NAND OS is original except that /etc/init.d/hbmgr.sh has been disabled.
U-Boot 2014.07-tld-2 (Sep 20 2014 - 00:52:18)
Pogo E02

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
PogoE02> run usb_init
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
PogoE02> ext2load usb 0:1 0x800000 /boot/uboot-original-mtd0.kwb
524288 bytes read in 332 ms (1.5 MiB/s)
PogoE02> go 0x800200
## Starting application at 0x00800200 ...


U-Boot 1.1.4 (Sep 28 2009 - 11:55:23) Cloud Engines v2.0 (3.4.16)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 00690D60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB
DRAM Total size 256MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:128 MB

CPU : Marvell Feroceon (Rev 1)
CLOUD ENGINES BOARD: PPV2

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x100000, size 0x200000

Reading data from 0x2ff800 -- 100% complete.
 2097152 bytes read: OK
## Booting image at 00800000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2009-08-10  19:57:40 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1977716 Bytes =  1.9 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................................................ done, booting the kernel.
[    0.000000] Linux version 2.6.22.18 (bdietrich@brad-ux) (gcc version 4.2.1) #44 Mon Aug 10 12:57:36 PDT 2009
[    0.000000] CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177
[    0.000000] Machine: Feroceon-KW
[    0.000000] Using UBoot passing parameters structure
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU0: D VIVT write-back cache
[    0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] Built 1 zonelists.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 ro
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.010000] Memory: 256MB 0MB 0MB 0MB = 256MB total
[    0.010000] Memory: 255872KB available (3592K code, 252K data, 120K init)
[    0.250000] Mount-cache hash table entries: 512
[    0.250000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.250000]
[    0.250000] CPU Interface
[    0.250000] -------------
[    0.250000] SDRAM_CS0 ....base 00000000, size 256MB
[    0.250000] SDRAM_CS1 ....disable
[    0.250000] SDRAM_CS2 ....disable
[    0.250000] SDRAM_CS3 ....disable
[    0.250000] PEX0_MEM ....base e8000000, size 128MB
[    0.250000] PEX0_IO ....base f2000000, size   1MB
[    0.250000] INTER_REGS ....base f1000000, size   1MB
[    0.250000] NFLASH_CS ....base fa000000, size   2MB
[    0.250000] SPI_CS ....base f4000000, size  16MB
[    0.250000] BOOT_ROM_CS ....no such
[    0.250000] DEV_BOOTCS ....no such
[    0.250000] CRYPT_ENG ....base f0000000, size   2MB
[    0.250000]
[    0.250000]   Marvell Development Board (LSP Version KW_LSP_4.2.7_patch21)-- SHEEVA PLUG  Soc: 88F6281 A0 LE
[    0.250000]
[    0.250000]  Detected Tclk 200000000 and SysClk 400000000
[    0.250000] MV Buttons Device Load
[    0.250000] Marvell USB EHCI Host controller #0: c0650600
[    0.750000] PEX0 interface detected no Link.
[    0.750000] PCI: bus0: Fast back to back transfers enabled
[    0.750000] SCSI subsystem initialized
[    0.750000] usbcore: registered new interface driver usbfs
[    0.750000] usbcore: registered new interface driver hub
[    0.750000] usbcore: registered new device driver usb
[    0.750000] NET: Registered protocol family 2
[    0.760000] Time: kw_clocksource clocksource has been installed.
[    0.850000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.850000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.850000] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.850000] TCP: Hash tables configured (established 8192 bind 8192)
[    0.850000] TCP reno registered
[    0.880000] RTC has been updated!!!
[    0.880000] RTC registered
[    0.880000] Use the XOR engines (acceleration) for enhancing the following functions:
[    0.880000]   o RAID 5 Xor calculation
[    0.880000]   o kernel memcpy
[    0.880000]   o kenrel memzero
[    0.880000] Number of XOR engines to use: 4
[    0.880000] cesadev_init(c00116b4)
[    0.880000] mvCesaInit: sessions=640, queue=64, pSram=f0000000
[    0.880000] MV Buttons Driver Load
[    0.880000] squashfs: version 3.3 (2007/10/31) Phillip Lougher
[    0.880000] squashfs: LZMA suppport for slax.org by jro
[    0.880000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.880000] io scheduler noop registered
[    0.880000] io scheduler anticipatory registered (default)
[    0.900000] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[    0.900000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
[    0.910000] serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A
[    0.920000] RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
[    0.930000] Loading Marvell Ethernet Driver:
[    0.940000]   o Cached descriptors in DRAM
[    0.940000]   o DRAM SW cache-coherency
[    0.940000]   o Single RX Queue support - ETH_DEF_RXQ=0
[    0.950000]   o Single TX Queue support - ETH_DEF_TXQ=0
[    0.950000]   o TCP segmentation offload enabled
[    0.960000]   o Receive checksum offload enabled
[    0.960000]   o Transmit checksum offload enabled
[    0.970000]   o Network Fast Processing (Routing) supported
[    0.970000]   o Driver ERROR statistics enabled
[    0.980000]   o Driver INFO statistics enabled
[    0.980000]   o Proc tool API enabled
[    0.990000]   o Rx descripors: q0=128
[    0.990000]   o Tx descripors: q0=532
[    0.990000]   o Loading network interface(s):
[    1.000000]     o eth0, ifindex = 1, GbE port = 0
[    1.010000]     o eth1, ifindex = 2, GbE port = 1
[    1.010000]
[    1.010000] mvFpRuleDb (cf8c2000): 2048 entries, 8192 bytes
[    1.020000] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI
[    1.030000] Copyright (c) 1999-2006 Intel Corporation.
[    1.030000] e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
[    1.040000] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.040000]
[    1.040000] Warning Sata is Powered Off
[    1.050000] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
[    1.060000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
[    1.070000] Scanning device for bad blocks
[    1.090000] Bad eraseblock 472 at 0x03b00000
[    1.120000] Using static partition definition
[    1.130000] Creating 4 MTD partitions on "nand_mtd":
[    1.130000] 0x00000000-0x00100000 : "u-boot"
[    1.140000] 0x00100000-0x00500000 : "uImage"
[    1.140000] 0x00500000-0x02500000 : "root"
[    1.150000] 0x02500000-0x08000000 : "data"
[    1.150000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
[    1.160000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
[    1.200000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100
[    1.220000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[    1.220000] usb usb1: configuration #1 chosen from 1 choice
[    1.230000] hub 1-0:1.0: USB hub found
[    1.230000] hub 1-0:1.0: 1 port detected
[    1.350000] USB Universal Host Controller Interface driver v3.0
[    1.630000] usb 1-1: new high speed USB device using ehci_marvell and address 2
[    1.780000] usb 1-1: configuration #1 chosen from 1 choice
[    1.780000] hub 1-1:1.0: USB hub found
[    1.790000] hub 1-1:1.0: 4 ports detected
[    2.140000] usb 1-1.1: new high speed USB device using ehci_marvell and address 3
[    2.240000] usb 1-1.1: configuration #1 chosen from 1 choice
[    2.240000] usbcore: registered new interface driver usblp
[    2.250000] drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
[    2.260000] Initializing USB Mass Storage driver...
[    2.260000] scsi0 : SCSI emulation for USB Mass Storage devices
[    2.270000] usbcore: registered new interface driver usb-storage
[    2.270000] USB Mass Storage support registered.
[    2.280000] mice: PS/2 mouse device common for all mice
[    2.280000] i2c /dev entries driver
[    2.290000] Linux telephony interface: v1.00
[    2.290000] md: linear personality registered for level -1
[    2.300000] md: raid0 personality registered for level 0
[    2.300000] md: raid1 personality registered for level 1
[    2.480000] raid6: int32x1     97 MB/s
[    2.650000] raid6: int32x2    114 MB/s
[    2.820000] raid6: int32x4    122 MB/s
[    2.990000] raid6: int32x8    110 MB/s
[    2.990000] raid6: using algorithm int32x4 (122 MB/s)
[    2.990000] md: raid6 personality registered for level 6
[    3.000000] md: raid5 personality registered for level 5
[    3.000000] md: raid4 personality registered for level 4
[    3.010000] raid5: measuring checksumming speed
[    3.060000]    arm4regs  :  1084.000 MB/sec
[    3.110000]    8regs     :   754.800 MB/sec
[    3.160000]    32regs    :   890.400 MB/sec
[    3.160000] raid5: using function: arm4regs (1084.000 MB/sec)
[    3.170000] device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
[    3.170000] dm_crypt using the OCF package.
[    3.180000] sdhci: Secure Digital Host Controller Interface driver
[    3.180000] sdhci: Copyright(c) Pierre Ossman
[    3.190000] usbcore: registered new interface driver usbhid
[    3.190000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    3.200000] TCP cubic registered
[    3.200000] NET: Registered protocol family 1
[    3.210000] NET: Registered protocol family 17
[    3.210000] md: Autodetecting RAID arrays.
[    3.220000] md: autorun ...
[    3.220000] md: ... autorun DONE.
[    6.440000] Empty flash at 0x009ac208 ends at 0x009ac800
[    7.060000] VFS: Mounted root (jffs2 filesystem) readonly.
[    7.070000] Freeing init memory: 120K
[    7.800000] scsi 0:0:0:0: Direct-Access     hp       v165p            1638 PQ: 0 ANSI: 4
[    7.830000] sd 0:0:0:0: [sda] 31950720 512-byte hardware sectors (16359 MB)
[    7.860000] sd 0:0:0:0: [sda] Write Protect is off
[    7.860000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    7.910000] sd 0:0:0:0: [sda] 31950720 512-byte hardware sectors (16359 MB)
[    7.920000] sd 0:0:0:0: [sda] Write Protect is off
[    7.920000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    7.930000]  sda: sda1 sda2 sda3
[    7.940000] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    8.010000] sd 0:0:0:0: Attached scsi generic sg0 type 0
init started: BusyBox v1.7.0 (2008-02-26 19:25:17 IST)
starting pid 287, tty '': '/etc/init.d/rcS'
[    9.260000] eth0: link down
[    9.260000] eth0: started
udhcpc (v1.7.0) started
HWADDR 00 0x25 0x31 0x00 0xc0 0x30
PIP0 192
PIP1 48
Sending discover...
[   10.950000] eth0: link up, full duplex, speed 100 Mbps
Sending discover...
Sending discover...
HWADDR 00 0x25 0x31 0x00 0xc0 0x30
PIP0 192
PIP1 48
Unexpected Argument: leasefail
interface=eth0
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PWD=/
SHLVL=1
HOME=/
_=/bin/printenv
No lease, forking to background
starting pid 332, tty '': '/bin/sh'
-sh-3.2#
Thanks restamp,

Arrg.. Pogo E02 seems to have different kernel versions. This might be the reason that sometime users have problem booting back to the stock OS.

My Pogo E02 has a different kernel. This kernel behaves badly when I chainload it:

Quote

Linux version 2.6.22.18 (bdietrich@buildman) (gcc version 4.2.1) #81 Tue Oct 19 16:05:00 PDT 2010

Errors in mounting rootfs. This error repeats in an infinite loop
[    8.170000] VFS: Mounted root (jffs2 filesystem) readonly.
[    8.170000] Freeing init memory: 124K
[    8.600000] JFFS2 compression type 0x07 not available.
[    8.600000] Error: jffs2_decompress returned -5

The strange thing is that this compression is LZO. And LZO is what my new u-boot uses to load the original u-boot from NAND partition, where the rootfs is :)

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Quote
bodhi
I've just peeked at the code (difference between Dockstar and Pogo E02). Yes, there was a missing configuration for jffs2 in Pogo E02 u-boot! I will add this in the next release.
Feel free to take a cascade like mine in http://archlinuxarm.org/forum/viewtopic.php?f=30&t=8383#p46069 to automagically fall back to each of the various possible USB and NAND OSs from your default environment (incl. enhancements you'll probably add to autoboot even FDT method 4a without manual intervention as well).

Quote
bodhi
TEN/restamp et al, If you happen to have an unmodded Pogo E02, and with serial console connected
I just reached another E02 some 400km from the first and carried over my config (mceusb, lcdproc, iptables) of your great 3.16 within mere minutes, but unfortunately this was possible only because it already had a replacement mtd0 too:
U-Boot 2011.12 (Feb 20 2012 - 21:21:59)
installed between end of 2012 and about a year ago (neither fsload nor netconsole in the env).
BTW could it be that the installer for this one (probably Jeff's first) in copying only
524288 2000-01-01 01:21 uboot-original-mtd0.kwb
to mtdblock2 doesn't preserve the original environment's cesvcid=Q........................... and ceboardver=PPV2 either (like http://archlinuxarm.org/forum/viewtopic.php?f=23&t=8637&start=10#p46201) ?
Probably required if anyone ever has to install the cloud service within Debian again (as described at http://blog.qnology.com/2013/03/tutorial-pogoplug-e02-with-arch-linux.html as "Re-install my.pogoplug.com service (original software)").

I'll hopefully get my hands on a "pristine" E02 soon, but it might be some time before I can take it to a serial connection as in http://blog.qnology.com/2013/10/ I'm afraid.



Edited 2 time(s). Last edit at 04/01/2015 08:00PM by TEN.
[    8.170000] VFS: Mounted root (jffs2 filesystem) readonly.
[    8.170000] Freeing init memory: 124K
[    8.600000] JFFS2 compression type 0x07 not available.
[    8.600000] Error: jffs2_decompress returned -5
Seems this problem has been around for quite a while:

http://forum.doozan.com/read.php?2,519,3331

and not just in our little corner of the internet. Google "JFFS2 compression type 0x07 not available" and you'll get lots of hits.



Edited 1 time(s). Last edit at 04/01/2015 10:17PM by restamp.
restamp,

> Seems this problem has been around for quite a
> while:
>
> http://forum.doozan.com/read.php?2,519,3331
>
> and not just in our little corner of the internet.
> Google "JFFS2 compression type 0x07 not
> available" and you'll get lots of hits.

I also found other posts in this forum about the same problem. But the strange fact is the new u-boot uses LZO to decompress it to load the original u-boot without problem!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
OK, I have to admit I don't understand your concern with the uBoot: I was working under the assumption that the uBoot simply loads things into memory and dispatches control to them. It doesn't decompress. I thought the Linux kernel is stored uncompressed, perhaps with an appended DTB blob, and with a wrapper around all of it (the total of which is known as the uImage). This uImage is then simply transferred to memory by the uBoot. Then the Ramdisk (uInitrd), which is stored compressed, is loaded into memory, still compressed. Then the uImage wrapper is then dispatched to and one of the first things it does is uncompress the uInitrd and then it dispatches to the actual kernel.

So, does the uBoot even care about compression? Isn't the sum of uImage and uInitrd designed to be self-extracting?

I have to think we're barking up the wrong tree here. Here's an alternate theory: Have you ever mounted your jffs2 FS under Debian and made a change to it there? If so, perhaps the altered parts were stored compressed using LZ compression, which the modern kernel would understand and probably prefer. I believe I have never done this to mine, being careful to always mount it read-only when perusing it from Debian. Could this be the difference?
restamp,

> OK, I have to admit I don't understand your
> concern with the uBoot: I was working under the
> assumption that the uBoot simply loads things into
> memory and dispatches control to them.

In the normal case, yes.

> It doesn't decompress.
> So, does the uBoot even care about compression?

It does have to decompress when it loads the original u-boot image on mtd2. u-boot fsload does that.

> I have to think we're barking up the wrong tree
> here. Here's an alternate theory: Have you ever
> mounted your jffs2 FS under Debian and made a
> change to it there? If so, perhaps the altered
> parts were stored compressed using LZ compression,
> which the modern kernel would understand and
> probably prefer.
>I believe I have never done this
> to mine, being careful to always mount it
> read-only when perusing it from Debian. Could
> this be the difference?

I thought about this too. It might have been modified.

But then it does not explain that the new u-boot has JFFS2 LZO compression as the only type for JFFS2, and it can load the original u-boot! There is no other compression type for JFFS2 in this u-boot. In fact, I did verify that during testing that LZO was used to decompress.

So if the theory is that a different compression algo was used when the rootfs was modified, then new u-boot would have not been able to load the original u-boot.

I've flashed this new version on 2 Pogo E02. It is working fine. So if you like to give it a try, I'll attach the binary here. Or if you like, upload the mtd1 dump somewhere and I'll try that. Perhaps running your Pogo kernel version will enable it to mount rootfs.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
I think I understand. To clarify, I believe we are talking about two different points of failure here, both of which involve the NAND jffs2 file system and both of which likely involve a decompression algorithm mismatch: The first is the failure of the fsload command in the most recent uBoot (tld-2). The second is the failure of the original Unix kernel to read its jffs2 file system, or at least some parts of it, during its boot sequence, but after it had been modded.

The first: I believe you have verified that the current 2014.07 uBoot (tld-2) only knows how to decompress using the LZO algorithm. But the jffs2 file system in the E02's NAND was created using an older form of compression and thus this uBoot is unable to access the jffs2 device because they are incompatible. This makes sense, although the error message it emits, "get_fl_mem: unknown device type, using raw offset!", seems a bit confusing.

The second: Here, I continue to believe that the LZO algorithm somehow has worked its way into the jffs2, probably due to changes that were introduced while it was mounted under a Debian kernel (which I suspect would prefer LZO when it is making updates to the fs). But this taints the fs for the original kernel which does not have the LZO algorithm in its arsenal. What would really be helpful here is an fsck-like program which could analyze the raw file system, or a command which could tell us how each file is compressed.

> But then it does not explain that the new u-boot has JFFS2 LZO compression as the only type for JFFS2, and it can
> load the original u-boot! There is no other compression type for JFFS2 in this u-boot. In fact, I did verify that during
> testing that LZO was used to decompress.

Which uBoot are you talking about above, the tld-2 version, or the one you are currently testing?

> So if the theory is that a different compression algo was used when the rootfs was modified, then new u-boot
> would have not been able to load the original u-boot.

Are you indeed able to chain-load the original uBoot from jffs2 using tld-2 and its fsload command? If so, that's intersting, as I could not do that. Attempting to do so causes the tld-2 uBoot to go insane. This failure to chain-load the old uBoot would make sense to me if the tld-2 uBoot only knows LZO and the jffs2 partition is compressed using some other algorithm.

> I've flashed this new version on 2 Pogo E02. It is working fine. So if you like to give it a try, I'll attach the binary
> here. Or if you like, upload the mtd1 dump somewhere and I'll try that. Perhaps running your Pogo kernel
> version will enable it to mount rootfs.

I'd like to know more about what changes you have made before loading the new uBoot that is under test. I would expect that you have added the earlier decompression algorithms to this latest uBoot build. I'd probably be amenable to testing it on one of my Pogos, esp since you've had success with it. And, I can certainly give you a copy of my mtd1 kernel if you want it, but I think the issue lies with the jffs2 file system and not the kernel. In other words, if you loaded my earlier kernel, it would likely encounter the same issues with your file system as your kernel did. It might make for an interesting test to try this so as to see if this supposition is correct, though.
@restamp,

> The first: I believe you have verified that the
> current 2014.07 uBoot (tld-2) only knows how to
> decompress using the LZO algorithm. But the jffs2
> file system in the E02's NAND was created using an
> older form of compression and thus this uBoot is
> unable to access the jffs2 device because they are
> incompatible. This makes sense, although the
> error message it emits, "get_fl_mem: unknown
> device type, using raw offset!", seems a bit
> confusing.

> Which uBoot are you talking about above, the tld-2
> version, or the one you are currently testing?

Sorry I was not clear about which version! The new u-boot I refered to here is tld-3. This is a new version I've just built, where JFFS2 is supported fully. The Pogo E02 tld-2 version did not have the last 2 defines below in bold (while the Dockstar tld-2 does). The 2nd define was the reason for the errors about "get_fl_mem".

U-Boot 2014.07-tld-3 code:
root@tldDebian:/usr/src/u-boot-2014.07-tld/include/configs# grep -i jffs2 pogo_e02.h
#define CONFIG_CMD_JFFS2
#define CONFIG_JFFS2_NAND
#define CONFIG_JFFS2_LZO

From now on we should refer to this version as tld-3.

> I'd like to know more about what changes you have
> made before loading the new uBoot that is under
> test. I would expect that you have added the
> earlier decompression algorithms to this latest
> uBoot build. I'd probably be amenable to testing
> it on one of my Pogos, esp since you've had
> success with it.

In order for both of us to see this issue clearly, this is the boot log with the tld-3 u-boot. Apparently, what this told us is the rootfs mounting failed because the kernel does not have LZO compression. At that point I had to turn off power to the Pogo E02.
U-Boot 2014.07-tld-3 (Mar 31 2015 - 16:56:13)
Pogo E02

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0 

PogoE02> run pogo_bootcmd 
### JFFS2 loading 'uboot-original-mtd0.kwb' to 0x800000
Scanning JFFS2 FS: ........... done.
### JFFS2 load complete: 524288 bytes loaded to 0x800000
## Starting application at 0x00800200 ...


U-Boot 1.1.4 (Sep 28 2009 - 11:55:23) Cloud Engines v2.0 (3.4.16)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 00690D60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM Total size 256MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:128 MB

CPU : Marvell Feroceon (Rev 1)
CLOUD ENGINES BOARD: PPV2

Streaming disabled 
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x100000, size 0x200000

Reading data from 0x2ff800 -- 100% complete.
 2097152 bytes read: OK
## Booting image at 00800000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2010-10-19  23:05:02 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1979140 Bytes =  1.9 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................................................ done, booting the kernel.
[    0.000000] Linux version 2.6.22.18 (bdietrich@buildman) (gcc version 4.2.1) #81 Tue Oct 19 16:05:00 PDT 2010
[    0.000000] CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177
[    0.000000] Machine: Feroceon-KW
[    0.000000] Using UBoot passing parameters structure
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU0: D VIVT write-back cache
[    0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] Built 1 zonelists.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 ro
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.010000] Memory: 256MB 0MB 0MB 0MB = 256MB total
[    0.010000] Memory: 255872KB available (3592K code, 253K data, 124K init)
[    0.250000] Mount-cache hash table entries: 512
[    0.250000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.250000] 
[    0.250000] CPU Interface
[    0.250000] -------------
[    0.250000] SDRAM_CS0 ....base 00000000, size 256MB 
[    0.250000] SDRAM_CS1 ....disable
[    0.250000] SDRAM_CS2 ....disable
[    0.250000] SDRAM_CS3 ....disable
[    0.250000] PEX0_MEM ....base e8000000, size 128MB 
[    0.250000] PEX0_IO ....base f2000000, size   1MB 
[    0.250000] INTER_REGS ....base f1000000, size   1MB 
[    0.250000] NFLASH_CS ....base fa000000, size   2MB 
[    0.250000] SPI_CS ....base f4000000, size  16MB 
[    0.250000] BOOT_ROM_CS ....no such
[    0.250000] DEV_BOOTCS ....no such
[    0.250000] CRYPT_ENG ....base f0000000, size   2MB 
[    0.250000] 
[    0.250000]   Marvell Development Board (LSP Version KW_LSP_4.2.7_patch21_with_rx_desc_tuned)-- SHEEVA PLUG  Soc: 88F6281 A0 LE
[    0.250000] 
[    0.250000]  Detected Tclk 200000000 and SysClk 400000000 
[    0.250000] MV Buttons Device Load
[    0.250000] Marvell USB EHCI Host controller #0: c0652600
[    0.750000] PEX0 interface detected no Link.
[    0.750000] PCI: bus0: Fast back to back transfers enabled
[    0.750000] SCSI subsystem initialized
[    0.750000] usbcore: registered new interface driver usbfs
[    0.750000] usbcore: registered new interface driver hub
[    0.750000] usbcore: registered new device driver usb
[    0.750000] NET: Registered protocol family 2
[    0.760000] Time: kw_clocksource clocksource has been installed.
[    0.850000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.850000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.850000] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.850000] TCP: Hash tables configured (established 8192 bind 8192)
[    0.850000] TCP reno registered
[    0.880000] RTC has been updated!!!
[    0.880000] RTC registered
[    0.880000] Use the XOR engines (acceleration) for enhancing the following functions:
[    0.880000]   o RAID 5 Xor calculation
[    0.880000]   o kernel memcpy
[    0.880000]   o kenrel memzero
[    0.880000] Number of XOR engines to use: 4
[    0.880000] cesadev_init(c00117b0)
[    0.880000] mvCesaInit: sessions=640, queue=64, pSram=f0000000
[    0.880000] MV Buttons Driver Load
[    0.880000] squashfs: version 3.3 (2007/10/31) Phillip Lougher
[    0.880000] squashfs: LZMA suppport for slax.org by jro
[    0.880000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.880000] io scheduler noop registered
[    0.880000] io scheduler anticipatory registered (default)
[    0.900000] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[    0.900000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
[    0.910000] RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
[    0.920000] Loading Marvell Ethernet Driver:
[    0.920000]   o Cached descriptors in DRAM
[    0.920000]   o DRAM SW cache-coherency
[    0.930000]   o Single RX Queue support - ETH_DEF_RXQ=0
[    0.930000]   o Single TX Queue support - ETH_DEF_TXQ=0
[    0.940000]   o TCP segmentation offload enabled
[    0.940000]   o Receive checksum offload enabled
[    0.950000]   o Transmit checksum offload enabled
[    0.950000]   o Network Fast Processing (Routing) supported
[    0.960000]   o Driver ERROR statistics enabled
[    0.960000]   o Driver INFO statistics enabled
[    0.970000]   o Proc tool API enabled
[    0.970000]   o Rx descripors: q0=128
[    0.970000]   o Tx descripors: q0=532
[    0.980000]   o Loading network interface(s):
[    0.990000]     o eth0, ifindex = 1, GbE port = 0
[    0.990000]     o eth1, ifindex = 2, GbE port = 1
[    1.000000] 
[    1.000000] mvFpRuleDb (cfdf6000): 2048 entries, 8192 bytes
[    1.000000] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI
[    1.010000] Copyright (c) 1999-2006 Intel Corporation.
[    1.020000] e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
[    1.020000] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.030000] 
[    1.030000] Warning Sata is Powered Off
[    1.030000] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
[    1.040000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
[    1.050000] Scanning device for bad blocks
[    1.100000] Using static partition definition
[    1.110000] Creating 4 MTD partitions on "nand_mtd":
[    1.110000] 0x00000000-0x00100000 : "u-boot"
[    1.120000] 0x00100000-0x00500000 : "uImage"
[    1.120000] 0x00500000-0x02500000 : "root"
[    1.130000] 0x02500000-0x08000000 : "data"
[    1.130000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
[    1.140000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
[    1.180000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100
[    1.200000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[    1.200000] usb usb1: configuration #1 chosen from 1 choice
[    1.210000] hub 1-0:1.0: USB hub found
[    1.210000] hub 1-0:1.0: 1 port detected
[    1.330000] USB Universal Host Controller Interface driver v3.0
[    1.610000] usb 1-1: new high speed USB device using ehci_marvell and address 2
[    1.760000] usb 1-1: configuration #1 chosen from 1 choice
[    1.760000] hub 1-1:1.0: USB hub found
[    1.770000] hub 1-1:1.0: 4 ports detected
[    1.880000] usbcore: registered new interface driver usblp
[    1.880000] drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
[    1.890000] Initializing USB Mass Storage driver...
[    1.890000] usbcore: registered new interface driver usb-storage
[    1.900000] USB Mass Storage support registered.
[    1.910000] mice: PS/2 mouse device common for all mice
[    1.910000] i2c /dev entries driver
[    1.910000] Linux telephony interface: v1.00
[    1.920000] md: linear personality registered for level -1
[    1.920000] md: raid0 personality registered for level 0
[    1.930000] md: raid1 personality registered for level 1
[    2.100000] raid6: int32x1     97 MB/s
[    2.270000] raid6: int32x2    114 MB/s
[    2.440000] raid6: int32x4    122 MB/s
[    2.610000] raid6: int32x8    110 MB/s
[    2.610000] raid6: using algorithm int32x4 (122 MB/s)
[    2.610000] md: raid6 personality registered for level 6
[    2.620000] md: raid5 personality registered for level 5
[    2.620000] md: raid4 personality registered for level 4
[    2.630000] raid5: measuring checksumming speed
[    2.680000]    arm4regs  :  1084.000 MB/sec
[    2.730000]    8regs     :   754.800 MB/sec
[    2.780000]    32regs    :   899.600 MB/sec
[    2.780000] raid5: using function: arm4regs (1084.000 MB/sec)
[    2.790000] device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
[    2.790000] dm_crypt using the OCF package.
[    2.800000] sdhci: Secure Digital Host Controller Interface driver
[    2.800000] sdhci: Copyright(c) Pierre Ossman
[    2.810000] usbcore: registered new interface driver usbhid
[    2.810000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    2.820000] TCP cubic registered
[    2.820000] NET: Registered protocol family 1
[    2.830000] NET: Registered protocol family 17
[    2.830000] md: Autodetecting RAID arrays.
[    2.840000] md: autorun ...
[    2.840000] md: ... autorun DONE.
[    8.170000] VFS: Mounted root (jffs2 filesystem) readonly.
[    8.170000] Freeing init memory: 124K
[    8.600000] JFFS2 compression type 0x07 not available.
[    8.600000] Error: jffs2_decompress returned -5
[    8.610000] JFFS2 compression type 0x07 not available.
[    8.610000] Error: jffs2_decompress returned -5
……….

[   94.940000] JFFS2 compression type 0x07 not available.
[   94.950000] Error: jffs2_decompress returned -5


On further thought, I could try to dump mtd1 on my other Pogo E02 and use it on this Pogo E02 to see if it is the same kernel as yours.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 04/02/2015 05:58PM by bodhi.
Got it. Thanks bodhi.

I have uploaded a copy of my mtd1 partition to:

http://cboh.org/mtd1.noecc.omitoob

It was generated via the command: nanddump --omitoob --noecc -f mtd1.noecc.omitoob /dev/mtd1

If you'd like me to try your tld-3 uBoot, let me know.

One thing I do not understand: I would think that when you nandwrite a file into a partition, the nandwrite command should calculate and write the ECC bits as well as the inband data. However, when you nanddump what was written, you get all sorts of uncorrectable ECC errors by default. It's only when you specify the --noecc option that you get valid data back. This seems counter-intuitive: I would expect to see occasional bit errors without ECC and solid valid data with ECC. What am I missing?
Thanks restamp. I will give it a try.

The way I understood: if nandwrite ignores ecc from the dump because of this flag then we would not get any error even if there was error in the image.

And if the image was dumped with -noecc then there should be no ecc written to the image.
nanddump -n         --noecc              Read without error correction

I know, it is a little bit confusing for me too (there is always a chance that I could have interpreted it wrong). So I always back up what I will erase :)

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 04/03/2015 12:32AM by bodhi.
Well, nice try but no cigar!

I've flashed your mtd1 to my Pogo E02 and still see the error. Note the kernel build date is now Mon Aug 10 12:57:36 PDT 2009.. There is something that we are not seeing. I'm going to try the Dockstar mtd1, which I think there is a very good chance will work.

But anyway, I'm attaching the tld-3 u-boot here so you can try yourself.

uboot.2014.07-tld-3.pogo_e02.mtd0.kwb
md5:
c2451ef0f774e99a46d1333eefc31047


And here is the serial boot log
U-Boot 2014.07-tld-3 (Mar 31 2015 - 16:56:13)
Pogo E02

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0 
PogoE02> run pogo_bootcmd 
### JFFS2 loading 'uboot-original-mtd0.kwb' to 0x800000
Scanning JFFS2 FS: ........... done.
### JFFS2 load complete: 524288 bytes loaded to 0x800000
## Starting application at 0x00800200 ...


U-Boot 1.1.4 (Sep 28 2009 - 11:55:23) Cloud Engines v2.0 (3.4.16)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 00690D60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM Total size 256MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:128 MB

CPU : Marvell Feroceon (Rev 1)
CLOUD ENGINES BOARD: PPV2

Streaming disabled 
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x100000, size 0x200000

Reading data from 0x2ff800 -- 100% complete.
 2097152 bytes read: OK
## Booting image at 00800000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2009-08-10  19:57:40 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1977716 Bytes =  1.9 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................................................ done, booting the kernel.
[    0.000000] Linux version 2.6.22.18 (bdietrich@brad-ux) (gcc version 4.2.1) #44 Mon Aug 10 12:57:36 PDT 2009
[    0.000000] CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177
[    0.000000] Machine: Feroceon-KW
[    0.000000] Using UBoot passing parameters structure
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU0: D VIVT write-back cache
[    0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] Built 1 zonelists.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 ro
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.010000] Memory: 256MB 0MB 0MB 0MB = 256MB total
[    0.010000] Memory: 255872KB available (3592K code, 252K data, 120K init)
[    0.250000] Mount-cache hash table entries: 512
[    0.250000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.250000] 
[    0.250000] CPU Interface
[    0.250000] -------------
[    0.250000] SDRAM_CS0 ....base 00000000, size 256MB 
[    0.250000] SDRAM_CS1 ....disable
[    0.250000] SDRAM_CS2 ....disable
[    0.250000] SDRAM_CS3 ....disable
[    0.250000] PEX0_MEM ....base e8000000, size 128MB 
[    0.250000] PEX0_IO ....base f2000000, size   1MB 
[    0.250000] INTER_REGS ....base f1000000, size   1MB 
[    0.250000] NFLASH_CS ....base fa000000, size   2MB 
[    0.250000] SPI_CS ....base f4000000, size  16MB 
[    0.250000] BOOT_ROM_CS ....no such
[    0.250000] DEV_BOOTCS ....no such
[    0.250000] CRYPT_ENG ....base f0000000, size   2MB 
[    0.250000] 
[    0.250000]   Marvell Development Board (LSP Version KW_LSP_4.2.7_patch21)-- SHEEVA PLUG  Soc: 88F6281 A0 LE
[    0.250000] 
[    0.250000]  Detected Tclk 200000000 and SysClk 400000000 
[    0.250000] MV Buttons Device Load
[    0.250000] Marvell USB EHCI Host controller #0: c0650600
[    0.750000] PEX0 interface detected no Link.
[    0.750000] PCI: bus0: Fast back to back transfers enabled
[    0.750000] SCSI subsystem initialized
[    0.750000] usbcore: registered new interface driver usbfs
[    0.750000] usbcore: registered new interface driver hub
[    0.750000] usbcore: registered new device driver usb
[    0.750000] NET: Registered protocol family 2
[    0.760000] Time: kw_clocksource clocksource has been installed.
[    0.850000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.850000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.850000] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.850000] TCP: Hash tables configured (established 8192 bind 8192)
[    0.850000] TCP reno registered
[    0.880000] RTC has been updated!!!
[    0.880000] RTC registered
[    0.880000] Use the XOR engines (acceleration) for enhancing the following functions:
[    0.880000]   o RAID 5 Xor calculation
[    0.880000]   o kernel memcpy
[    0.880000]   o kenrel memzero
[    0.880000] Number of XOR engines to use: 4
[    0.880000] cesadev_init(c00116b4)
[    0.880000] mvCesaInit: sessions=640, queue=64, pSram=f0000000
[    0.880000] MV Buttons Driver Load
[    0.880000] squashfs: version 3.3 (2007/10/31) Phillip Lougher
[    0.880000] squashfs: LZMA suppport for slax.org by jro
[    0.880000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.880000] io scheduler noop registered
[    0.880000] io scheduler anticipatory registered (default)
[    0.900000] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[    0.900000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
[    0.910000] serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A
[    0.920000] RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
[    0.930000] Loading Marvell Ethernet Driver:
[    0.940000]   o Cached descriptors in DRAM
[    0.940000]   o DRAM SW cache-coherency
[    0.940000]   o Single RX Queue support - ETH_DEF_RXQ=0
[    0.950000]   o Single TX Queue support - ETH_DEF_TXQ=0
[    0.950000]   o TCP segmentation offload enabled
[    0.960000]   o Receive checksum offload enabled
[    0.960000]   o Transmit checksum offload enabled
[    0.970000]   o Network Fast Processing (Routing) supported
[    0.970000]   o Driver ERROR statistics enabled
[    0.980000]   o Driver INFO statistics enabled
[    0.980000]   o Proc tool API enabled
[    0.990000]   o Rx descripors: q0=128
[    0.990000]   o Tx descripors: q0=532
[    0.990000]   o Loading network interface(s):
[    1.000000]     o eth0, ifindex = 1, GbE port = 0
[    1.010000]     o eth1, ifindex = 2, GbE port = 1
[    1.010000] 
[    1.010000] mvFpRuleDb (cf8c2000): 2048 entries, 8192 bytes
[    1.020000] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI
[    1.030000] Copyright (c) 1999-2006 Intel Corporation.
[    1.030000] e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
[    1.040000] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.040000] 
[    1.040000] Warning Sata is Powered Off
[    1.050000] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
[    1.060000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
[    1.070000] Scanning device for bad blocks
[    1.120000] Using static partition definition
[    1.120000] Creating 4 MTD partitions on "nand_mtd":
[    1.130000] 0x00000000-0x00100000 : "u-boot"
[    1.130000] 0x00100000-0x00500000 : "uImage"
[    1.140000] 0x00500000-0x02500000 : "root"
[    1.140000] 0x02500000-0x08000000 : "data"
[    1.150000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
[    1.150000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
[    1.190000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100
[    1.210000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[    1.210000] usb usb1: configuration #1 chosen from 1 choice
[    1.220000] hub 1-0:1.0: USB hub found
[    1.220000] hub 1-0:1.0: 1 port detected
[    1.340000] USB Universal Host Controller Interface driver v3.0
[    1.620000] usb 1-1: new high speed USB device using ehci_marvell and address 2
[    1.770000] usb 1-1: configuration #1 chosen from 1 choice
[    1.770000] hub 1-1:1.0: USB hub found
[    1.780000] hub 1-1:1.0: 4 ports detected
[    1.890000] usbcore: registered new interface driver usblp
[    1.890000] drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
[    1.900000] Initializing USB Mass Storage driver...
[    1.900000] usbcore: registered new interface driver usb-storage
[    1.910000] USB Mass Storage support registered.
[    1.920000] mice: PS/2 mouse device common for all mice
[    1.920000] i2c /dev entries driver
[    1.920000] Linux telephony interface: v1.00
[    1.930000] md: linear personality registered for level -1
[    1.930000] md: raid0 personality registered for level 0
[    1.940000] md: raid1 personality registered for level 1
[    2.110000] raid6: int32x1     97 MB/s
[    2.280000] raid6: int32x2    114 MB/s
[    2.450000] raid6: int32x4    122 MB/s
[    2.620000] raid6: int32x8    110 MB/s
[    2.620000] raid6: using algorithm int32x4 (122 MB/s)
[    2.620000] md: raid6 personality registered for level 6
[    2.630000] md: raid5 personality registered for level 5
[    2.630000] md: raid4 personality registered for level 4
[    2.640000] raid5: measuring checksumming speed
[    2.690000]    arm4regs  :  1084.000 MB/sec
[    2.740000]    8regs     :   754.800 MB/sec
[    2.790000]    32regs    :   900.000 MB/sec
[    2.790000] raid5: using function: arm4regs (1084.000 MB/sec)
[    2.800000] device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
[    2.800000] dm_crypt using the OCF package.
[    2.810000] sdhci: Secure Digital Host Controller Interface driver
[    2.810000] sdhci: Copyright(c) Pierre Ossman
[    2.820000] usbcore: registered new interface driver usbhid
[    2.820000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    2.830000] TCP cubic registered
[    2.830000] NET: Registered protocol family 1
[    2.840000] NET: Registered protocol family 17
[    2.840000] md: Autodetecting RAID arrays.
[    2.850000] md: autorun ...
[    2.850000] md: ... autorun DONE.
[    8.180000] VFS: Mounted root (jffs2 filesystem) readonly.
[    8.180000] Freeing init memory: 120K
[    8.610000] JFFS2 compression type 0x07 not available.
[    8.610000] Error: jffs2_decompress returned -5
[    8.620000] JFFS2 compression type 0x07 not available.
[    8.630000] Error: jffs2_decompress returned -5
[    8.630000] JFFS2 compression type 0x07 not available.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Attachments:
open | download - uboot.2014.07-tld-3.pogo_e02.mtd0.kwb (512 KB)
Bodhi, I continue to believe the problem is that your jffs2 FS has been "corrupted" (from the perspective of the original kernel) by LZO, not that there is some problem inherent in the kernel itself.

By a bit of serendipity, a good friend and (relatively speaking, at least with respect to me) NAND and ARM expert showed up today at a technical lunch group I frequent. I described this problem to him and this was his response: The jffs2 FS is ancient. That fact, combined with the fact that the Linux kernel was going through a lot of significant upgrades between 2.6.18 and 2.6.22, means there will be compatibility issues in this kind of situation. (By 2.6.26, I think he said, things had more-or-less stabilized.) He knows of no tool that will allow you to detect what type of compression is used for a given file in a jffs2 FS. He also does not know whether jffs2 only compresses on a file-by-file basis, or whether the directory contents are similarly compressed. In any event, I strongly suspect that were I to dump my jffs2 FS (i.e., mtd2) and you were to replace your FS with that, your Pogo kernels would start booting again. If you'd like to try this, let me know. I won't bother uploading it until I hear because it is 33.5MB.

While in this discussion, I also brought up the issue of why the "--noecc" option is required on nanddump. His response: Many NAND installations, both now and five years ago, use hardware ECC. Their NAND still has the OOB memory, but when a block is written, the OOB "ECC" bits are automagically set by the hardware, and when it is read, those bits are used to error-correct the data before it is delivered. Thus, on these systems, the in-band data you see has already been ECC corrected and if you try to apply the correction again in software you'll wind up generating erroneous data. This is especially true (of course) if the ECC algorithm the nanddump command uses differs from what is used by the HW. While neither of us could say, off the tops of our heads, whether or not the Pogo's NAND subsystem uses HW ECC, it would certainly explain why the "--noecc" argument is required and why the data is reliable without any apparent ECC correction.
@restamp,

I believe you are right! I think my mtd2 jffs2 rootfs was corrupted (must have been caused by mounting RW in the past while in Debian). I've tried other permutation using { your mtd1, the Dockstar mtd1, the Pogo E02 original u-boot, and the Dockstar orginal u-boot } Now I'm convinved that the Pogo E02 orginal u-boot and the kernel don't have anything to do with the error. Instead, the error occur in a different area in the mtd2 rootfs during mounting. And why I could chainload the orginal u-boot: the new u-boot uses jffs2 code that is different from the stock kernel jffs2 code which is old and probably has few bugs!.

Thanks for the mtd2 uploading offer! But the file is large, so I'll try one from my other Pogo E02 and Dockstar first and let you know.

And thanks for the recap about ECC, good to hear from someone who has more experience in this area than we (i.e. amateurs).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 2 time(s). Last edit at 04/03/2015 04:10PM by bodhi.
Actually, it only took about a minute to upload the mtd2 dump to my servers, so if you want to try a root-fs that verifiably works with the kernel I uploaded yesterday, here is where you can find it:

http://cboh.org/mtd2

As far as I know, mtd2 is pristine except for the following:
+ The Pogoplug software autostart has been disabled by commenting out the line '/etc/init.d/hbmgr.sh start' in /etc/init.d/rcS
+ The mdt-utils (nanddump, nandwrite, fw_printenv, etc.) have been added
+ Jeff Doozan's install_uboot_mtd0.sh script has been run
restamp,

Thanks restamp. It's indeed better do testing with your mtd2 so I'll get it and try.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
@restamp,

OK we've solved it :) after flashing your mtd2, it booted into Pogo OS successfully.

dmesg
U-Boot 2014.07-tld-3 (Mar 31 2015 - 16:56:13)
Pogo E02

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  128 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0 
PogoE02> run pogo_bootcmd 
### JFFS2 loading 'uboot-original-mtd0.kwb' to 0x800000
Scanning JFFS2 FS: ........ done.
### JFFS2 load complete: 524288 bytes loaded to 0x800000
## Starting application at 0x00800200 ...


U-Boot 1.1.4 (Sep 28 2009 - 11:55:23) Cloud Engines v2.0 (3.4.16)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 00690D60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM Total size 256MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:128 MB

CPU : Marvell Feroceon (Rev 1)
CLOUD ENGINES BOARD: PPV2

Streaming disabled 
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x100000, size 0x200000

Reading data from 0x2ff800 -- 100% complete.
 2097152 bytes read: OK
## Booting image at 00800000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2010-10-19  23:05:02 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1979140 Bytes =  1.9 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................................................ done, booting the kernel.
[    0.000000] Linux version 2.6.22.18 (bdietrich@buildman) (gcc version 4.2.1) #81 Tue Oct 19 16:05:00 PDT 2010
[    0.000000] CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177
[    0.000000] Machine: Feroceon-KW
[    0.000000] Using UBoot passing parameters structure
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU0: D VIVT write-back cache
[    0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
[    0.000000] Built 1 zonelists.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 ro
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.010000] Memory: 256MB 0MB 0MB 0MB = 256MB total
[    0.010000] Memory: 255872KB available (3592K code, 253K data, 124K init)
[    0.250000] Mount-cache hash table entries: 512
[    0.250000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.250000] 
[    0.250000] CPU Interface
[    0.250000] -------------
[    0.250000] SDRAM_CS0 ....base 00000000, size 256MB 
[    0.250000] SDRAM_CS1 ....disable
[    0.250000] SDRAM_CS2 ....disable
[    0.250000] SDRAM_CS3 ....disable
[    0.250000] PEX0_MEM ....base e8000000, size 128MB 
[    0.250000] PEX0_IO ....base f2000000, size   1MB 
[    0.250000] INTER_REGS ....base f1000000, size   1MB 
[    0.250000] NFLASH_CS ....base fa000000, size   2MB 
[    0.250000] SPI_CS ....base f4000000, size  16MB 
[    0.250000] BOOT_ROM_CS ....no such
[    0.250000] DEV_BOOTCS ....no such
[    0.250000] CRYPT_ENG ....base f0000000, size   2MB 
[    0.250000] 
[    0.250000]   Marvell Development Board (LSP Version KW_LSP_4.2.7_patch21_with_rx_desc_tuned)-- SHEEVA PLUG  Soc: 88F6281 A0 LE
[    0.250000] 
[    0.250000]  Detected Tclk 200000000 and SysClk 400000000 
[    0.250000] MV Buttons Device Load
[    0.250000] Marvell USB EHCI Host controller #0: c0652600
[    0.750000] PEX0 interface detected no Link.
[    0.750000] PCI: bus0: Fast back to back transfers enabled
[    0.750000] SCSI subsystem initialized
[    0.750000] usbcore: registered new interface driver usbfs
[    0.750000] usbcore: registered new interface driver hub
[    0.750000] usbcore: registered new device driver usb
[    0.750000] NET: Registered protocol family 2
[    0.760000] Time: kw_clocksource clocksource has been installed.
[    0.850000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.850000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.850000] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.850000] TCP: Hash tables configured (established 8192 bind 8192)
[    0.850000] TCP reno registered
[    0.880000] RTC has been updated!!!
[    0.880000] RTC registered
[    0.880000] Use the XOR engines (acceleration) for enhancing the following functions:
[    0.880000]   o RAID 5 Xor calculation
[    0.880000]   o kernel memcpy
[    0.880000]   o kenrel memzero
[    0.880000] Number of XOR engines to use: 4
[    0.880000] cesadev_init(c00117b0)
[    0.880000] mvCesaInit: sessions=640, queue=64, pSram=f0000000
[    0.880000] MV Buttons Driver Load
[    0.880000] squashfs: version 3.3 (2007/10/31) Phillip Lougher
[    0.880000] squashfs: LZMA suppport for slax.org by jro
[    0.880000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.880000] io scheduler noop registered
[    0.880000] io scheduler anticipatory registered (default)
[    0.900000] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[    0.900000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
[    0.910000] RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
[    0.920000] Loading Marvell Ethernet Driver:
[    0.920000]   o Cached descriptors in DRAM
[    0.920000]   o DRAM SW cache-coherency
[    0.930000]   o Single RX Queue support - ETH_DEF_RXQ=0
[    0.930000]   o Single TX Queue support - ETH_DEF_TXQ=0
[    0.940000]   o TCP segmentation offload enabled
[    0.940000]   o Receive checksum offload enabled
[    0.950000]   o Transmit checksum offload enabled
[    0.950000]   o Network Fast Processing (Routing) supported
[    0.960000]   o Driver ERROR statistics enabled
[    0.960000]   o Driver INFO statistics enabled
[    0.970000]   o Proc tool API enabled
[    0.970000]   o Rx descripors: q0=128
[    0.970000]   o Tx descripors: q0=532
[    0.980000]   o Loading network interface(s):
[    0.990000]     o eth0, ifindex = 1, GbE port = 0
[    0.990000]     o eth1, ifindex = 2, GbE port = 1
[    1.000000] 
[    1.000000] mvFpRuleDb (cfdf6000): 2048 entries, 8192 bytes
[    1.000000] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI
[    1.010000] Copyright (c) 1999-2006 Intel Corporation.
[    1.020000] e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
[    1.020000] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.030000] 
[    1.030000] Warning Sata is Powered Off
[    1.030000] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
[    1.040000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
[    1.050000] Scanning device for bad blocks
[    1.100000] Using static partition definition
[    1.110000] Creating 4 MTD partitions on "nand_mtd":
[    1.110000] 0x00000000-0x00100000 : "u-boot"
[    1.120000] 0x00100000-0x00500000 : "uImage"
[    1.120000] 0x00500000-0x02500000 : "root"
[    1.130000] 0x02500000-0x08000000 : "data"
[    1.130000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI
[    1.140000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1
[    1.180000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100
[    1.200000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[    1.200000] usb usb1: configuration #1 chosen from 1 choice
[    1.210000] hub 1-0:1.0: USB hub found
[    1.210000] hub 1-0:1.0: 1 port detected
[    1.330000] USB Universal Host Controller Interface driver v3.0
[    1.610000] usb 1-1: new high speed USB device using ehci_marvell and address 2
[    1.760000] usb 1-1: configuration #1 chosen from 1 choice
[    1.760000] hub 1-1:1.0: USB hub found
[    1.770000] hub 1-1:1.0: 4 ports detected
[    1.880000] usbcore: registered new interface driver usblp
[    1.880000] drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
[    1.890000] Initializing USB Mass Storage driver...
[    1.890000] usbcore: registered new interface driver usb-storage
[    1.900000] USB Mass Storage support registered.
[    1.910000] mice: PS/2 mouse device common for all mice
[    1.910000] i2c /dev entries driver
[    1.910000] Linux telephony interface: v1.00
[    1.920000] md: linear personality registered for level -1
[    1.920000] md: raid0 personality registered for level 0
[    1.930000] md: raid1 personality registered for level 1
[    2.100000] raid6: int32x1     97 MB/s
[    2.270000] raid6: int32x2    114 MB/s
[    2.440000] raid6: int32x4    122 MB/s
[    2.610000] raid6: int32x8    110 MB/s
[    2.610000] raid6: using algorithm int32x4 (122 MB/s)
[    2.610000] md: raid6 personality registered for level 6
[    2.620000] md: raid5 personality registered for level 5
[    2.620000] md: raid4 personality registered for level 4
[    2.630000] raid5: measuring checksumming speed
[    2.680000]    arm4regs  :  1084.000 MB/sec
[    2.730000]    8regs     :   754.800 MB/sec
[    2.780000]    32regs    :   899.600 MB/sec
[    2.780000] raid5: using function: arm4regs (1084.000 MB/sec)
[    2.790000] device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
[    2.790000] dm_crypt using the OCF package.
[    2.800000] sdhci: Secure Digital Host Controller Interface driver
[    2.800000] sdhci: Copyright(c) Pierre Ossman
[    2.810000] usbcore: registered new interface driver usbhid
[    2.810000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    2.820000] TCP cubic registered
[    2.820000] NET: Registered protocol family 1
[    2.830000] NET: Registered protocol family 17
[    2.830000] md: Autodetecting RAID arrays.
[    2.840000] md: autorun ...
[    2.840000] md: ... autorun DONE.
[    6.060000] Empty flash at 0x009ac208 ends at 0x009ac800
[    6.690000] VFS: Mounted root (jffs2 filesystem) readonly.
[    6.690000] Freeing init memory: 124K
init started: BusyBox v1.7.0 (2008-02-26 19:25:17 IST)
starting pid 267, tty '': '/etc/init.d/rcS'
[    8.810000] eth0: link down
[    8.820000] eth0: started
udhcpc (v1.7.0) started

Note that I went back to the saved stock kernel (Oct 19, 2009) on my Pogo E02 mtd1. But the original u-boot is from your mtd2 (Sept 28, 2009).

I will officially release this Pogo E02 version in the first post.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Bodhi, FWIW, I just flashed your tld-3 uBoot to my test Pogoplug E02 and it seems to have resolved the fsload problems for me as well. I can now boot to the Pogo OS on the NAND using fsload to chain-boot, and to the Debian Jessie load on USB directly. Have not noticed any other anomalies, so it looks as if tld-3 has resolved all our known problems with the uBoot.
restamp Wrote:
-------------------------------------------------------
> Bodhi, FWIW, I just flashed your tld-3 uBoot to my
> test Pogoplug E02 and it seems to have resolved
> the fsload problems for me as well. I can now
> boot to the Pogo OS on the NAND using fsload to
> chain-boot, and to the Debian Jessie load on USB
> directly. Have not noticed any other anomalies,
> so it looks as if tld-3 has resolved all our known
> problems with the uBoot.

Cool! It took many tries, but it's well worth the effort. Thank you for excellent ideas and helps testing this u-boot version.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Thanks, bodhi, for everything you've done for us as well. This forum would not exist without you. I hope we haven't kept you too busy this week.

Oh, and if you ever load your original mdt2 jffs2 file system again, try the tld-3 uBoot "fsinfo" command. I'd be interested in what you find. Here's mine:
PogoE02> fsinfo
### filesystem type is JFFS2
Scanning JFFS2 FS: ........ done.
Compression: NONE
        frag count: 680
        compressed sum: 50646
        uncompressed sum: 50646
Compression: ZERO
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
Compression: RTIME
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
Compression: RUBINMIPS
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
Compression: COPY
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
Compression: DYNRUBIN
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
Compression: ZLIB
        frag count: 6929
        compressed sum: 10983998
        uncompressed sum: 20297040
Compression: LZO
        frag count: 0
        compressed sum: 0
        uncompressed sum: 0
PogoE02> 
@restamp,

"Gread minds" ... and all that... :)) I did that just to see what was the difference, i.e. what was the compression that the modern kernel uses. And here is both the "bad" mtd2 on Pogo E02 and my "good" mtd2 on Dockstar. Add that to your fsinfo then we can be more sure what actually happened.

Pogo E02
PogoE02> fsinfo
### filesystem type is JFFS2
Scanning JFFS2 FS: ........... done.
Compression: NONE
	frag count: 1092
	compressed sum: 86387
	uncompressed sum: 86387
Compression: ZERO
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: RTIME
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: RUBINMIPS
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: COPY
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: DYNRUBIN
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: ZLIB
	frag count: 7989
	compressed sum: 14916582
	uncompressed sum: 26528766
Compression: LZO
	frag count: 313
	compressed sum: 853005
	uncompressed sum: 1244549


Dockstar
DockStar> fsinfo
 f s i n f o 
### filesystem type is JFFS2
Scanning JFFS2 FS: ........ done.
Compression: NONE
	frag count: 846
	compressed sum: 55953
	uncompressed sum: 55953
Compression: ZERO
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: RTIME
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: RUBINMIPS
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: COPY
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: DYNRUBIN
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
Compression: ZLIB
	frag count: 10342
	compressed sum: 15862256
	uncompressed sum: 31016975
Compression: LZO
	frag count: 0
	compressed sum: 0
	uncompressed sum: 0
DockStar>

I think it is safe to conclude that stock kernel does not use LZO. But when we use new Debian/Arch kernel to mount mtd2, it was compressed using LZO before written back to NAND. I'll have to look at the kernel config to see when we started doing that! if my deduction is correct.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
FYI. These options have been in my Kirkwood kernel build since 3.0.x:
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_LZO=y

I don't see any way to selectively use only ZLIB and not LZO. Although there is a priority, it does not guarantee that ZLIB is always used. So in order to tell the kernel to use ZLIB exclusively, we have to remove LZO statically. This is not a good apprach, since LZO is what we would want to use for JFFS2 in general. So we need both in kernel, and just have to be aware that the stock rootfs should not be mounted as RW outside stock kernel. If modification is needed, it must be done inside stock kernel.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Sorry, you can't reply to this topic. It has been closed.