Flashdisk failing at rtems_fdisk_compact() - shouldn't I get a device node regardless?

Nick Withers nick.withers at anu.edu.au
Wed Jan 15 02:08:08 UTC 2014


On Sat, 2014-01-11 at 07:42 +1100, Chris Johns wrote:
> On 11/01/2014 1:21 am, Nick Withers wrote:
> > On Fri, 2014-01-10 at 15:04 +0100, Sebastian Huber wrote:
> >> On 01/10/2014 06:17 AM, Nick Withers wrote:
> >>> Hey all,
> >>>
> >>> I'm playing with Flashdisk again, with the hope of using JFFS2 on top of
> >>> it.
> >>>
> >>> At the moment I can't get the device node to even appear because
> >>> rtems_fdisk_initialize() is failing in rtems_fdisk_compact() ("nothing
> >>> to recycle" [1]).
> >> [...]
> >>
> >> Using JFFS2 on top of a flash disk makes no sense.
> >
> > I'm having trouble parsing that :-P
> >
> > Also, http://www.rtems.org/ml/rtems-users/2014/january/msg00020.html ,
> > but presumably you meant using rtems_fdisk_driver_handlers.
> >
> 
> I suspect so. The flashdisk at the block device layer lets any file 
> system work on a flash disk and JFFS2 expects to operating at the flash 
> device layer where the rtems_fdisk_driver_handlers operate.

Fair enough, makes sense.

Frankly though, I'll take anything that works, even if there're a few
layers!

> >> I would only use the
> >> low-level flash driver (rtems_fdisk_driver_handlers).
> >
> > Cheers - I'll have a gander at that.
> 
> If this works out, and I see no reason for it not to, it might be a good 
> idea to move these handlers and the interface into something different 
> to avoid confusion.

It turns out that the libchip am29lv160 stuff ain't for me, as my BSP
(MVME3100) has two of them in parallel (which changes their interface).

This'd explain the dramas I was having with the Flashdisk driver earlier
( http://www.rtems.org/pipermail/rtems-users/2013-August/011806.html ),
too.

Luckily, and once again, Till's been here before so there's
libbsp/powerpc/shared/flash/spansionFlash.c.

So I've knocked up a wrapper around it for JFFS2. I can't spot anything
obviously wrong with it, but am encountering an error when writing a
file to a newly formatted FS that seems to be fairly common - "Node
totlen on flash (0xFFFFFFFF) != totlen from node ref (0x00000044)" (the
whole struct jffs2_unknown_node's all-1s).

Solutions suggested through good ol' Google seem to be related to the
type of flash in use / Linux-specifics / big-file-relative-to-FS (this
isn't), etc.; Nothing that would seem to apply here...?
____

[/] # ls -l /etc/daq/
total 0
-rw-r--r--  1 root  root   68 Jan 15 01:43 crate
-rw-r--r--  1 root  root  141 Jan 15 01:43 daq
drwxr-xr-x  1 root  root    0 Jan  1  1970 nv
[/] # ls -l /etc/daq/nv
[/] # cp /etc/daq/daq /etc/daq/nv/daq
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 12 B to 0xf80000
ERASING DONE
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 68 B to 0xf8000c
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 40 B to 0xf80050
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 4 B to 0xf80078
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 68 B to 0xf8007c
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 12 B to 0xf8000c
ERASING DONE
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 68 B to 0xf800c0
[DEBUG] mvme3100_flash.c:305: mvme3100_flash_device_write(): 144 B to 0xf80104
Node totlen on flash (0xFFFFFFFF) != totlen from node ref (0x00000044)
____

("[DEBUG]" lines are from my wrapper)

"cat"ing the written file in the RTEMS Shell spits out the contents as
I'd expect, but reboot and the file-system's empty.

With "#define CONFIG_JFFS2_FS_DEBUG 4" and my debugging stuff removed:
____

[/] # ls -l /etc/daq/
total 0
-rw-r--r--  1 root  root   68 Jan 15 01:58 crate
-rw-r--r--  1 root  root  141 Jan 15 01:58 daq
drwxr-xr-x  1 root  root    0 Jan  1  1970 nv
[/] # ls -l /etc/daq/nv
[/] # cp /etc/daq/daq /etc/daq/nv/daq
jffs2_lookup()
jffs2_lookup()
jffs2_lookup()
<7>jffs2_create()
<7>jffs2_new_inode(): dir_i 1, mode 0x81A4
mallo<c n7ew>_iAnode l10d0el00o ####c###a##t###e##d# ##i########n##o##c#####a##
che at 10D3858
<7>[JFFS2 DBG] jffs2_add_ino_cache: add 10D3858 (ino #2)
<RASING DONE
 7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEA38 is (00F80001,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEA40 (FFFFFFFE becomes 00F8000E,0) len 0x44
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEA40 is (00F8000E,10D3858)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEA48 (FFFFFFFE becomes 00F80052,0) len 0x2C
<7>[JFFS2 DBG] jffs2_add_fd_to_list: add dirent "daq", ino #2
<7>jffs2_create: Created ino #2 with mode 100644, nlink 1(1)
icachje_efvifcts
2_lookup()
7ffs2_ige<t
 i>loo[kuJp
FFS2 DBG] jffs2_link_node_ref: Last node at ABEA48 is (00F80052,ABEA18)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEA50 (FFFFFFFE becomes 00F8007E,0) len 0x44
ERASING DONE
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEA50 is (00F8007E,10D3858)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEA58 (FFFFFFFE becomes 00F800C2,0) len 0xD4
<7>[JFFS2 DBG] jffs2_add_full_dnode_to_inode: adding node #04x-#04x @0x00000000 on flash, newfrag *8D
<7>[JFFS2 DBG] jffs2_lookup_node_frag: root 10D0E3C, offset 0
<7>[JFFS2 DBG] jffs2_lookup_node_frag: returning NULL, empty fragtree
<7>[JFFS2 DBG] jffs2_add_frag_to_fragtree: lookup gave no frag
<7>[JFFS2 DBG] no_overlapping_node: insert the new node at the root of the tree
<4>JFFS2: Node totlen on flash (0xFFFFFFFF) != totlen from node ref (0x00000044)
icache_evict
____

For completeness, here's the erase / format before the copy:
____

ERASING Flash (Bank #0)
    from 0xfd000000 .. 0xfdffffff
proceed y/[n]?y
<7>[JFFS2 DBG] jffs2_build_filesystem: build FS data structures
<7>[JFFS2 DBG] jffs2_build_filesystem: scanned flash completely
<7>[JFFS2 DBG] dump JFFS2 blocks lists:
<7>flash_size: #08x
<7>used_size: #08x
<7>dirty_size: #08x
<7>wasted_size: #08x
<7>unchecked_size: #08x
<7>free_size: #08x
<7>erasing_size: #08x
<7>bad_size: #08x
<7>sector_size: #08x
<7>jffs2_reserved_blocks size: #08x
<7>nextblock: NULL
<7>gcblock: NULL
<7>clean_list: empty
<7>very_dirty_list: empty
<7>dirty_list: empty
<7>erasable_list: empty
<7>erasing_list: empty
<7>erase_checking_list: empty
<7>erasable_pending_wbuf_list: empty
<7>free_list: empty
<7>bad_list: empty
<7>bad_used_list: empty
<7>[JFFS2 DBG] jffs2_build_filesystem: pass 1 starting
<7>[JFFS2 DBG] jffs2_build_filesystem: pass 1 complete
<7>[JFFS2 DBG] jffs2_build_filesystem: pass 2 starting
<7>[JFFS2 DBG] jffs2_build_filesystem: pass 2a starting
<7>[JFFS2 DBG] jffs2_build_filesystem: pass 2a complete
<7>[JFFS2 DBG] jffs2_build_filesystem: freeing temporary data structures
<7>[JFFS2 DBG] jffs2_build_filesystem: FS build complete
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: trigger levels (size 16384 KiB, block size 256 KiB, 64 blocks)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Blocks required to allow deletion:    2 (512 KiB)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Blocks required to allow writes:      4 (1024 KiB)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Blocks required to quiesce GC thread: 5 (1280 KiB)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Blocks required to allow GC merges:   3 (768 KiB)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Blocks required to GC bad blocks:     0 (0 KiB)
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Amount of dirty space required to GC: 429916 bytes
<7>[JFFS2 DBG] jffs2_calc_trigger_levels: Very dirty blocks before GC triggered: 50
jffs2_iget
ilookup
mal<loc7 new>_inode jabe9fb0 #f####s####2#####_#####r####e####a####d####_#
inode(): inode->i_ino == 1
<7>[JFFS2 DBG] jffs2_do_read_inode: read inode #1
<7>Allocated inocache at ABEA18
<7>[JFFS2 DBG] jffs2_do_read_inode: creating inocache for root inode
<7>[JFFS2 DBG] jffs2_add_ino_cache: add ABEA18 (ino #1)
<7>[JFFS2 DBG] jffs2_do_read_inode_internal: ino #1 pino/nlink is 1
<7>[JFFS2 DBG] jffs2_get_inode_nodes: ino #1
<7>[JFFS2 DBG] jffs2_get_inode_nodes: nodes of inode #1 were read, the highest version is 0, latest_mctime 0, mctime_ver 0.
<7>jffs2_read_inode() returning
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEA38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEA38 (FFFFFFFE becomes 00F80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEB38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEB38 (FFFFFFFE becomes 00F40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEC38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEC38 (FFFFFFFE becomes 00F00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABED38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABED38 (FFFFFFFE becomes 00EC0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEE38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEE38 (FFFFFFFE becomes 00E80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABEF38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABEF38 (FFFFFFFE becomes 00E40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF038 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF038 (FFFFFFFE becomes 00E00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF138 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF138 (FFFFFFFE becomes 00DC0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF238 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF238 (FFFFFFFE becomes 00D80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF338 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF338 (FFFFFFFE becomes 00D40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF438 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF438 (FFFFFFFE becomes 00D00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF538 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF538 (FFFFFFFE becomes 00CC0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF638 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF638 (FFFFFFFE becomes 00C80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF738 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF738 (FFFFFFFE becomes 00C40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF838 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF838 (FFFFFFFE becomes 00C00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABF938 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABF938 (FFFFFFFE becomes 00BC0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFA38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFA38 (FFFFFFFE becomes 00B80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFB38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFB38 (FFFFFFFE becomes 00B40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFC38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFC38 (FFFFFFFE becomes 00B00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFD38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFD38 (FFFFFFFE becomes 00AC0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFE38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFE38 (FFFFFFFE becomes 00A80003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at ABFF38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is ABFF38 (FFFFFFFE becomes 00A40003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0038 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0038 (FFFFFFFE becomes 00A00003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0138 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0138 (FFFFFFFE becomes 009C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0238 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0238 (FFFFFFFE becomes 00980003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0338 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0338 (FFFFFFFE becomes 00940003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0438 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0438 (FFFFFFFE becomes 00900003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0538 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0538 (FFFFFFFE becomes 008C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0638 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0638 (FFFFFFFE becomes 00880003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0738 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0738 (FFFFFFFE becomes 00840003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0838 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0838 (FFFFFFFE becomes 00800003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0938 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0938 (FFFFFFFE becomes 007C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0A38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0A38 (FFFFFFFE becomes 00780003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0B38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0B38 (FFFFFFFE becomes 00740003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0C38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0C38 (FFFFFFFE becomes 00700003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0D38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0D38 (FFFFFFFE becomes 006C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0E38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0E38 (FFFFFFFE becomes 00680003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC0F38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC0F38 (FFFFFFFE becomes 00640003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1038 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1038 (FFFFFFFE becomes 00600003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1138 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1138 (FFFFFFFE becomes 005C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1238 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1238 (FFFFFFFE becomes 00580003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1338 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1338 (FFFFFFFE becomes 00540003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1438 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1438 (FFFFFFFE becomes 00500003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1538 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1538 (FFFFFFFE becomes 004C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1638 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1638 (FFFFFFFE becomes 00480003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1738 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1738 (FFFFFFFE becomes 00440003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1838 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1838 (FFFFFFFE becomes 00400003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1938 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1938 (FFFFFFFE becomes 003C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1A38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1A38 (FFFFFFFE becomes 00380003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1B38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1B38 (FFFFFFFE becomes 00340003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1C38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1C38 (FFFFFFFE becomes 00300003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1D38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1D38 (FFFFFFFE becomes 002C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1E38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1E38 (FFFFFFFE becomes 00280003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC1F38 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC1F38 (FFFFFFFE becomes 00240003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2038 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2038 (FFFFFFFE becomes 00200003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2138 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2138 (FFFFFFFE becomes 001C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2238 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2238 (FFFFFFFE becomes 00180003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2338 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2338 (FFFFFFFE becomes 00140003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2438 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2438 (FFFFFFFE becomes 00100003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2538 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2538 (FFFFFFFE becomes 000C0003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2638 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2638 (FFFFFFFE becomes 00080003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2738 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2738 (FFFFFFFE becomes 00040003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2838 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2838 (FFFFFFFE becomes 00000003,0) len 0xC
<7>[JFFS2 DBG] jffs2_link_node_ref: Last node at AC2938 is (FFFFFFFE,0)
<7>[JFFS2 DBG] jffs2_link_node_ref: New ref is AC2938 (FFFFFFFE becomes 00FC0003,0) len 0xC
____

So... Any ideas? :-P

I realise this is a bit of a doozie! I'm inclined to think that the
evidence doesn't point to problems in my shim + spansionFlash...?

Also, at the moment I can provide remote access to a system with a
hardware debugger, if that'd help.
-- 
Nick Withers

Embedded Systems Programmer
Room 2.26, Building 57
Department of Nuclear Physics
Research School of Physics and Engineering
The Australian National University (CRICOS: 00120C)

eMail: nick.withers at anu.edu.au
Phone: +61 2 6125 2091
Mobile: +61 414 397 446
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mvme3100_flash.c
Type: text/x-csrc
Size: 12331 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20140115/76b3d7b5/attachment.bin>


More information about the users mailing list