at91: Status of NAND flash access

Bryan Evenson bevenson at melinkcorp.com
Wed Dec 5 22:13:29 EST 2012


Josh,

I spoke too soon.  I was able to read and use the filesystem from NAND
flash with the patch you provided when I applied it to the Atmel 3.4
kernel fork over at https://github.com/linux4sam/linux-at91/ (master branch).
When I applied the same patch to the recent mainline kernel (3.7-rc8),
it's still having problems accessing flash.  The boot log shows that it is
setting up for PMECC correctly, but it has errors when it tries to read from
the filesystem.

I noticed over at the linux-at91 fork that you had applied the PMECC support
on the 3.4.x_pmecc_dt_9x5 branch a few months ago.  From browsing the mainline
I didn't see some of your changes from that branch in the mainline.  Are there
some changes from the linux-at91 fork that are still scheduled for mainlining?

If it helps, here is the boot log when I tried to boot using a 3.7-rc8 kernel
and DT.

Thanks,
Bryan

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.7.0-rc8-armv5-x0.16 (xxxx at xxxx) (gcc versio
n 4.6.2 20121016 (release) [ARM/embedded-4_6-branch revision 192487] (GNU Tools
for ARM Embedded Processors) ) #1 Wed Dec 5 16:11:30 EST 2012
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: Atmel AT91SAM (Device Tree), model: Atmel AT91SAM9G25-EK
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AT91: Detected soc type: at91sam9x5
[    0.000000] AT91: Detected soc subtype: at91sam9g25
[    0.000000] AT91: sram at 0x300000 of 0x8000 mapped at 0xfef70000
[    0.000000] Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pag
es: 32512
[    0.000000] Kernel command line: mem=128M console=ttyS0,115200 mtdparts=atmel
_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) root=/dev/mtdblock1 rw rootfstype=u
bifs ubi.mtd=1 root=ubi0:rootfs
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 128MB = 128MB total
[    0.000000] Memory: 124276k/124276k available, 6796k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04b8630   (4802 kB)
[    0.000000]       .init : 0xc04b9000 - 0xc04e45c4   ( 174 kB)
[    0.000000]       .data : 0xc04e6000 - 0xc0516ce0   ( 196 kB)
[    0.000000]        .bss : 0xc0516d04 - 0xc05760bc   ( 381 kB)
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] sched_clock: 32 bits at 256 Hz, resolution 3906250ns, wraps every
 3892314108ms
[    0.000000] Console: colour dummy device 80x30
[    0.035156] Calibrating delay loop... 199.80 BogoMIPS (lpj=389120)
[    0.035156] pid_max: default: 32768 minimum: 301
[    0.035156] Mount-cache hash table entries: 512
[    0.039062] CPU: Testing write buffer coherency: ok
[    0.039062] Setting up static identity map for 0x20371d48 - 0x20371da0
[    0.039062] devtmpfs: initialized
[    0.042968] NET: Registered protocol family 16
[    0.042968] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.070312] No ATAGs?
[    0.070312] AT91: Power Management
[    0.070312] AT91: Starting after power-restored wakeup
[    0.121093] bio: create slab <bio-0> at 0
[    0.125000] SCSI subsystem initialized
[    0.128906] usbcore: registered new interface driver usbfs
[    0.128906] usbcore: registered new interface driver hub
[    0.128906] usbcore: registered new device driver usb
[    0.132812] at91_i2c f8010000.i2c: AT91 i2c bus driver.
[    0.132812] at91_i2c f8014000.i2c: AT91 i2c bus driver.
[    0.136718] at91_i2c f8018000.i2c: AT91 i2c bus driver.
[    0.140625] Switching to clocksource tcb_clksrc
[    0.195312] NET: Registered protocol family 2
[    0.199218] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.199218] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.199218] TCP: Hash tables configured (established 4096 bind 4096)
[    0.199218] TCP: reno registered
[    0.199218] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.199218] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.199218] NET: Registered protocol family 1
[    0.199218] RPC: Registered named UNIX socket transport module.
[    0.199218] RPC: Registered udp transport module.
[    0.199218] RPC: Registered tcp transport module.
[    0.199218] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.207031] NFS: Registering the id_resolver key type
[    0.207031] Key type id_resolver registered
[    0.207031] Key type id_legacy registered
[    0.207031] jffs2: version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
[    0.207031] msgmni has been set to 242
[    0.210937] io scheduler noop registered (default)
[    0.218750] fffff200.serial: ttyS0 at MMIO 0xfffff200 (irq = 18) is a ATMEL_S
ERIAL
[    0.609375] console [ttyS0] enabled
[    0.613281] f801c000.serial: ttyS1 at MMIO 0xf801c000 (irq = 22) is a ATMEL_S
ERIAL
[    0.632812] brd: module loaded
[    0.652343] loop: module loaded
[    0.667968] atmel_nand: Use On Flash BBT
[    0.671875] atmel_nand 40000000.nand: No DMA support for NAND access.
[    0.675781] ONFI param page 0 valid
[    0.679687] ONFI flash detected
[    0.683593] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G
08AAD), page size: 2048, OOB size: 64
[    0.695312] atmel_nand 40000000.nand: Initialize PMECC params, cap: 2, sector
: 512
[    0.703125] Bad block table found at page 131008, version 0x01
[    0.707031] Bad block table found at page 130944, version 0x01
[    0.714843] nand_read_bbt: bad block at 0x000009380000
[    0.718750] 2 cmdlinepart partitions found on MTD device atmel_nand
[    0.726562] Creating 2 MTD partitions on "atmel_nand":
[    0.730468] 0x000000000000-0x000000800000 : "bootstrap/uboot/kernel"
[    0.742187] 0x000000800000-0x000010000000 : "rootfs"
[    0.757812] macb f802c000.ethernet (unregistered net_device): invalid hw addr
ess, using random
[    0.773437] libphy: MACB_mii_bus: probed
[    0.777343] macb f802c000.ethernet eth0: Cadence MACB at 0xf802c000 irq 23 (c
a:2c:e6:c3:59:8f)
[    0.785156] macb f802c000.ethernet eth0: attached PHY driver [Davicom DM9161A
] (mii_bus:phy_addr=f802c000.etherne:00, irq=-1)
[    0.796875] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.804687] atmel-ehci 700000.ehci: Atmel EHCI UHP HS
[    0.808593] atmel-ehci 700000.ehci: new USB bus registered, assigned bus numb
er 1
[    0.816406] atmel-ehci 700000.ehci: irq 28, io mem 0x00700000
[    0.835937] atmel-ehci 700000.ehci: USB 2.0 started, EHCI 1.00
[    0.839843] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.847656] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=
1
[    0.855468] usb usb1: Product: Atmel EHCI UHP HS
[    0.859375] usb usb1: Manufacturer: Linux 3.7.0-rc8-armv5-x0.16 ehci_hcd
[    0.867187] usb usb1: SerialNumber: 700000.ehci
[    0.871093] hub 1-0:1.0: USB hub found
[    0.875000] hub 1-0:1.0: 3 ports detected
[    0.878906] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.886718] at91_ohci 600000.ohci: AT91 OHCI
[    0.890625] at91_ohci 600000.ohci: new USB bus registered, assigned bus numbe
r 2
[    0.898437] at91_ohci 600000.ohci: irq 28, io mem 0x00600000
[    0.964843] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    0.968750] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=
1
[    0.976562] usb usb2: Product: AT91 OHCI
[    0.980468] usb usb2: Manufacturer: Linux 3.7.0-rc8-armv5-x0.16 ohci_hcd
[    0.988281] usb usb2: SerialNumber: at91
[    0.992187] hub 2-0:1.0: USB hub found
[    0.996093] hub 2-0:1.0: 2 ports detected
[    1.003906] usbcore: registered new interface driver cdc_acm
[    1.007812] cdc_acm: USB Abstract Control Model driver for USB modems and ISD
N adapters
[    1.019531] usbcore: registered new interface driver uas
[    1.023437] Initializing USB Mass Storage driver...
[    1.027343] usbcore: registered new interface driver usb-storage
[    1.035156] USB Mass Storage support registered.
[    1.039062] usbcore: registered new interface driver ums-alauda
[    1.046875] usbcore: registered new interface driver ums-cypress
[    1.054687] usbcore: registered new interface driver ums-datafab
[    1.058593] usbcore: registered new interface driver ums_eneub6250
[    1.066406] usbcore: registered new interface driver ums-freecom
[    1.074218] usbcore: registered new interface driver ums-isd200
[    1.078125] usbcore: registered new interface driver ums-jumpshot
[    1.085937] usbcore: registered new interface driver ums-karma
[    1.093750] usbcore: registered new interface driver ums-onetouch
[    1.097656] usbcore: registered new interface driver ums-realtek
[    1.105468] usbcore: registered new interface driver ums-sddr09
[    1.113281] usbcore: registered new interface driver ums-sddr55
[    1.117187] usbcore: registered new interface driver ums-usbat
[    1.125000] usbcore: registered new interface driver usbserial
[    1.132812] usbcore: registered new interface driver usbserial_generic
[    1.140625] usbserial: USB Serial support registered for generic
[    1.144531] usbcore: registered new interface driver ftdi_sio
[    1.152343] usbserial: USB Serial support registered for FTDI USB Serial Devi
ce
[    1.160156] usbcore: registered new interface driver pl2303
[    1.167968] usbserial: USB Serial support registered for pl2303
[    1.171875] mousedev: PS/2 mouse device common for all mice
[    1.179687] i2c /dev entries driver
[    1.191406] usbcore: registered new interface driver usbhid
[    1.199218] usbhid: USB HID core driver
[    1.207031] usb 1-2: new high-speed USB device number 2 using atmel-ehci
[    1.214843] TCP: cubic registered
[    1.218750] NET: Registered protocol family 10
[    1.222656] sit: IPv6 over IPv4 tunneling driver
[    1.230468] NET: Registered protocol family 17
[    1.234375] Key type dns_resolver registered
[    1.246093] UBI: attaching mtd1 to ubi0
[    1.253906] atmel_nand 40000000.nand: PMECC: Too many errors
[    1.261718] UBI warning: ubi_io_read: error -5 while reading 64 bytes from PE
B 10:0, read only 0 bytes, retry
[    1.269531] atmel_nand 40000000.nand: PMECC: Too many errors
[    1.277343] UBI warning: ubi_io_read: error -5 while reading 64 bytes from PE
B 10:0, read only 0 bytes, retry
[    1.285156] atmel_nand 40000000.nand: PMECC: Too many errors
[    1.292968] UBI warning: ubi_io_read: error -5 while reading 64 bytes from PE
B 10:0, read only 0 bytes, retry
[    1.304687] atmel_nand 40000000.nand: PMECC: Too many errors
[    1.308593] UBI error: ubi_io_read: error -5 while reading 64 bytes from PEB
10:0, read 0 bytes
[    1.316406] [<c000d2bc>] (unwind_backtrace+0x0/0xe0) from [<c0243a10>] (ubi_i
o_read+0x1d4/0x2a4)
[    1.328125] [<c0243a10>] (ubi_io_read+0x1d4/0x2a4) from [<c0243d20>] (ubi_io_
read_ec_hdr+0x68/0x214)
[    1.335937] [<c0243d20>] (ubi_io_read_ec_hdr+0x68/0x214) from [<c024804c>] (u
bi_attach+0x104/0x13e4)
[    1.343750] [<c024804c>] (ubi_attach+0x104/0x13e4) from [<c023e514>] (ubi_att
ach_mtd_dev+0x5a4/0xb94)
[    1.355468] [<c023e514>] (ubi_attach_mtd_dev+0x5a4/0xb94) from [<c04d09dc>] (
ubi_init+0x1d8/0x2d8)
[    1.363281] [<c04d09dc>] (ubi_init+0x1d8/0x2d8) from [<c0008860>] (do_one_ini
tcall+0x90/0x168)
[    1.371093] [<c0008860>] (do_one_initcall+0x90/0x168) from [<c03686a4>] (kern
el_init+0xe8/0x2a0)
[    1.378906] [<c03686a4>] (kernel_init+0xe8/0x2a0) from [<c00093f0>] (ret_from
_fork+0x14/0x24)
[    1.386718] UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -5
[    1.394531] UBI error: ubi_init: cannot attach mtd1
[    1.402343] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.410156] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", erro
r -19
[    1.417968] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0):
 error -19
[    1.425781] Please append a correct "root=" boot option; here are the availab
le partitions:
[    1.433593] 1f00            8192 mtdblock0  (driver?)
[    1.437500] 1f01          253952 mtdblock1  (driver?)
[    1.441406] Kernel panic - not syncing: VFS: Unable to mount root fs on unkno
wn-block(0,0)




More information about the linux-arm-kernel mailing list