Atmel website | ARM Community | AVR freaks | Technical Support
Banner
 FAQ •  Search •  Register •  Login 

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: AT91SAM9260B-CU AND NAND FLASH PROBLEM
PostPosted: Tue Oct 25, 2011 9:24 am 
Offline

Joined: Sat Aug 11, 2007 9:17 am
Posts: 3
Location: Poland
Hello

I am useing ARM9 AT91SAM9260B and NAND Flash K9G8G08U0C-SCB0, working on SAM-BA 2.10.
When I am loading by SAM-BA bootloader at91Boot (Bootstrap-v1.0) and u-boot, Inicialization of NAND Flash is ok but problem is to write something becouse each memory block is bad.

RomBOOT
>-I- -- NandFlash ISP applet 2.10 --
-I- -- AT91SAM9260-EK
-I- -- Compiled: Jul 12 2010 15:01:04 --
-I- INIT command
-I- Nandflash ID is 0x7284D3EC
-I- Nandflash driver initialized
-I- pageSize : 0x1000 blockSize : 0x80000 blockNb : 0x800 bus width : 8
-I- bufferAddr : 0x20003e34
-I- End of applet (command : 0 --- status : 0)
-I- WRITE arguments : offset 0x0, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x0, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x80000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x1, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x100000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x2, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x180000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x3, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x200000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x4, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x280000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x5, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x300000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x6, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x380000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x7, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x400000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x8, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x480000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0x9, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x500000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0xa, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x580000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0xb, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x600000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0xc, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x680000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0xd, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.
-I- End of applet (command : 2 --- status : 9)
-I- WRITE arguments : offset 0x700000, buffer at 0x20003e34, of 0x101c Bytes
-I- WRITE at block 0xe, page 0x0, offset in page 0x0
-E- SkipBlockNandFlash_ReadBlock: Block is BAD.

etc.


After makeing SCRUB command is the same:

RomBOOT
>-I- -- NandFlash ISP applet 2.10 --
-I- -- AT91SAM9260-EK
-I- -- Compiled: Jul 12 2010 15:01:04 --
-I- INIT command
-I- Nandflash ID is 0x7284D3EC
-I- Nandflash driver initialized
-I- pageSize : 0x1000 blockSize : 0x80000 blockNb : 0x800 bus width : 8
-I- bufferAddr : 0x20003e34
-I- End of applet (command : 0 --- status : 0)
-I- BATCH ERASE command
-I- Erase block from #0 to #256
-E- EraseBlock: Could not erase block 128.
-E- EraseBlock: Could not erase block 128.
-E- RawNandFlash_EraseBlock: Failed to erase 128 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-I- Batch Erase achieved
-I- End of applet (command : 14 --- status : 0)
-I- BATCH ERASE command
-I- Erase block from #256 to #512
-I- Batch Erase achieved
-I- End of applet (command : 14 --- status : 0)
-I- BATCH ERASE command
-I- Erase block from #512 to #768
-E- EraseBlock: Could not erase block 628.
-E- EraseBlock: Could not erase block 628.
-E- RawNandFlash_EraseBlock: Failed to erase 628 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 629.
-E- EraseBlock: Could not erase block 629.
-E- RawNandFlash_EraseBlock: Failed to erase 629 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 630.
-E- EraseBlock: Could not erase block 630.
-E- RawNandFlash_EraseBlock: Failed to erase 630 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-I- Batch Erase achieved
-I- End of applet (command : 14 --- status : 0)
-I- BATCH ERASE command
-I- Erase block from #768 to #1024
-E- EraseBlock: Could not erase block 957.
-E- EraseBlock: Could not erase block 957.
-E- RawNandFlash_EraseBlock: Failed to erase 957 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-I- Batch Erase achieved
-I- End of applet (command : 14 --- status : 0)
-I- BATCH ERASE command
-I- Erase block from #1024 to #1280
-E- EraseBlock: Could not erase block 1039.
-E- EraseBlock: Could not erase block 1039.
-E- RawNandFlash_EraseBlock: Failed to erase 1039 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1042.
-E- EraseBlock: Could not erase block 1042.
-E- RawNandFlash_EraseBlock: Failed to erase 1042 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1043.
-E- EraseBlock: Could not erase block 1043.
-E- RawNandFlash_EraseBlock: Failed to erase 1043 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1044.
-E- EraseBlock: Could not erase block 1044.
-E- RawNandFlash_EraseBlock: Failed to erase 1044 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1045.
-E- EraseBlock: Could not erase block 1045.
-E- RawNandFlash_EraseBlock: Failed to erase 1045 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1046.
-E- EraseBlock: Could not erase block 1046.
-E- RawNandFlash_EraseBlock: Failed to erase 1046 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1047.
-E- EraseBlock: Could not erase block 1047.
-E- RawNandFlash_EraseBlock: Failed to erase 1047 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1048.
-E- EraseBlock: Could not erase block 1048.
-E- RawNandFlash_EraseBlock: Failed to erase 1048 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1049.
-E- EraseBlock: Could not erase block 1049.
-E- RawNandFlash_EraseBlock: Failed to erase 1049 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1050.
-E- EraseBlock: Could not erase block 1050.
-E- RawNandFlash_EraseBlock: Failed to erase 1050 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1051.
-E- EraseBlock: Could not erase block 1051.
-E- RawNandFlash_EraseBlock: Failed to erase 1051 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1052.
-E- EraseBlock: Could ase b-E- EraseBlo-.
-E- Erase: Coul-E- Ere- Ski.
-E-ck: Ferase --E- EraseBloase .-: Coas.
-Fl-E- :a.Flash-E- Eras: Co-E- Er.
-E- Erase: CoulFck: Fase b-dock: -E- EraseBlock: Could not erase block 1073.
-E- RawNandFlash_EraseBlock: Failed to erase 1073 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1074.
-E- EraseBlock: Could not erase block 1074.
-E- RawNandFlash_EraseBlock: Failed to erase 1074 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1075.
-E- EraseBlock: Could not erase block - Skip-Eeer -E-E- -E-E- EraseBlo: Co.
erase 1080 tD
--E- Erase block 10.
-E- RawNandFlash_EraseBlock: Failed to erase 1081 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1082.
-E- EraseBlock: Could not erase block 1082.
-E- RawNandFlash_EraseBlock: Failed to erase 1082 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1083.
-E- EraseBlock: Could not erase block 1083.
-E- RawNandFlash_EraseBlock: Failed to erase 1083 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1084.
-E- EraseBlock: Could not erase block 1084.
-E- RawNandFlash_EraseBlock: Failed to erase 1084 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1085.
-E- EraseBlock: Could not erase block 1085.
-E- RawNandFlash_EraseBlock: Failed to erase 1085 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1086.
-E- EraseBlock: Could not erase block 1086.
-E- RawNandFlash_EraseBlock: Failed to erase 1086 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1087.
-E- EraseBlock: Could not erase block 1087.
-E- RawNandFlash_EraseBlock: Failed to erase 1087 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1088.
-E- EraseBlock: Could not erase block 1088.
-E- RawNandFlash_EraseBlock: Failed to erase 1088 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1089.
-E- EraseBlock: Could not erase block 1089.
-E- RawNandFlash_EraseBlock: Failed to erase 1089 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1090.
-E- EraseBlock: Could not erase block 1090.
-E- RawNandFlash_EraseBlock: Failed to erase 1090 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1091.
-E- EraseBlock: Could not erase block 1091.
-E- RawNandFlash_EraseBlock: Failed to erase 1091 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 1092.
-E- EraseBlock: Could not erase block 1092.
-E- RawNandFlash_EraseBlock: Failed to erase 1092 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD

(.........)

