大家好:
我自己编译了uboot、kernel和文件系统。设置的SD卡方式启动。
目前uboot和kernel可以正常启动。
Uboot打印信息:
Kernel打印信息
内核和uboot就是我昨天编译出来的
现在问题出在文件系统。
uboot的设置如下:
setenv bootargs 'console=ttymxc0,115200 ramdisk_size=20000000'
setenv bootcmd 'mmc dev 0; fatload mmc 0:1 80800000 zImage; fatload mmc 0:1 81800000 ramdisk.img;fatload mmc 0:1 87800000 imx6ull-14x14-evk.dtb; bootz 80800000 81800000 87800000;'
saveenv
启动状态如下
最终系统能正常运行起来
但是,问题是,这个文件系统,不是我加载到81800000,这个地址的文件系统。
这个文件系统是nand flash里面的。
我的疑问是:
1.为什么我自己编译的文件系统没有正常运行?是我编译的文件系统有问题么?
2.硬件为什么会自己使用nand里面的文件系统?
下面是完整的打印信息:
U-Boot 2016.03 (Oct 28 2019 - 21:21:43 +0800)
CPU: Freescale i.MX6ULL rev1.0 528 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 45C
Reset cause: POR
Board: MX6ULL 14x14 EVK
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
MMC: FSL_SDHC: 0
Display: TFT43AB (480x272)
Video: 480x272x24
In: serial
Out: serial
Err: serial
Net: FEC0
Normal Boot
Hit any key to stop autoboot: 0
u-boot@imx6ull-jun# setenv bootargs 'console=ttymxc0,115200 ramdisk_size=40000000'
u-boot@imx6ull-jun# saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x300000 -- 100% complete.
Writing to NAND... OK
u-boot@imx6ull-jun# boot
switch to partitions #0, OK
mmc0 is current device
reading zImage
6680408 bytes read in 583 ms (10.9 MiB/s)
reading ramdisk.img
18873139 bytes read in 1622 ms (11.1 MiB/s)
reading imx6ull-14x14-evk.dtb
35969 bytes read in 25 ms (1.4 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x65ef58 ]
## Loading init Ramdisk from Legacy Image at 81800000 ...
Image Name: ramdisk
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 18873075 Bytes = 18 MiB
Load Address: 81800000
Entry Point: 81800000
Verifying Checksum ... OK
## Flattened Device Tree blob at 87800000
Booting using the fdt blob at 0x87800000
Using Device Tree in place at 87800000, end 8780bc80
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.1.15 (jun@ubuntu) (gcc version 4.9.4 (Linaro GCC 4.9-2017.01) ) #4 SMP PREEMPT Mon Oct 28 21:24:51 CST 2019
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Freescale i.MX6 ULL 14x14 EVK Board
Reserved memory: failed to allocate memory for node 'linux,cma'
Memory policy: Data cache writealloc
PERCPU: Embedded 12 pages/cpu @8fdd3000 s16960 r8192 d24000 u49152
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttymxc0,115200 ramdisk_size=40000000
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: 228560K/262144K available (8396K kernel code, 446K rwdata, 2928K rodata, 440K init, 450K bss, 33584K reserved, 0K cma-reserved, 0K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0x90800000 - 0xff000000 (1768 MB)
lowmem : 0x80000000 - 0x90000000 ( 256 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.text : 0x80008000 - 0x80b17374 (11325 kB)
.init : 0x80b18000 - 0x80b86000 ( 440 kB)
.data : 0x80b86000 - 0x80bf5be0 ( 447 kB)
.bss : 0x80bf8000 - 0x80c68a1c ( 451 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
Additional per-CPU info printed with stalls.
RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
NR_IRQS:16 nr_irqs:16 16
mxc_clocksource_init 3000000
Switching to timer-based delay loop, resolution 333ns
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
/cpus/cpu@0 missing clock-frequency property
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x80008280 - 0x800082d8
Brought up 1 CPUs
SMP: Total of 1 processors activated (6.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
device-tree: Duplicate name in lcdif@021c8000, renamed to "display#1"
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 8 bytes.
imx6ul-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
imx6ul-pinctrl 2290000.iomuxc-snvs: initialized IMX pinctrl driver
mxs-dma 1804000.dma-apbh: initialized
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c i2c-0: IMX I2C adapter registered
i2c i2c-0: can't use DMA
i2c i2c-1: IMX I2C adapter registered
i2c i2c-1: can't use DMA
Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Initialized.
Bluetooth: Core ver 2.20
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
Switched to clocksource mxc_timer1
NET: Registered protocol family 2
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 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.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 18432K (81800000 - 82a00000)
imx rpmsg driver is registered.
Bus freq driver module loaded
futex hash table entries: 256 (order: 2, 16384 bytes)
VFS: Disk quotas dquot_6.6.0
VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.
fuse init (API version 7.23)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
imx-weim 21b8000.weim: Driver registered.
backlight supply power not found, using dummy regulator
MIPI DSI driver module loaded
MIPI DSI driver module loaded
21c8000.lcdif supply lcd not found, using dummy regulator
mxsfb 21c8000.lcdif: failed to find mxc display driver
Console: switching to colour frame buffer device 60x34
mxsfb 21c8000.lcdif: initialized
imx-sdma 20ec000.sdma: no event needs to be remapped
imx-sdma 20ec000.sdma: loaded firmware 3.3
imx-sdma 20ec000.sdma: initialized
2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 18, base_baud = 5000000) is a IMX
console [ttymxc0] enabled
21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 235, base_baud = 5000000) is a IMX
imx-rng 2284000.rngb: iMX RNG Registered.
imx sema4 driver is registered.
[drm] Initialized drm 1.1.0 20060810
[drm] Initialized vivante 1.0.0 20120216 on minor 0
brd: module loaded
loop: module loaded
fsl-quadspi 21e0000.qspi: unrecognized JEDEC id bytes: ff, ff, ff
fsl-quadspi 21e0000.qspi: Freescale QuadSPI probe failed
spi_gpio spi4: gpio-miso property not found, switching to no-rx mode
CAN device driver interface
flexcan 2090000.can: device registered (reg_base=92a38000, irq=27)
flexcan 2094000.can: device registered (reg_base=92a40000, irq=28)
20b4000.ethernet supply phy not found, using dummy regulator
pps pps0: new PPS source ptp0
fec 20b4000.ethernet (unnamed net_device) (uninitialized): Invalid MAC address: 00:00:00:00:00:00
fec 20b4000.ethernet (unnamed net_device) (uninitialized): Using random MAC address: 46:3a:16:8e:9e:36
libphy: fec_enet_mii_bus: probed
fec 20b4000.ethernet eth0: registered PHC device 0
2188000.ethernet supply phy not found, using dummy regulator
pps pps1: new PPS source ptp1
fec 2188000.ethernet eth1: registered PHC device 1
usbcore: registered new interface driver asix
usbcore: registered new interface driver ax88179_178a
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver net1080
usbcore: registered new interface driver cdc_subset
usbcore: registered new interface driver zaurus
usbcore: registered new interface driver cdc_ncm
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-mxc: Freescale On-Chip EHCI Host driver
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usb_ehset_test
2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
2184000.usb supply vbus not found, using dummy regulator
2184200.usb supply vbus not found, using dummy regulator
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
input: 20cc000.snvs:snvs-powerkey as /devices/platform/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
input: iMX6UL TouchScreen Controller as /devices/platform/soc/2000000.aips-bus/2040000.tsc/input/input1
read sensor who am i (0xfffffffb)error !
fxls8471: probe of 0-001e failed with error -22
snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR Sharp protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
IR XMP protocol handler initialized
pxp-v4l2 pxp_v4l2: initialized
0-000e supply vdd not found, using dummy regulator
0-000e supply vddio not found, using dummy regulator
mag3110 0-000e: check mag3110 chip ID
mag3110 0-000e: read chip ID 0xfffffffb is not equal to 0xc4!
mag3110: probe of 0-000e failed with error -22
imx2-wdt 20bc000.wdog: use WDOG_B to reboot.
imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
Bluetooth: HCI UART driver ver 2.3
Bluetooth: HCI UART protocol H4 registered
Bluetooth: HCI UART protocol BCSP registered
Bluetooth: HCI UART protocol ATH3K registered
usbcore: registered new interface driver bcm203x
usbcore: registered new interface driver btusb
usbcore: registered new interface driver ath3k
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
/soc/aips-bus@02100000/usdhc@02190000: voltage-ranges unspecified
sdhci-esdhc-imx 2190000.usdhc: Got CD GPIO
sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
/soc/aips-bus@02100000/usdhc@02194000: voltage-ranges unspecified
sdhci-esdhc-imx 2194000.usdhc: could not get ultra high speed state, work on normal mode
sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
mmc0: host does not support reading read-only switch, assuming write-enable
wm8960 1-001a: Failed to issue reset
wm8960: probe of 1-001a failed with error -5
fsl-asrc 2034000.asrc: driver registered
imx-wm8960 sound: failed to find codec platform device
imx-wm8960: probe of sound failed with error -22
NET: Registered protocol family 26
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20120528 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20120528)
can: broadcast manager protocol (rev 20120528 t)
can: netlink gateway (rev 20130117) max_hops=1
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: BNEP socket layer initialized
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Bluetooth: HIDP socket layer initialized
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
mmc0: new ultra high speed SDR104 SDHC card at address 0001
mmcblk0: mmc0:0001 SD16G 14.8 GiB
dhd_module_init in
snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:26:12 UTC (1572)
gpio_dvfs: disabling
can-3v3: disabling
ALSA device list:
No soundcards found.
mmc0: Timeout waiting for hardware interrupt.
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at drivers/mmc/host/sdhci.c:1008 sdhci_send_command+0x8c8/0xe64()
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.15 #4
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015dbc>] (unwind_backtrace) from [<80012748>] (show_stack+0x10/0x14)
[<80012748>] (show_stack) from [<807fda2c>] (dump_stack+0x84/0xc4)
[<807fda2c>] (dump_stack) from [<80036bc0>] (warn_slowpath_common+0x80/0xb0)
[<80036bc0>] (warn_slowpath_common) from [<80036c8c>] (warn_slowpath_null+0x1c/0x24)
[<80036c8c>] (warn_slowpath_null) from [<80589b44>] (sdhci_send_command+0x8c8/0xe64)
[<80589b44>] (sdhci_send_command) from [<8058c224>] (sdhci_timeout_timer+0x74/0xb4)
[<8058c224>] (sdhci_timeout_timer) from [<8007c4ac>] (call_timer_fn+0x24/0x98)
[<8007c4ac>] (call_timer_fn) from [<8007ca64>] (run_timer_softirq+0x1b0/0x234)
[<8007ca64>] (run_timer_softirq) from [<80039dc8>] (__do_softirq+0x120/0x23c)
[<80039dc8>] (__do_softirq) from [<8003a184>] (irq_exit+0xc0/0xfc)
[<8003a184>] (irq_exit) from [<8006e308>] (__handle_domain_irq+0x80/0xec)
[<8006e308>] (__handle_domain_irq) from [<80009454>] (gic_handle_irq+0x24/0x5c)
[<80009454>] (gic_handle_irq) from [<80013240>] (__irq_svc+0x40/0x74)
Exception stack(0x80b87f18 to 0x80b87f60)
7f00: 80b87f60 fffffff7
7f20: d006351e 00000002 8fdd5e90 00000002 cda726de 00000002 d006351e 00000002
7f40: 00000001 00000000 00000017 80b87f60 a6aaaaab 80574594 80000113 ffffffff
[<80013240>] (__irq_svc) from [<80574594>] (cpuidle_enter_state+0xd8/0x208)
[<80574594>] (cpuidle_enter_state) from [<80065d9c>] (cpu_startup_entry+0x1fc/0x320)
[<80065d9c>] (cpu_startup_entry) from [<80b18c5c>] (start_kernel+0x39c/0x3a8)
[<80b18c5c>] (start_kernel) from [<8000807c>] (0x8000807c)
---[ end trace c752436d17037959 ]---
mmcblk0: error -84 sending status command, retrying
mmcblk0: error -84 sending status command, retrying
mmcblk0: error -84 sending status command, aborting
mmc0: tried to reset card
blk_update_request: I/O error, dev mmcblk0, sector 0
Buffer I/O error on dev mmcblk0, logical block 0, async page read
mmc0: Timeout waiting for hardware interrupt.
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at drivers/mmc/host/sdhci.c:1008 sdhci_send_command+0x8c8/0xe64()
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.1.15 #4
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015dbc>] (unwind_backtrace) from [<80012748>] (show_stack+0x10/0x14)
[<80012748>] (show_stack) from [<807fda2c>] (dump_stack+0x84/0xc4)
[<807fda2c>] (dump_stack) from [<80036bc0>] (warn_slowpath_common+0x80/0xb0)
[<80036bc0>] (warn_slowpath_common) from [<80036c8c>] (warn_slowpath_null+0x1c/0x24)
[<80036c8c>] (warn_slowpath_null) from [<80589b44>] (sdhci_send_command+0x8c8/0xe64)
[<80589b44>] (sdhci_send_command) from [<8058c224>] (sdhci_timeout_timer+0x74/0xb4)
[<8058c224>] (sdhci_timeout_timer) from [<8007c4ac>] (call_timer_fn+0x24/0x98)
[<8007c4ac>] (call_timer_fn) from [<8007ca64>] (run_timer_softirq+0x1b0/0x234)
[<8007ca64>] (run_timer_softirq) from [<80039dc8>] (__do_softirq+0x120/0x23c)
[<80039dc8>] (__do_softirq) from [<8003a184>] (irq_exit+0xc0/0xfc)
[<8003a184>] (irq_exit) from [<8006e308>] (__handle_domain_irq+0x80/0xec)
[<8006e308>] (__handle_domain_irq) from [<80009454>] (gic_handle_irq+0x24/0x5c)
[<80009454>] (gic_handle_irq) from [<80013240>] (__irq_svc+0x40/0x74)
Exception stack(0x80b87f18 to 0x80b87f60)
7f00: 80b87f60 fffffff7
7f20: 398741d2 00000005 8fdd5e90 00000002 37285185 00000005 398741d2 00000005
7f40: 00000001 00000000 00000017 80b87f60 a6aaaaab 80574594 00000113 ffffffff
[<80013240>] (__irq_svc) from [<80574594>] (cpuidle_enter_state+0xd8/0x208)
[<80574594>] (cpuidle_enter_state) from [<80065d9c>] (cpu_startup_entry+0x1fc/0x320)
[<80065d9c>] (cpu_startup_entry) from [<80b18c5c>] (start_kernel+0x39c/0x3a8)
[<80b18c5c>] (start_kernel) from [<8000807c>] (0x8000807c)
---[ end trace c752436d1703795a ]---
mmcblk0: error -110 sending status command, retrying
mmcblk0: error -110 sending status command, retrying
mmcblk0: error -110 sending status command, aborting
blk_update_request: I/O error, dev mmcblk0, sector 0
Buffer I/O error on dev mmcblk0, logical block 0, async page read
mmcblk0: unable to read partition table
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
Please press Enter to activate this console.
/ #
/ # ls
bin lib mnt root tmp
dev linuxrc opt sbin usr
etc lost+found proc sys var
/ # random: nonblocking pool is initialized
You can specify where it boot from in u-boot bootargs.
e.g. setenv mmcargs 'setenv bootargs ${bootargs} root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=lcd,CLAA-WVGA,if=RGB565 ip=dhcp'
In this example, root=/dev/mmcblk3p2 is specified the rootfs is in mmcblk3 partition 2.
For details, please check the i.MX_Linux_User's_Guide.pdf. You can download this document from here.
https://www.nxp.com/design/i.mx-developer-resources/i.mx-software-and-development-tool:IMX-SW