Re: [Yaffs] YAFFS2 and HIGHMEM

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Matthias Fuchs
Date:  
To: yaffs
CC: Ajit.Prem
Subject: Re: [Yaffs] YAFFS2 and HIGHMEM
Hi all,

I totally ack with Ajit's description of the issue.

There must be an issue with YAFFS when HIGHMEM is used on PowerPC systems.
I can imagine that there are not many systems out there with more than 768MB
RAM that are using YAFFS. So that's might be the cause why this issue has not
been observed by others until now.

Matthias

On Friday 22 August 2008 21:32, wrote:
> Hello,
>
> Does YAFFS2 work on boards which use HIGHMEM? I have a PowerPC board
> that comes in 1G and 2G variants. YAFFS works just fine on the 1G board
> and works just fine on the 2G board if I boot with mem=1G (HIGHMEM
> starts above 1G on this board). Everything but YAFFS work just fine on
> the 2G board when the full 2G is used, so there isn't a HIGHMEM issue on
> the board.
>
> YAFFS works well enough on these boards to allow using a root file
> system on NAND. However, when I try a simple write to a YAFFS partition
> on a 2G board configured to use the full 2G, I get the following crash.
> I don't seem to be the only one with this issue. My board is based on a
> dual-core 8641D PowerPC. Mathias Fuchs reported exactly the same problem
> on a 1G 44O board. The posting can be found with a google search for the
> item "HIGHMEM on 440EPx board with 1GB of RAM". On Matthias' board
> HIGHMEM started at 768M. When Matthias reconfigured his kernel so that
> he could use the full 1G as low memory, his YAFFS problems went away.
>
>
> # mount -t yaffs2 /dev/mtdblock4 /mnt
> # cd /mnt
> # cp -a /etc .
>
> ------------[ cut here ]------------
> Kernel BUG at 8013cd0c [verbose debug info unavailable]
> Oops: Exception in kernel mode, sig: 5 [#1] 
> PREEMPT SMP NR_CPUS=2 
> Modules linked in:
> NIP: 8013CD0C LR: 8013CD0C CTR: 8003E24C
> REGS: 8fb53a00 TRAP: 0700   Not tainted  (2.6.20)
> MSR: 00029032 <EE,ME,IR,DR>  CR: 24422428  XER: 00000000 
> TASK = 842652d0[626] 'cp' THREAD: 8fb52000 CPU: 0
> GPR00: 8013CD0C 8FB53AB0 842652D0 00000012 6419EFF8 F0266C8C 3F664DCF
> 00000000
> GPR08: 00000610 00000000 10000000 8FB52000 38526268 10024A08 80400000
> 00001000
> GPR16: BD37E368 8FB53C38 8FB53C3C 00000000 00000000 00000000 8FB53BC0
> 00000000
> GPR24: 00000000 00000001 00000000 84272980 00000000 004C2000 8FB53BC0
> BD318000 
> NIP [8013CD0C] nandmtd2_WriteChunkWithTagsToNAND+0xe8/0xf0
> LR [8013CD0C] nandmtd2_WriteChunkWithTagsToNAND+0xe8/0xf0
> Call Trace:
> [8FB53AB0] [8013CD0C] nandmtd2_WriteChunkWithTagsToNAND+0xe8/0xf0
> (unreliable) 
> [8FB53B10] [8013ACDC] yaffs_WriteChunkWithTagsToNAND+0x90/0x140
> [8FB53B30] [80133C64] yaffs_WriteNewChunkWithTagsToNAND+0x3d4/0x538
> [8FB53B70] [80135BE0] yaffs_WriteChunkDataToObject+0x94/0xe8
> [8FB53C30] [80136304] yaffs_WriteDataToFile+0x214/0x2e0 
> [8FB53C90] [8012FE04] yaffs_commit_write+0x120/0x2bc 
> [8FB53CD0] [800513D8] generic_file_buffered_write+0x3cc/0xa2c
> [8FB53D90] [80052E48] __generic_file_aio_write_nolock+0x314/0x5bc
> [8FB53E00] [80053158] generic_file_aio_write+0x68/0x10c 
> [8FB53E30] [80078F88] do_sync_write+0xc0/0x134 
> [8FB53EF0] [80079628] vfs_write+0xf4/0x1bc 
> [8FB53F10] [8007A210] sys_write+0x4c/0x90 
> [8FB53F40] [80011458] ret_from_syscall+0x0/0x38
> --- Exception: c01 at 0xff69874
>     LR = 0x10008670
> Instruction dump:
> 80010064 38210060 7c0803a6 4e800020 3c608038 386378bc 4bee9125 0fe00000
> 48000000 3c608038 38637908 4bee9111 <0fe00000> 48000000 7c0802a6
> 9421ff90 

>
>
>
> Some other info:
>
> -- part of boot log
>
> Creating 4 MTD partitions on "mvme7100-flash":
> 0x00000000-0x01000000 : "Linux Kernel + INITRD"
> 0x01000000-0x07e00000 : "Linux JFFS2 Filesystem"
> 0x07e00000-0x07f00000 : "Bootloader Block B"
> 0x07f00000-0x08000000 : "Bootloader Block A"
> NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 4GiB
> 3,3V 8-bit)
> Scanning device for bad blocks
> Using static partition definition
> Creating 2 MTD partitions on "mvme7100-nand":
> 0x00000000-0x40000000 : "Linux"
> 0x40000000-0x80000000 : "Linux"
>
>
> # cat /proc/mtd
> dev:    size   erasesize  name
> mtd0: 01000000 00040000 "Linux Kernel + INITRD"
> mtd1: 06e00000 00040000 "Linux JFFS2 Filesystem"
> mtd2: 00100000 00040000 "Bootloader Block B"
> mtd3: 00100000 00040000 "Bootloader Block A"
> mtd4: 40000000 00040000 "Linux"
> mtd5: 40000000 00040000 "Linux"

>
> Partitions mtd0->mtd3 are in NOR flash. Partitions mtd4 and mtd5 are in
> NAND flash.
>
> The flash part is Samsung K9KAG08U0M SLC flash. We use 4G and 8G
> variants.
> I have also had exactly the same problem using Samsung K9LBG08U0M MLC
> flash
> in 8G and 16G variants (no surprise). These flash parts have a 4K page
> size
> and 128 byte spare area.
>
> I have these problems using a Linux 2.6.20 kernel with a YAFFS snapshot
> from
> 8/15/2008, and also from another snapshot from sometime ago - yaffs
> versions below.
>
> cat /proc/yaffs
> YAFFS built:Aug 19 2008 10:45:21
> $Id: yaffs_fs.c,v 1.63 2007/09/19 20:35:40 imcd Exp $
> $Id: yaffs_guts.c,v 1.52 2007/10/16 00:45:05 charles Exp $
>
> Any ideas on how I can fix this problem would be appreciated.
>
> Thanks,
>
> ap
>
> _______________________________________________
> yaffs mailing list
>
> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>
>


--
-------------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs
Head of System Design

esd electronic system design gmbh
Vahrenwalder Str. 207 - 30165 Hannover - GERMANY
Phone: +49-511-37298-0 - Fax: +49-511-37298-68
Please visit our homepage http://www.esd.eu
Quality Products - Made in Germany
-------------------------------------------------------------------------
Geschäftsführer: Klaus Detering, Dr. Werner Schulze
Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832
-------------------------------------------------------------------------