imx93 kernel 构建

1. 硬件环境

iMX 93 evk 开发板

ubuntu 20.04 系统,x86_64

2. 编译 kernel

# 参考文档
https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf

# 下载内核代码
git clone https://github.com/nxp-imx/linux-imx -b lf-6.6.y
cd linux-imx

# 编译内核代码,配置交叉编译器的前提下
make distclean
make imx_v8_defconfig
make Image -j$(nproc --all)
make dtbs

# 编译会生成以下两个需要的文件
ls -alh arch/arm64/boot/Image
ls -alh arch/arm64/boot/dts/freescale/imx93-11x11-evk.dtb

配置内核支持 ramdisk 后,重新编译

# 使用 1 个 ram 块设备,4MB 的 ram 空间
Device Drivers  --->
	[*] Block devices  --->
		(1)    Default number of RAM disks
		(4096) Default RAM disk size (kbytes)

3. 构建一个 ramdisk 作为文件系统

3.1 编译busybox

# 下载 busybox 源码
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
 
# 解压
tar -xvf busybox-1.36.1.tar.bz2
 
# 进入 busybox 目录
cd busybox-1.36.1
 
# 使用默认配置
make menuconfig
 
# 配置静态编译、交叉编译器前缀、安装路径;
Settings  --->
	[*] Build static binary (no shared libs)
	(aarch64-none-linux-gnu-) Cross compiler prefix
	(../ramdisk) Destination path for 'make install'
 
# 在配置了交叉编译器的前提下
make -j8
 
# 安装 busybox 文件
make install
 
# 进入安装目录,创建一些必须的配置文件
cd ../ramdisk/
mkdir -p mnt tmp var usr sys proc etc lib dev bin sbin root home
mkdir -p usr/lib lib/modules
 
# 创建设备节点,一个 console,一个 null
cd dev/
sudo mknod -m 666 console c 5 1
sudo mknod -m 666 null c 1 3
cd ../
 
# 复制 busybox 中的 examples/bootfloppy/etc 的文件
cp ../busybox-1.36.1/examples/bootfloppy/etc ./ -a
 
# 修改文件的用户与用户组为 root
sudo chown root:root -R *

3.2 制作 ramdisk.img.gz

# 在 ramdisk 同级目录执行以下命令
sudo dd if=/dev/zero of=ramdisk.img bs=1K count=4096 conv=fsync
sudo mkfs.ext4 -i 4096 ramdisk.img -d ramdisk
sudo fsck.ext4 -pvf ramdisk.img
gzip -9 -f ramdisk.img

4. 在 uboot 中手动加载 Image 和 dtb 文件

将 dtb、Image、ramdisk.img.gz 文件拷贝到 tf 卡中,将开发版设置为 tf 卡启动;

# Image 跳过了前 4MB 的空间
# dtb 跳过了前 48MB 的空间
fatload mmc 1:1 0x80400000 Image
fatload mmc 1:1 0x83000000 imx93-11x11-evk.dtb
fatload mmc 1:1 0x84000000 ramdisk.img.gz
setenv bootargs 'console=ttyLP0,115200 earlycon initrd=0x84000000,0x400000 root=/dev/ram0 rw rootfstype=ext4 rootwait'
booti 0x80400000 - 0x83000000

启动后报错如下:

