VFS: Cannot open root device "(null)" or unknown-block(0,0) fail on i.MX28 EVK board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VFS: Cannot open root device "(null)" or unknown-block(0,0) fail on i.MX28 EVK board

12,803 Views
henryshu
Contributor I

I have successfully built updater.sb/updater_ivt.sb and imx28_linux.sb/imx28_ivt_linux.sb from LTIB. And successfully flash NAND flash with Mfgtools-Rel-1.1.0_130205_MX28_UPDATER.

However,  when I tried to boot it on i.MX28 EVK board, "VFS: Cannot open root device "(null)" or unknown-block(0,0)" error appeared.

The full console log is as below.

HTLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLC

PowerPrep start initialize power...

Battery Voltage = 4.24V

boot from battery. 5v input not detected

LLLCSep 30 201413:38:49

FRAC 0x92925552

memory type is DDR2

                   Wait for ddr ready 1power 0x00820710

Frac 0x92925552

start change cpu freq

hbus 0x00000003

cpu 0x00010001

LLLLLLLFLCLLJUncompressing Linux... done, booting the kernel.

Linux version 2.6.35.3-670-g914558e (hong@hong-desktop) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #2 Tue Sep 30 14:09:03 EDT 2014

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: Freescale MX28EVK board

Memory policy: ECC disabled, Data cache writeback

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

Kernel command line: -e console=ttyAM0,115200 rdinit=/linuxrc rw gpmi

PID hash table entries: 512 (order: -1, 2048 bytes)

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

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Memory: 128MB = 128MB total

Memory: 120304k/120304k available, 10768k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xfde00000 - 0xffe00000   (  32 MB)

    vmalloc : 0xc8800000 - 0xf0000000   ( 632 MB)

    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .init : 0xc0008000 - 0xc0027000   ( 124 kB)

      .text : 0xc0027000 - 0xc0305000   (2936 kB)

      .data : 0xc0306000 - 0xc0324fc0   ( 124 kB)

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

Hierarchical RCU implementation.

        RCU-based detection of stalled CPUs is disabled.

        Verbose stalled-CPUs detection is disabled.

NR_IRQS:288

Console: colour dummy device 80x30

console [ttyAM0] enabled

Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

regulator: core version 0.5

NET: Registered protocol family 16

regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal

regulator: vdddbo: 800 <--> 1575 mV fast normal

regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal

vddio = 3380000, val=10

regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal

regulator: overall_current: fast normal

regulator: vbus5v:

regulator: mxs-duart-1: fast normal

regulator: mxs-bl-1: fast normal

regulator: mxs-i2c-1: fast normal

regulator: mmc_ssp-1: fast normal

regulator: mmc_ssp-2: fast normal

regulator: charger-1: fast normal

regulator: power-test-1: fast normal

regulator: cpufreq-1: fast normal

i.MX IRAM pool: 124 KB@0xc8820000

Initializing GPMI pins

usb DR wakeup device is registered

IMX usb wakeup probe

audit: cannot initialize inotify handle

bio: create slab <bio-0> at 0

SCSI subsystem initialized

Switching to clocksource mxs clock source

Trying to unpack rootfs image as initramfs...

rootfs image is not initramfs (uncompression error); looks like an initrd

Freeing initrd memory: 6144K

Bus freq driver module loaded

mxs_cpu_init: cpufreq init finished

audit: initializing netlink socket (disabled)

type=2000 audit(0.510:1): initialized

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

msgmni has been set to 246

Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)

io scheduler noop registered (default)

Console: switching to colour frame buffer device 100x30

mxs-duart.0: ttyAM0 at MMIO 0x80074000 (irq = 47) is a DebugUART

mxs-auart.0: ttySP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auart.0

Found APPUART 3.1.0

mxs-auart.1: ttySP1 at MMIO 0x8006c000 (irq = 113) is a mxs-auart.1

Found APPUART 3.1.0

mxs-auart.2: ttySP2 at MMIO 0x8006e000 (irq = 114) is a mxs-auart.2

Found APPUART 3.1.0

