Error in loading the uImage

Showing results for 
Search instead for 
Did you mean: 

Error in loading the uImage

Contributor III


I am using element14 Sabre_lite board for iMX6.

I had to load the kernel with CAAM driver. So I made the uImage of the same (Linux 3.0.35). But when I try to boot it, it gives me the following error.

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

Please append a correct "root=" boot option

I tried to set the bootargs by using setenv but it was of no help.

What could be the possible errors?

Labels (2)
0 Kudos
12 Replies

NXP TechSupport
NXP TechSupport

  Please use Table 6 (Kernel Boot Parameters) of "i.MX_6Dual6Quad_SABRE-SD_Linux_Release_Notes.pdf"
for possible kernel options of Freescale L3.0.35 BSP. Also, "i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide.pdf"

may be helpful.

Have a great day,

Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos

Contributor III

I followed the instructions and i am giving these as the bootargs:

U-Boot > setenv loadaddr 0x10800000

U-Boot > setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'

U-Boot > setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam'

U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc dev 1;mmc read ${loadaddr} 0x800 0x2000;bootm'

U-Boot > setenv bootcmd 'run bootcmd_mmc'

U-Boot > saveenv

But its still not loading when I give run bootcmd.

I see the following on my screen:

U-Boot > run bootcmd

mmc1 is current device

mmc - MMC sub system


mmc read addr blk# cnt

mmc write addr blk# cnt

mmc erase blk# cnt

mmc rescan

mmc part - lists available partition on current mmc device

mmc dev [dev] [part] - show or set current mmc device [partition]

mmc list - lists available devices

mmc setdsr - set DSR register value

Any help regarding this?

0 Kudos

Contributor IV

Hello Apoorva,

Its seems to be error at below lines as I think,

setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam'


mmc1 is current device

try these below may it will help you and device may load uImage :smileyhappy:

just change the root device type as below in above argument.


hear p1 is used for 1st partition of your SD card or where RFS lies if this different in your side then change it accordingly.

and change the mmcdev to 0 as below

setenv mmcdev 0

and can u plz tell me that is there mmcpart argument in U-boot parameters ?

If it is there then verify its value.

At the same time plz share your complete U-boot logs.

Complete logs needed which shows in U-boot after printenv command run.

so share your complete U-boot arguments.

Hope this will help you.



0 Kudos

Contributor III

Hi Jaymin,

Actually I have my SD card at mmc1 and not mmc0. (As in it reads the card only when mmc1 is taken as current device and not mmc0). And specifically mmcpart is not there. But I can specify it as 1:1. So I have now set it as mmc dev 1:1. But still the output is same.

And, the following are the environment variable:



bootargs=console=ttymxc0,115200 root=/dev/

bootargs_base=setenv bootargs console=ttymxc0,115200

bootargs_mmc=setenv bootargs ${bootargs} root=/dev/\

mmcblk1p1 rootfstype=ext4 rootwait caam

bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp

bootcmd=run bootcmd_mmc

bootcmd_mmc=run bootargs_base bootargs_mmc;mmc dev 1:1;mmc\

read ${loadaddr} 0x800 0x2000;bootm

bootcmd_mmc_dev=mmc dev 1; fatload mmc 1:1 10800000 uImage; bootm 10800000

bootcmd_net=run bootargs_nfs;tftpboot ${loadaddr} ${kernel}; bootm


clearenv=sf probe 1 && sf erase 0xc0000 0x2000 && echo restored environment to factory default

















upgradeu=for disk in 0 1 ; do mmc dev ${disk} ;for fs in fat ext2 ; do ${fs}load mmc ${disk}:1 10008000 /6q_upgrade && source 10008000 ; done ; done

Thanks! :smileyhappy:

0 Kudos

Contributor IV


Here from ur logs this arguments no where used in U-boot.:smileyinfo::smileyinfo:

bootcmd_mmc_dev=mmc dev 1; fatload mmc 1:1 10800000 uImage; bootm 10800000

also u specified loadaddr=0x10800000  then why not used in bootcmd_mmc_dev ???

so new argument will become like this

bootcmd_mmc_dev=mmc dev 1; fatload mmc 1:1 ${loadaddr} uImage; bootm ${loadaddr}

and plz clear the confusion about below arguments

bootargs=console=ttymxc0,115200 root=/dev/

Is this incomplete or typo ?

is this like as below ? :smileycheck::smileyplain::smileyinfo:

bootargs=console=ttymxc1,115200 consoleblank=0 root=/dev/mmcblk0p2 rootwait rw xl4

hope this will help.


Jaymin D

0 Kudos

Contributor III

Yes, bootcmd_mmc_dev is not being used. I dint set it, seems to be there from before.

And bootargs line is bootargs=console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam

(it went into the other line)

Though I made the following change to bootcmd_mmc:

bootcmd_mmc=run bootargs_base bootargs_mmc;mmc dev 1:1; load mmc 1:1 10800000 uImage;bootm

Now, it reads the image but halts at this place:

## Booting kernel from Legacy Image at 10800000 ...

   Image Name:   Linux-3.0.35-2666-gbdde708

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3866444 Bytes = 3.7 MiB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