[    1.587031] usb_phy_generic usbphynop1: dummy supplies not allowed for exclusive requests
[    1.595361] usb_phy_generic usbphynop2: dummy supplies not allowed for exclusive requests
[    1.616413] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found
[    1.622380] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000078
[    1.631160] Mem abort info:
[    1.633952]   ESR = 0x0000000096000004
[    1.637709]   EC = 0x25: DABT (current EL), IL = 32 bits
[    1.643051]   SET = 0, FnV = 0
[    1.646112]   EA = 0, S1PTW = 0
[    1.649246]   FSC = 0x04: level 0 translation fault
[    1.654140] Data abort info:
[    1.657011]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[    1.662485]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[    1.667529]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[    1.672832] [0000000000000078] user address but active_mm is swapper
[    1.679177] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
[    1.685430] Modules linked in:
[    1.688474] CPU: 0 PID: 37 Comm: kworker/u4:2 Not tainted 6.6.3-gccf0a99701a7 #2
[    1.695855] Hardware name: NXP i.MX93 11X11 EVK board (DT)
[    1.701325] Workqueue: events_unbound deferred_probe_work_func
[    1.707157] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    1.714107] pc : read_common_fuse+0x1c/0x170
[    1.718371] lr : fsb_s400_fuse_read+0x438/0x784
[    1.722895] sp : ffff800082533870
[    1.726197] x29: ffff800082533870 x28: 0000000000000030 x27: 0000000000000000
[    1.733321] x26: 0000000000000000 x25: ffff0000063ee7c0 x24: ffff000006f650c0
[    1.740445] x23: ffff8000827d80c0 x22: 000000000000003f x21: ffff000006f650fc
[    1.747569] x20: ffff000006ca3480 x19: ffff000006f65000 x18: 0000000000000006
[    1.754693] x17: ffff000006d5dc00 x16: ffff000006d5da00 x15: ffff800082533430
[    1.761817] x14: ffffffffffffffff x13: 0000000000000018 x12: 0101010101010101
[    1.768941] x11: 7f7f7f7f7f7f7f7f x10: 00000000000be370 x9 : 0000000000000000
[    1.776065] x8 : ffff000006f65800 x7 : 0000000000000000 x6 : 000000000000003f
[    1.783189] x5 : 0000000000000040 x4 : ffff800082533820 x3 : 0000000000000000
[    1.790313] x2 : ffff000006f650fc x1 : 000000000000003f x0 : 0000000000000000
[    1.797437] Call trace:
[    1.799873]  read_common_fuse+0x1c/0x170
[    1.803790]  fsb_s400_fuse_read+0x438/0x784
[    1.807958]  nvmem_reg_read+0x24/0x4c
[    1.811607]  nvmem_cell_read+0x6c/0xe0
[    1.815342]  nvmem_get_mac_address+0x4c/0xe4
[    1.819606]  of_get_mac_address_nvmem+0x48/0x114
[    1.824217]  of_get_mac_address+0x80/0x98
[    1.828212]  stmmac_probe_config_dt+0x60/0x1070
[    1.832736]  imx_dwmac_probe+0xb0/0x394
[    1.836567]  platform_probe+0x68/0xc8
[    1.840224]  really_probe+0x148/0x2b0
[    1.843873]  __driver_probe_device+0x78/0x12c
[    1.848215]  driver_probe_device+0x3c/0x15c
[    1.852384]  __device_attach_driver+0xb8/0x134
[    1.856812]  bus_for_each_drv+0x88/0xe8
[    1.860634]  __device_attach+0xa0/0x190
[    1.864456]  device_initial_probe+0x14/0x20
[    1.868625]  bus_probe_device+0xac/0xb0
[    1.872447]  deferred_probe_work_func+0x80/0xb8
[    1.876962]  process_one_work+0x138/0x248
[    1.880966]  worker_thread+0x320/0x438
[    1.884702]  kthread+0x110/0x114
[    1.887917]  ret_from_fork+0x10/0x20
[    1.891491] Code: a90153f3 a9025bf5 aa0203f5 12003c36 (f9403c14) 
[    1.897564] ---[ end trace 0000000000000000 ]---

根据报错信息,修改 dts 文件如下

liangtao:linux-imx$git diff .
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index 09c4f189b543..7cbf6d8751ac 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -381,7 +381,7 @@ &eqos {
        pinctrl-1 = <&pinctrl_eqos_sleep>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy1>;
-       status = "okay";
+       status = "disabled";
 
        mdio {
                compatible = "snps,dwmac-mdio";

5. 修改 uboot,使其自动启动

liangtao:uboot-imx$git diff .
diff --git a/include/configs/imx93_evk.h b/include/configs/imx93_evk.h
index 218b8a9dfe..6e4c8eacdf 100644
--- a/include/configs/imx93_evk.h
+++ b/include/configs/imx93_evk.h
@@ -82,13 +82,14 @@
        "mmcpart=1\0" \
        "mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
        "mmcautodetect=yes\0" \
-       "mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}\0 " \
+       "mmcargs=setenv bootargs console=${console},${baudrate} root=/dev/ram0 rw initrd=0x84000000,0x400000 rootfstype=ext4 rootwait\0 " \
        "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
        "bootscript=echo Running bootscript from mmc ...; " \
                "source\0" \
        "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
        "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}\0" \
        "loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}\0" \
+       "loadramdisk=fatload mmc 1:1 0x84000000 ramdisk.img.gz\0" \
        "auth_os=auth_cntr ${cntr_addr}\0" \
        "boot_os=booti ${loadaddr} - ${fdt_addr_r};\0" \
        "mmcboot=echo Booting from mmc ...; " \
@@ -103,7 +104,7 @@
                        "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
                                "bootm ${loadaddr}; " \
                        "else " \
-                               "if run loadfdt; then " \
+                               "if run loadfdt; run loadramdisk; then " \
                                        "run boot_os; " \
                                "else " \
                                        "echo WARN: Cannot load the DT; " \

设备启动日志如下:

U-Boot SPL 2023.04-dirty (Jun 11 2024 - 11:40:26 +0800)
SOC: 0xa0009300
LC: 0x40010
PMIC: PCA9451A
PMIC: Over Drive Voltage Mode
DDR: 3733MTS
M33 prepare ok
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
Load image from 0x4e000 by ROM_API
NOTICE:  BL31: v2.8(release):lf-6.6.3-1.0.0-0-g8dbe28631
NOTICE:  BL31: Built : 15:32:21, May 30 2024


U-Boot 2023.04-dirty (Jun 11 2024 - 11:40:26 +0800)

CPU:   i.MX93(52) rev1.0 1700 MHz (running at 1692 MHz)
CPU:   Consumer temperature grade (0C to 95C) at 28C
Reset cause: POR (0x1)
Model: NXP i.MX93 11X11 EVK board
DRAM:  2 GiB
optee optee: OP-TEE api uid mismatch
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x52]
SNK.Power3.0 on CC1
PDO 0: type 0, 5000 mV, 3000 mA [E]
PDO 1: type 0, 9000 mV, 3000 mA []
PDO 2: type 0, 15000 mV, 3000 mA []
PDO 3: type 0, 20000 mV, 2250 mA []
Requesting PDO 3: 20000 mV, 750 mA
Source accept request
PD source ready!
tcpc_pd_receive_message: Polling ALERT register, TCPC_ALERT_RX_STATUS bit failed, ret = -62
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x51]
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x50]
Core:  229 devices, 36 uclasses, devicetree: separate
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

