
Further debugging reveals UBoot uses a fixed length for inodes (128 bye). The inodes on my 2GB SD card are 256 bytes There was a patch that fizzled out back in January looking at this
http://www.nabble.com/-U-Boot----PATCH--Fix-ext2-non-working-td21742132.html...
The superblock contains the inode length in the function
static int ext2fs_read_inode() ...
inodes_per_block = EXT2_BLOCK_SIZE (data) / __le32_to_cpu(sblock->inode_size); ...
status = ext2fs_devread (((__le32_to_cpu (blkgrp.inode_table_id) + blkno) << LOG2_EXT2_BLOCK_SIZE (data)), __le32_to_cpu(sblock->inode_size) * blkoff, sizeof (struct ext2_inode), /*HACK till I fix up struct size*/ (char *) inode);
This seems to improve matters for me BUT I dont have any other hardware to test on and I am no ext2fs guru. Does anyone else have any ideas?