Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vxWorks 6.8: Issue in accessing 16-bit NOR flash

209 views
Skip to first unread message

Titan clash

unread,
Jun 23, 2011, 6:08:06 AM6/23/11
to
Hi,

I am new to vxWorks. I am working on vxWorks 6.8 in a powerpc board
and using Intel/Numonyx

128MB 16-bit NOR flash ( Manufacturer ID 0x89, Device code: 0x227E ).

I am trying to access NOR Flash from vxWorks running from RAM (using
Linux u-boot). I am

using cfiamd.c as my MTD driver as I am not able to find the suitable
driver for this flash.

I am facing the following 2 problems with that Flash.

Issue 1:

The flash type is not in the jedec list of the cfiamd.c driver. I am
getting different flash

type values for different base address of the flash.

Example: Actual flash address - 0xE800 0000 -> Flash type 0x5555
Modified Flash Address - 0xE940 0000 -> Flash type 0xC97c

However, I added this Flash type values in that cfiamd.c driver file
and the Flash got

detected.

-> tffsShow
Debug: entering CFIAMD identification routine.
flash pointer: 0xE9400000 Socket: 0x3174D0
Debug: detected one 16 bit device
WORD MODE !!
Debug: Commandset ID is 0x2
Debug: Number of erase block descriptions is 0x1
Debug: Num sectors in 0 - 256
Debug: Sector size is 0x200
Debug: 256 sectors on device
Debug: Erasable block size is 0x20000
Debug: Chip size is 0x7e0000
Debug: Uniform device, no boot block
Debug: Number of boot block sectors is 16908288
Debug: Looking for Flash device at base 0xe9400000
Debug: No of chips detected is 1
0: socket=RFA: type=0xc79c, unitSize=0x20000, mediaSize=0x7e0000
value = 50 = 0x32 = '2'

-> tffsShowAll
TFFS Version 6.8
0: socket=RFA: type=0xc79c, unitSize=0x20000, mediaSize=0x7e0000
value = 50 = 0x32 = '2'


Issue 2:

The system gets hang when I issue sysTffsFormat command.

-> sysTffsFormat
Debug: entering CFIAMD identification routine.
flash pointer: 0xE9400000 Socket: 0x3174D0
Debug: detected one 16 bit device
WORD MODE !!
Debug: Commandset ID is 0x2
Debug: Number of erase block descriptions is 0x1
Debug: Num sectors in 0 - 256
Debug: Sector size is 0x200
Debug: 256 sectors on device
Debug: Erasable block size is 0x20000
Debug: Chip size is 0x7e0000
Debug: Uniform device, no boot block
Debug: Number of boot block sectors is 16908288
Debug: Looking for Flash device at base 0xe9400000
Debug: No of chips detected is 1

0x00161f38 vxTaskEntry +0x48 : 0x0025ad88 ()
0x0025ad88 shellTask +0x4f8: shellExec ()
0x0025a7f4 shellExec +0x178: 0x002526ec ()
0x00252924 shellInterpCInit+0x5f8: shellInterpCparse ()
0x00252038 shellInterpCparse+0xba0: 0x0024f718 ()
0x0024f740 shellInterpClex+0x1ce8: 0x0024f414 ()
0x0024f44c shellInterpClex+0x19f4: 0x0024f29c ()
0x0024f354 shellInterpClex+0x18fc: shellInternalFunctionCall ()
0x0024ad24 shellInternalFunctionCall+0xa8 : sysTffsFormat ()
0x0010adf4 sysTffsFormat+0x4c : tffsDevFormat ()
0x00272018 tffsDevFormat+0x94 : flCall ()
0x0026d4e4 flCall +0x324: 0x0026c940 ()
0x0026c994 poolShow +0x7d0: flFormat ()
0x00270cd8 flFormat +0x68 : 0x002706d4 ()
0x00270978 formatFTL +0x2a8: 0x0026e07c ()
0x0026e0a8 flDosFormat +0x414: 0x0026e01c ()
0x0026e074 flDosFormat +0x3e0: 0x00108654 ()


Can anyone give some inputs on what could be wrong?

Thanks
Neo

Titan clash

unread,
Jun 23, 2011, 6:18:46 AM6/23/11
to

Hi,

I forgot to give some information. The flash address range is 0xE800
0000 - 0xF000 0000. Since, there are some vital informations on that
flash ( uboot, configs etc). In order to protect those information, I
modified the Flash base address in code with some offset. (0xE940
0000) and chip size information as 8MB ( 0x7e0000 ).

So, I want to use/format this 8MB area in that NOR flash.
Sorry for the confusion.

Thanks
Neo

0 new messages