[*]-Video Link 0adv7535_mipi2hdmi hdmi@3d: Can't find cec device id=0x3c
fail to probe panel device hdmi@3d
fail to get display timings
probe video device failed, ret -19

	[0] lcd-controller@4ae30000, video
	[1] dsi@4ae10000, video_bridge
	[2] hdmi@3d, panel
adv7535_mipi2hdmi hdmi@3d: Can't find cec device id=0x3c
fail to probe panel device hdmi@3d
fail to get display timings
probe video device failed, ret -19
In:    serial
Out:   serial
Err:   serial

BuildInfo:
  - ELE firmware version 0.0.9-9df0f503

switch to partitions #0, OK
mmc1 is current device
UID: 0xa3fa1137 0x9f490717 0x208828a4 0xe6e39a70
flash target is MMC:1
Net:   eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0 
Working FDT set to 83000000
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
65082 bytes read in 5 ms (12.4 MiB/s)
Working FDT set to 83000000
optee optee: OP-TEE api uid mismatch
Unable to open OP-TEE session (err=-19)
mm_communicate failed!
Error: Cannot initialize UEFI sub-system, r = 3
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
65082 bytes read in 4 ms (15.5 MiB/s)
Working FDT set to 83000000
Error: Cannot initialize UEFI sub-system, r = 3
starting USB...
Bus usb@4c100000: tcpc_setup_ufp_mode: Polling ALERT register, TCPC_ALERT_CC_STATUS bit failed, ret = -62
Port not available.
Bus usb@4c200000: tcpc_setup_ufp_mode: Polling ALERT register, TCPC_ALERT_CC_STATUS bit failed, ret = -62
Port not available.
USB is stopped. Please issue 'usb start' first.
Running BSP bootcmd ...
switch to partitions #0, OK
mmc1 is current device
Failed to load 'boot.scr'
34880000 bytes read in 390 ms (85.3 MiB/s)
Booting from mmc ...
65082 bytes read in 5 ms (12.4 MiB/s)
3112927 bytes read in 38 ms (78.1 MiB/s)
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
Working FDT set to 83000000
   Using Device Tree in place at 0000000083000000, end 0000000083012e39