-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2020.
-E- EraseBlock: Could not erase block 2020.
-E- RawNandFlash_EraseBlock: Failed to erase 2020 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2021.
-E- EraseBlock: Could not erase block 2021.
-E- RawNandFlash_EraseBlock: Failed to erase 2021 after 2 to maer 2 tck: F.-E- E--E- Er: Co-E-E- D-E- EraseBlock: Could not erase block 2033.
-E- EraseBlock: Could not erase block 2033.
-E- RawNandFlash_EraseBlock: Failed to erase 2033 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2034.
-E- EraseBlock: Could not erase block 2034.
-E- RawNandFlash_EraseBlock: Failed to erase 2034 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2035.
-E- EraseBlock: Could not erase block 2035.
-E- RawNandFlash_EraseBlock: Failed to erase 2035 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2036.
-E- EraseBlock: Could not erase block 2036.
-E- RawNandFlash_EraseBlock: Failed to erase 2036 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2037.
-E- EraseBlock: Could not erase block 2037.
-E- RawNandFlash_EraseBlock: Failed to erase 2037 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2038.
-E- EraseBlock: Could not erase block 2038.
-E- RawNandFlash_EraseBlock: Failed to erase 2038 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2039.
-E- EraseBlock: Could not erase block 2039.
-E- RawNandFlash_EraseBlock: Failed to erase 2039 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2040.
-E- EraseBlock: Could not erase block 2040.
-E- RawNandFlash_EraseBlock: Failed to erase 2040 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2041.
-E- EraseBlock: Could not erase block 2041.
-E- RawNandFlash_EraseBlock: Failed to erase 2041 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2042.
-E- EraseBlock: Could not erase block 2042.
-E- RawNandFlash_EraseBlock: Failed to erase 2042 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2043.
-E- EraseBlock: Could not erase block 2043.
-E- RawNandFlash_EraseBlock: Failed to erase 2043 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2044.
-E- EraseBlock: Could not erase block 2044.
-E- RawNandFlash_EraseBlock: Failed to erase 2044 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2045.
-E- EraseBlock: Could not erase block 2045.
-E- RawNandFlash_EraseBlock: Failed to erase 2045 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2046.
-E- EraseBlock: Could not erase block 2046.
-E- RawNandFlash_EraseBlock: Failed to erase 2046 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-E- EraseBlock: Could not erase block 2047.
-E- EraseBlock: Could not erase block 2047.
-E- RawNandFlash_EraseBlock: Failed to erase 2047 after 2 tries
-E- SkipBlockNandFlash_EraseBlock: Cannot erase block, try to mark it BAD
-I- Full Erase achieved, erase type is 59921
-I- End of applet (command : 14 --- status : 0)


When I was useing ald version of NAND Flash K9G8G08U0A-SCB0, everything was ok, but now Samsung stop produceing it and I have to use new verion.

Maybe someone have the same problem and have some solution. Thanks very much.


Top
 Profile  
 
 Post subject: Re: AT91SAM9260B-CU AND NAND FLASH PROBLEM
PostPosted: Tue Oct 25, 2011 3:28 pm 
Offline

Joined: Sat Oct 30, 2010 6:04 pm
Posts: 574
Not to point out the obvious, but the block size for the new part is 1 MB and the page size is 8 KB, with a 24 bit ECC. http://www.vs-hk.cn/K9G8G08U0C.pdf

Your log clearly shows a 512 KB block, 4 KB page detected by the applet, and any subsequent interaction with the memory is therefore going to fail.

You will likely have to modify the applet, or write your own downloader application. You will have to modify AT91BootStrap, and the placement of uBoot, the uBoot environment, along with the kernel and filesystem base addresses to accommodate this.


Top
 Profile  
 
 Post subject: Re: AT91SAM9260B-CU AND NAND FLASH PROBLEM
PostPosted: Wed Oct 26, 2011 8:45 am 
Offline

Joined: Tue Oct 25, 2011 9:12 am
Posts: 1
Hi

I see, so Samsung memory is new and SAM-BA 2.10 do not have definision, during inicialize
are taken wrong values of block and page saize.

I found in SAM-BA catalog

SAM-BA v2.10\applets\at91lib\memories\NandFlashModelList.c

this definisions:

// | ID | Options | Page | Mo | Block |BlkPg |DevBlk
{0x6e, NandFlashModel_DATABUS8, 256, 1, 4, &nandSpareScheme256},
{0x64, NandFlashModel_DATABUS8, 256, 2, 4, &nandSpareScheme256},
{0x6b, NandFlashModel_DATABUS8, 512, 4, 8, &nandSpareScheme512},
{0xe8, NandFlashModel_DATABUS8, 256, 1, 4, &nandSpareScheme256},
{0xec, NandFlashModel_DATABUS8, 256, 1, 4, &nandSpareScheme256},
{0xea, NandFlashModel_DATABUS8, 256, 2, 4, &nandSpareScheme256},
{0xd5, NandFlashModel_DATABUS8, 512, 4, 8, &nandSpareScheme512},
{0xe3, NandFlashModel_DATABUS8, 512, 4, 8, &nandSpareScheme512},
{0xe5, NandFlashModel_DATABUS8, 512, 4, 8, &nandSpareScheme512},
{0xd6, NandFlashModel_DATABUS8, 512, 8, 8, &nandSpareScheme512},

{0x39, NandFlashModel_DATABUS8, 512, 8, 8, &nandSpareScheme512},
{0xe6, NandFlashModel_DATABUS8, 512, 8, 8, &nandSpareScheme512},
{0x49, NandFlashModel_DATABUS16, 512, 8, 8, &nandSpareScheme512},
{0x59, NandFlashModel_DATABUS16, 512, 8, 8, &nandSpareScheme512},

{0x33, NandFlashModel_DATABUS8, 512, 16, 16, &nandSpareScheme512},
{0x73, NandFlashModel_DATABUS8, 512, 16, 16, &nandSpareScheme512},
{0x43, NandFlashModel_DATABUS16, 512, 16, 16, &nandSpareScheme512},
{0x53, NandFlashModel_DATABUS16, 512, 16, 16, &nandSpareScheme512},

{0x35, NandFlashModel_DATABUS8, 512, 32, 16, &nandSpareScheme512},
{0x75, NandFlashModel_DATABUS8, 512, 32, 16, &nandSpareScheme512},
{0x45, NandFlashModel_DATABUS16, 512, 32, 16, &nandSpareScheme512},
{0x55, NandFlashModel_DATABUS16, 512, 32, 16, &nandSpareScheme512},

{0x36, NandFlashModel_DATABUS8, 512, 64, 16, &nandSpareScheme512},
{0x76, NandFlashModel_DATABUS8, 512, 64, 16, &nandSpareScheme512},
{0x46, NandFlashModel_DATABUS16, 512, 64, 16, &nandSpareScheme512},
{0x56, NandFlashModel_DATABUS16, 512, 64, 16, &nandSpareScheme512},

{0x78, NandFlashModel_DATABUS8, 512, 128, 16, &nandSpareScheme512},
{0x39, NandFlashModel_DATABUS8, 512, 128, 16, &nandSpareScheme512},
{0x79, NandFlashModel_DATABUS8, 512, 128, 16, &nandSpareScheme512},
{0x72, NandFlashModel_DATABUS16, 512, 128, 16, &nandSpareScheme512},
{0x49, NandFlashModel_DATABUS16, 512, 128, 16, &nandSpareScheme512},
{0x74, NandFlashModel_DATABUS16, 512, 128, 16, &nandSpareScheme512},
{0x59, NandFlashModel_DATABUS16, 512, 128, 16, &nandSpareScheme512},

{0x71, NandFlashModel_DATABUS8, 512, 256, 16, &nandSpareScheme512},

// Large blocks devices. Parameters must be fetched from the extended I
#define OPTIONS NandFlashModel_COPYBACK

{0xA2, NandFlashModel_DATABUS8 | OPTIONS, 0, 64, 0, &nandSpareScheme2048},
{0xF2, NandFlashModel_DATABUS8 | OPTIONS, 0, 64, 0, &nandSpareScheme2048},
{0xB2, NandFlashModel_DATABUS16 | OPTIONS, 0, 64, 0, &nandSpareScheme2048},
{0xC2, NandFlashModel_DATABUS16 | OPTIONS, 0, 64, 0, &nandSpareScheme2048},

