porting flash

mike lee mikelee at avantwave.com
Mon Apr 11 07:15:36 EDT 2005


Dear all
    I have added a line to cfi_cmdset_0002.c to solve the problem below.
Actually, i can not find any init wait queue in cmdset_0002, when i add
it back , the problem solved. I get mess because there is no problem
when i port another amdflash. Please correct me if i am wrong.
    I am using unpatched linux-2.6.10

struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
............
    for (i=0; i< cfi->numchips; i++) {
        cfi->chips[i].word_write_time = 1<<cfi->cfiq->WordWriteTimeoutTyp;
        cfi->chips[i].buffer_write_time = 1<<cfi->cfiq->BufWriteTimeoutTyp;
        cfi->chips[i].erase_time = 1<<cfi->cfiq->BlockEraseTimeoutTyp;
        init_waitqueue_head(&cfi->chips[i].wq); //line added by
mike,11/mar/2005
    }       

best regard
Mike,Lee


mike lee wrote:

>Hi all
>    I am porting mtd mapping driver to MXLADS board from motorola. It
>embedded two 16bit 8MB AMD CFI flash to interleave 32 bit bus. I have
>set the geometry function on 2-chip interleave.
>   I have no idea on this oops, Do anybody have ideas on this?
>  Thanks for helping
>
>elevator: using deadline as default io scheduler
>NOR flash:(size->0x800000 mem->0x10000000)
>NOR flash: try bankwidth 32bit, probing...
>NOR Flash: Found 2 x16 devices at 0x0 in 32-bit bank
> Amd/Fujitsu Extended Query Table at 0x0040
>NOR Flash: CFI does not contain boot bank location. Assuming top.
>number of CFI chips: 1
>cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
>RedBoot partition parsing not available
>NOR flash driver: Use static partition allocation
>Creating 5 MTD partitions on "NOR Flash 1":
>0x00000000-0x00100000 : "bootloader"
>0x00100000-0x00300000 : "kernel"
>0x00300000-0x00500000 : "System RFS"
>0x00500000-0x00700000 : "User Application"
>0x00700000-0x00800000 : "User Data"
>Bluetooth: HCI UART driver ver 2.1
>Bluetooth: HCI H4 protocol initialized
>Bluetooth: HCI BCSP protocol initialized
>NET: Registered protocol family 2
>IP: routing cache hash table of 512 buckets, 4Kbytes
>TCP: Hash tables configured (established 4096 bind 8192)
>NET: Registered protocol family 1
>Bluetooth: L2CAP ver 2.6
>Bluetooth: L2CAP socket layer initialized
>Bluetooth: RFCOMM ver 1.3
>Bluetooth: RFCOMM socket layer initialized
>Bluetooth: RFCOMM TTY layer initialized
>Unable to handle kernel NULL pointer dereference at virtual address 00000000
>pgd = c0004000
>[00000000] *pgd=00000000
>Internal error: Oops: 5 [#1]
>Modules linked in:
>CPU: 0
>PC is at __wake_up_common+0x28/0x7c
>LR is at 0x0
>pc : [<c00318e0>]    lr : [<00000000>]    Not tainted
>sp : c035be4c  ip : c035be78  fp : c035be74
>r10: 00000003  r9 : 00000000  r8 : 00000000
>r7 : c0198494  r6 : c035a000  r5 : c027dcf4  r4 : 00000001
>r3 : 00000000  r2 : 00000001  r1 : 00000003  r0 : c027dcf4
>Flags: nzcv  IRQs off  FIQs on  Mode SVC_32  Segment kernel
>Control: C000717F  Table: 08004000  DAC: 0000001D
>Process mtdblockd (pid: 10, stack limit = 0xc035a190)
>Stack: (0xc035be4c to 0xc035c000)
>be40:                            c035a000 60000013 c035a000 c0198494
>c027dcd8
>be60: c027dcd8 00000000 c035be90 c035be78 c0031974 c00318c8 00000000
>00000000
>be80: c027dca0 c035beb8 c035be94 c00fe5f4 c0031944 c027dca0 00000000
>c027dca0
>bea0: c035a000 00000200 c0198494 c035bf0c c035bebc c00fe848 c00fe4cc
>00000000
>bec0: 00000000 c027dca0 00300000 00300000 00000000 00000200 c027dca0
>00000200
>bee0: 00000000 00000000 00000200 00000000 00000200 c035bf54 00000000
>c038c000
>bf00: c035bf44 c035bf10 c00f7dec c00fe614 c035bf54 c038c000 00000001
>c035bf44
>bf20: 00000200 00000000 00000200 c0363de0 c038c000 00020000 c035bf80
>c035bf48
>bf40: c00fa818 c00f7d64 c035bf54 c038c000 c0347200 00000000 00000008
>00000000
>bf60: c038c000 c0198334 c035ef60 00000000 c0349304 c035bfa4 c035bf84
>c00fabf4
>bf80: c00fa750 c035ef70 c035a000 c035ef60 c035068c c0198334 c035bff4
>c035bfa8
>bfa0: c00fae58 c00fab94 00000000 c02cd560 c00318a0 00000000 00000000
>00000000
>bfc0: c02cd560 c00318a0 00000000 00000000 00000000 00000000 00000000
>00000000
>bfe0: 00000000 00000000 00000000 c035bff8 c0037c50 c00fac88 00000000
>00000000
>Backtrace:
>[<c00318b8>] (__wake_up_common+0x0/0x7c) from [<c0031974>]
>(__wake_up+0x40/0x64)
>[<c0031934>] (__wake_up+0x0/0x64) from [<c00fe5f4>] (put_chip+0x138/0x148)
> r5 = C027DCA0  r4 = 00000000
>[<c00fe4bc>] (put_chip+0x0/0x148) from [<c00fe848>]
>(cfi_amdstd_read+0x244/0x2bc)
> r8 = C0198494  r7 = 00000200  r6 = C035A000  r5 = C027DCA0
> r4 = 00000000
>[<c00fe604>] (cfi_amdstd_read+0x0/0x2bc) from [<c00f7dec>]
>(part_read+0x98/0xcc)
>[<c00f7d54>] (part_read+0x0/0xcc) from [<c00fa818>]
>(do_cached_read+0xd8/0x10c)
>[<c00fa740>] (do_cached_read+0x0/0x10c) from [<c00fabf4>]
>(do_blktrans_request+0x70/0xf4)
>[<c00fab84>] (do_blktrans_request+0x0/0xf4) from [<c00fae58>]
>(mtd_blktrans_thread+0x1e0/0x278)
> r8 = C0198334  r7 = C035068C  r6 = C035EF60  r5 = C035A000
> r4 = C035EF70
>[<c00fac78>] (mtd_blktrans_thread+0x0/0x278) from [<c0037c50>]
>(do_exit+0x0/0x534)
>Code: e1a0a001 e1a04002 e1a08003 e59b9004 (e59e7000)
> <0>Kernel panic - not syncing: Aiee, killing interrupt handler!
>
>
>______________________________________________________
>Linux MTD discussion mailing list
>http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
>  
>





More information about the linux-mtd mailing list