UBoot Please append a correct root boot option - embedded-linux

I am trying to boot into an image using the following commands:
setenv bootcmd "load mmc 1 0x82000000 swupdate-image-imx6ull14x14evk-20230206204748.rootfs.ext4.gz.u-boot;load mmc 1 0x82a00000 imx6ull-14x14-evk.dtb;load mmc 1 0x83000000 zImage;setenv root /dev/ram0;setenv rootfstype ext4;bootz 0x83000000 - 0x82a00000"
saveenv
print bootcmd
run bootcmd
This starts a kernel, finds and image and attempts to run it. However my issue is
[ 2.921973] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[ 2.929787] Please append a correct "root=" boot option; here are the available partitions:
[ 2.939329] 0100 65536 ram0
[ 2.939338] (driver?)
[ 2.945526] 0101 65536 ram1
[ 2.945531] (driver?)
[ 2.951645] 0102 65536 ram2
[ 2.951649] (driver?)
[ 2.957843] 0103 65536 ram3
[ 2.957847] (driver?)
[ 2.963990] 0104 65536 ram4
[ 2.963995] (driver?)
[ 2.970110] 0105 65536 ram5
[ 2.970114] (driver?)
[ 2.976249] 0106 65536 ram6
[ 2.976254] (driver?)
[ 2.982368] 0107 65536 ram7
[ 2.982372] (driver?)
[ 2.988542] 0108 65536 ram8
[ 2.988547] (driver?)
[ 2.994688] 0109 65536 ram9
[ 2.994692] (driver?)
[ 3.000809] 010a 65536 ram10
[ 3.000814] (driver?)
[ 3.007040] 010b 65536 ram11
[ 3.007045] (driver?)
[ 3.013294] 010c 65536 ram12
[ 3.013298] (driver?)
[ 3.019503] 010d 65536 ram13
[ 3.019508] (driver?)
[ 3.025734] 010e 65536 ram14
[ 3.025739] (driver?)
[ 3.031941] 010f 65536 ram15
[ 3.031946] (driver?)
[ 3.038203] 1f00 32768 mtdblock0
[ 3.038208] (driver?)
[ 3.044782] b300 30558720 mmcblk1
[ 3.044787] driver: mmcblk
[ 3.051596] b301 22716 mmcblk1p1 20118f0d-01
[ 3.051601]
[ 3.058467] b302 258771 mmcblk1p2 20118f0d-02
I cannot seem to properly set the root= parameter. I have tried setting it in and out of my bootcmd. I am not 100% of my syntax but I cannot find an example to say I am wrong. Can anyone point me to my mistake?

The kernel command line is defined by the environment variable bootargs.

Related

How to load image in sama5d27-som1-ek kit using SDcard

I am following standard process to boot sama5d27-som1-ek kit using SDcard but i got following error
i cannot understand why it shows cannot open root device.i used 8GB sd for this process
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
Please append a correct "root=" boot option; here are the available partitions:
0100 8192 ram0
(driver?)
0101 8192 ram1
(driver?)
0102 8192 ram2
(driver?)
0103 8192 ram3
(driver?)
1f00 64 mtdblock0
(driver?)
1f01 640 mtdblock1
(driver?)
1f02 64 mtdblock2
(driver?)
1f03 128 mtdblock3
(driver?)
1f04 4096 mtdblock4
(driver?)
b300 7864320 mmcblk0
driver: mmcblk
b301 65536 mmcblk0p1 da6e5492-01
b302 914432 mmcblk0p2 da6e5492-02
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
CPU: 0 PID: 1 Comm: swapper Not tainted 4.19.78-linux4sam-6.2 #1
Hardware name: Atmel SAMA5
Function entered at [<c010dcd8>] from [<c010ae5c>]
Function entered at [<c010ae5c>] from [<c0117f48>]
Function entered at [<c0117f48>] from [<c0a01270>]
Function entered at [<c0a01270>] from [<c0a01590>]
Function entered at [<c0a01590>] from [<c0a01730>]
Function entered at [<c0a01730>] from [<c0a00e1c>]
Function entered at [<c0a00e1c>] from [<c0729e00>]
Function entered at [<c0729e00>] from [<c01010e8>]
Exception stack(0xc642dfb0 to 0xc642dff8)
dfa0: 00000000 00000000 00000000 00000000
dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) ]---
random: fast init done
random: crng init done
please help to know error.because i am following standard process.
The kernel can not mount the rootfs. (can not find init)
Can you please show the kernel command line?
What file system do you use?
It looks like you have 2 partitions.

Hi3516D : Kernel Panic while booting from NFS with uboot

I'm trying to boot my kernel from NFS... i have some problem with env. variables on Uboot.
Actually this is work well with ubuntu v14.04.5 LTS NFS kernel server but v18.04.1 is not.
this is my printenv list :
bootdelay=1
baudrate=115200
bootfile="uImage"
mdio_intf=mii
ram_cmd=setenv bootcmd nand read \$(kernel_addr) 0x200000 0x400000\; nand read \$(rootfs_addr) 0x600000 0x700000\; bootm \$(kernel_addr) \$(rootfs_addr)
ram_args=setenv bootargs root=/dev/ram rw rootfstype=ext4 $(fixed_args) $(mtdparts)
nfs_cmd=setenv bootcmd tftp \$(kernel_addr) \$(kernel_tftp_path)\; bootm \$(kernel_addr)
nfs_args=setenv bootargs root=/dev/nfs noinitrd $(fixed_args) $(mtdparts) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off nfsroot=$(serverip):$(nfsroot) ethaddr=$(ethaddr)
fixed_args=mem=256M console=ttyAMA0,115200
mtdparts=mtdparts=hinand:1M(boot),1M(env),4M(kernel),7M(rootfs),16M(work),24M(www),6M(fw),3M(log),2M(config),64M(data)
kernel_addr=0x82000000
rootfs_addr=0x82400000
hostname=hi3516d_hi
filesize=515E61
fileaddr=82000000
ethaddr=4A:A4:14:6E:F8:F7
boot_mode=nfs
gatewayip=10.20.0.20
serverip=10.20.9.77
ipaddr=10.20.9.110
netmask=255.255.0.0
nfsroot=/home/thkim/build_h3516d_ptz_rel/target
kernel_tftp_path=thkim_H3516D/kernel/curr.kernel
stdin=serial
stdout=serial
stderr=serial
verify=n
factory=0
bootcmd=tftp $(kernel_addr) $(kernel_tftp_path); bootm $(kernel_addr)
bootargs=root=/dev/nfs noinitrd mem=256M console=ttyAMA0,115200 mtdparts=hinand:1M(boot),1M(env),4M(kernel),7M(rootfs),16M(work),24M(www),6M(fw),3M(log),2M(config),64M(data) ip=10.20.9.110:10.20.9.77:10.20.0.20:255.255.0.0:hi3516d_hi::off nfsroot=10.20.9.77:/home/thkim/build_h3516d_ptz_rel/target ethaddr=4A:A4:14:6E:F8:F7
ver=U-Boot 2010.06 (Feb 06 2018 - 11:07:28)
this is the error while booting(last rows) :
IP-Config: Complete:
device=eth0, addr=10.20.9.110, mask=255.255.0.0, gw=10.20.0.20
host=hi3516d_hi, domain=, nis-domain=(none)
bootserver=10.20.9.77, rootserver=10.20.9.77, rootpath=
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
f000 1024 romblock0 (driver?)
1f00 1024 mtdblock0 (driver?)
f001 1024 romblock1 (driver?)
1f01 1024 mtdblock1 (driver?)
f002 4096 romblock2 (driver?)
1f02 4096 mtdblock2 (driver?)
f003 7168 romblock3 (driver?)
1f03 7168 mtdblock3 (driver?)
f004 16384 romblock4 (driver?)
1f04 16384 mtdblock4 (driver?)
f005 24576 romblock5 (driver?)
1f05 24576 mtdblock5 (driver?)
f006 6144 romblock6 (driver?)
1f06 6144 mtdblock6 (driver?)
f007 3072 romblock7 (driver?)
1f07 3072 mtdblock7 (driver?)
f008 2048 romblock8 (driver?)
1f08 2048 mtdblock8 (driver?)
f009 65536 romblock9 (driver?)
1f09 65536 mtdblock9 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
I can't know what is the problem...
Can anyone help me ??
Thanks a lot !
This problem is solved.
It was simply a problem because NFS Protocol v2 was disabled.
After activating Protocol v2 of NFS Kernel Server, I confirmed that it is mounted normally.
And I heard this site is for code and programming so I will ask another site(unix.stackexchange.com) when I have a problem like this.
Thanks a lot!

Error in booting from uSD-card - No filesystem could mount root, tried:Ext4

I am trying to build an embedded Linux to be run on PocketBeagle using Buildroot; and following the instructions in (source1). The resulting images are copied then to the uSD-card.
When inserting the uSD-card in the Pocketbeagle and monitor the booting process via a serial connection; I got the following error:
No filesystem could mount root, tried:
ext4
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1).
The used resources are:
Buildroot: 2018.02
File system: ext4
Bootloader: U-Boot (custom version 2018.01)
Kernel version: 4.14.24
Applying all the patches stated in source above and can be found in (source2):
- 0001-Stripped-back-pocketbeagle-devicetree.patch
- 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
- 0002-U-Boot-BeagleBone-Cape-Manager.patch
- 0003-pocketbeagle-tweaks.patch
Runing the build results in the following files and images:
MLO: First stage bootloader
U-boot.img: Second stage bootloader
uEnv.txt: U-boot environmnt
zImage: Linux kernel image
am335x-pocketbeagle.dtb: Linux kernel Device Tree Blob
rootfs.ext4: Root filesystem image
The uEnv.txt is as follows:
fdtfile=am335x-pocketbeagle.dtb
bootpart=0:1
bootdir=
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait
uenvcmd=run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr};
Then by using genimage in buildroot (and rebuilding) to generate the uSd-image that contains two partitions:
1. FAT partition containing the bootloader images, the kernel image and Device Tree
2. Rootfs partition containing the root filesystem ext4
The resulting image is called sdcard.img is copies to the uSD-card by using program etcher (etcher-electron-1.4.3-x86_64.AppImage) or by (sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M)
I have used two different uSD-cards to test the build, but the result was the same:
1. Kingstone 32 GB (SDHC 10)
2. Sandisk 16GB (SDHC 10)
It's worth to say that I have used the same uSD-cards to load the original image of the PocketBeagle from the official site and boot from them, the cards boots without problem.
Any idea to help is highly appreciated.
ADDENDUM
Another error that is shown in the log file occurs in the beginning of the boot:
U-Boot SPL 2018.01 (Mar 24 2018 - 21:13:25)
Trying to boot from MMC1
*** Warning - bad CRC, using default environment
reading u-boot.img
reading u-boot.img
U-Boot 2018.01 (Mar 24 2018 - 21:13:25 +0100)
CPU : AM335X-GP rev 2.1 I2C: ready DRAM: 512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
The full log is as follows:
U-Boot SPL 2018.01 (Mar 24 2018 - 21:13:25)
Trying to boot from MMC1
*** Warning - bad CRC, using default environment
reading u-boot.img
reading u-boot.img
U-Boot 2018.01 (Mar 24 2018 - 21:13:25 +0100)
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
Model: BeagleBoard.org PocketBeagle
<ethaddr> not set. Validating first E-fuse MAC
Net: No ethernet found.
Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
reading uEnv.txt
218 bytes read in 4 ms (52.7 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from /uEnv.txt
Importing environment from mmc ...
Checking if uenvcmd is set ...
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd ...
reading /zImage
5540120 bytes read in 351 ms (15.1 MiB/s)
loading /am335x-pocketbeagle.dtb ...
reading /am335x-pocketbeagle.dtb
33516 bytes read in 9 ms (3.6 MiB/s)
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 8fff4000, end 8ffff2eb ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.24 (ammar#ammar-System-Product-Name) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #1 SMP Sat Mar 24 21:23:50 CET 2018
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: TI AM335x PocketBeagle
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] cma: Reserved 16 MiB at 0x9e800000
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon)
[ 0.000000] random: fast init done
[ 0.000000] percpu: Embedded 17 pages/cpu #df93f000 s40872 r8192 d20568 u69632
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 129412
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 479900K/522240K available (8192K kernel code, 810K rwdata, 2412K rodata, 1024K init, 7547K bss, 25956K reserved, 16384K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xe0000000 - 0xff800000 ( 504 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xdfe00000 ( 510 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0900000 (9184 kB)
[ 0.000000] .init : 0xc0c00000 - 0xc0d00000 (1024 kB)
[ 0.000000] .data : 0xc0d00000 - 0xc0dca9b8 ( 811 kB)
[ 0.000000] .bss : 0xc0dcc000 - 0xc152af94 (7548 kB)
[ 0.000000] Running RCU self tests
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU event tracing is enabled.
[ 0.000000] RCU lockdep checking is enabled.
[ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000017] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000044] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000097] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000569] timer_probe: no matching timers found
[ 0.001470] Console: colour dummy device 80x30
[ 0.001516] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.001530] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.001542] ... MAX_LOCK_DEPTH: 48
[ 0.001554] ... MAX_LOCKDEP_KEYS: 8191
[ 0.001566] ... CLASSHASH_SIZE: 4096
[ 0.001578] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.001589] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.001601] ... CHAINHASH_SIZE: 32768
[ 0.001613] memory used by lock dependency info: 4655 kB
[ 0.001626] per task-struct memory footprint: 1536 bytes
[ 0.001663] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[ 0.078740] pid_max: default: 32768 minimum: 301
[ 0.079147] Security Framework initialized
[ 0.079285] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.079306] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.082392] CPU: Testing write buffer coherency: ok
[ 0.083889] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.085406] Setting up static identity map for 0x80100000 - 0x80100078
[ 0.085975] Hierarchical SRCU implementation.
[ 0.087625] smp: Bringing up secondary CPUs ...
[ 0.087648] smp: Brought up 1 node, 1 CPU
[ 0.087665] SMP: Total of 1 processors activated (996.14 BogoMIPS).
[ 0.087679] CPU: All CPU(s) started in SVC mode.
[ 0.091643] devtmpfs: initialized
[ 0.116033] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.116853] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.116916] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.118550] pinctrl core: initialized pinctrl subsystem
[ 0.123225] NET: Registered protocol family 16
[ 0.130326] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.171692] omap_hwmod: debugss: _wait_target_disable failed
[ 0.226390] cpuidle: using governor menu
[ 0.237629] OMAP GPIO hardware version 0.1
[ 0.262333] No ATAGs?
[ 0.262360] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.262655] omap4_sram_init:Unable to allocate sram needed to handle errata I688
[ 0.262675] omap4_sram_init:Unable to get sram pool needed to handle errata I688
[ 0.298256] edma 49000000.edma: TI EDMA DMA engine driver
[ 0.303666] SCSI subsystem initialized
[ 0.305374] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup#44c00000/scm#210000/pinmux#800/pinmux_i2c0_pins, deferring probe
[ 0.307447] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 400 kHz
[ 0.307764] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup#44c00000/scm#210000/pinmux#800/mma8452_pins_default, deferring probe
[ 0.308058] pps_core: LinuxPPS API ver. 1 registered
[ 0.308076] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti#linux.it>
[ 0.308128] PTP clock support registered
[ 0.312478] clocksource: Switched to clocksource timer1
[ 0.448001] VFS: Disk quotas dquot_6.6.0
[ 0.448193] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.473020] NET: Registered protocol family 2
[ 0.474843] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.474948] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[ 0.476120] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.476506] UDP hash table entries: 256 (order: 2, 20480 bytes)
[ 0.476689] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[ 0.477446] NET: Registered protocol family 1
[ 0.479566] RPC: Registered named UNIX socket transport module.
[ 0.479614] RPC: Registered udp transport module.
[ 0.479629] RPC: Registered tcp transport module.
[ 0.479643] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.482107] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[ 0.483357] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.487455] audit: initializing netlink subsys (disabled)
[ 0.490304] audit: type=2000 audit(0.480:1): state=initialized audit_enabled=0 res=1
[ 0.490640] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 0.493682] NFS: Registering the id_resolver key type
[ 0.494058] Key type id_resolver registered
[ 0.494099] Key type id_legacy registered
[ 0.494253] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
[ 0.500669] io scheduler noop registered
[ 0.500700] io scheduler deadline registered
[ 0.500822] io scheduler cfq registered (default)
[ 0.500841] io scheduler mq-deadline registered
[ 0.500856] io scheduler kyber registered
[ 0.503256] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.510527] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
[ 0.516492] omap_uart 44e09000.serial: no wakeirq for uart0
[ 0.516942] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a OMAP UART0
[ 1.250345] console [ttyO0] enabled
[ 1.255586] omap_uart 48022000.serial: no wakeirq for uart1
[ 1.261829] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a OMAP UART1
[ 1.272744] omap_uart 48024000.serial: no wakeirq for uart2
[ 1.278844] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a OMAP UART2
[ 1.289570] omap_uart 481a8000.serial: no wakeirq for uart4
[ 1.295781] 481a8000.serial: ttyO4 at MMIO 0x481a8000 (irq = 33, base_baud = 3000000) is a OMAP UART4
[ 1.334046] brd: module loaded
[ 1.362138] loop: module loaded
[ 1.368162] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.383297] libphy: Fixed MDIO Bus: probed
[ 1.390588] i2c /dev entries driver
[ 1.398755] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 1.465093] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.472542] oprofile: using arm/armv7
[ 1.477095] Initializing XFRM netlink socket
[ 1.481985] NET: Registered protocol family 10
[ 1.493215] Segment Routing with IPv6
[ 1.497190] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 1.505262] NET: Registered protocol family 17
[ 1.509973] NET: Registered protocol family 15
[ 1.515090] Key type dns_resolver registered
[ 1.519724] omap_voltage_late_init: Voltage driver support not added
[ 1.526481] sr_dev_init: No voltage domain specified for smartreflex0. Cannot initialize
[ 1.535007] sr_dev_init: No voltage domain specified for smartreflex1. Cannot initialize
[ 1.543566] ThumbEE CPU extension supported.
[ 1.548049] Registering SWP/SWPB emulation handler
[ 1.553116] SmartReflex Class3 initialized
[ 1.623490] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.635560] mmc0: new high speed SDHC card at address 0007
[ 1.644119] mmcblk0: mmc0:0007 SD32G 28.8 GiB
[ 1.655081] mmcblk0: p1 p2
[ 1.671199] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 1.677649] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.686633] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 400 kHz
[ 1.694194] hctosys: unable to open rtc device (rtc0)
[ 1.699490] sr_init: No PMIC hook to init smartreflex
[ 1.705144] sr_init: platform driver register failed for SR
[ 1.720670] List of all partitions:
[ 1.724586] 0100 16384 ram0
[ 1.724597] (driver?)
[ 1.730999] 0101 16384 ram1
[ 1.731008] (driver?)
[ 1.737842] 0102 16384 ram2
[ 1.737854] (driver?)
[ 1.744389] 0103 16384 ram3
[ 1.744400] (driver?)
[ 1.750791] 0104 16384 ram4
[ 1.750800] (driver?)
[ 1.757269] 0105 16384 ram5
[ 1.757278] (driver?)
[ 1.763737] 0106 16384 ram6
[ 1.763746] (driver?)
[ 1.770139] 0107 16384 ram7
[ 1.770148] (driver?)
[ 1.776597] 0108 16384 ram8
[ 1.776607] (driver?)
[ 1.783061] 0109 16384 ram9
[ 1.783071] (driver?)
[ 1.789456] 010a 16384 ram10
[ 1.789465] (driver?)
[ 1.795999] 010b 16384 ram11
[ 1.796008] (driver?)
[ 1.802540] 010c 16384 ram12
[ 1.802549] (driver?)
[ 1.809029] 010d 16384 ram13
[ 1.809038] (driver?)
[ 1.815571] 010e 16384 ram14
[ 1.815580] (driver?)
[ 1.822056] 010f 16384 ram15
[ 1.822065] (driver?)
[ 1.828679] b300 30228480 mmcblk0
[ 1.828690] driver: mmcblk
[ 1.835867] b301 16384 mmcblk0p1 00000000-01
[ 1.835877]
[ 1.843044] b302 524288 mmcblk0p2 00000000-02
[ 1.843053]
[ 1.850164] No filesystem could mount root, tried:
[ 1.850173] ext4
[ 1.855340]
[ 1.858913] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
[ 1.867873] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
The failure to mount the rootfs is occurring because the correct partition of the SDcard has not been specified.
In the kernel command line, the kernel is (incorrectly) instructed to find the rootfs in the partition corresponding to /dev/mmcblk0p1.
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait
and
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait
However the mmc subsystem reports that there are two partitions on your SDcard, and the boot log reports the device names of these partitions for you twice.
First:
[ 1.635560] mmc0: new high speed SDHC card at address 0007
[ 1.644119] mmcblk0: mmc0:0007 SD32G 28.8 GiB
[ 1.655081] mmcblk0: p1 p2
And then:
[ 1.720670] List of all partitions:
...
[ 1.828679] b300 30228480 mmcblk0
[ 1.828690] driver: mmcblk
[ 1.835867] b301 16384 mmcblk0p1 00000000-01
[ 1.835877]
[ 1.843044] b302 524288 mmcblk0p2 00000000-02
So the kernel command line (through bootargs) should specify the second partition, /dev/mmcblk0p2, rather than the first partition for the rootfs.
Since the storage area for your U-Boot environment has not been properly initialized (i.e. the "Warning - bad CRC, using default environment" messages) (or your uEnv.txt file is missing or corrupt), U-Boot is booting the Linux kernel with a hardcoded bootargs value that is defined in your board's configuration file.
You could either edit that file and re-build U-Boot, or abort the autoboot and use
setenv bootargs console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait and saveenv commands to correct this mis-specification.

Where can I load a GPIO module at the earliest?

I wrote a kernel module which works as expected. But I want that to be loaded at the beginning of the boot process. So I moved this code to
OpenWRT/build_dir/target-i386_geode_eglibc-2.19/linux-x86_alix2/linux-3.10.49/arch/x86/platform
and my code is here:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/delay.h>
#include <linux/cs5535.h>
MODULE_AUTHOR("Ramana");
MODULE_DESCRIPTION("POWER LED DRIVER");
#ifdef MODULE_LICENSE
MODULE_LICENSE("Dual BSD/GPL");
#endif
#define HW_VERSION_GPIO 15
#define LATCH_GPIO 6
#define DATA_GPIO 25
#define CLOCK_GPIO 27
#define HIGH 1
#define LOW 0
static void set_power_led(void)
{
uint8_t i = 0;
/*
* Configure Pins Q8 Q7 Q6....Q0 in shift register
* Set 0 to glow LED
*
* shift_reg:
* indices 0, 1 and 2 are for LED3
* 0 1 1 -> Blue_ON, GREEN_OFF, RED_OFF
*
* indices 3, 4 and 5 are for LED1
*
* indices 6, 7 and 8 are for LED2
* 0 1 1 -> Blue_ON, GREEN_OFF, RED_OFF
*
* The pins Q9 Q10 and Q11 are don't care, so we are not using here
*/
uint8_t shift_reg[9] = {0, 1, 1, 1, 1, 1, 1, 1, 1};
/*
* Clear register before set
*/
for (i = 0; i < 9 ; i ++) {
gpio_set_value(CLOCK_GPIO, LOW);
if (shift_reg[i] == 0) {
gpio_set_value(DATA_GPIO, HIGH);
} else {
gpio_set_value(DATA_GPIO, LOW);
}
gpio_set_value(CLOCK_GPIO, HIGH);
}
gpio_set_value(LATCH_GPIO, HIGH);
msleep(1);
gpio_set_value(LATCH_GPIO, LOW);
}
static int __init power_led_init(void)
{
/*
* If GPIO 15 is high, it is old hardware
*/
printk(KERN_INFO "LED INIT\n");
if (!gpio_is_valid(LATCH_GPIO)) {
printk(KERN_INFO "LEDs: Latch gpio is not valid\n");
return -ENODEV;
}
if (!gpio_is_valid(DATA_GPIO)) {
printk(KERN_INFO "LEDs: Data gpio is not valid\n");
return -ENODEV;
}
if (!gpio_is_valid(CLOCK_GPIO)) {
printk(KERN_INFO "LEDs: Clock gpio is not valid\n");
return -ENODEV;
}
gpio_request(LATCH_GPIO, "sysfs");
gpio_request(DATA_GPIO, "sysfs");
gpio_request(CLOCK_GPIO, "sysfs");
gpio_direction_output(LATCH_GPIO, LOW);
gpio_direction_output(DATA_GPIO, LOW);
gpio_direction_output(CLOCK_GPIO, LOW);
set_power_led();
printk(KERN_INFO "Power LED: registered\n");
return 0;
}
static void __exit power_led_exit(void)
{
uint8_t i;
for (i = 0; i < 9 ; i++) {
gpio_set_value(CLOCK_GPIO, LOW);
gpio_set_value(DATA_GPIO, LOW);
gpio_set_value(CLOCK_GPIO, HIGH);
}
gpio_set_value(LATCH_GPIO, HIGH);
msleep(1);
gpio_set_value(LATCH_GPIO, LOW);
}
module_init(power_led_init);
module_exit(power_led_exit);
With this there is a kernel panic:
[ 0.104709] LED INIT
[ 0.105306] BUG: unable to handle kernel NULL pointer dereference at 0000004c
[ 0.106284] IP: [<c115acc2>] __gpio_set_value+0x12/0x80
[ 0.106284] *pde = 00000000
[ 0.106284] Oops: 0000 [#1]
[ 0.106284] Modules linked in:
[ 0.106284] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.49 #33
[ 0.106284] task: cf834000 ti: cf840000 task.ti: cf840000
[ 0.106284] EIP: 0060:[<c115acc2>] EFLAGS: 00010286 CPU: 0
[ 0.106284] EIP is at __gpio_set_value+0x12/0x80
[ 0.106284] EAX: c13a1624 EBX: c13a1624 ECX: ffffffea EDX: 00000000
[ 0.106284] ESI: 00000000 EDI: 00000000 EBP: cf841f80 ESP: cf841f24
[ 0.106284] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 0.106284] CR0: 8005003b CR2: 0000004c CR3: 01371000 CR4: 00000090
[ 0.106284] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 0.106284] DR6: ffff0ff0 DR7: 00000400
[ 0.106284] Stack:
[ 0.106284] cf841f3b cf841f44 0000003e c133b05e c12b0d03 006e6967 01010101 01010101
[ 0.106284] 00000000 c133afbb c1000172 cfdff401 00060006 c13019c0 c12ced19 cfdff460
[ 0.106284] 00000000 cfdff460 00000200 c114956a c136c480 00000006 0000003e cf840000
[ 0.106284] Call Trace:
[ 0.106284] [<c133b05e>] ? power_led_init+0xa3/0x112
[ 0.106284] [<c133afbb>] ? alix_init+0xf6/0xf6
[ 0.106284] [<c1000172>] ? do_one_initcall+0xb2/0x150
[ 0.106284] [<c114956a>] ? strcpy+0xa/0x20
[ 0.106284] [<c132da22>] ? kernel_init_freeable+0xd1/0x173
[ 0.106284] [<c132d4aa>] ? do_early_param+0x77/0x77
[ 0.106284] [<c124ad68>] ? kernel_init+0x8/0x170
[ 0.106284] [<c1251322>] ? ret_from_kernel_thread+0x6/0x28
[ 0.106284] [<c1251337>] ? ret_from_kernel_thread+0x1b/0x28
[ 0.106284] [<c124ad60>] ? rest_init+0x60/0x60
[ 0.106284] Code: d6 ab aa aa aa ff d1 5b 5e 5f c3 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 57 f
[ 0.106284] EIP: [<c115acc2>] __gpio_set_value+0x12/0x80 SS:ESP 0068:cf841f24
[ 0.106284] CR2: 000000000000004c
[ 0.106284] ---[ end trace 23021a4cac17faa2 ]---
[ 0.107751] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[ 0.107751]
Why this is crashing here and where can I add this to make this module loaded at the earliest.
Full minicom log
PC Engines ALIX.3 v0.99h
640 KB Base Memory
153603174448128645128089697280113664130048146432162816179200195584211968228352244736261120 KB Extended Memory
01F0 Master 045A InnoDisk Corp. - iCF4000 8GB
Phys C/H/S 16000/16/63 Log C/H/S 1003/255/63 LBA
GRUB loading....
Booting `OpenWrt'
[ 0.000000] Linux version 3.10.49 (savari#Ramana) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 unknown) ) #40 Tue Nov 8 13:11:49 IST 2016
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000000fffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] reserved
[ 0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[ 0.000000] DMI not present or invalid.
[ 0.000000] e820: last_pfn = 0x10000 max_arch_pfn = 0x100000
[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[ 0.000000] init_memory_mapping: [mem 0x0fc00000-0x0fffffff]
[ 0.000000] init_memory_mapping: [mem 0x08000000-0x0fbfffff]
[ 0.000000] init_memory_mapping: [mem 0x00100000-0x07ffffff]
[ 0.000000] 256MB LOWMEM available.
[ 0.000000] mapped low ram: 0 - 10000000
[ 0.000000] low ram: 0 - 10000000
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] Normal [mem 0x01000000-0x0fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x0009ffff]
[ 0.000000] node 0: [mem 0x00100000-0x0fffffff]
[ 0.000000] Using APIC driver default
[ 0.000000] No local APIC present or hardware disabled
[ 0.000000] APIC: disable apic facility
[ 0.000000] APIC: switched to apic NOOP
[ 0.000000] e820: [mem 0x10000000-0xffefffff] available for PCI devices
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64927
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz block2mtd.block2mtd=/dev/hda2,131072,rootfs,5 root=/dev/mtdblock0 rootfstype=jffs2 rootwait console=tty0 console=ttyS0,38400n8 noinitrd
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Initializing CPU#0
[ 0.000000] Memory: 255600k/262144k available (2377k kernel code, 6156k reserved, 873k data, 260k init, 0k highmem)
[ 0.000000] virtual kernel memory layout:
[ 0.000000] fixmap : 0xfffa3000 - 0xfffff000 ( 368 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xfffa1000 ( 759 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] .init : 0xc132d000 - 0xc136e000 ( 260 kB)
[ 0.000000] .data : 0xc1252630 - 0xc132cd00 ( 873 kB)
[ 0.000000] .text : 0xc1000000 - 0xc1252630 (2377 kB)
[ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:2304 nr_irqs:256 16
[ 0.000000] console [ttyS0] enabled
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 498.062 MHz processor
[ 0.003005] Calibrating delay loop (skipped), value calculated using timer frequency.. 996.12 BogoMIPS (lpj=498062)
[ 0.005013] pid_max: default: 32768 minimum: 301
[ 0.007653] Mount-cache hash table entries: 512
[ 0.011056] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[ 0.011056] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0
[ 0.011056] tlb_flushall_shift: -1
[ 0.012009] CPU: Geode(TM) Integrated Processor by AMD PCS (fam: 05, model: 0a, stepping: 02)
[ 0.018327] Performance Events: no PMU driver, software events only.
[ 0.026472] NET: Registered protocol family 16
[ 0.030862] PCI: PCI BIOS revision 2.10 entry at 0xfced9, last bus=0
[ 0.031012] PCI: Using configuration type 1 for base access
[ 0.051103] bio: create slab <bio-0> at 0
[ 0.057403] SCSI subsystem initialized
[ 0.060534] PCI: Probing PCI hardware
[ 0.062281] PCI host bridge to bus 0000:00
[ 0.063030] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 0.064033] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
[ 0.065020] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.078410] Switching to clocksource pit
[ 0.086307] NET: Registered protocol family 2
[ 0.088599] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.089847] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.090949] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.092136] TCP: reno registered
[ 0.093867] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.095398] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.096873] NET: Registered protocol family 1
[ 0.100630] platform rtc_cmos: registered platform RTC device (no PNP device found)
[ 0.104665] alix: system is recognized as "PC Engines ALIX.3 v0.99h"
[ 0.106619] LED INIT
[ 0.107229] BUG: unable to handle kernel NULL pointer dereference at 0000004c
[ 0.108207] IP: [<c115acc2>] __gpio_set_value+0x12/0x80
[ 0.108207] *pde = 00000000
[ 0.108207] Oops: 0000 [#1]
[ 0.108207] Modules linked in:
[ 0.108207] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.49 #40
[ 0.108207] task: cf834000 ti: cf840000 task.ti: cf840000
[ 0.108207] EIP: 0060:[<c115acc2>] EFLAGS: 00010286 CPU: 0
[ 0.108207] EIP is at __gpio_set_value+0x12/0x80
[ 0.108207] EAX: c13a1624 EBX: c13a1624 ECX: ffffffea EDX: 00000000
[ 0.108207] ESI: 00000000 EDI: 00000000 EBP: cf841f80 ESP: cf841f24
[ 0.108207] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 0.108207] CR0: 8005003b CR2: 0000004c CR3: 01371000 CR4: 00000090
[ 0.108207] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 0.108207] DR6: ffff0ff0 DR7: 00000400
[ 0.108207] Stack:
[ 0.108207] cf841f3b cf841f44 0000003e c133b031 c12b0deb 006e6967 01010101 01010101
[ 0.108207] 00000000 c133afbb c1000172 00000001 00060006 c1301bf0 c12ceeb1 cfdff460
[ 0.108207] 00000000 cfdff460 00000200 00000000 c136c480 00000006 0000003e cf840000
[ 0.108207] Call Trace:
[ 0.108207] [<c133b031>] ? power_led_init+0x76/0xe5
[ 0.108207] [<c133afbb>] ? alix_init+0xf6/0xf6
[ 0.108207] [<c1000172>] ? do_one_initcall+0xb2/0x150
[ 0.108207] [<c132da22>] ? kernel_init_freeable+0xd1/0x173
[ 0.108207] [<c132d4aa>] ? do_early_param+0x77/0x77
[ 0.108207] [<c124b058>] ? kernel_init+0x8/0x170
[ 0.108207] [<c1251622>] ? ret_from_kernel_thread+0x6/0x28
[ 0.108207] [<c1251637>] ? ret_from_kernel_thread+0x1b/0x28
[ 0.108207] [<c124b050>] ? rest_init+0x60/0x60
[ 0.108207] Code: d6 ab aa aa aa ff d1 5b 5e 5f c3 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 57 89 d7 56 53 e8 46 f4 ff ff 85 c0 89 c3 74 5d 8b 30 <f6> 46 4c 01 74 10 ba 8a 07 00 00 b8 5c da 2c c1 e8 b9 bb ec ff
[ 0.108207] EIP: [<c115acc2>] __gpio_set_value+0x12/0x80 SS:ESP 0068:cf841f24
[ 0.108207] CR2: 000000000000004c
[ 0.108207] ---[ end trace 7b3836317c1bee78 ]---
[ 0.108879] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[ 0.108879]
I think you have put this in kernel source directory. You should place this in drivers/gpio/ in kernel source. Then add the entries in Kconfig and Makefile of drivers/gpio/ directory. In Kconfig, you can specify the dependency. Selecting it with make menuconfig, you will be able to compile this module as a part of kernel, and it will be loaded at boot-time when kernel is loaded. You can decrease the time further in this case using early_initcall() instead of module_init().
If you are not putting this at kernel source (i.e. not building the driver as part of kernel), then you should call this using "insmod my_module.ko" in a shell script, and put it in init.d and call it at your desired runlevel.

Booting linux-3.14.41 on ZC706: Kernel Panic

I get the following error while booting linux-3.14.4 on FPGA ZC706. I have build all tools following ways:
Rocket-Chip:
$ Latest master branch is checked out and generate boot.bin
riscv-gnu-toolchain:
$ ./build.sh (riscv64-unknown-elf)
$ make linux (for riscv64-unknown-linux-gnu-gcc)
Linux kernel:
$curl -L https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.41.tar.xz | tar -xJkf -
$ cd linux-3.14.41
$ git init
$ git remote add origin https://github.com/riscv/riscv-linux.git
$ git fetch
$ git checkout -f -t origin/master
$ make ARCH=riscv defconfig
$ make -j12 ARCH=riscv vmlinux
Root disc image:
$ dd if=/dev/zero of=root.bin bs=1M count=64
$ mkfs.ext2 -F root.bin
Booting:
1. First copy all files (vmlinux, root.bin, boot.bin, devicetree.dtb, uImage, uramdisk.image.gz) into sdcard.
(2) $ mkdir /sdcard
$ mount /dev/mmcblk0p1 /sdcard
$ ./fesvr-zynq +disk=/sdcard/riscv/root.bin bbl /sdcard/riscv/vmlinux
Booting starts, but stuck at a point. The following are the booting error
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00200000-0x0fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00200000-0x0fffffff]
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64135
[ 0.000000] Kernel command line: root=/dev/htifblk0
[ 0.000000] PID hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.000000] Sorting __ex_table...
[ 0.000000] Memory: 253568K/260096K available (1725K kernel code, 120K rwdata, 356K rodata, 68K init, 211K bss, 6528K reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:2
[ 0.150000] Calibrating delay using timer specific routine.. 20.01 BogoMIPS (lpj=100074)
[ 0.150000] pid_max: default: 32768 minimum: 301
[ 0.150000] Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.150000] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.150000] devtmpfs: initialized
[ 0.150000] NET: Registered protocol family 16
[ 0.150000] bio: create slab <bio-0> at 0
[ 0.150000] Switched to clocksource riscv_clocksource
[ 0.150000] NET: Registered protocol family 2
[ 0.150000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.150000] TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.150000] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.150000] TCP: reno registered
[ 0.150000] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.150000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.150000] NET: Registered protocol family 1
[ 0.150000] futex hash table entries: 256 (order: 0, 6144 bytes)
[ 0.150000] io scheduler noop registered
[ 0.150000] io scheduler cfq registered (default)
[ 0.170000] htifcon htif1: detected console
[ 0.180000] console [htifcon0] enabled
[ 0.180000] htifblk htif2: detected disk
[ 0.180000] htifblk htif2: added htifblk0
[ 0.180000] TCP: cubic registered
[ 0.180000] VFS: Mounted root (ext2 filesystem) readonly on device 254:0.
[ 0.180000] devtmpfs: error mounting -2
[ 0.180000] Freeing unused kernel memory: 68K (ffffffff80000000 - ffffffff80011000)
[ 0.180000] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[ 0.180000] CPU: 0 PID: 1 Comm: swapper Not tainted 3.14.41-g2317c43-dirty #2
[ 0.180000] Call Trace:
[ 0.180000] [<ffffffff80012f54>] walk_stackframe+0x0/0xc8
[ 0.180000] [<ffffffff801bbff4>] panic+0xb4/0x1c4
[ 0.180000] [<ffffffff80012a24>] sys_rt_sigreturn+0x140/0x178
[ 0.180000] [<ffffffff801bba08>] rest_init+0x80/0x84
[ 0.180000] [<ffffffff801bbafc>] kernel_init+0xf0/0xf4
[ 0.180000] [<ffffffff801bba08>] rest_init+0x80/0x84
Can anyone help me, whether I miss anything. I also tried with
linux-3.14.33; the same error comes
I can now boot kernel on SPIKE ISA as well as FPGA. I omit some steps while building root.bin mentioned at https://github.com/riscv/riscv-tools.
$ dd if=/dev/zero of=root.bin bs=1M count=64
$ mkfs.ext2 -F root.bin
will generate empty root.bin. We need to mount disc image and complete the file systems after completing busy box building as mentioned at https://github.com/riscv/riscv-tools

Resources