nonsec: could not determine GIC address.

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Linux version 3.0.35-2666-gbdde708 (r65388@shlinux3) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 SMP PREEMPT Fri Aug 16 10:43:44 CST 2013

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX 6Quad Sabre-Lite Board

Malformed early option 'caam'

Malformed early option 'caam'

Memory policy: ECC disabled, Data cache writealloc

CPU identified as i.MX6Q, silicon rev 1.2

PERCPU: Embedded 7 pages/cpu @8c008000 s5440 r8192 d15040 u32768

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

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam

PID hash table entries: 4096 (order: 2, 16384 bytes)

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Memory: 512MB 256MB = 768MB total

Memory: 765764k/765764k available, 282812k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)

    vmalloc : 0xc0800000 - 0xf2000000   ( 792 MB)

    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .init : 0x80008000 - 0x8003c000   ( 208 kB)

      .text : 0x8003c000 - 0x80a8f8f4   (10575 kB)

      .data : 0x80a90000 - 0x80af3e40   ( 400 kB)

       .bss : 0x80af3e64 - 0x80b41d8c   ( 312 kB)

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

Preemptible hierarchical RCU implementation.


MXC GPIO hardware

sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms


MXC_Early serial console at MMIO 0x21e8000 (options '115200')

bootconsole [ttymxc0] enabled

Console: colour dummy device 80x30

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

CPU1: Booted secondary processor

CPU2: Booted secondary processor

CPU3: Booted secondary processor

Brought up 4 CPUs

SMP: Total of 4 processors activated (6324.22 BogoMIPS).

print_constraints: dummy:

NET: Registered protocol family 16

print_constraints: vddpu: 725 <--> 1300 mV at 1150 mV fast normal

print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal

print_constraints: vddsoc: 725 <--> 1300 mV at 1175 mV fast normal

print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal

print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal

print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal

hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.

hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.

hw-breakpoint: maximum watchpoint size is 4 bytes.

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32070000, Cache size: 1048576 B

bio: create slab <bio-0> at 0

mxs-dma mxs-dma-apbh: initialized

print_constraints: VDDA: 2500 mV

print_constraints: VDDIO: 3300 mV

machine_constraints_voltage: VDDD: unsupportable voltage constraints

reg-fixed-voltage reg-fixed-voltage.2: Failed to register regulator: -22

reg-fixed-voltage: probe of reg-fixed-voltage.2 failed with error -22

print_constraints: vmmc: 3300 mV

SCSI subsystem initialized

spi_imx imx6q-ecspi.0: probed

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Freescale USB OTG Driver loaded, $Revision: 1.55 $

imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

imx-ipuv3 imx-ipuv3.1: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed

mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a

MIPI CSI2 driver module loaded

Advanced Linux Sound Architecture Driver Version 1.0.24.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

cfg80211: Calling CRDA to update world regulatory domain

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

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

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

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

TCP established hash table entries: 131072 (order: 8, 1048576 bytes)

TCP bind hash table entries: 65536 (order: 7, 786432 bytes)

TCP: Hash tables configured (established 131072 bind 65536)

TCP reno registered

UDP hash table entries: 512 (order: 2, 16384 bytes)

UDP-Lite hash table entries: 512 (order: 2, 16384 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 i.MX6

wait mode is enabled for i.MX6

cpaddr = c0880000 suspend_iram_base=c091c000

PM driver module loaded

IMX usb wakeup probe

add wake up source irq 75

IMX usb wakeup probe

cpu regulator mode:ldo_enable

i.MXC CPU frequency driver

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

msgmni has been set to 1495

alg: No test for stdrng (krng)

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

MIPI DSI driver module loaded

mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb

_regulator_get: get() with no identifier

imx-ipuv3 imx-ipuv3.1: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)

Console: switching to colour frame buffer device 128x48

mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver lcd

mxc_sdc_fb mxc_sdc_fb.2: register mxc display driver ldb

mxc_sdc_fb mxc_sdc_fb.3: register mxc display driver ldb

mxc_sdc_fb mxc_sdc_fb.3: ipu1-di1 already in use

mxc_sdc_fb: probe of mxc_sdc_fb.3 failed with error -16

imx-sdma imx-sdma: loaded firmware 1.1

imx-sdma imx-sdma: initialized

Serial: IMX driver

imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled, bootconsole disabled

0 Kudos

Contributor III

If you observe above, the kernel command line says : Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam

which is what I am expecting. So what is going wrong now?

0 Kudos

Contributor IV


just change the console parameter

change the console :smileycheck:


new line will become as below

console=ttymxc1,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam

then boot up the device :smileyhappy:


Jaymin D

0 Kudos

Contributor III

Yes, it worked. Thanks! :smileyhappy:

And also I changed mmcblk0 as well (and I am using mmc1).

0 Kudos

Contributor IV

ohhh Good :smileyhappy: :smileygrin:


Jaymin D

0 Kudos

Contributor IV

Please post your bootargs. It will be much easier to diagnose.

0 Kudos

Senior Contributor III


You system fails to find the root filesystem.

Please verify that bootarg is correctly updated or rootfs partition is valid.

0 Kudos