AnsweredAssumed Answered

ST Micro NAND flash on EBIU of Blackfin running uClinux

Question asked by jsonder4063 on Oct 31, 2011
Latest reply on Nov 9, 2011 by sonic

To whom it may concern:


We have connected the following part to the EBIU of the BF537:


NAND02GW3B2DN6 from ST Micro.  2GBit or 256MBytes.


We have 5 boards in our initial proto build were are are seeing "uncorrectable errors".  We are running uClinux (see terminal output below).  My question.  Occasionally, as we do a warm start, we are apparently getting bit flips where the file system ECC is flaging a bit problem.  Below right where the kernel frees up 120Kb (in red), I'll typically see 2 or 3 messages "uncorrectable error".  For the ST micro part above, what should be the EBIU settings?  Is there anything else we are not setting up appropriately?  This type of error is making us nervous and we want to ensure we are setting up correctly for this NAND flash.




## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   bf537-0.3-3.0.0-ADI-2011R1-pre-9
   Image Type:   Blackfin Linux Kernel Image (gzip compressed)
   Data Size:    1423235 Bytes = 1.4 MiB
   Load Address: 00001000
   Entry Point:  00286cbc
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Starting Kernel at 00286cbc
Linux version 3.0.0-ADI-2011R1-pre-9-pae+ (hoskin@linux-tclw) (gcc version 4.1.2 (ADI svn)) #2703 Tue Oct 4 14:12:08 PDT 2011
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
  fixedcode = 0x00000400-0x00000490
  text      = 0x00001000-0x001a8300
  rodata    = 0x001a8300-0x002374ec
  bss       = 0x00238000-0x00266128
  data      = 0x00266128-0x00284000
    stack   = 0x00282000-0x00284000
  init      = 0x00284000-0x002a2000
  available = 0x002a2000-0x03e00000
  DMA Zone  = 0x03e00000-0x04000000
Hardware Trace active and enabled
Boot Mode: 3
Blackfin support (C) 2004-2010 Analog Devices, Inc.
Compiled for ADSP-BF537 Rev 0.3
Blackfin Linux support by
Processor Speed: 525 MHz core clock and 131 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
  External memory: cacheable in instruction cache
Data Cache Enabled for CPU0
  External memory: cacheable (write-back) in data cache
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 15748
Kernel command line: ubi.mtd=2 root=ubi0:rootfs rw rootfstype=ubifs console=ttyBF0,57600
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 60184k/65536k RAM, (120k init code, 1692k kernel code, 880k data, 2048k dma, 612k reserved)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Configuring Blackfin Priority Driven Interrupts
Console: colour dummy device 80x25
console [ttyBF0] enabled
Calibrating delay loop... 1033.21 BogoMIPS (lpj=516608)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (13 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (36 KB free)
NET: Registered protocol family 16
Blackfin DMA Controller
Edge Motherboard: registering device resources
bio: create slab <bio-0> at 0
SCSI subsystem initialized
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs@ffc00500, dma channel@7
Advanced Linux Sound Architecture Driver Version 1.0.24.
Switching to clocksource bfin_cs_cycles
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
io scheduler noop registered
io scheduler deadline registered (default)
bfin-uart: Blackfin serial driver
bfin-uart.0: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART
bfin-uart.1: ttyBF1 at MMIO 0xffc02000 (irq = 20) is a BFIN-UART
bfin-sport-uart: Blackfin uart over sport driver
bfin-sport-uart.0: ttySS0 at MMIO 0xffc00800 (irq = 12) is a BFIN-SPORT-UART
bfin-dma: initialized
m25p80 spi0.1: m25p64 (8192 Kbytes)
Creating 2 MTD partitions on "m25p64":
0x000000000000-0x000000030000 : "bootloader"
mtd: Giving out device 0 to bootloader
0x000000030000-0x000000800000 : "kernel"
mtd: Giving out device 1 to kernel
ONFI flash detected
ONFI param page 0 valid
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND02GW3B2DN6)
Scanning device for bad blocks
Bad eraseblock 2 at 0x000000040000
Bad eraseblock 1593 at 0x00000c720000
Creating 1 MTD partitions on "gen_nand":
0x000000000000-0x000010000000 : "file system (nand)"
mtd: Giving out device 2 to file system (nand)
UBI: attaching mtd2 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: max. sequence number:       2343
UBI: attached mtd2 to ubi0
UBI: MTD device name:            "file system (nand)"
UBI: MTD device size:            256 MiB
UBI: number of good PEBs:        2046
UBI: number of bad PEBs:         2
UBI: number of corrupted PEBs:   0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 2046
UBI: number of PEBs reserved for bad PEB handling: 20
UBI: max/mean erase counter: 5/2
UBI: image sequence number:  0
UBI: background thread "ubi_bgt0d" started, PID 23
mtd: Giving out device 3 to rootfs
bfin_mii_bus: probed
bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=25)@sclk=131MHz)
bfin_mac bfin_mac.0: eth0: Blackfin on-chip Ethernet MAC driver, Version 1.1
mousedev: PS/2 mouse device common for all mice
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc01400
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
bfin-tdm bfin-tdm.1: dma rx:5 tx:6, err irq:46, regs:ffc00900
dma_alloc_init: dma_page @ 0x020de000 - 512 pages at 0x03e00000
asoc: sharc-dsp <-> bfin-tdm.1 mapping ok
ALSA device list:
  #0: bf5xx_sharc
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
rtc-bfin rtc-bfin: setting system clock to 2011-11-04 05:13:13 UTC (1320383593)
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size:   259467264 bytes (253386 KiB, 247 MiB, 2011 LEBs)
UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  0 bytes (0 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:12.
Freeing unused kernel memory: 120k freed

uncorrectable error :
uncorrectable error :
uncorrectable error :
/ #

Ethernet MAC address: 00:0c:d0:00:00:3f


Using ControlNet discovery port #49216


crc table initialized
Loading binary logging file


Running linux version 2.6.0
GCC_VERSION = 40102, Push table size = 8000 entries
Opened real time clock driver
Setting system time from real time clock
Opened SPI handle to the DSP
524288 byte Edit buffer:0x2900004
524288 byte Work buffer:0x2a00004
262160 byte Temp buffer:0x2b00004
40808 byte dynamic preset buffer (g_DynamicPresetsRAM):0x27738e4
524256 byte static preset buffer:0x2b80004
77832 byte dynamic event buffer:0x27848e4
Creating new default unit name: Default SymNet Edge 00003F
Using Edge Front Panel (level indication with color/intensity)
Using DSP data memory read cache
Checking CSettings::TranslationTable with 53 entries for errors and duplicates
  Warning #1:  No default string present for string type item for key 'dns0' at index 19
  Warning #2:  No default string present for string type item for key 'dns1' at index 20
  Warning #3:  No default string present for string type item for key 'access code' at index 31
  Warning #4:  Array count 64 for key 'log settings' at index 37 could generate a key of length 576,
        which would overwrite the entry buffer of length 512
Reading dynamic presets into static RAM to check for validity
Re-reading dynamic presets into static RAM structure


    ***** Using SPI for DSP communications
Set DSP reset active (low)
Edge ADSP-21489 Loader (400 MHz), Thu 09/22/2011 17:25:54.94


Set DSP reset inactive (high)
Edge Motherboard PCB revision: 3
DSP booted successfully
Current RS-232 baud rate: 57600 baud, Setting to 57600 baud.
i2c_write_simple: Input/output error


***Analog Control board not communicating (I/O expander chip)***
i2c_read_1: Input/output error


***Analog Control board not communicating (A/D converter chip 1)***
i2c_read_1: Input/output error


***Analog Control board not communicating (A/D converter chip 2)***
i2c_write_simple: Input/output error


i2c_write_simple: Input/output error


Opened handle to the Edge motherboard I/O SPI bus
Audinate Brooklyn card found
Comm program on Brooklyn card not running
Set DSP reset active (low)
Edge ADSP-21489 Loader (400 MHz), Thu 09/22/2011 17:25:54.94


Set DSP reset inactive (high)
SetInputMode_mars(nInput:0, InputMode:0)
SetInputMode_mars(nInput:1, InputMode:0)
SetInputMode_mars(nInput:2, InputMode:0)
SetInputMode_mars(nInput:3, InputMode:0)
Unit name changed to default Default SymNet Edge 00003F
Adding log string: [11/04/2011 04:13:19] Completed initialization
  to add_index: 115, logging.count: 116
Couldn't bind virtual front panel socket: Address already in use
Couldn't bind Web Arc socket: Address already in use
Couldn't bind Web Arc socket: Address already in use
DHCP did not need to be killed.Calling ifconfig(,
Set Default Route
Adding Link Local Routes
Binding sockets for IP address
Wrote binary log file, 10250 bytes