Hi,
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?
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,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
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
Usage:
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?
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'
and
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.
root=/dev/mmcblk0p1
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.
Regards
JAYMIN D
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:
baudrate=115200
board=sabrelite
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
bootdelay=3
clearenv=sf probe 1 && sf erase 0xc0000 0x2000 && echo restored environment to factory default
cpu=6Q
ethact=FEC
ethprime=FEC0
filesize=2f1c6c
ipaddr=192.168.1.103
kernel=uImage
loadaddr=0x10800000
netdev=eth0
netmask=255.255.255.0
nfsroot=/opt/eldk/arm
rd_loadaddr=0x11000000
serverip=192.168.1.101
stderr=serial
stdin=serial
stdout=serial
uboot=u-boot.bin
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:
Hi,
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.
Regards
Jaymin D
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.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
arm_max_freq=1GHz
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
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?
Hi,
just change the console parameter
change the console :smileycheck:
console=ttymxc1
new line will become as below
console=ttymxc1,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait caam
then boot up the device :smileyhappy:
regards
Jaymin D
Yes, it worked. Thanks! :smileyhappy:
And also I changed mmcblk0 as well (and I am using mmc1).
ohhh Good :smileyhappy: :smileygrin:
Thanks
Jaymin D
Please post your bootargs. It will be much easier to diagnose.
Hi
You system fails to find the root filesystem.
Please verify that bootarg is correctly updated or rootfs partition is valid.