mxs-auart.3: ttySP3 at MMIO 0x80070000 (irq = 115) is a mxs-auart.3

Found APPUART 3.1.0

mxs-auart.4: ttySP4 at MMIO 0x80072000 (irq = 116) is a mxs-auart.4

Found APPUART 3.1.0

brd: module loaded

loop: module loaded

Loading iSCSI transport class v2.0-870.

i.MX GPMI NFC

NFC: Version 1, 8-chip GPMI and BCH

Boot ROM: Version 1, Single-chip boot area, block mark swapping supported

Scanning for NAND Flash chips...

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

-----------------------------

NAND Flash Device Information

-----------------------------

Manufacturer      : Micron (0x2c)

Device Code       : 0xda

Cell Technology   : SLC

Chip Size         : 256 MiB

Pages per Block   : 64

Page Geometry     : 2048+64

ECC Strength      : 4 bits

ECC Size          : 512 B

Data Setup Time   : 20 ns

Data Hold Time    : 10 ns

Address Setup Time: 10 ns

GPMI Sample Delay : 6 ns

tREA              : Unknown

tRLOH             : Unknown

tRHOH             : Unknown

Description       : MT29F2G08

-----------------

Physical Geometry

-----------------

Chip Count             : 1

Page Data Size in Bytes: 2048 (0x800)

Page OOB Size in Bytes : 64

Block Size in Bytes    : 131072 (0x20000)

Block Size in Pages    : 64 (0x40)

Chip Size in Bytes     : 268435456 (0x10000000)

Chip Size in Pages     : 131072 (0x20000)

Chip Size in Blocks    : 2048 (0x800)

Medium Size in Bytes   : 268435456 (0x10000000)

------------

NFC Geometry

------------

ECC Algorithm          : BCH

ECC Strength           : 8

Page Size in Bytes     : 2112

Metadata Size in Bytes : 10

ECC Chunk Size in Bytes: 512

ECC Chunk Count        : 4

Payload Size in Bytes  : 2048

Auxiliary Size in Bytes: 16

Auxiliary Status Offset: 12

Block Mark Byte Offset : 1999

Block Mark Bit Offset  : 0

-----------------

Boot ROM Geometry

-----------------

Boot Area Count            : 1

Boot Area Size in Bytes    : 20971520 (0x1400000)

Stride Size in Pages       : 64

Search Area Stride Exponent: 2

Scanning device for bad blocks

Bad eraseblock 100 at 0x000000c80000

Bad eraseblock 101 at 0x000000ca0000

Boot area protection is enabled.

Creating 2 MTD partitions on "gpmi-nfc-main":

0x000000000000-0x000001400000 : "gpmi-nfc-0-boot"

0x000001400000-0x000010000000 : "gpmi-nfc-general-use"

ARC USBOTG Device Controller driver (1 August 2005)

check_parameters:UTP settings are in place now, overriding defaults

g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008

g_file_storage gadget: Number of LUNs=1

fsl-usb2-udc: bind to driver g_file_storage

mice: PS/2 mouse device common for all mice

input: mxs-kbd as /devices/platform/mxs-kbd.0/input/input0

input: MXS touchscreen as /devices/virtual/input/input1

MXS RTC driver v1.0 hardware v2.3.0

mxs-rtc mxs-rtc.0: rtc core: registered mxs-rtc as rtc0

mxs-mmc: MXS SSP Controller MMC Interface driver

__mxs_reset_block(f0010000): timeout when resetting

mxs-mmc mxs-mmc.0: mmc0: MXS SSP MMC DMAIRQ 82 ERRIRQ 96

mxs-rtc mxs-rtc.0: setting system clock to 1970-01-01 00:00:03 UTC (3)

RAMDISK: gzip image found at block 0

uncompression error

VFS: Cannot open root device "(null)" or unknown-block(0,0)

Please append a correct "root=" boot option; here are the available partitions:

1f00           20480 mtdblock0 (driver?)

1f01          241664 mtdblock1 (driver?)

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

Backtrace:

[<c002b724>] (dump_backtrace+0x0/0x114) from [<c027e634>] (dump_stack+0x18/0x1c)

r7:c0021a14 r6:00008000 r5:c7c14000 r4:c0325eb8

[<c027e61c>] (dump_stack+0x0/0x1c) from [<c027e698>] (panic+0x60/0xdc)

[<c027e638>] (panic+0x0/0xdc) from [<c0008f9c>] (mount_block_root+0x25c/0x2ac)

r3:00000000 r2:00000000 r1:c7c27f60 r0:c02ccb85

[<c0008d40>] (mount_block_root+0x0/0x2ac) from [<c0009040>] (mount_root+0x54/0x6c)

[<c0008fec>] (mount_root+0x0/0x6c) from [<c00091c4>] (prepare_namespace+0x16c/0x1c4)

r5:c0020940 r4:c0325280

[<c0009058>] (prepare_namespace+0x0/0x1c4) from [<c00084e8>] (kernel_init+0x118/0x158)

r5:c0020940 r4:c0325040

[<c00083d0>] (kernel_init+0x0/0x158) from [<c0044bf8>] (do_exit+0x0/0x5f0)

r5:c00083d0 r4:00000000

Could some one help me with that ?

Thanks

Labels (1)
0 Kudos
18 Replies

7,096 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hong

had you applied patch below ?

L2.6.35_1.1.1_UPDATER_PATCH_UP : The purpose of this patch release is Fix the

updater.sb boot issue in the i.MX28 Linux BSP L2.6.35_1.1.0 release..

Best regards

igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

Thank you very much for the response.

I did apply the patch into UPDATER.SB generation. Before that, the same issue happened during I flashed NAND flash with Mfgtools. However, after applying this patch, I can flash NAND successfully. But it happens again when I set iMX28 EVK mode switch to 0100(boot from NAND) and try to boot to busybox linux.

Do you have a step by step description of how to generate UPDATER.SB file and flash it into NAND flash?

Best Regards

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hong

please check below link

https://community.freescale.com/thread/305045

Best regards

igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

Yes, I followed this instructions before. After add initramfs.cpio.gz file into UPDATER.SB, flashing to NAND with Mfgtools is successful too. But when booting to linux, “UTP: Waiting for device to appear” error appeared and stopped there. See below for console log.

HTLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLC

PowerPrep start initialize power...

Battery Voltage = 4.24V

boot from battery. 5v input not detected

LLLCAug 16 201420:58:12

FRAC 0x92925552

memory type is DDR2

Wait for ddr ready 1power 0x00820710

Frac 0x92925552

start change cpu freq

hbus 0x00000003

cpu 0x00010001

LLLLLLLFLCLLJUncompressing Linux... done, booting the kernel.

Linux version 2.6.35.3-670-g914558e (hong@hong-desktop) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #5 Wed Aug 20 11:49:50 EDT 2014

CPU: ARM926EJ-S revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: Freescale MX28EVK board

Memory policy: ECC disabled, Data cache writeback

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

Kernel command line: -e console=ttyAM0,115200 rdinit=/linuxrc rw gpmi

PID hash table entries: 512 (order: -1, 2048 bytes)

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

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Memory: 128MB = 128MB total

Memory: 116112k/116112k available, 14960k reserved, 0K highmem

Virtual kernel memory layout:

vector : 0xffff0000 - 0xffff1000 ( 4 kB)

fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

DMA : 0xfde00000 - 0xffe00000 ( 32 MB)

vmalloc : 0xc8800000 - 0xf0000000 ( 632 MB)

lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)

modules : 0xbf000000 - 0xc0000000 ( 16 MB)

.init : 0xc0008000 - 0xc043e000 (4312 kB)

.text : 0xc043e000 - 0xc071d000 (2940 kB)

.data : 0xc071e000 - 0xc073cfc0 ( 124 kB)

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

Hierarchical RCU implementation.

RCU-based detection of stalled CPUs is disabled.

Verbose stalled-CPUs detection is disabled.

NR_IRQS:288

Console: colour dummy device 80x30

console enabled

Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

regulator: core version 0.5

NET: Registered protocol family 16

regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal

regulator: vdddbo: 800 <--> 1575 mV fast normal

regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal

vddio = 3380000, val=10

regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal

regulator: overall_current: fast normal

regulator: vbus5v:

regulator: mxs-duart-1: fast normal

regulator: mxs-bl-1: fast normal

regulator: mxs-i2c-1: fast normal

regulator: mmc_ssp-1: fast normal

regulator: mmc_ssp-2: fast normal

regulator: charger-1: fast normal

regulator: power-test-1: fast normal

regulator: cpufreq-1: fast normal

i.MX IRAM pool: 124 KB@0xc8820000

Initializing GPMI pins

usb DR wakeup device is registered

IMX usb wakeup probe

audit: cannot initialize inotify handle

bio: create slab <bio-0> at 0

SCSI subsystem initialized

Switching to clocksource mxs clock source

Trying to unpack rootfs image as initramfs...

rootfs image is not initramfs (junk in compressed archive); looks like an initrd

Freeing initrd memory: 6144K

Bus freq driver module loaded

mxs_cpu_init: cpufreq init finished

audit: initializing netlink socket (disabled)

type=2000 audit(3.080:1): initialized

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

msgmni has been set to 238

Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)

io scheduler noop registered (default)

Console: switching to colour frame buffer device 100x30

mxs-duart.0: ttyAM0 at MMIO 0x80074000 (irq = 47) is a DebugUART

mxs-auart.0: ttySP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auart.0

Found APPUART 3.1.0

mxs-auart.1: ttySP1 at MMIO 0x8006c000 (irq = 113) is a mxs-auart.1

Found APPUART 3.1.0

mxs-auart.2: ttySP2 at MMIO 0x8006e000 (irq = 114) is a mxs-auart.2

Found APPUART 3.1.0

mxs-auart.3: ttySP3 at MMIO 0x80070000 (irq = 115) is a mxs-auart.3

Found APPUART 3.1.0

mxs-auart.4: ttySP4 at MMIO 0x80072000 (irq = 116) is a mxs-auart.4

Found APPUART 3.1.0

brd: module loaded

loop: module loaded

Loading iSCSI transport class v2.0-870.

i.MX GPMI NFC

NFC: Version 1, 8-chip GPMI and BCH

Boot ROM: Version 1, Single-chip boot area, block mark swapping supported

Scanning for NAND Flash chips...

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

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

what filesystem did you use for nand: jffs2 or ubifs ?

~igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

I changed below cmd line to, “noinitrd console=ttyAM0,115200 ubi.mtd=2 root=ubi0:ubifs rootfstype=ubifs rw gpmi”. It still stopped at “UTP: Waiting for device to appear”.

Regards

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

Thank you very much for the info.

I am following mxic AN to generate UBIFS. However, it fails at first time booting from SD card. What I did was to build updater.sb, updater_ivt.sb, imx28_linux.sb, imx28_ivt_linux.sb, imx28_uboot.sb, imx28_ivt_uboot.sb, rootfs.tar.bz2 with LTIB, then burned them into SD card with Mfgtools, selecting SD(with uboot). Burning is successful and NAND flash is identified too. But, when I tried to boot EVK from SD card, it failed. See attached for console display dump. XML script file is also attached. It's strange that NAND flash is not identified any more.

I tried to use jffs2, but not successful too. Do you have an idea about it ?

Best Regards

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hong

jffs2 is not supported by Freescale for i.MX28.

Regarding SD boot, first probably you may wish to test it

with L2.6.35_1.1.0_DEMO_IMAGE

Best regards

igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

L2.6.35_1.1.0_DEMO_IMAGE <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCIMX28EVKJ&fpsp=1&tab=Design_Tools_Tab> is able to boot to linux. I also tried Mfgtools original files(updater.sb, updater_ivt.sb, imx28_linux.sb, imx28_ivt_linux.sb, imx28_uboot.sb, imx28_ivt_uboot.sb, rootfs.tar.bz2), it works too. However, both are not able to identify NAND since there is no NAND driver. After re-configuring by using LTIB, previous issue appeared again. Later on, I’ll tried to build kernel by using original source code(L2.6.35_1.1.0_ER_SOURCE) without re-configuring to see what’s going on.

Best Regards

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hong

you can try to build mfgtools files without any modifications,

just to test if procedure is correct

MX28: Build Manufacturing Firmware -blog archive

" jive_internal="true

Best regards

igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

I agree with you. Below is what I did to build mfgtools files from a fresh L2.6.35_1.1.0 source code without modification. The result is still fail.

1. Configure the firmware build profile

$ ./ltib -selectype

Choose the following:

--- Choose the platform type

Selection (imx28) --->

--- Choose the packages profile

Selection (mfg firmware profile) --->

2. Toolschain selection

Toolchain (ARM, gcc-4.4.4, multilib, neon optimized)

3. Check -- Always rebuild the kernel

4. Build i.MX28 Linux L2.6.35_1.1.0 BSP by using below command

./ltib

5. In the ~/ltib directory, extract the boot stream source file by running below command

./ltib -p boot_stream.spec -m prep

6. Copy below patch file to ~/ltib/rpm/imx-bootlets-src-2.6.35.3-1.1.0 folder

0001-ENGR00243127-MX28-mfg-updater.sb-can-not-run-success.patch

7. Run below command to apply the patch.

patch -p1 -i 0001-ENGR00243127-MX28-mfg-updater.sb-can-not-run-success.patch

8. In the ~/ltib directory, run below command.

./ltib -p boot_stream.spec -f

and then I generate updater.sb, updater_ivt.sb, imx28_ivt_linux.sb, imx28_ivt_uboot.sb, imx28_linux.sb, imx28_uboot.sb, uImage, zImage.

9. Generate rootfs.tar.bz2 from ltib/rootfs

10. Use updater.sb, updater_ivt.sb to replace the files in Mfgtools Profiles\MX28 Linux Update\OS Firmware directory, and imx28_ivt_linux.sb, imx28_ivt_uboot.sb, imx28_linux.sb, imx28_uboot.sb, uImage, zImage, rootfs.tar.bz2 to replace files in Mfgtools Profiles\MX28 Linux Update\OS Firmware\files directory. Burn SD card. Programming is successful.

11. Change EVK boot mode to SD card, and boot EVK. I encountered the same issue(see attached log file).

Something should be wrong here. Could you please check and let me know?

Thanks

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

will it boot OK with untouched MFG Tools ?

~igor

0 Kudos

7,096 Views
henryshu
Contributor I

Yes, with original MFG tools files(including updater.sb, updater_ivt.sb, imx28_ivt_linux.sb, imx28_ivt_uboot.sb, imx28_linux.sb, imx28_uboot.sb, uImage and rootfs.tar.bz2), boot has no problem.

Regards

Hong

0 Kudos

7,096 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hong

probably you may try to rebuild whole image from scratch:

./ltib -m distclean

Also do you have another versions ltib/ or yocto bullds installed

on the same machine ? It is better to have one version, since different

versions may invoke wrong compilations.

~igor

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

After enabling CONFIG_DEVTMPFS in configuration’s device drivers, I can boot to linux OS now.

Thank you very much for the detail info.

Best Regards

Hong

0 Kudos

7,096 Views
henryshu
Contributor I

But in Package list->boot stream cmd line, setting is as below.

noinitrd console=ttyAM0,115200 root=/dev/mtdblock1 rootfstype=jffs2 gpmi

Could this be a possible cause ?

Regards

Hong

0 Kudos

7,096 Views
henryshu
Contributor I

Hi, Igor,

I think it’s UBIFS. Below are settings I used for LTIB build.

In ./ltib –m config, settings are as below.

->Target Image Generation

->Option

->Choose your root file system image type

-> Target Image

-> UBIFS

In kernel configuration, settings are as below

"Device Drivers"

-> "Memory Technology Device (MTD) support"

-> "UBI - Unsorted block images",

"File systems"

-> "Miscellaneous filesystems"

-> "UBIFS file system support"

"File systems"

-> " Second extended fs support "

Regards

Hong

0 Kudos