平台:orangepi4 rockchip rk3399 LPDDR4 4G eMMC 16G
系统:ubuntu 20.04
FIT简介
device tree在ARM架构中普及之后,u-boot也马上跟进、大力支持,毕竟,美好的Unify kernel的理想,需要bootloader的成全。为了支持基于device tree的unify kernel,u-boot需要一种新的Image格式,这种格式需要具备如下能力:
1. Image中需要包含多个dtb文
2. 可以方便的选择使用哪个dtb文件boot kernel
综合上面的需求,u-boot推出了全新的image格式----FIT uImage,其中FIT是flattened image tree的简称。是不是觉得FIT和FDT(flattened device tree)有点像?没错,它利用了Device Tree Source files(DTS)的语法,生成的image文件也和dtb文件类似(称作itb),生成过程如下
image source file mkimage + dtc transfer to target
+ -------------> image file -----------> bootm
image data file(s)
其中image source file(.its)和device tree source file(.dts)类似,负责描述要生成的image file的信息(上面第2章描述的信息)。mkimage和dtc工具,可以将.its文件以及对应的image data file,打包成一个image file。我们将这个文件下载到么memory中,使用bootm命令就可以执行了。
配置内核
配置linux内核
打开RAM block device support选项,把Default RAM disk size设置成32768,否则会报错RAMDISK: incomplete write (2584 != 32768)
编译内核,得到Image.gz文件
制作ramdisk镜像
通过busybox制作ramdisk的文件系统镜像,busybox制作根文件系统的过程参见我的文章orangepi4 rk3399 Linux内核编译及根文件系统构建_anqi8955的专栏-CSDN博客
用一下脚本制作ramdisk格式的文件系统镜像:
#!/bin/bash
rm ramdisk.gz
mkdir temp
sudo dd if=/dev/zero of=ramdisk bs=1024 count=8192
sudo mke2fs -F -m0 ramdisk #格式化,-F强制,-m0不为管理员预留空间
sudo mount -t ext2 ramdisk temp
cd temp
sudo cp ../_install/* ./ -afR
cd ..
sudo umount temp
rm -r temp
gzip -v9 ramdisk #生成ramdisk.gz
得到ramdisk.gz文件
创建ITS文件
这里要创建一个its文件用于指导dtc生成itb文件,需要用到三个文件:
1 Image.gz 内核镜像,这是内核编译后生成的镜像文件
2 kernel.dtb DeviceTree编译后生成的文件,这里对于不同的cpu要使用不同的文件,我这里用的是rk3399-khadas-edge.dtb对应的我的cpu是rk3399,在内核的arch/arm64/boot/dts/mach-rockchip/下面
3 ramdisk.gz 这是要挂载的文件系统镜像,目前支持的就是这个文件系统
这里的load地址和entry地址要一致,这个值是可以变的,不影响启动
/*
* Simple U-Boot uImage source file containing a single kernel and FDT blob
*/
/dts-v1/;
/ {
description = "Simple image with single Linux kernel and FDT blob";
#address-cells = <1>;
images {
kernel {
description = "Vanilla Linux kernel";
data = /incbin/("./Image.gz");
type = "kernel";
arch = "arm64";
os = "linux";
compression = "gzip";
load = <0x20000000>;
entry = <0x20000000>;
hash-1 {
algo = "crc32";
};
hash-2 {
algo = "sha1";
};
};
fdt-1 {
description = "Flattened Device Tree blob";
data = /incbin/("./rk3399-khadas-edge.dtb");
type = "flat_dt";
arch = "arm64";
compression = "none";
hash-1 {
algo = "crc32";
};
hash-2 {
algo = "sha1";
};
};
ramdisk-1{
description = "Ramdisk for project-x";
data = /incbin/("ramdisk.gz");
type = "ramdisk";
arch = "arm64";
os = "linux";
load = <00000000>;
entry = <00000000>;
compression = "gzip";
hash-1 {
algo = "crc32";
};
};
};
configurations {
default = "conf-1";
conf-1 {
description = "Boot Linux kernel with FDT blob";
kernel = "kernel";
fdt = "fdt-1";
ramdisk = "ramdisk-1";
};
};
};
生成镜像
使用mkimage -f 制作itb文件
mkimage -f kernel.its fit.itb
FIT description: Simple image with single Linux kernel and FDT blob
Created: Tue Dec 7 03:49:02 2021
Image 0 (kernel)
Description: Vanilla Linux kernel
Created: Tue Dec 7 03:49:02 2021
Type: Kernel Image
Compression: gzip compressed
Data Size: 11565898 Bytes = 11294.82 KiB = 11.03 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x20000000
Entry Point: 0x20000000
Hash algo: crc32
Hash value: b72992af
Hash algo: sha1
Hash value: d2e47eff44fc1f69d2e559e0f54c5f4dc04db5d5
Image 1 (fdt-1)
Description: Flattened Device Tree blob
Created: Tue Dec 7 03:49:02 2021
Type: Flat Device Tree
Compression: uncompressed
Data Size: 57862 Bytes = 56.51 KiB = 0.06 MiB
Architecture: AArch64
Hash algo: crc32
Hash value: e59d32b7
Hash algo: sha1
Hash value: 90c80a6779a00cdec1c5071d6f8dea3ed33867c4
Image 2 (rootfs-1)
Description: Ramdisk for project-x
Created: Tue Dec 7 03:49:02 2021
Type: RAMDisk Image
Compression: Unknown Compression
Data Size: 1177098 Bytes = 1149.51 KiB = 1.12 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x00000000
Entry Point: 0x00000000
Hash algo: crc32
Hash value: 35b76a77
Default Configuration: 'conf-1'
Configuration 0 (conf-1)
Description: Boot Linux kernel with FDT blob
Kernel: kernel
Init Ramdisk: rootfs-1
FDT: fdt-1
运行系统
进入uboot使用tftp命令下载镜像到内存中去
tftp 0x10000000 fit.itb
注意tftp这个地址0x10000000不能和上面内核的load地址一样,否则导致内核无法解压
使用bootm启动系统,在有多种配置情况下也可以用来指定配置启动 bootm 0x10000000#conf-1
但是每次上电后都要通过命令去手动启动比较麻烦,可以通过以下方式实现自动启动:
mmc erase 0x8000 8000
mmc write 0x10000000 0x8000 8000
setenv distro_bootcmd 'mmc read 0x10000000 0x8000 8000;bootm 0x10000000'
saveenv
下面是启动日志:
U-Boot TPL 2021.04 (Dec 07 2021 - 00:28:19)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2021.04 (Dec 07 2021 - 00:28:19 -0800)
Trying to boot from MMC2
U-Boot 2021.04 (Dec 07 2021 - 00:28:19 -0800)
SoC: Rockchip rk3399
Reset cause: POR
Model: Khadas Edge
DRAM: 3.9 GiB
MMC: mmc@fe310000: 2, mmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from MMC... OK
In: serial@ff1a0000
Out: serial@ff1a0000
Err: serial@ff1a0000
Model: Khadas Edge
Net:
Warning: ethernet@fe300000 (eth0) using random MAC address - 3a:c4:e6:53:72:de
eth0: ethernet@fe300000
Hit any key to stop autoboot: 0
MMC read: dev # 0, block # 32768, count 32768 ... 32768 blocks read: OK
## Loading kernel from FIT Image at 10000000 ...
Using 'conf-1' configuration
Trying 'kernel' kernel subimage
Description: Vanilla Linux kernel
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x100000e8
Data Size: 11565898 Bytes = 11 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x20000000
Entry Point: 0x20000000
Hash algo: crc32
Hash value: b72992af
Hash algo: sha1
Hash value: d2e47eff44fc1f69d2e559e0f54c5f4dc04db5d5
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading ramdisk from FIT Image at 10000000 ...
Using 'conf-1' configuration
Trying 'rootfs-1' ramdisk subimage
Description: Ramdisk for project-x
Type: RAMDisk Image
Compression: gzip compressed
Data Start: 0x10b16060
Data Size: 1177098 Bytes = 1.1 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x00000000
Entry Point: 0x00000000
Hash algo: crc32
Hash value: 35b76a77
Verifying Hash Integrity ... crc32+ OK
WARNING: 'compression' nodes for ramdisks are deprecated, please fix your .its file!
## Loading fdt from FIT Image at 10000000 ...
Using 'conf-1' configuration
Trying 'fdt-1' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x10b07d60
Data Size: 57862 Bytes = 56.5 KiB
Architecture: AArch64
Hash algo: crc32
Hash value: e59d32b7
Hash algo: sha1
Hash value: 90c80a6779a00cdec1c5071d6f8dea3ed33867c4
Verifying Hash Integrity ... crc32+ sha1+ OK
Booting using the fdt blob at 0x10b07d60
Uncompressing Kernel Image
Loading Ramdisk to f5e0e000, end f5f2d60a ... OK
Loading Device Tree to 00000000f5dfc000, end 00000000f5e0d205 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.15.6 (work@work-B85M-D3V) (aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP PREEMPT Tue Dec 7 18:45:12 CST 2021
[ 0.000000] Machine model: Khadas Edge
[ 0.000000] efi: UEFI not found.
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xf77e1c00-0xf77e3fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] cma: Reserved 32 MiB at 0x00000000efc00000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.2
[ 0.000000] percpu: Embedded 20 pages/cpu s41112 r8192 d32616 u81920
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 999432
[ 0.000000] Policy zone: DMA
[ 0.000000] Kernel command line:
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 3915688K/4061184K available (14848K kernel code, 3068K rwdata, 8244K rodata, 6208K init, 496K bss, 112728K reserved, 32768K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=6.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[ 0.000000] GICv3: 256 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] GICv3: Distributor has no Range Selector support
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GICv3: 16 PPIs implemented
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[ 0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[ 0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @480000 (flat, esz 8, psz 64K, shr 0)
[ 0.000000] ITS: using cache flushing for cmd queue
[ 0.000000] GICv3: using LPI property table @0x0000000000440000
[ 0.000000] GIC: using cache flushing for LPI property table
[ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000000450000
[ 0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[ 0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[ 0.000000] random: get_random_bytes called from start_kernel+0x478/0x660 with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.003820] Console: colour dummy device 80x25
[ 0.004652] printk: console [tty0] enabled
[ 0.004778] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.004822] pid_max: default: 32768 minimum: 301
[ 0.004945] LSM: Security Framework initializing
[ 0.005064] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.005121] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.007588] rcu: Hierarchical SRCU implementation.
[ 0.008002] Platform MSI: interrupt-controller@fee20000 domain created
[ 0.008451] PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[ 0.008789] fsl-mc MSI: interrupt-controller@fee20000 domain created
[ 0.014977] EFI services will not be available.
[ 0.015469] smp: Bringing up secondary CPUs ...
[ 0.016170] Detected VIPT I-cache on CPU1
[ 0.016217] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[ 0.016241] GICv3: CPU1: using allocated LPI pending table @0x0000000000460000
[ 0.016313] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.017088] Detected VIPT I-cache on CPU2
[ 0.017124] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[ 0.017144] GICv3: CPU2: using allocated LPI pending table @0x0000000000470000
[ 0.017189] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[ 0.017881] Detected VIPT I-cache on CPU3
[ 0.017915] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[ 0.017934] GICv3: CPU3: using allocated LPI pending table @0x0000000000500000
[ 0.017977] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[ 0.018669] CPU features: detected: Spectre-v2
[ 0.018682] CPU features: detected: Spectre-v3a
[ 0.018696] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[ 0.018704] Detected PIPT I-cache on CPU4
[ 0.018736] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[ 0.018755] GICv3: CPU4: using allocated LPI pending table @0x0000000000510000
[ 0.018800] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[ 0.019531] Detected PIPT I-cache on CPU5
[ 0.019562] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[ 0.019580] GICv3: CPU5: using allocated LPI pending table @0x0000000000520000
[ 0.019616] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[ 0.019739] smp: Brought up 1 node, 6 CPUs
[ 0.020113] SMP: Total of 6 processors activated.
[ 0.020135] CPU features: detected: 32-bit EL0 Support
[ 0.020155] CPU features: detected: 32-bit EL1 Support
[ 0.020178] CPU features: detected: CRC32 instructions
[ 0.037514] CPU: All CPU(s) started at EL2
[ 0.037592] alternatives: patching kernel code
[ 0.040988] devtmpfs: initialized
[ 0.050905] KASLR disabled due to lack of seed
[ 0.051115] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.051151] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[ 0.052141] pinctrl core: initialized pinctrl subsystem
[ 0.053177] DMI not present or invalid.
[ 0.053742] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.055885] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[ 0.056263] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.056638] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.056707] audit: initializing netlink subsys (disabled)
[ 0.056916] audit: type=2000 audit(0.056:1): state=initialized audit_enabled=0 res=1
[ 0.058237] thermal_sys: Registered thermal governor 'step_wise'
[ 0.058247] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.058732] cpuidle: using governor menu
[ 0.058904] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.059100] ASID allocator initialised with 65536 entries
[ 0.061117] Serial: AMBA PL011 UART driver
[ 0.090750] platform ff770000.syscon:phy@f780: Fixing up cyclic dependency with fe330000.mmc
[ 0.098591] platform ff940000.hdmi: Fixing up cyclic dependency with ff8f0000.vop
[ 0.098677] platform ff940000.hdmi: Fixing up cyclic dependency with ff900000.vop
[ 0.106594] rockchip-gpio ff720000.gpio0: probed /pinctrl/gpio0@ff720000
[ 0.107314] rockchip-gpio ff730000.gpio1: probed /pinctrl/gpio1@ff730000
[ 0.107964] rockchip-gpio ff780000.gpio2: probed /pinctrl/gpio2@ff780000
[ 0.108557] rockchip-gpio ff788000.gpio3: probed /pinctrl/gpio3@ff788000
[ 0.109153] rockchip-gpio ff790000.gpio4: probed /pinctrl/gpio4@ff790000
[ 0.126748] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.126780] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.126798] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.126815] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.128511] cryptd: max_cpu_qlen set to 1000
[ 0.132012] ACPI: Interpreter disabled.
[ 0.135626] vsys_3v3: supplied by vsys
[ 0.135943] vsys_5v0: supplied by vsys
[ 0.136917] iommu: Default domain type: Translated
[ 0.136938] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.139346] vgaarb: loaded
[ 0.139673] SCSI subsystem initialized
[ 0.140127] usbcore: registered new interface driver usbfs
[ 0.140183] usbcore: registered new interface driver hub
[ 0.140232] usbcore: registered new device driver usb
[ 0.141791] pps_core: LinuxPPS API ver. 1 registered
[ 0.141808] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.141838] PTP clock support registered
[ 0.142073] EDAC MC: Ver: 3.0.0
[ 0.144900] FPGA manager framework
[ 0.145007] Advanced Linux Sound Architecture Driver Initialized.
[ 0.145834] clocksource: Switched to clocksource arch_sys_counter
[ 0.146017] VFS: Disk quotas dquot_6.6.0
[ 0.146091] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.146316] pnp: PnP ACPI: disabled
[ 0.153739] NET: Registered PF_INET protocol family
[ 0.154074] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.156864] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[ 0.157015] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.157379] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[ 0.158083] TCP: Hash tables configured (established 32768 bind 32768)
[ 0.158236] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.158387] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.158674] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.159248] RPC: Registered named UNIX socket transport module.
[ 0.159269] RPC: Registered udp transport module.
[ 0.159282] RPC: Registered tcp transport module.
[ 0.159295] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.159314] PCI: CLS 0 bytes, default 64
[ 0.159659] Trying to unpack rootfs image as initramfs...
[ 0.160270] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 0.164168] Freeing initrd memory: 1148K
[ 0.165152] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[ 0.165568] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[ 0.166188] kvm [1]: IPA Size Limit: 40 bits
[ 0.167720] kvm [1]: vgic-v2@fff20000
[ 0.167762] kvm [1]: GIC system register CPU interface enabled
[ 0.167992] kvm [1]: vgic interrupt IRQ18
[ 0.168251] kvm [1]: Hyp mode initialized successfully
[ 0.173783] Initialise system trusted keyrings
[ 0.173988] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[ 0.180706] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.181401] NFS: Registering the id_resolver key type
[ 0.181437] Key type id_resolver registered
[ 0.181452] Key type id_legacy registered
[ 0.181546] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.181565] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.181747] 9p: Installing v9fs 9p2000 file system support
[ 0.245326] Key type asymmetric registered
[ 0.245347] Asymmetric key parser 'x509' registered
[ 0.245423] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 0.245445] io scheduler mq-deadline registered
[ 0.245459] io scheduler kyber registered
[ 0.256620] rockchip-usb2phy ff770000.syscon:usb2phy@e450: failed to create phy
[ 0.257563] rockchip-usb2phy ff770000.syscon:usb2phy@e460: failed to create phy
[ 0.274836] EINJ: ACPI disabled.
[ 0.290551] dma-pl330 ff6d0000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.290586] dma-pl330 ff6d0000.dma-controller: DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[ 0.291816] dma-pl330 ff6e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.291843] dma-pl330 ff6e0000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[ 0.304000] vdd_log: supplied by regulator-dummy
[ 0.310688] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.313398] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 37, base_baud = 1500000) is a 16550A
[ 0.313581] serial serial0: tty port ttyS0 registered
[ 0.314500] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 38, base_baud = 1500000) is a 16550A
[ 0.419909] printk: console [ttyS2] enabled
[ 0.422830] SuperH (H)SCI(F) driver initialized
[ 0.424322] msm_serial: driver initialized
[ 0.427943] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.435889] brd: module loaded
[ 0.442992] loop: module loaded
[ 0.445020] megasas: 07.717.02.00-rc1
[ 0.448537] SPI driver mtd_dataflash has no spi_device_id for atmel,at45
[ 0.449143] SPI driver mtd_dataflash has no spi_device_id for atmel,dataflash
[ 0.454120] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[ 0.456971] libphy: Fixed MDIO Bus: probed
[ 0.459443] tun: Universal TUN/TAP device driver, 1.6
[ 0.461458] thunder_xcv, ver 1.0
[ 0.461790] thunder_bgx, ver 1.0
[ 0.462142] nicpf, ver 1.0
[ 0.464833] hclge is initializing
[ 0.465153] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[ 0.465797] hns3: Copyright (c) 2017 Huawei Corporation.
[ 0.466342] e1000: Intel(R) PRO/1000 Network Driver
[ 0.466782] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 0.467337] e1000e: Intel(R) PRO/1000 Network Driver
[ 0.467782] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.468351] igb: Intel(R) Gigabit Ethernet Network Driver
[ 0.468835] igb: Copyright (c) 2007-2014 Intel Corporation.
[ 0.469362] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[ 0.469932] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[ 0.471105] sky2: driver version 1.30
[ 0.473517] VFIO - User Level meta-driver version: 0.3
[ 0.481725] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.482356] ehci-pci: EHCI PCI platform driver
[ 0.482802] ehci-platform: EHCI generic platform driver
[ 0.483544] ehci-orion: EHCI orion driver
[ 0.484128] ehci-exynos: EHCI Exynos driver
[ 0.484689] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.485259] ohci-pci: OHCI PCI platform driver
[ 0.485697] ohci-platform: OHCI generic platform driver
[ 0.486428] ohci-exynos: OHCI Exynos driver
[ 0.487928] usbcore: registered new interface driver usb-storage
[ 0.493629] i2c_dev: i2c /dev entries driver
[ 0.498547] rk808 4-001b: failed to read the chip id at 0x17
[ 0.500004] fan53555-regulator 4-0040: Failed to get chip ID!
[ 0.501404] fan53555-regulator 4-0041: Failed to get chip ID!
[ 0.510028] dw_wdt ff848000.watchdog: No valid TOPs array specified
[ 0.515383] sdhci: Secure Digital Host Controller Interface driver
[ 0.515948] sdhci: Copyright(c) Pierre Ossman
[ 0.517230] SPI driver mmc_spi has no spi_device_id for mmc-spi-slot
[ 0.518445] Synopsys Designware Multimedia Card Interface Driver
[ 0.520959] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[ 0.521255] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.521640] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[ 0.522755] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[ 0.523342] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 29,32 bit host data width,256 deep fifo
[ 0.524436] dwmmc_rockchip fe320000.mmc: Got CD GPIO
[ 0.525155] mmc2: CQHCI version 5.10
[ 0.526584] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.529274] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[ 0.530896] usbcore: registered new interface driver usbhid
[ 0.531404] usbhid: USB HID core driver
[ 0.538142] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 0.542424] NET: Registered PF_PACKET protocol family
[ 0.543070] 9pnet: Installing 9P2000 support
[ 0.543506] Key type dns_resolver registered
[ 0.544271] Loading compiled-in X.509 certificates
[ 0.550143] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[ 0.581386] vcc3v3_pcie: supplied by vsys_3v3
[ 0.582825] vcc5v0_host: supplied by vsys_5v0
[ 0.600817] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 0.601373] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[ 0.602272] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[ 0.603158] xhci-hcd xhci-hcd.0.auto: irq 70, io mem 0xfe800000
[ 0.605010] hub 1-0:1.0: USB hub found
[ 0.605416] hub 1-0:1.0: 1 port detected
[ 0.606214] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 0.606734] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[ 0.607444] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[ 0.608122] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.609677] hub 2-0:1.0: USB hub found
[ 0.610097] hub 2-0:1.0: 1 port detected
[ 0.610489] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 0.611018] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[ 0.611885] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[ 0.612809] xhci-hcd xhci-hcd.1.auto: irq 71, io mem 0xfe900000
[ 0.614538] hub 3-0:1.0: USB hub found
[ 0.615034] hub 3-0:1.0: 1 port detected
[ 0.615891] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 0.616444] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[ 0.617190] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[ 0.617925] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.619553] hub 4-0:1.0: USB hub found
[ 0.619941] hub 4-0:1.0: 1 port detected
[ 0.622563] mmc2: Command Queue Engine enabled
[ 0.623013] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[ 0.624530] mmcblk2: mmc2:0001 AJTD4R 14.6 GiB
[ 0.629343] GPT:Primary header thinks Alt. header is not at the end of the disk.
[ 0.629351] ehci-platform fe380000.usb: EHCI Host Controller
[ 0.629390] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 5
[ 0.630069] GPT:471079 != 30535679
[ 0.630079] GPT:Alternate GPT header not at the end of the disk.
[ 0.630084] GPT:471079 != 30535679
[ 0.630091] GPT: Use GNU Parted to correct GPT errors.
[ 0.630790] ehci-platform fe380000.usb: irq 31, io mem 0xfe380000
[ 0.631341] mmcblk2: p1 p2 p3 p4
[ 0.635254] mmcblk2boot0: mmc2:0001 AJTD4R 4.00 MiB
[ 0.637300] mmcblk2boot1: mmc2:0001 AJTD4R 4.00 MiB
[ 0.639400] mmcblk2rpmb: mmc2:0001 AJTD4R 4.00 MiB, chardev (234:0)
[ 0.645955] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[ 0.647553] hub 5-0:1.0: USB hub found
[ 0.647943] hub 5-0:1.0: 1 port detected
[ 0.653162] ehci-platform fe3c0000.usb: EHCI Host Controller
[ 0.653732] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 6
[ 0.654615] ehci-platform fe3c0000.usb: irq 33, io mem 0xfe3c0000
[ 0.670108] ehci-platform fe3c0000.usb: USB 2.0 started, EHCI 1.00
[ 0.671792] hub 6-0:1.0: USB hub found
[ 0.672180] hub 6-0:1.0: 1 port detected
[ 0.675217] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
[ 0.675870] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 7
[ 0.676741] ohci-platform fe3a0000.usb: irq 32, io mem 0xfe3a0000
[ 0.739211] hub 7-0:1.0: USB hub found
[ 0.739626] hub 7-0:1.0: 1 port detected
[ 0.742684] ohci-platform fe3e0000.usb: Generic Platform OHCI controller
[ 0.743338] ohci-platform fe3e0000.usb: new USB bus registered, assigned bus number 8
[ 0.744252] ohci-platform fe3e0000.usb: irq 34, io mem 0xfe3e0000
[ 0.807223] hub 8-0:1.0: USB hub found
[ 0.807636] hub 8-0:1.0: 1 port detected
[ 0.827456] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 0.830042] ALSA device list:
[ 0.830336] No soundcards found.
[ 0.830883] dw-apb-uart ff1a0000.serial: forbid DMA for kernel console
[ 0.839342] RAMDISK: gzip image found at block 0
[ 0.940532] using deprecated initrd support, will be removed in 2021.
[ 0.984085] EXT4-fs (ram0): mounted filesystem without journal. Opts: (null). Quota mode: none.
[ 0.984956] VFS: Mounted root (ext4 filesystem) on device 1:0.
Bad inittab entry at line 4
Welcome to tinyLinux
[ 0.999559] tmpfs: Unknown parameter ' defaults'
mount: mounting tmpfs on /tmp failed: Invalid argument
Remounting the root filesystem
[ 1.004023] EXT4-fs (ram0): re-mounted. Opts: (null). Quota mode: none.
/etc/init.d/rcS: line 7: can't create /proc/sys/kernel/hotplug: nonexistent directory
Please press Enter to activate this console.
/ #
/ #