u-boot starts Linux through SD card (3)

u-boot porting
linux run
linux + SD card (rootfs) run
u-boot + SD card (kernel + dtb + rootfs)

The previous section introduced separately the transplantation of u-boot, the transplantation of Linux and the creation of the rootfs root file system. This section mainly introduces u-boot + SD card (kernel + dtb + rootfs) to start linux by stringing together the previous ones.

Root file system production

cd rootfs

cp -r /home/tyustli/code/open_source/busybox/busybox-1.36.1/_install/* ./

#Copy library files
mkdirlib
cp -r /home/tyustli/cross_tool/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/lib/* lib/

#Create device node
mkdirdev
cddev
sudo mknod -m 666 tty1 c 4 1
sudo mknod -m 666 tty2 c 4 2
sudo mknod -m 666 tty3 c 4 3
sudo mknod -m 666 tty4 c 4 4
sudo mknod -m 666 tty5 c 4 5
sudo mknod -m 666 tty6 c 4 6
#Create a console node
sudo mknod -m 666 console c 5 1
#Create an empty node
sudo mknod -m 666 null c 1 3

cd ../
mkdir etc
mkdir proc
mkdir tmp
mkdir sys
cd etc
touch fstab
# Write content to the file
cat > fstab <<EOF
#<file system> <mount point> <type> <options><dump><pass>
proc /proc proc defaults 00
tmpfs /tmp tmpfs defaults 00
sysfs /sys sysfs defaults 00
EOF

touch inittab
cat > inittab<<EOF
#etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
EOF

mkdir init.d
cd init.d
rcS
chmod 777rcS

# Write content to the file
cat >rcS <<EOF
#!/bin/sh
ATH=/sbin:/bin:/usr/sbin:/usr/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib
export PATH LD_LIBRARY_PATH runlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
# echo /sbin/mdev >/proc/sys/kernel/hotplug
mdev -s
EOF

After the root file system is created, the rootfs.ext3 image file is not created. Instead, it is placed in the SD card image together with kernel + dtb in the next section.

SD card image creation

Package kernel + dtb + rootfs into an SD card image

# Generate virtual SD card system image
sudo dd if=/dev/zero of=my_kernel.img bs=1M count=512
# Format image
sudo chmod 777 my_kernel.img
sudo mkfs.ext3 my_kernel.img

#Create two partitions
sudo sgdisk -n 0:0: + 100M -c 0:kernel ./my_kernel.img
sudo sgdisk -n 0:0:0 -c 0:rootfs my_kernel.img
sudo sgdisk -p my_kernel.img

LOOPDEV=`losetup -f` # Find idle loop devices
echo $LOOPDEV # This is /dev/loop18
sudo losetup $LOOPDEV my_kernel.img
sudo partprobe $LOOPDEV
sudo losetup -l
ls /dev/loop*

# format
sudo mkfs.ext3 /dev/loop18p1
sudo mkfs.ext3 /dev/loop18p2
# mount
mkdir p1 p2
sudo mount -t ext3 /dev/loop18p1 p1 # Store kernel and device tree
sudo mount -t ext3 /dev/loop18p2 p2 # Store the root file system
# Check the mounting status
df-h

#Copy kernel and dtb
sudo cp -r arch/arm/boot/zImage arch/arm/boot/dts/arm/vexpress-v2p-ca9.dtb p1
sudo rmdir p1/lost + found # Remove temporary folder

#Copy root file system
sudo cp /home/tyustli/code/open_source/busybox/rootfs/* p2 -arf
sudo rmdir p2/lost + found # Remove temporary folder

sudo umount p1 p2
sudo losetup -d /dev/loop18
sudo rmdir p1
sudo rmdir p2
#Copy the SD image to the u-boot directory
mv my_kernel.img /home/tyustli/code/open_source/u-boot

u-boot startup

sudo qemu-system-arm -M vexpress-a9 -m 1024M -smp 1 -nographic -kernel ./u-boot -sd ./my_kernel.img

u-boot log

alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'


U-Boot 2023.10-00813-g997bef3c6d (Oct 12 2023 - 21:45:33 + 0800)

DRAM: 512 MiB (effective 1 GiB)
WARNING: Caches not enabled
Core: 18 devices, 10 uclasses, devicetree: embed
Flash: 128 MiB
MMC: mmci@5000: 0
Loading Environment from Flash... *** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: eth0: ethernet@3,02000000
Hit any key to stop autoboot: 0
=>

u-boot check sd card status

  • mmc info
=> mmc info
Device: mmci@5000
Manufacturer ID: aa
OEM: 5859
Name: QEMU!
Bus Speed: 12000000
Mode: MMC legacy
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 512 MiB
Bus Width: 1-bit
Erase Group Size: 512 Bytes
  • mmcdev 0
=> mmcdev 0
switch to partitions #0, OK
mmc0 is current device

View the 2 partitions of the SD card:

  • Partition 1: ls mmc 0:1
  • Partition 2: ls mmc 0:2
=>ls mmc 0:1
<DIR> 4096.
<DIR> 4096 ..
         5565624 zImage
           14129 vexpress-v2p-ca9.dtb
=> ls mmc 0:2
<DIR> 4096.
<DIR> 4096 ..
<DIR> 4096 bin
<DIR> 4096 dev
<DIR> 4096 etc
<DIR> 4096 lib
<SYM> 11 linuxrc
<DIR> 4096 proc
<DIR> 4096 sbin
<DIR> 4096 sys
<DIR> 4096 tmp
<DIR> 4096 usr

You can see that partition 1 is kernel + dtb
Partition 2 is rootfs

Load kernel and device tree

  • Load kernel load mmc 0:1 0x60008000 zImage
  • Load device tree load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb
=> load mmc 0:1 0x60008000 zImage
5565624 bytes read in 1255 ms (4.2 MiB/s)
=> load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb
14129 bytes read in 12 ms (1.1 MiB/s)

Set bootargs

 setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel'

Boot kernel

bootz 0x60008000 - 0x61000000

Kernel startup log

=> bootz 0x60008000 - 0x61000000
Kernel image @ 0x60008000 [ 0x000000 - 0x54ecb8 ]
## Flattened Device Tree blob at 61000000
   Booting using the fdt blob at 0x61000000
Working FDT set to 61000000
   Loading Device Tree to 7eb11000, end 7eb17730 ... OK
Working FDT set to 7eb11000

Starting kernel...

ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
...

Consolidate the u-boot command into the u-boot program

make menuconfig

Configure u-boot

Configure bootcmd

Boot options -> Enable a default value for bootcmd

Enter the following content, separated by ;

load mmc 0:1 0x60008000 zImage;load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb; setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel';bootz 0x60008000 - 0x61000000

Appendix Linux kernel startup complete log

WARNING: Image format was not specified for './my_kernel.img' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'


U-Boot 2023.10-00813-g997bef3c6d (Oct 26 2023 - 08:29:32 + 0800)

DRAM: 512 MiB (effective 1 GiB)
WARNING: Caches not enabled
Core: 18 devices, 10 uclasses, devicetree: embed
Flash: 128 MiB
MMC: mmci@5000: 0
Loading Environment from Flash... *** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: eth0: ethernet@3,02000000
Hit any key to stop autoboot: 0
5565624 bytes read in 1230 ms (4.3 MiB/s)
14129 bytes read in 12 ms (1.1 MiB/s)
Kernel image @ 0x60008000 [ 0x000000 - 0x54ecb8 ]
## Flattened Device Tree blob at 61000000
   Booting using the fdt blob at 0x61000000
Working FDT set to 61000000
   Loading Device Tree to 7eb11000, end 7eb17730 ... OK
Working FDT set to 7eb11000

Starting kernel...

ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'
Booting Linux on physical CPU 0x0
Linux version 6.5.7 (tyustli@tyustli-machine) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #3 SMP Sun Oct 15 20:44:33 CST 2023
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
OF: fdt: Machine model: V2P-CA9
Malformed early option 'earlycon'
printk: debug: ignoring loglevel setting.
Memory policy: Data cache writeback
Reserved memory: created DMA memory pool at 0x4c000000, size 8 MiB
OF: reserved mem: initialized node vram@4c000000, compatible id shared-dma-pool
OF: reserved mem: 0x4c000000..0x4c7fffff (8192 KiB) nomap non-reusable vram@4c000000
cma: Reserved 16 MiB at 0x9f000000
Zone ranges:
  Normal [mem 0x0000000060000000-0x000000009fffffff]
Movable zone start for each node
Early memory node ranges
  node 0: [mem 0x0000000060000000-0x000000009fffffff]
Initmem setup node 0 [mem 0x0000000060000000-0x000000009fffffff]
CPU: All CPU(s) started in SVC mode.
percpu: Embedded 16 pages/cpu s34516 r8192 d22828 u65536
pcpu-alloc: s34516 r8192 d22828 u65536 alloc=16*4096
pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
Kernel command line: root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel
printk: log_buf_len individual max cpu contribution: 4096 bytes
printk: log_buf_len total cpu_extra contributions: 12288 bytes
printk: log_buf_len min size: 16384 bytes
printk: log_buf_len: 32768 bytes
printk: early log buf free: 14660(89%)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
Built 1 zonelists, mobility grouping on. Total pages: 260096
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 1008536K/1048576K available (9216K kernel code, 685K rwdata, 2052K rodata, 1024K init, 178K bss, 23656K reserved, 16384K cma-reserved)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
trace event string verifier disabled
rcu: Hierarchical RCU implementation.
rcu: RCU event tracing is enabled.
rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
GIC CPU mask not found - kernel will fail to boot.
GIC CPU mask not found - kernel will fail to boot.
L2C: platform modifies aux control register: 0x02020000 -> 0x02420000
L2C: DT/platform modifies aux control register: 0x02020000 -> 0x02420000
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 dynamic clock gating disabled, standby mode disabled
L2C-310 cache controller enabled, 8 ways, 128 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46420001
rcu: srcu_init: Setting srcu_struct sizes based on contention.
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
smp_twd: clock not found -2
Console: color dummy device 80x30
printk: console [tty0] enabled
Calibrating local timer... 99.81MHz.
Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
CPU: Testing write buffer coherency: ok
CPU0: Specter v2: using BPIALL workaround
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x60100000 - 0x60100060
rcu: Hierarchical SRCU implementation.
rcu: Max phase no-delay instances is 1000.
smp: Bringing up secondary CPUs ...
smp: Brought up 1 node, 1 CPU
SMP: Total of 1 processors activated (530.84 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
hw-breakpoint: debug architecture 0x4 unsupported.
Serial: AMBA PL011 UART driver
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c 0-0039: Fixed dependency cycle(s) with /bus@40000000/motherboard-bus@40000000/iofpga@7,00000000/clcd@1f000/port/endpoint
i2c 0-0039: Fixed dependency cycle(s) with /clcd@10020000/port/endpoint
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
PTP clock support registered
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm,sp804
NET: Registered PF_INET protocol family
IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp-with-tls transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 5 counters available
workingset: timestamp_bits=30 max_order=18 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.
9p: Installing v9fs 9p2000 file system support
io scheduler mq-deadline registered
io scheduler kyber registered
io scheduler bfq registered
OF: graph: no port node found in /bus@40000000/motherboard-bus@40000000/iofpga@7,00000000/i2c@16000/dvi-transmitter@60
sii902x 0-0060: supply iovcc not found, using dummy regulator
sii902x 0-0060: supply cvcc12 not found, using dummy regulator
simple-pm-bus bus@40000000:motherboard-bus@40000000:iofpga@7,00000000: Failed to create device link (0x180) with dcc:tcrefclk
simple-pm-bus bus@40000000:motherboard-bus@40000000:iofpga@7,00000000: Failed to create device link (0x180) with dcc:tcrefclk
physmap-flash 40000000.flash: physmap platform flash device: [mem 0x40000000-0x43ffffff]
40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
erase region 0: offset=0x0,size=0x40000,blocks=256
physmap-flash 40000000.flash: physmap platform flash device: [mem 0x44000000-0x47ffffff]
40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
erase region 0: offset=0x0,size=0x40000,blocks=256
Concatenating MTD devices:
(0): "40000000.flash"
(1): "40000000.flash"
into device "40000000.flash"
physmap-flash 48000000.psram: physmap platform flash device: [mem 0x48000000-0x49ffffff]
smsc911x 4e000000.ethernet eth0: MAC Address: 52:54:00:12:34:56
isp1760 4f000000.usb: isp1760 bus width: 32, oc: digital
isp1760 4f000000.usb: NXP ISP1760 USB Host Controller
isp1760 4f000000.usb: new USB bus registered, assigned bus number 1
isp1760 4f000000.usb: Scratch test failed. 0x00000000
isp1760 4f000000.usb: can't setup: -19
isp1760 4f000000.usb: USB bus 1 deregistered
usbcore: registered new interface driver usb-storage
rtc-pl031 10017000.rtc: registered as rtc0
rtc-pl031 10017000.rtc: setting system clock to 2023-10-26T00:31:12 UTC (1698280272)
mmci-pl18x 10005000.mmci: Got CD GPIO
mmci-pl18x 10005000.mmci: Got WP GPIO
mmci-pl18x 10005000.mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 35,36 (pio)
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
mmc0: new SD card at address 4567
input: AT Raw Set 2 keyboard as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10006000.kmi/serio0/input /input0
mmcblk0: mmc0:4567 QEMU! 512 MiB
aaci-pl041 10004000.aaci: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 37
aaci-pl041 10004000.aaci: FIFO 512 entries
NET: Registered PF_PACKET protocol family
9pnet: Installing 9P2000 support
Registering SWP/SWPB emulation handler
 mmcblk0: p1 p2
10009000.serial: ttyAMA0 at MMIO 0x10009000 (irq = 38, base_baud = 0) is a PL011 rev1
printk: console [ttyAMA0] enabled
1000a000.serial: ttyAMA1 at MMIO 0x1000a000 (irq = 39, base_baud = 0) is a PL011 rev1
1000b000.serial: ttyAMA2 at MMIO 0x1000b000 (irq = 40, base_baud = 0) is a PL011 rev1
1000c000.serial: ttyAMA3 at MMIO 0x1000c000 (irq = 41, base_baud = 0) is a PL011 rev1
drm-clcd-pl111 1001f000.clcd: assigned reserved memory node vram@4c000000
drm-clcd-pl111 1001f000.clcd: using device-specific reserved memory
drm-clcd-pl111 1001f000.clcd: core tile graphics present
drm-clcd-pl111 1001f000.clcd: this device will be deactivated
drm-clcd-pl111 1001f000.clcd: Versatile Express init failed - -19
drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD
drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111
drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD
drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111
clk: Disabling unused clocks
ALSA device list:
  #0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 37
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10007000.kmi/serio1/ input/input2
drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD
drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111
EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem 37a96b8f-82b1-477b-913c-847a75fea97e r/w with ordered data mode. Quota mode: disabled.
VFS: Mounted root (ext3 filesystem) on device 179:2.
Freeing unused kernel image (initmem) memory: 1024K
Run /linuxrc as init process
  with arguments:
    /linuxrc
  with environment:
    HOME=/
    TERM=linux
random: crng init done
mkdir: can't create directory '/dev/pts': File exists

Please press Enter to activate this console. drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD
drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111
amba 1000f000.wdt: deferred probe pending
amba 10020000.clcd: deferred probe pending
amba 100e0000.memory-controller: deferred probe pending
amba 100e1000.memory-controller: deferred probe pending
amba 100e5000.watchdog: deferred probe pending
i2c 0-0039: deferred probe pending

~ #ls
bin etc linuxrc sbin tmp
dev lib proc sys usr
~ #

Reference

  • https://www.zhaixue.cc/qemu/qemu-intro.html