Working FDT set to 83000000
adv7535_mipi2hdmi hdmi@3d: Can't find cec device id=0x3c
fail to probe panel device hdmi@3d
fail to get display timings
probe video device failed, ret -19

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    0.000000] Linux version 6.6.3-gccf0a99701a7-dirty (liangtao@RedmiBook) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #4 SMP PREEMPT Thu Jun  6 10:28:54 CST 2024
[    0.000000] KASLR disabled due to lack of seed
[    0.000000] Machine model: NXP i.MX93 11X11 EVK board
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000b0000000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x00000000b0000000..0x00000000bfffffff (262144 KiB) map reusable linux,cma
[    0.000000] OF: reserved mem: 0x000000002021e000..0x000000002021efff (4 KiB) nomap non-reusable rsc-table@2021e000
[    0.000000] OF: reserved mem: 0x00000000a4000000..0x00000000a4007fff (32 KiB) nomap non-reusable vdev0vring0@a4000000
[    0.000000] OF: reserved mem: 0x00000000a4008000..0x00000000a400ffff (32 KiB) nomap non-reusable vdev0vring1@a4008000
[    0.000000] OF: reserved mem: 0x00000000a4010000..0x00000000a4017fff (32 KiB) nomap non-reusable vdev1vring0@a4010000
[    0.000000] OF: reserved mem: 0x00000000a4018000..0x00000000a401ffff (32 KiB) nomap non-reusable vdev1vring1@a4018000
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4020000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node vdevbuffer@a4020000, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x00000000a4020000..0x00000000a411ffff (1024 KiB) nomap non-reusable vdevbuffer@a4020000
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4120000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node ele-reserved@a4120000, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x00000000a4120000..0x00000000a421ffff (1024 KiB) nomap non-reusable ele-reserved@a4120000
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000c0000000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node ethosu_region@C0000000, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x00000000c0000000..0x00000000cfffffff (262144 KiB) map reusable ethosu_region@C0000000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xffbb66c0-0xffbb8fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    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 0x0000000080000000-0x00000000a3ffffff]
[    0.000000]   node   0: [mem 0x00000000a4000000-0x00000000a421ffff]
[    0.000000]   node   0: [mem 0x00000000a4220000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    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 22 pages/cpu s50536 r8192 d31384 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: Virtualization Host Extensions
[    0.000000] CPU features: detected: Qualcomm erratum 1009, or ARM erratum 1286807, 2441009
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: console=ttyLP0,115200 earlycon,115200 root=/dev/ram0 rw initrd=0x84000000,0x400000 rootfstype=ext4 rootwait
[    0.000000] Unknown kernel command line parameters "earlycon,115200", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Fallback order for Node 0: 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Policy zone: DMA
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 2.
[    0.000000] software IO TLB: mapped [mem 0x00000000f9800000-0x00000000fd800000] (64MB)
[    0.000000] Memory: 1425068K/2097152K available (20736K kernel code, 1614K rwdata, 7628K rodata, 3904K init, 634K bss, 147796K reserved, 524288K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, 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=2.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Tracing 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=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 960 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000048040000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    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.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000362] Console: colour dummy device 80x25
[    0.000420] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000430] pid_max: default: 32768 minimum: 301
[    0.000478] LSM: initializing lsm=capability,integrity
[    0.000553] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.000562] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.001210] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.001736] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.001784] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.001940] rcu: Hierarchical SRCU implementation.
[    0.001943] rcu: 	Max phase no-delay instances is 1000.
[    0.002833] EFI services will not be available.
[    0.003016] smp: Bringing up secondary CPUs ...
[    0.003382] Detected VIPT I-cache on CPU1
[    0.003434] GICv3: CPU1: found redistributor 100 region 0:0x0000000048060000
[    0.003469] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[    0.003571] smp: Brought up 1 node, 2 CPUs
[    0.003576] SMP: Total of 2 processors activated.
[    0.003580] CPU features: detected: 32-bit EL0 Support
[    0.003582] CPU features: detected: 32-bit EL1 Support
[    0.003585] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    0.003588] CPU features: detected: Common not Private translations
[    0.003590] CPU features: detected: CRC32 instructions
[    0.003595] CPU features: detected: RCpc load-acquire (LDAPR)
[    0.003597] CPU features: detected: LSE atomic instructions
[    0.003599] CPU features: detected: Privileged Access Never
[    0.003601] CPU features: detected: RAS Extension Support
[    0.003605] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    0.003655] CPU: All CPU(s) started at EL2
[    0.003658] alternatives: applying system-wide alternatives
[    0.007928] devtmpfs: initialized
[    0.013423] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.013443] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.020307] pinctrl core: initialized pinctrl subsystem
[    0.021603] DMI not present or invalid.
[    0.022026] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.022941] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.023016] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.023122] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.023178] audit: initializing netlink subsys (disabled)
[    0.023335] audit: type=2000 audit(0.020:1): state=initialized audit_enabled=0 res=1
[    0.023714] thermal_sys: Registered thermal governor 'step_wise'
[    0.023719] thermal_sys: Registered thermal governor 'power_allocator'
[    0.023750] cpuidle: using governor menu
[    0.023945] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.023990] ASID allocator initialised with 65536 entries
[    0.024703] Serial: AMBA PL011 UART driver
[    0.024756] imx mu driver is registered.
[    0.024769] imx rpmsg driver is registered.
[    0.030815] imx93-pinctrl 443c0000.pinctrl: initialized IMX pinctrl driver
[    0.037491] platform 4ae30000.lcd-controller: Fixed dependency cycle(s) with /soc@0/dsi@4ae10000/ports/port@0/endpoint
[    0.040474] Modules: 24080 pages in range for non-PLT usage
[    0.040482] Modules: 515600 pages in range for PLT usage
[    0.041160] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.041168] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.041171] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.041174] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.041177] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.041179] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.041182] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.041184] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.042778] ACPI: Interpreter disabled.
[    0.043798] iommu: Default domain type: Translated
[    0.043808] iommu: DMA domain TLB invalidation policy: strict mode
[    0.044051] SCSI subsystem initialized
[    0.044315] usbcore: registered new interface driver usbfs
[    0.044333] usbcore: registered new interface driver hub
[    0.044354] usbcore: registered new device driver usb
[    0.045150] mc: Linux media interface: v0.10
[    0.045187] videodev: Linux video capture interface: v2.00
[    0.045228] pps_core: LinuxPPS API ver. 1 registered
[    0.045231] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.045243] PTP clock support registered
[    0.045364] EDAC MC: Ver: 3.0.0
[    0.045773] scmi_core: SCMI protocol bus registered
[    0.046157] FPGA manager framework
[    0.046224] Advanced Linux Sound Architecture Driver Initialized.
[    0.046750] Bluetooth: Core ver 2.22
[    0.046774] NET: Registered PF_BLUETOOTH protocol family
[    0.046777] Bluetooth: HCI device and connection manager initialized
[    0.046783] Bluetooth: HCI socket layer initialized
[    0.046787] Bluetooth: L2CAP socket layer initialized
[    0.046801] Bluetooth: SCO socket layer initialized
[    0.047150] vgaarb: loaded
[    0.047800] clocksource: Switched to clocksource arch_sys_counter
[    0.047998] VFS: Disk quotas dquot_6.6.0
[    0.048019] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.048142] pnp: PnP ACPI: disabled
[    0.052953] NET: Registered PF_INET protocol family
[    0.053105] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.054281] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.054344] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.054355] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.054425] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
[    0.054822] TCP: Hash tables configured (established 16384 bind 16384)
[    0.054930] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.054966] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.055107] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.055497] RPC: Registered named UNIX socket transport module.
[    0.055504] RPC: Registered udp transport module.
[    0.055506] RPC: Registered tcp transport module.
[    0.055508] RPC: Registered tcp-with-tls transport module.
[    0.055510] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.056295] PCI: CLS 0 bytes, default 64
[    0.056448] Trying to unpack rootfs image as initramfs...
[    0.056878] rootfs image is not initramfs (no cpio magic); looks like an initrd
[    0.059957] kvm [1]: IPA Size Limit: 40 bits
[    0.059992] kvm [1]: GICv3: no GICV resource entry
[    0.059995] kvm [1]: disabling GICv2 emulation
[    0.060012] kvm [1]: GIC system register CPU interface enabled
[    0.060045] kvm [1]: vgic interrupt IRQ9
[    0.060073] kvm [1]: VHE mode initialized successfully
[    0.062064] Initialise system trusted keyrings
[    0.062123] Freeing initrd memory: 4096K
[    0.062387] workingset: timestamp_bits=42 max_order=19 bucket_order=0
[    0.062667] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.062896] NFS: Registering the id_resolver key type
[    0.062922] Key type id_resolver registered
[    0.062924] Key type id_legacy registered
[    0.062938] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.062942] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.062957] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.063162] 9p: Installing v9fs 9p2000 file system support
[    0.085744] Key type asymmetric registered
[    0.085751] Asymmetric key parser 'x509' registered
[    0.085799] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.085804] io scheduler mq-deadline registered
[    0.085808] io scheduler kyber registered
[    0.085847] io scheduler bfq registered
[    0.090228] EINJ: ACPI disabled.
[    0.094780] Bus freq driver module loaded
[    0.100066] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.102390] 44380000.serial: ttyLP0 at MMIO 0x44380010 (irq = 17, base_baud = 1500000) is a FSL_LPUART
[    0.102508] printk: console [ttyLP0] enabled
[    1.398596] brd: module loaded
[    1.404847] loop: module loaded
[    1.409264] megasas: 07.725.01.00-rc1
[    1.417761] tun: Universal TUN/TAP device driver, 1.6
[    1.423508] thunder_xcv, ver 1.0
[    1.426779] thunder_bgx, ver 1.0
[    1.430020] nicpf, ver 1.0
[    1.433628] pps pps0: new PPS source ptp0
[    1.441137] fec 42890000.ethernet eth0: registered PHC device 0
[    1.448638] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    1.455869] hns3: Copyright (c) 2017 Huawei Corporation.
[    1.461207] hclge is initializing
[    1.464545] e1000: Intel(R) PRO/1000 Network Driver
[    1.469411] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.475167] e1000e: Intel(R) PRO/1000 Network Driver
[    1.480123] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.486048] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.491432] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.497021] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.503287] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.509350] sky2: driver version 1.30
[    1.513396] usbcore: registered new device driver r8152-cfgselector
[    1.519678] usbcore: registered new interface driver r8152
[    1.525558] VFIO - User Level meta-driver version: 0.3
[    1.532769] usbcore: registered new interface driver uas
[    1.538110] usbcore: registered new interface driver usb-storage
[    1.544168] usbcore: registered new interface driver usbserial_generic
[    1.550703] usbserial: USB Serial support registered for generic
[    1.556715] usbcore: registered new interface driver ftdi_sio
[    1.562462] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.569767] usbcore: registered new interface driver usb_serial_simple
[    1.576334] usbserial: USB Serial support registered for carelink
[    1.582431] usbserial: USB Serial support registered for flashloader
[    1.588793] usbserial: USB Serial support registered for funsoft
[    1.594811] usbserial: USB Serial support registered for google
[    1.600731] usbserial: USB Serial support registered for hp4x
[    1.606476] usbserial: USB Serial support registered for kaufmann
[    1.612569] usbserial: USB Serial support registered for libtransistor
[    1.619095] usbserial: USB Serial support registered for moto_modem
[    1.625364] usbserial: USB Serial support registered for motorola_tetra
[    1.631974] usbserial: USB Serial support registered for nokia
[    1.637805] usbserial: USB Serial support registered for novatel_gps
[    1.644158] usbserial: USB Serial support registered for siemens_mpi
[    1.650512] usbserial: USB Serial support registered for suunto
[    1.656435] usbserial: USB Serial support registered for vivopay
[    1.662437] usbserial: USB Serial support registered for zio
[    1.668101] usbcore: registered new interface driver usb_ehset_test
[    1.677417] input: 44440000.bbnsm:pwrkey as /devices/platform/soc@0/44000000.bus/44440000.bbnsm/44440000.bbnsm:pwrkey/input/input0
[    1.692575] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0
[    1.698900] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    1.708166] i2c_dev: i2c /dev entries driver
[    1.714442] qoriq_thermal 44482000.tmu: invalid range data.
[    1.721258] imx7ulp-wdt 42490000.watchdog: imx93 wdt probe
[    1.754202] Bluetooth: HCI UART driver ver 2.3
[    1.758661] Bluetooth: HCI UART protocol H4 registered
[    1.763794] Bluetooth: HCI UART protocol BCSP registered
[    1.769112] Bluetooth: HCI UART protocol LL registered
[    1.774243] Bluetooth: HCI UART protocol ATH3K registered
[    1.779643] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.786045] Bluetooth: HCI UART protocol Broadcom registered
[    1.791714] Bluetooth: HCI UART protocol QCA registered
[    1.798136] sdhci: Secure Digital Host Controller Interface driver
[    1.804344] sdhci: Copyright(c) Pierre Ossman
[    1.809176] Synopsys Designware Multimedia Card Interface Driver
[    1.815576] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.822483] ledtrig-cpu: registered to indicate activity on CPUs
[    1.829557] fsl-se-fw se-fw2: assigned reserved memory node ele-reserved@a4120000
[    1.837096] fsl-se-fw se-fw2: Command Id[23], Response Failure = 0x29
[    1.843534] fsl-se-fw se-fw2: Failed to initialize ele fw.
[    1.849175] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.852370] mmc0: SDHCI controller on 42850000.mmc [42850000.mmc] using ADMA
[    1.855966] usbcore: registered new interface driver usbhid
[    1.868251] usbhid: USB HID core driver
[    1.873626] ethosu ethosu: assigned reserved memory node ethosu_region@C0000000
[    1.919958] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available
[    1.930258]  cs_system_cfg: CoreSight Configuration manager initialised
[    1.938174] optee: probing for conduit method.
[    1.942690] optee: api uid mismatch
[    1.946190] optee: probe of firmware:optee failed with error -22
[    1.955355] NET: Registered PF_LLC protocol family
[    1.960328] u32 classifier
[    1.963070]     input device check on
[    1.966786]     Actions configured
[    1.970637] NET: Registered PF_INET6 protocol family
[    1.976181] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[    1.982942] Segment Routing with IPv6
[    1.987119] mmcblk0: mmc0:0001 DA6016 14.7 GiB
[    1.991662] In-situ OAM (IOAM) with IPv6
[    1.996086] NET: Registered PF_PACKET protocol family
[    2.001712] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.014680]  mmcblk0: p1 p2
[    2.014817] Bluetooth: RFCOMM TTY layer initialized
[    2.017949] mmcblk0boot0: mmc0:0001 DA6016 4.00 MiB
[    2.022412] Bluetooth: RFCOMM socket layer initialized
[    2.028209] mmcblk0boot1: mmc0:0001 DA6016 4.00 MiB
[    2.032435] Bluetooth: RFCOMM ver 1.11
[    2.038153] mmcblk0rpmb: mmc0:0001 DA6016 4.00 MiB, chardev (234:0)
[    2.041047] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.052601] Bluetooth: BNEP filters: protocol multicast
[    2.057825] Bluetooth: BNEP socket layer initialized
[    2.062782] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.068700] Bluetooth: HIDP socket layer initialized
[    2.073850] 8021q: 802.1Q VLAN Support v1.8
[    2.078060] lib80211: common routines for IEEE802.11 drivers
[    2.083755] 9pnet: Installing 9P2000 support
[    2.088145] Key type dns_resolver registered
[    2.105105] registered taskstats version 1
[    2.109291] Loading compiled-in X.509 certificates
[    2.136170] usb_phy_generic usbphynop1: dummy supplies not allowed for exclusive requests
[    2.144501] usb_phy_generic usbphynop2: dummy supplies not allowed for exclusive requests
[    2.169677] isi-capture 4ae40000.isi:cap_device: deferring 4ae40000.isi:cap_device device registration
[    2.179145] mxc-isi_v1 4ae40000.isi: mxc_isi.0 registered successfully
[    2.186804] remoteproc remoteproc0: imx-rproc is available
[    2.200475] i2c 0-003d: Fixed dependency cycle(s) with /soc@0/dsi@4ae10000/ports/port@1/endpoint
[    2.209390] adv7511 0-003d: supply avdd not found, using dummy regulator
[    2.216186] adv7511 0-003d: supply dvdd not found, using dummy regulator
[    2.222922] adv7511 0-003d: supply pvdd not found, using dummy regulator
[    2.229644] adv7511 0-003d: supply a2vdd not found, using dummy regulator
[    2.236450] adv7511 0-003d: supply v3p3 not found, using dummy regulator
[    2.243174] adv7511 0-003d: supply v1p2 not found, using dummy regulator
[    2.250227] adv7511 0-003d: Probe failed. Remote port 'dsi@4ae10000' disabled
[    2.257718] st_lsm6dsx_i2c 0-006a: supply vdd not found, using dummy regulator
[    2.265010] st_lsm6dsx_i2c 0-006a: supply vddio not found, using dummy regulator
[    2.806848] st_lsm6dsx_i2c 0-006a: mounting matrix not found: using identity...
[    2.814898] i2c i2c-0: LPI2C adapter registered
[    2.821028] pca953x 1-0022: supply vcc not found, using dummy regulator
[    2.827780] pca953x 1-0022: using AI
[    2.832989] adp5585-gpio adp5585-gpio.1.auto: DMA mask not set
[    2.839723] adp5585-pwm adp5585-pwm.2.auto: DMA mask not set
[    2.845556] i2c i2c-1: LPI2C adapter registered
[    2.851112] i2c 2-0050: Fixed dependency cycle(s) with /soc@0/usb@4c100000/port/endpoint
[    2.860107] i2c 2-0051: Fixed dependency cycle(s) with /soc@0/usb@4c200000/port/endpoint
[    2.869042] adp5585 2-0034: Failed to read reg 0x00, ret is -5
[    2.874906] adp5585: probe of 2-0034 failed with error -5
[    2.880482] i2c 2-003c: Fixed dependency cycle(s) with /soc@0/bus@42800000/camera/csi@4ae00000/port/endpoint
[    2.890588] i2c i2c-2: LPI2C adapter registered
[    2.896855] 42590000.serial: ttyLP4 at MMIO 0x42590010 (irq = 104, base_baud = 1500000) is a FSL_LPUART
[    2.906386] serial serial0: tty port ttyLP4 registered
[    2.912688] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    2.920650] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/dsi@4ae10000 to encoder DSI-34: -19
[    2.930657] dw-mipi-dsi-imx 4ae10000.dsi: [drm:dw_mipi_dsi_imx_bind] *ERROR* failed to attach bridge: -19
[    2.940216] imx-drm display-subsystem: failed to bind 4ae10000.dsi (ops dw_mipi_dsi_imx_ops): -19
[    2.949286] imx-drm display-subsystem: adev bind failed: -19
[    2.954947] dw-mipi-dsi-imx 4ae10000.dsi: [drm:dw_mipi_dsi_imx_probe] *ERROR* failed to register component: -19
[    2.977450] sdhci-esdhc-imx 42860000.mmc: Got CD GPIO
[    2.977656] dwc-mipi-csi2-host 4ae00000.csi: lanes: 2, name: mxc-mipi-csi2.0
[    2.998455] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@50/connector
[    3.001711] nxp-pca9450 1-0025: pca9451a probed.
[    3.007205] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@50/connector
[    3.012194] mmc1: SDHCI controller on 42860000.mmc [42860000.mmc] using ADMA
[    3.020490] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@50/connector
[    3.041237] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@51/connector
[    3.049967] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@51/connector
[    3.058671] OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/tcpc@51/connector
[    3.074953] sdhci-esdhc-imx 428b0000.mmc: allocated mmc-pwrseq
[    3.084327] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.093443] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.099188] clk: Disabling unused clocks
[    3.103181] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.108437] ALSA device list:
[    3.111875] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    3.114777]   No soundcards found.
[    3.147815] mmc2: SDHCI controller on 428b0000.mmc [428b0000.mmc] using ADMA
[    3.155296] RAMDISK: gzip image found at block 0
[    3.202645] mmc1: host does not support reading read-only switch, assuming write-enable
[    3.242706] mmc2: new ultra high speed SDR104 SDIO card at address 0001
[    3.254135] mmc1: new ultra high speed SDR104 SDHC card at address 0001
[    3.268440] mmcblk1: mmc1:0001 SD 7.48 GiB
[    3.277733]  mmcblk1: p1
[    3.281796] EXT4-fs (ram0): mounted filesystem 98a4dbf7-6de5-40a2-9a3f-6b4920b1c6b2 r/w without journal. Quota mode: none.
[    3.292990] VFS: Mounted root (ext4 filesystem) on device 1:0.
[    3.298970] devtmpfs: mounted
[    3.303207] Freeing unused kernel memory: 3904K
[    3.307946] Run /sbin/init as init process