{0xA1, NandFlashModel_DATABUS8 | OPTIONS, 0, 128, 0, &nandSpareScheme2048},
{0xF1, NandFlashModel_DATABUS8 | OPTIONS, 0, 128, 0, &nandSpareScheme2048},
{0xB1, NandFlashModel_DATABUS16 | OPTIONS, 0, 128, 0, &nandSpareScheme2048},
{0xC1, NandFlashModel_DATABUS16 | OPTIONS, 0, 128, 0, &nandSpareScheme2048},

{0xAA, NandFlashModel_DATABUS8 | OPTIONS, 0, 256, 0, &nandSpareScheme2048},
{0xDA, NandFlashModel_DATABUS8 | OPTIONS, 0, 256, 0, &nandSpareScheme2048},
{0xBA, NandFlashModel_DATABUS16 | OPTIONS, 0, 256, 0, &nandSpareScheme2048},
{0xCA, NandFlashModel_DATABUS16 | OPTIONS, 0, 256, 0, &nandSpareScheme2048},

{0xAC, NandFlashModel_DATABUS8 | OPTIONS, 0, 512, 0, &nandSpareScheme2048},
{0xDC, NandFlashModel_DATABUS8 | OPTIONS, 0, 512, 0, &nandSpareScheme2048},
{0xBC, NandFlashModel_DATABUS16 | OPTIONS, 0, 512, 0, &nandSpareScheme2048},
{0xCC, NandFlashModel_DATABUS16 | OPTIONS, 0, 512, 0, &nandSpareScheme2048},

{0xA3, NandFlashModel_DATABUS8 | OPTIONS, 0, 1024, 0, &nandSpareScheme2048},
{0xD3, NandFlashModel_DATABUS8 | OPTIONS, 0, 1024, 0, &nandSpareScheme2048},
{0xB3, NandFlashModel_DATABUS16 | OPTIONS, 0, 1024, 0, &nandSpareScheme2048},
{0xC3, NandFlashModel_DATABUS16 | OPTIONS, 0, 1024, 0, &nandSpareScheme2048},

{0xA5, NandFlashModel_DATABUS8 | OPTIONS, 0, 2048, 0, &nandSpareScheme2048},
{0xD5, NandFlashModel_DATABUS8 | OPTIONS, 0, 2048, 0, &nandSpareScheme2048},
{0xB5, NandFlashModel_DATABUS16 | OPTIONS, 0, 2048, 0, &nandSpareScheme2048},
{0xC5, NandFlashModel_DATABUS16 | OPTIONS, 0, 2048, 0, &nandSpareScheme2048},
};

My Nandflash ID is 0x7284D3EC, and this applet takes info from last two digits (0xEC) or
0xD3 ?
How have I change it ? Maybe someone done it before. If You have some experience please help.


Top
 Profile  
 
 Post subject: Re: AT91SAM9260B-CU AND NAND FLASH PROBLEM
PostPosted: Wed Oct 26, 2011 4:56 pm 
Offline

Joined: Sat Oct 30, 2010 6:04 pm
Posts: 574
The problem is quite invasive. For instance you'd have to change how NandFlashModel_Find() handles the 4th byte (ID4) when it decodes the geometry of the LARGE BLOCK flash devices.

I wouldn't waste my time fighting with SAM-BA. You first need to examine the code in uBoot to confirm if it can auto detect the part properly, and also the kernel. If you had the right tools you'd be downloading/debugging code directly into SDRAM now, and validating your NAND support. If you can make that work, then back port it into SAM-BA. If SAM-BA is your only method of getting code on the board, you need to re-evaluated your tools and approach.

AT91BootStrap has a similar table. A rather flawed approach, but with only 4K of code to play with the 9260 is a bit limited, and isn't going to support an ONFI method.

Look also at some of the new patches for SAM-BA v2.10 for the newer devices, these might have support for newer/broader NAND parts, I haven't checked.

The realistic solution is to use a part which fits within the current software model. Which is why the bulk of the mind-share isn't using the Samsung part, and why you're not likely to see a free solution pop-up.

Discuss your options with your local ATMEL FAE


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: