AnsweredAssumed Answered

UBI not mountable after changing ECC and NFC Driver

Question asked by Andreas Zeiler on May 28, 2014
Latest reply on May 30, 2014 by Bill Pringlemeir



we're trying to change the nfc driver for the vybrid processor. Drivers for NFC in Uboot are already changed. This works already and I'm able to write my own ECC where I want it to be.

In linux kernel I try the same thing. I changed the driver to support our ECC and raw reads. The problem now is that I'm getting an error message when I try to boot.

We're using ubi as filesystem. I writing the filesystem into TargetFS by Uboot. Also I make a ubi partition etc. Then I write the ubifs image into my ubi partition.


Uncompressing Linux... done, booting the kernel.

Linux version 3.0.15-F+S+ (zeiler@VBFedora14) (gcc version 4.7.2 (crosstool-NG 1.18.0 - for F+S boards and modules) ) #189 Wed May 28 14:50:32 CEST 2014

CPU: ARMv7 Processor [410fc051] revision 1 (ARMv7), cr=10c53c7d

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: F+S Elektronik Systeme GmbH, armStoneA5

Memory policy: ECC disabled, Data cache writeback

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024

Kernel command line: console=ttymxc1,115200 login_tty=ttymxc1,115200 mtdparts=NAND:256k(NBoot)ro,768k(UserDef),256k(Refresh)ro,512k(UBoot)ro,256k(UBootEnv)ro,4m(Kernel)ro,-(TargetFS) rootfstype=ubifs ubi.mtd=TargetFS root=ubi0:rootfs ro init=linuxrc

PID hash table entries: 1024 (order: 0, 4096 bytes)

Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

Memory: 256MB = 256MB total

Memory: 254120k/254120k available, 8024k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)

    vmalloc : 0x90800000 - 0xf2000000   (1560 MB)

    lowmem  : 0x80000000 - 0x90000000   ( 256 MB)

    modules : 0x7f000000 - 0x80000000   (  16 MB)

      .init : 0x80008000 - 0x8002e000   ( 152 kB)

      .text : 0x8002e000 - 0x80528000   (5096 kB)

      .data : 0x80528000 - 0x8055c860   ( 211 kB)

       .bss : 0x8055c884 - 0x80599a08   ( 245 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1


MVF GPIO hardware

sched_clock: 64 bits at 132MHz, resolution 7ns, wraps every 34359ms

Console: colour dummy device 80x30

Calibrating delay loop... 262.96 BogoMIPS (lpj=1314816)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

devtmpfs: initialized

NET: Registered protocol family 16

mcf_edma: Initialized successfully

armStoneA5 Board Rev. 1.10

Using UART1 for UART port A (TXD/RXD/RTS/CTS)

Using UART2 for UART port B (TXD/RXD)

Using UART3 for UART port C (TXD/RXD)

Booting on CPU #0 CA5 r0p1 on port #2, 2 CPU(s)

Level 1 cache: I: 32768 Bytes/2 ways, D: 32768 Bytes/4 ways

Level 2 cache: 0 bytes/0 ways

IMX usb wakeup probe. id=1

IMX usb wakeup probe. id=0

bio: create slab <bio-0> at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c-gpio i2c-gpio.4: using pins 119 (SDA) and 118 (SCL)

Advanced Linux Sound Architecture Driver Version 1.0.24.

Switching to clocksource global_timer

NET: Registered protocol family 2

IP route cache hash table entries: 2048 (order: 1, 8192 bytes)

TCP established hash table entries: 8192 (order: 4, 65536 bytes)

TCP bind hash table entries: 8192 (order: 3, 32768 bytes)

TCP: Hash tables configured (established 8192 bind 8192)

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

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Static Power Management for Freescale Vybrid

PM driver module loaded

squashfs: version 4.0 (2009/01/31) Phillip Lougher

JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.

ROMFS MTD (C) 2007 Red Hat, Inc.

msgmni has been set to 496

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

Console: switching to colour frame buffer device 100x60

fb0: Layer0 fb device registered successfully.

fb1:  fb device registered successfully.

fb2:  fb device registered successfully.

fb3:  fb device registered successfully.

Serial: MVF driver



imx-uart.1: ttymxc1 at MMIO 0x40028000 (irq = 94) is a IMX

console [ttymxc1] enabled


imx-uart.2: ttymxc2 at MMIO 0x40029000 (irq = 95) is a IMX


imx-uart.3: ttymxc3 at MMIO 0x4002a000 (irq = 96) is a IMX

brd: module loaded

loop: module loaded

at24 4-0050: 2048 byte 24c16 EEPROM, writable, 1 bytes/write

mvf-adc mvf-adc.0: attached adc driver

mvf-adc mvf-adc.1: attached adc driver

FSL NFC MTD nand Driver 1.0

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)

Scanning device for bad blocks

Bad eraseblock 0 at 0x000000000000

Bad eraseblock 14 at 0x0000001c0000

7 cmdlinepart partitions found on MTD device NAND

Creating 7 MTD partitions on "NAND":

0x000000000000-0x000000040000 : "NBoot"

0x000000040000-0x000000100000 : "UserDef"

0x000000100000-0x000000140000 : "Refresh"

0x000000140000-0x0000001c0000 : "UBoot"

0x0000001c0000-0x000000200000 : "UBootEnv"

0x000000200000-0x000000600000 : "Kernel"

0x000000600000-0x000008000000 : "TargetFS"

UBI: attaching mtd6 to ubi0

UBI: physical eraseblock size:   131072 bytes (128 KiB)

UBI: logical eraseblock size:    126976 bytes

UBI: smallest flash I/O unit:    2048

UBI: VID header offset:          2048 (aligned 2048)

UBI: data offset:                4096

UBI: max. sequence number:       258

UBI: attached mtd6 to ubi0

UBI: MTD device name:            "TargetFS"

UBI: MTD device size:            122 MiB

UBI: number of good PEBs:        976

UBI: number of bad PEBs:         0

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: 976

UBI: number of PEBs reserved for bad PEB handling: 9

UBI: max/mean erase counter: 4/1

UBI: image sequence number:  0

UBI: background thread "ubi_bgt0d" started, PID 530

Faraday DSPI DMA addr: Tx-0xffdff000[0x8a1ff000], Rx-0xffdfe000[0x8a1fe000]

DSPI: Coldfire master initialized

CAN device driver interface

flexcan netdevice driver

flexcan mvf-flexcan.0: device registered (reg_base=90920000, irq=90)

flexcan mvf-flexcan.1: device registered (reg_base=90928000, irq=91)

FEC Ethernet Driver

fec_enet_mii_bus: probed

fec_enet_mii_bus: probed

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

fsl-ehci fsl-ehci.0: irq 108, io base 0x400b4000

fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

usb usb1: Product: Freescale On-Chip EHCI Host Controller

usb usb1: Manufacturer: Linux 3.0.15-F+S+ ehci_hcd

usb usb1: SerialNumber: fsl-ehci.0

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

ARC USBOTG Device Controller driver (1 August 2005)

gs_bind: controller 'fsl-usb2-udc' not recognized

g_serial gadget: Gadget Serial v2.4

g_serial gadget: g_serial ready

fsl-usb2-udc: bind to driver g_serial

mousedev: PS/2 mouse device common for all mice

sx8655 3-0048: sx8655_probe()

sx8655 3-0048: write mask fail

sx8655: probe of 3-0048 failed with error -5

sx8655 3-0049: sx8655_probe()

sx8655 3-0049: write mask fail

sx8655: probe of 3-0049 failed with error -5

snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0

i2c /dev entries driver

Linux video capture interface: v2.00

usbcore: registered new interface driver uvcvideo

USB Video Class driver (v1.1.0)

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci sdhci-esdhc-imx.1: no write-protect pin available!

mmc0: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA

pca9632_probe: done.

i2c-core: driver [pca9632] using legacy suspend method

i2c-core: driver [pca9632] using legacy resume method

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

sgtl5000 4-000a: sgtl5000 revision 17

asoc: sgtl5000 <-> mvf-sai.0 mapping ok

ALSA device list:

  #0: sgtl5000-sai

TCP cubic registered

NET: Registered protocol family 10

IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

can: raw protocol (rev 20090105)

can: broadcast manager protocol (rev 20090105 t)

Registering the dns_resolver key type

VFP support v0.3: implementor 41 architecture 2 part 30 variant 5 rev 1

g_serial gadget: high speed config #2: CDC ACM config

snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 05:52:58 UTC (21178)

UBIFS error (pid 1): ubifs_recover_master_node: failed to recover master node

List of all partitions:

1f00             256 mtdblock0  (driver?)

1f01             768 mtdblock1  (driver?)

1f02             256 mtdblock2  (driver?)

1f03             512 mtdblock3  (driver?)

1f04             256 mtdblock4  (driver?)

1f05            4096 mtdblock5  (driver?)

1f06          124928 mtdblock6  (driver?)

No filesystem could mount root, tried:  ubifs

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


[<80036b00>] (dump_backtrace+0x0/0x108) from [<804096d8>] (dump_stack+0x18/0x1c)

r6:800254e8 r5:8ffed006 r4:8055cee0 r3:60000013

[<804096c0>] (dump_stack+0x0/0x1c) from [<80409a50>] (panic+0x5c/0x17c)

[<804099f4>] (panic+0x0/0x17c) from [<80008dd8>] (mount_block_root+0x1d4/0x218)

r3:8ffcff3c r2:804b9c5d r1:8ffcff68 r0:804af8ed


[<80008c04>] (mount_block_root+0x0/0x218) from [<80009080>] (prepare_namespace+0x94/0x1c0)

[<80008fec>] (prepare_namespace+0x0/0x1c0) from [<800089ec>] (kernel_init+0xf0/0x11c)

r5:80024cd0 r4:80024cd0

[<800088fc>] (kernel_init+0x0/0x11c) from [<8004ae74>] (do_exit+0x0/0x5f8)

r5:800088fc r4:00000000



Seems that first ubi reads the whole Filesystempartition and then reads one block completely. So I get these error messages and a stack_dump.

Reading the pages from nand also seems to be ok and when I look at my ecc status flag everything is ok. we also check on empty pages. but we notice them and don't throw errors on that.


Does anyone know how to solve this? I have no idea!!!!


Kind regards