Processing /etc/profile... Done

~ # ls
bin         home        lost+found  root        tmp
dev         lib         mnt         sbin        usr
etc         linuxrc     proc        sys         var

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
linux内核调试分析指南 linux内核调试分析指南--上篇 本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 skyeye的使用 UML的使用 vmware的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环境的建立 gdb基础 基本命令 gdb之gui gdb技巧 gdb宏 汇编基础--X86篇 用户手册 AT&T汇编格式 内联汇编 汇编与C函数的相互调用 调用链形成和参数传递 C难点的汇编解释 优化级别的影响 汇编基础--ARM篇 用户手册 调用链形成和参数传递 源码浏览工具 调用图生成工具 find + grep wine + SI global Source-Navigator vim + cscope/ctags kscope lxr SI等与gdb的特点 调用链、调用树和调用图 理想调用链 函数指针调用 调用链的层次 非理想调用链 调用树与调用图 穿越盲区 穿越gdb的盲区 穿越交叉索引工具的盲区 工程方法 bug 与 OOPS linux内核调试分析指南--下篇 ***第二部分:内核分析*** 内核组织层次和复杂度 内核层次 内核复杂度 复杂度隔离 gdb在内核分析中的用途 数据验证 界面剥离 参数记忆 路径快照 长程跟踪 整理思路 内核编码的艺术 信息聚集 数据聚集 关系聚集 操作聚集 松散聚集 顺序聚集 链表聚集 哈希聚集 树形聚集 分层聚集 分块聚集 对象聚集 设施客户 设备驱动模型分析 linux设备子系统的组成 设备驱动模型 usb子系统分析 如何阅读分析大型子系统 btrfs文件系统分析 区间树核心代码分析 B树核心代码分析 调试相关子系统 kgdb源码分析 sysrq oprofile kprobes 驱动分析 载入模块符号 ***第三部分:其他工具*** kexec strace ltrace SystemTap MEMWATCH YAMD Magic SysRq 附录:社区交流相关 补丁提交相关文档 补丁制作与提交示范 多补丁发送工具 git使用 Git公共库创建及使用 附录:内核参考书籍文章 内核git库 书籍 子系统官方网站 必看网站 参考文章 私人备忘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值