The Linux kernel is the core component of the Linux operating system, serving as the central part that interacts directly with the computer's hardware. Developed by Linus Torvalds and the open-source community, the Linux kernel is released under the GNU General Public License (GPL) and is a key example of free and open-source software.
Linux is widely used in embedded systems, such as mobile phones, tablets, routers, TVs, and electronic game consoles. The Android operating system widely used on mobile devices is also built on the Linux core. Since Linux is free software, anyone can build a Linux package that meets their needs.
For further information, refer to:
Linux official web: LINUX.ORG
Linux 6.6.47 (LTS) is downloaded from: linux-6.6.47.tar.gz
Table of Contents
Features of Linux
The Linux kernel boasts several prominent features, including:
Open Source: Linux is developed under the GNU General Public License (GPL), making its source code freely available for modification and redistribution.
Modularity: The kernel is designed with a modular architecture, allowing for the addition or removal of features as needed.
Multiplatform Support: Linux supports a wide range of hardware architectures, from desktop computers to embedded devices, servers, and supercomputers.
Multitasking and Multiuser: Linux supports multitasking, enabling multiple processes to run simultaneously, and multiuser capabilities, allowing multiple users to interact with the system concurrently.
Memory Management: The kernel efficiently manages system memory, including virtual memory, memory allocation, and memory protection mechanisms.
Device Drivers: Linux includes a vast array of device drivers, providing support for a diverse range of hardware components, peripherals, and devices.
Networking: Linux offers robust networking capabilities, supporting various networking protocols and technologies for communication.
Security: The kernel incorporates numerous security features, including access controls, permissions, encryption, and secure communication protocols, to safeguard system integrity and data privacy.
File Systems: Linux supports multiple file systems, including ext4, btrfs, xfs, and ntfs, and etc.
Scalability: Linux scales effectively from small embedded devices to large-scale server environments.
These features collectively contribute to Linux's widespread adoption and success across diverse computing environments.
Supported Drivers for SP7350 Platform
The source files of the Linux kernel are centrally located within the "linux/kernel/" directory under the project's top directory. For the SP7350 platform, a wide array of device drivers is supported. These drivers are within the "drivers/" directory. Below is a reference table detailing the drivers along with their corresponding feature descriptions:
Drivers | Folders or files | Features |
8-bit NAND | mtd/nand/raw/sp_paranand/ |
|
ADC (SAR12B) | iio/adc/sp-adc.c |
|
AXI DMA | dma/dw-axi-dmac/ |
|
AXI Monitor | soc/sunplus/ |
|
CB DMA | dma/sp_cbdma.c |
|
Clock | clk/clk-sp7350.c |
|
CPUFreq | cpufreq/sp7350-cpufreq.c |
|
Crypto Engine | crypto/sunplus/ |
|
Display (framebuffer) | media/platform/sunplus/display/ sp7350/ |
|
Display (DRM) | drivers/gpu/drm/sunplus/sp7350/ |
|
eMMC | mmc/host/sunplus_mmc.* |
|
Ethernet | net/ethernet/stmicro/stmmac/ |
|
GDC | media/platform/sunplus/gdc/ | |
I2C | i2c/busses/i2c-designware-*.c |
|
Mailbox | mailbox/sunplus*.* |
|
MIPI/CSI-RX | media/platform/sunplus/mipicsi/ |
|
NVMEM (OTP) | nvmem/sp-ocotp*.c |
|
PinCtl / GPIO | pinctrl/sunplus/pinctrl-*.* pinctrl/sunplus/gpio-sp7350.* |
|
PWM | pwm/pwm-sunplus.c |
|
Regulators |
|
|
Remoteproc | remote/sp_remoteproc.c |
|
Reset | reset/reset-sunplus.c |
|
HW RNG | char/hw_random/sp7350-rng.c |
|
RTC | rtc/rtc-sp7350.c |
|
Semaphore | hwspinlock/sunplus_hwspinlock.c |
|
SPI | spi/spi-dw* |
|
SPI-NAND | mtd/nand/raw/sp_* |
|
SPI-NOR | mtd/spi-nor/controllers/ sp-spi-nor.c |
|
SD / SDIO | mmc/host/sunplus_sd3.* |
|
Thermal | thermal/sunplus_thermal.c |
|
USB2.0 EHCI | usb/host/ehci*-sunplus.* |
|
USB2.0 OHCI | usb/host/ohci*-sunplus.* |
|
USB2.0 PHY | phy/sunplus/phy-sunplus-usb2.c |
|
USB2.0 UDC | usb/gadget/udc/sunplus_udc2.* |
|
USB2.0 OTG | usb/phy/otg-sp7350-sunplus.c |
|
USB3.0 DRD | usb/dw3/ |
|
USB3.0 extcon | extcon/extcon-usb-gpio-sunplus.c |
|
USB3.0 PHY | usb/phy/synopsysu3phy-sunplus.c |
|
UART | tty/serial/sunplus-uart-sp7350.c |
|
Video sensors | media/i2c/imx219.c media/i2c/imx307.c media/i2c/imx708.c media/i2c/ov5640.c media/i2c/ov5647.c media/i2c/tp2815.c |
|
VIP9000 (NPU) | media/platform/sunplus/vip9000/ |
|
Video decoder (VC8000D nano) | media/platform/sunplus/ videocodec/ |
|
Video encoder (VC8000E nano) | media/platform/sunplus/ videocodec/ |
|
Watchdog | watchdog/sunplus_wdt_sp7350.c |
|
Traditionally, due to historical reasons, the sound driver within the Linux kernel has been located at the "sound/" directory, rather than under the "drivers/" directory as might be expected.
Drivers | Folders or files | Features |
Audio (I2S) | soc/sunplus/ |
|
Audio codec |
|
|
SP7350 Platform-specific Files
Platform-specific files are located at “arch/arm64/” under Linux kernel directory. Below table details the files along with their corresponding feature descriptions:
Type | Folders | Files | Descriptions |
dts | boot/dts/sunplus/ | sp7350-ev.dts | For Evaluation board |
sp7350-dm.dts | For Demo board | ||
defconfig files | configs/ | sp7350_emmc_dm_defconfig | for Demo board, eMMC boot |
sp7350_sdcard_dm_defconfig | for Demo board, SD card boot | ||
sp7350_emmc_ev_defconfig | for EVB, eMMC boot | ||
sp7350_sdcard_ev_defconfig | for EVB, SD card boot | ||
sp7350_nand_ev_defconfig | for EVB, SPI-NAND flash boot | ||
sp7350_pnand_ev_defconfig | for EVB, 8-bit NAND flash boot | ||
Kconfig | ./ | Kconfig.platforms | for SP7350 platform |
Note that U-Boot and Linux share device-tree source files. For usage guidance, please refer to:
https://sunplus.atlassian.net/wiki/x/HwB8dg
Log of Linux
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000] Linux version 6.6.47-SUNPLUS-v8-g045af0ced7e4 (wellslu@scdiu3) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 12.3.1 20230626, GNU ld (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 2.40.0.20230627) #1 SMP Thu Sep 12 18:59:32 CST 2024 [ 0.000000] Machine model: Sunplus SP7350 EVB [ 0.000000] earlycon: sunplus_uart0 at MMIO 0x00000000f8801900 (options '115200n8') [ 0.000000] printk: bootconsole [sunplus_uart0] enabled [ 0.000000] OF: reserved mem: 0x0000000000000000..0x00000000000fffff (1024 KiB) nomap non-reusable null_pointer_prot_reserve@0 [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000000100000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node rproc0@100000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x0000000000100000..0x00000000001fffff (1024 KiB) nomap non-reusable rproc0@100000 [ 0.000000] OF: reserved mem: 0x0000000000200000..0x00000000002fffff (1024 KiB) nomap non-reusable tfa_reserve@200000 [ 0.000000] OF: reserved mem: 0x0000000000300000..0x00000000004fffff (2048 KiB) nomap non-reusable optee_reserve@300000 [ 0.000000] Reserved memory: created CMA memory pool at 0x000000004f400000, size 200 MiB [ 0.000000] OF: reserved mem: initialized node mipicsirx@4f400000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000004f400000..0x000000005bbfffff (204800 KiB) map reusable mipicsirx@4f400000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005be00000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node vdev0buffer@5be00000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000005be00000..0x000000005befffff (1024 KiB) nomap non-reusable vdev0buffer@5be00000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf00000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0vring0@5bf00000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000005bf00000..0x000000005bf0ffff (64 KiB) nomap non-reusable vdev0vring0@5bf00000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf10000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0vring1@5bf10000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000005bf10000..0x000000005bf1ffff (64 KiB) nomap non-reusable vdev0vring1@5bf10000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf20000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0_reserve@5bf20000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000005bf20000..0x000000005bffffff (896 KiB) nomap non-reusable vdev0_reserve@5bf20000 [ 0.000000] Reserved memory: created CMA memory pool at 0x000000005c000000, size 64 MiB [ 0.000000] OF: reserved mem: initialized node disp_reserve@5c000000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000005c000000..0x000000005fffffff (65536 KiB) map reusable disp_reserve@5c000000 [ 0.000000] OF: reserved mem: 0x0000000060000000..0x0000000073ffffff (327680 KiB) nomap non-reusable vcodec@60000000 [ 0.000000] OF: reserved mem: 0x0000000074000000..0x0000000077ffffff (65536 KiB) nomap non-reusable vcodec@74000000 [ 0.000000] OF: reserved mem: 0x0000000078000000..0x000000007fffffff (131072 KiB) nomap non-reusable npu_reserve@78000000 [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000080000000, size 384 MiB [ 0.000000] OF: reserved mem: initialized node vcodec@80000000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x0000000080000000..0x0000000097ffffff (393216 KiB) map reusable vcodec@80000000 [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000fa240000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node cm4runaddr@fa240000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x00000000fa240000..0x00000000fa29ffff (384 KiB) nomap non-reusable cm4runaddr@fa240000 [ 0.000000] OF: NUMA: parsing numa-distance-map-v1 [ 0.000000] NUMA: NODE_DATA [mem 0xefffdb40-0xefffffff] [ 0.000000] NUMA: NODE_DATA [mem 0x10f8a9b40-0x10f8abfff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000000000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x000000010fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x00000000004fffff] [ 0.000000] node 0: [mem 0x0000000000500000-0x000000005bdfffff] [ 0.000000] node 0: [mem 0x000000005be00000-0x000000005bffffff] [ 0.000000] node 0: [mem 0x000000005c000000-0x000000005fffffff] [ 0.000000] node 0: [mem 0x0000000060000000-0x000000007fffffff] [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000efffffff] [ 0.000000] node 1: [mem 0x0000000100000000-0x000000010fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000efffffff] [ 0.000000] Initmem setup node 1 [mem 0x0000000100000000-0x000000010fffffff] [ 0.000000] cma: Reserved 16 MiB at 0x00000000eac00000 on node -1 [ 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: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.2 [ 0.000000] percpu: Embedded 20 pages/cpu s41128 r8192 d32600 u81920 [ 0.000000] Detected VIPT I-cache on CPU0 [ 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=ttyS0,115200 earlycon root=/dev/mmcblk1p2 rw rootwait [ 0.000000] Fallback order for Node 0: 0 1 [ 0.000000] Fallback order for Node 1: 1 0 [ 0.000000] Built 2 zonelists, mobility grouping on. Total pages: 1032192 [ 0.000000] Policy zone: Normal [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000e6c00000-0x00000000eac00000] (64MB) [ 0.000000] Memory: 2820372K/4194304K available (13440K kernel code, 1808K rwdata, 4052K rodata, 2752K init, 568K bss, 693996K reserved, 679936K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=2 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] PLLA 147456000 [ 0.000000] PLLC 1500000000 [ 0.000000] PLLL3 1200000000 [ 0.000000] PLLD 800000000 [ 0.000000] PLLH 2075000000 [ 0.000000] PLLN 500000000 [ 0.000000] PLLS 2000000000 [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000000] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008301] Console: colour dummy device 80x25 [ 0.012733] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=25000) [ 0.023004] pid_max: default: 32768 minimum: 301 [ 0.028335] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, vmalloc hugepage) [ 0.037592] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, vmalloc) [ 0.045451] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, vmalloc) [ 0.052933] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, vmalloc) [ 0.061582] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.068120] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1. [ 0.075768] rcu: Hierarchical SRCU implementation. [ 0.080502] rcu: Max phase no-delay instances is 400. [ 0.086316] smp: Bringing up secondary CPUs ... I/TC: Secondary CPU 1 initializing I/TC: Secondary CPU 1 switching to normal world boot I/TC: Secondary CPU 2 initializing I/TC: Secondary CPU 2 switching to normal world boot I/TC: Secondary CPU 3 initializing I/TC: Secondary CPU 3 switching to normal world boot [ 0.098956] Detected VIPT I-cache on CPU1 [ 0.099005] CPU1: Booted secondary processor 0x0000000100 [0x412fd050] [ 0.107179] Detected VIPT I-cache on CPU2 [ 0.107210] CPU2: Booted secondary processor 0x0000000200 [0x412fd050] [ 0.115359] Detected VIPT I-cache on CPU3 [ 0.115386] CPU3: Booted secondary processor 0x0000000300 [0x412fd050] [ 0.115436] smp: Brought up 2 nodes, 4 CPUs [ 0.151299] SMP: Total of 4 processors activated. [ 0.156022] CPU features: detected: 32-bit EL0 Support [ 0.161180] CPU features: detected: Data cache clean to the PoU not required for I/D coherence [ 0.169836] CPU features: detected: Common not Private translations [ 0.176132] CPU features: detected: CRC32 instructions [ 0.181293] CPU features: detected: RCpc load-acquire (LDAPR) [ 0.187062] CPU features: detected: LSE atomic instructions [ 0.192658] CPU features: detected: Privileged Access Never [ 0.198254] CPU features: detected: RAS Extension Support [ 0.203677] CPU features: detected: Speculative Store Bypassing Safe (SSBS) [ 0.210722] CPU: All CPU(s) started at EL2 [ 0.214783] alternatives: applying system-wide alternatives [ 0.224309] devtmpfs: initialized [ 0.233343] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns [ 0.243085] futex hash table entries: 1024 (order: 4, 65536 bytes, vmalloc) [ 0.258428] pinctrl core: initialized pinctrl subsystem [ 0.264204] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.270809] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations [ 0.277931] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.285757] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.293667] audit: initializing netlink subsys (disabled) [ 0.299153] audit: type=2000 audit(0.108:1): state=initialized audit_enabled=0 res=1 [ 0.299445] thermal_sys: Registered thermal governor 'step_wise' [ 0.306887] cpuidle: using governor menu [ 0.316961] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.323759] ASID allocator initialised with 65536 entries [ 0.331258] platform f8005c80.crtc0: Fixed dependency cycle(s) with /mipi-dsi@f8006600 [ 0.339202] platform f8006600.mipi-dsi: Fixed dependency cycle(s) with /i2c@f882e000/lcd@45 [ 0.347540] platform f8006600.mipi-dsi: Fixed dependency cycle(s) with /i2c@f882e000/hdmi@48 [ 0.356019] platform f8006600.mipi-dsi: Fixed dependency cycle(s) with /crtc0@f8005c80 [ 0.370266] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation. [ 0.379530] SP7350 PinCtl by Sunplus Tech.(C) 2023 [ 0.381108] platform hdmi-connector: Fixed dependency cycle(s) with /i2c@f882e000/hdmi@48 [ 0.394296] Modules: 27072 pages in range for non-PLT usage [ 0.394300] Modules: 518592 pages in range for PLT usage [ 0.401051] iommu: Default domain type: Translated [ 0.411120] iommu: DMA domain TLB invalidation policy: strict mode [ 0.417481] SCSI subsystem initialized [ 0.421253] usbcore: registered new interface driver usbfs [ 0.426703] usbcore: registered new interface driver hub [ 0.432038] usbcore: registered new device driver usb [ 0.437454] platform f8006600.mipi-dsi: Fixed dependency cycle(s) with /i2c@f882e000/lcd@45 [ 0.445813] i2c 6-0045: Fixed dependency cycle(s) with /mipi-dsi@f8006600 [ 0.452729] platform hdmi-connector: Fixed dependency cycle(s) with /i2c@f882e000/hdmi@48 [ 0.460905] platform f8006600.mipi-dsi: Fixed dependency cycle(s) with /i2c@f882e000/hdmi@48 [ 0.469382] i2c 6-0048: Fixed dependency cycle(s) with /hdmi-connector [ 0.475945] i2c 6-0048: Fixed dependency cycle(s) with /mipi-dsi@f8006600 [ 0.483207] mc: Linux media interface: v0.10 [ 0.487443] videodev: Linux video capture interface: v2.00 [ 0.492938] pps_core: LinuxPPS API ver. 1 registered [ 0.497906] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.507096] PTP clock support registered [ 0.511173] Advanced Linux Sound Architecture Driver Initialized. [ 0.517541] Bluetooth: Core ver 2.22 [ 0.521064] NET: Registered PF_BLUETOOTH protocol family [ 0.526384] Bluetooth: HCI device and connection manager initialized [ 0.532770] Bluetooth: HCI socket layer initialized [ 0.537664] Bluetooth: L2CAP socket layer initialized [ 0.542740] Bluetooth: SCO socket layer initialized [ 0.547984] clocksource: Switched to clocksource arch_sys_counter [ 0.558422] NET: Registered PF_INET protocol family [ 0.563468] IP idents hash table entries: 65536 (order: 7, 524288 bytes, vmalloc) [ 0.573064] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, vmalloc) [ 0.581712] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, vmalloc) [ 0.589536] TCP established hash table entries: 32768 (order: 6, 262144 bytes, vmalloc) [ 0.597757] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, vmalloc) [ 0.605795] TCP: Hash tables configured (established 32768 bind 32768) [ 0.612361] UDP hash table entries: 2048 (order: 4, 65536 bytes, vmalloc) [ 0.619163] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, vmalloc) [ 0.626475] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.632306] RPC: Registered named UNIX socket transport module. [ 0.638181] RPC: Registered udp transport module. [ 0.642898] RPC: Registered tcp transport module. [ 0.647619] RPC: Registered tcp-with-tls transport module. [ 0.653128] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.660932] Initialise system trusted keyrings [ 0.665448] workingset: timestamp_bits=42 max_order=20 bucket_order=0 [ 0.672271] NFS: Registering the id_resolver key type [ 0.677299] Key type id_resolver registered [ 0.681468] Key type id_legacy registered [ 0.685907] Key type cifs.idmap registered [ 0.690018] fuse: init (API version 7.39) [ 0.719294] Key type asymmetric registered [ 0.723328] Asymmetric key parser 'x509' registered [ 0.728249] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245) [ 0.735658] io scheduler mq-deadline registered [ 0.740203] io scheduler kyber registered [ 0.744247] io scheduler bfq registered [ 0.749790] dw_axi_dmac_platform f80fc000.dma-controller: DesignWare AXI DMA Controller, 16 channels [ 0.759342] ttyS f8801900.serial: sp_uart0's Rx is in PIO mode. [ 0.765221] ttyS f8801900.serial: sp_uart0's Tx is in PIO mode. [ 0.771261] f8801900.serial: ttyS0 at MMIO 0xf8801900 (irq = 16, base_baud = 1562500) is a sp_uart0 [ 0.780370] printk: console [ttyS0] enabled [ 0.780370] printk: console [ttyS0] enabled [ 0.788663] printk: bootconsole [sunplus_uart0] disabled [ 0.788663] printk: bootconsole [sunplus_uart0] disabled [ 0.799705] rpi_touchscreen 6-0045: Atmel I2C read failed: -121 [ 0.801370] sp7350-drm display-subsystem: assigned reserved memory node disp_reserve@5c000000 [ 0.803073] sp7350-drm display-subsystem: bound f8005c80.crtc0 (ops 0xffffffc080db46a0) [ 0.814404] loop: module loaded [ 0.815430] sunplus-usb-synopsys-u3phy f80bd000.uphy: sunplus_usb_synopsys_u3phy_probe [ 0.822186] register sunplus_usb_otg0_driver [ 0.826780] register ehci0_hcd_sunplus_driver [ 0.830670] register ohci0_hcd_sunplus_driver [ 0.835075] usbcore: registered new interface driver cdc_acm [ 0.840525] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 0.848522] usbcore: registered new interface driver usb-storage [ 0.854535] usbcore: registered new interface driver ch341 [ 0.859988] usbserial: USB Serial support registered for ch341-uart [ 0.866231] usbcore: registered new interface driver cp210x [ 0.871783] usbserial: USB Serial support registered for cp210x [ 0.877691] usbcore: registered new interface driver ftdi_sio [ 0.883415] usbserial: USB Serial support registered for FTDI USB Serial Device [ 0.890707] usbcore: registered new interface driver option [ 0.896258] usbserial: USB Serial support registered for GSM modem (1-port) [ 0.903208] usbcore: registered new interface driver pl2303 [ 0.908761] usbserial: USB Serial support registered for pl2303 [ 0.914803] mousedev: PS/2 mouse device common for all mice [ 0.921792] sp7350-rtc f8801180.rtc: registered as rtc0 [ 0.925723] sp7350-rtc f8801180.rtc: setting system clock to 1970-01-01T00:00:11 UTC (11) [ 0.933575] [RTC] Info: sp7350-rtc loaded [ 0.937625] i2c_dev: i2c /dev entries driver [ 0.942150] hantro_dec f8168000.hantro_vc8000d: dec/pp kernel module. [ 0.948337] hantro_dec f8168000.hantro_vc8000d: major:242 minor:0 [ 0.954508] hantro_dec f8168000.hantro_vc8000d: clock enabled [ 0.960146] hantro_dec f8168000.hantro_vc8000d: reset okay [ 0.965605] hantro_dec f8168000.hantro_vc8000d: Core 0 HW ID=0x6e645000 [ 0.972198] hantro_dec f8168000.hantro_vc8000d: Supported HW found at 0xf8168000 [ 0.979592] hantro_dec f8168000.hantro_vc8000d: core[0] has H264 [ 0.985571] hantro_dec f8168000.hantro_vc8000d: core[0] has JPEG [ 0.991557] hantro_dec f8168000.hantro_vc8000d: core[0] has PP [ 0.997371] hantro_dec f8168000.hantro_vc8000d: reset hardware [ 1.003321] hantro_enc f80ff000.hantro_vc8000e: major:241 minor:0 [ 1.009362] hantro_enc f80ff000.hantro_vc8000e: mem iobaseaddr = f80ff000h [ 1.016215] hantro_enc f80ff000.hantro_vc8000e: mem mapping = ffffffc08172d000h [ 1.023585] hantro_enc f80ff000.hantro_vc8000e: mem iosize = fffh [ 1.029756] hantro_enc f80ff000.hantro_vc8000e: clock enabled [ 1.035480] hantro_enc f80ff000.hantro_vc8000e: reset okay [ 1.040944] hantro_enc f80ff000.hantro_vc8000e: HW at base <0xf80ff000> with ID <0x6e655000> [ 1.049676] memalloc_d video_codec_dmem: major:240 minor:0 [ 1.054923] memalloc_d video_codec_dmem: module init [ 1.059788] memalloc_d video_codec_dmem: SW build 1000 [ 1.064990] memalloc_d video_codec_dmem: linear memory base = 0x74000000 [ 1.071757] memalloc_d video_codec_dmem: linear memory size = 64 MB [ 1.078104] memalloc_d video_codec_dmem: Total size 64 MB; 4096 chunks of size 16384 [ 1.085976] memalloc_e video_codec_emem: allocation method: DYNAMIC [ 1.092071] memalloc_e video_codec_emem: major:239 minor:0 [ 1.097614] memalloc_e video_codec_emem: SW build 1000 [ 1.102754] memalloc_e video_codec_emem: linear memory base = 0x60000000 [ 1.109519] memalloc_e video_codec_emem: linear memory size = 327680 MB [ 1.116207] memalloc_e video_codec_emem: chunk size = 4 KB, chunks = 1 configured [ 1.123773] hantro_codec f880125c.video_codec: Video codec clock enabled [ 1.130353] hantro_codec f880125c.video_codec: Video codec reset okay [ 1.136778] chip version: 0xa31 [ 1.139896] VC power control enable [ 1.143560] v4l2_probe [ 1.143569] vsiv4l2 video_codec_v4l2: assigned reserved memory node vcodec@80000000 [ 1.153615] usbcore: registered new interface driver uvcvideo [ 1.159455] Bluetooth: HCI UART driver ver 2.3 [ 1.163511] Bluetooth: HCI UART protocol H4 registered [ 1.197443] spsdc f8003e80.mmc: Got CD GPIO [ 1.377341] mmc1: new ultra high speed SDR104 SDHC card at address 59b4 [ 1.378152] mmcblk1: mmc1:59b4 USDU1 14.9 GiB [ 1.379707] mmcblk1: p1 p2 [ 1.422633] SMCCC: SOC_ID: ID = jep106:0d48:0a31 Revision = 0x00000000 [ 1.423807] usbcore: registered new interface driver usbhid [ 1.423863] usbhid: USB HID core driver [ 1.426121] mmc0: new DDR MMC card at address 0001 [ 1.427636] remoteproc remoteproc0: f800817c.remoteproc is available [ 1.432767] mmcblk0: mmc0:0001 88A398 7.28 GiB [ 1.443281] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available [ 1.451720] optee: probing for conduit method. [ 1.455493] optee: revision 3.13 (df36975c) [ 1.455791] optee: initialized driver [ 1.458060] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 [ 1.459916] usbcore: registered new interface driver snd-usb-audio [ 1.464368] mmcblk0boot0: mmc0:0001 88A398 4.00 MiB [ 1.468703] sunplus-audio f8800480.audio: sunplus_audio_probe [ 1.474988] mmcblk0boot1: mmc0:0001 88A398 4.00 MiB [ 1.479020] sunplus-audio f8800480.audio: sunplus_i2s_register [ 1.485542] mmcblk0rpmb: mmc0:0001 88A398 4.00 MiB, chardev (238:0) [ 1.489630] sunplus-audio f8800480.audio: sunplus_tdm_register [ 1.507878] aud-codec aud-codec: aud_codec_probe [ 1.512545] spsoc-pcm-driver spsoc-pcm-driver: snd_spsoc_pcm_probe [ 1.519482] snd_spsoc_audio_init, create soc_card [ 1.523325] soc-audio soc-audio: ASoC: machine sp-aud should use snd_soc_register_card() [ 1.531710] debugfs: Directory 'f8800480.audio' with parent 'sp-aud' already present! [ 1.540103] NET: Registered PF_INET6 protocol family [ 1.544589] Segment Routing with IPv6 [ 1.547763] In-situ OAM (IOAM) with IPv6 [ 1.551670] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 1.557804] NET: Registered PF_PACKET protocol family [ 1.562631] Bluetooth: RFCOMM TTY layer initialized [ 1.567445] Bluetooth: RFCOMM socket layer initialized [ 1.572565] Bluetooth: RFCOMM ver 1.11 [ 1.576293] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 1.579240] mmc2: Failed to initialize a non-removable card [ 1.581587] Bluetooth: BNEP filters: protocol multicast [ 1.592349] Bluetooth: BNEP socket layer initialized [ 1.597295] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 1.603198] Bluetooth: HIDP socket layer initialized [ 1.608189] Key type dns_resolver registered [ 1.612406] Key type ceph registered [ 1.616031] libceph: loaded (mon/osd proto 15/24) [ 1.625129] registered taskstats version 1 [ 1.625240] Loading compiled-in X.509 certificates [ 1.638966] usb 2.0 phy registered [ 1.640090] sp7350-drm display-subsystem: assigned reserved memory node disp_reserve@5c000000 [ 1.641519] sp7350-drm display-subsystem: bound f8005c80.crtc0 (ops 0xffffffc080db46a0) [ 1.679554] sp7350-drm display-subsystem: bound f8006600.mipi-dsi (ops 0xffffffc080db6f80) [ 1.681498] [drm] Initialized sp7350-drm 1.0.0 20240828 for display-subsystem on minor 0 [ 1.685145] sp7350-drm display-subsystem: [drm] Cannot find any crtc or sizes [ 1.692625] stmmaceth f8103000.stmmac: User ID: 0x10, Synopsys ID: 0x37 [ 1.698430] stmmaceth f8103000.stmmac: DWMAC1000 [ 1.703108] stmmaceth f8103000.stmmac: DMA HW capability register supported [ 1.710051] stmmaceth f8103000.stmmac: RX Checksum Offload Engine supported [ 1.716994] stmmaceth f8103000.stmmac: COE Type 2 [ 1.721682] stmmaceth f8103000.stmmac: TX Checksum insertion supported [ 1.728190] stmmaceth f8103000.stmmac: Wake-Up On Lan supported [ 1.734118] stmmaceth f8103000.stmmac: Normal descriptors [ 1.739477] stmmaceth f8103000.stmmac: Ring mode enabled [ 1.744770] stmmaceth f8103000.stmmac: Enable RX Mitigation via HW Watchdog Timer [ 1.752872] sp7350-drm display-subsystem: [drm] Cannot find any crtc or sizes [ 1.951828] phy phy-f8004a80.uphy.1: phy_power_on was called before phy_init [ 2.447369] phy phy-f8004a80.uphy.1: phy_power_on was called before phy_init [ 2.447585] ehci0-sunplus f8102100.usb: Generic Platform EHCI Controller [ 2.449999] ehci0-sunplus f8102100.usb: new USB bus registered, assigned bus number 1 [ 2.457903] ehci0-sunplus f8102100.usb: irq 36, io mem 0xf8102100 [ 2.470009] ehci0-sunplus f8102100.usb: USB 2.0 started, EHCI 1.10 [ 2.471445] hub 1-0:1.0: USB hub found [ 2.473809] hub 1-0:1.0: 1 port detected [ 2.478531] phy phy-f8004a80.uphy.1: phy_power_on was called before phy_init [ 2.484811] ohci0-sunplus f8102080.usb: Generic Platform OHCI Controller [ 2.491371] ohci0-sunplus f8102080.usb: new USB bus registered, assigned bus number 2 [ 2.499294] ohci0-sunplus f8102080.usb: irq 38, io mem 0xf8102080 [ 2.560032] hub 2-0:1.0: USB hub found [ 2.560161] hub 2-0:1.0: 1 port detected [ 2.561010] sp_udc_probe start, port_num:0, ffffff81001ae000 [ 2.562285] phy phy-f8004a80.uphy.1: phy_power_on was called before phy_init [ 2.592496] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 2.593678] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 2.595210] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600' [ 2.601925] clk: Disabling unused clocks [ 2.605844] [dhd] _dhd_module_init: in Dongle Host Driver, version 101.10.591.68.33 (20240829-2)(429fcb0) [ 2.605844] drivers/net/wireless/bcmdhd compiled on Sep 12 2024 at 18:59:06 [ 2.605844] [ 2.623775] [dhd] STATIC-MSG) dhd_static_buf_init : 101.10.361.36 (wlan=r892223-20231107-1) [ 2.632144] [dhd] STATIC-MSG) dhd_init_wlan_mem : prealloc ok for index 0: 1102848(1077K) [ 2.640327] [dhd] no wifi platform data, skip [ 2.644600] [dhd] dhd_wifi_platform_load: Enter [ 2.649115] [dhd] DHD wifi platform data is required for Android build [ 2.655624] [dhd] DHD registering bus directly [ 2.660050] [dhd] bcmsdh_register: register client driver [ 2.665462] [dhd] _dhd_module_init: Exit err=0 [ 2.669861] ALSA device list: [ 2.672812] #0: SP7350, Sunplus Technology Inc. [ 2.677620] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 2.686111] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db [ 2.740309] EXT4-fs (mmcblk1p2): recovery complete [ 2.743048] EXT4-fs (mmcblk1p2): mounted filesystem 0ce7b70c-827a-419d-b943-809686dd2e02 r/w with ordered data mode. Quota mode: disabled. [ 2.746359] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 2.752853] devtmpfs: mounted [ 2.755933] Freeing unused kernel memory: 2752K [ 2.759879] Run /sbin/init as init process [ 2.808005] usb 1-1: new high-speed USB device number 2 using ehci0-sunplus /etc/init.d/rcS starts... Mounting other filesystems ... [ 2.943129] hub 1-1:1.0: USB hub found [ 2.943605] hub 1-1:1.0: 4 ports detected rc.extra [bg] sdcard boot set...[ 3.084701] remoteproc remoteproc0: powering up f800817c.remoteproc [ 3.090281] remoteproc remoteproc0: Booting fw image firmware, size 244336 [ 3.091356] virtio_rpmsg_bus virtio0: rpmsg host is online [ 3.092995] rproc-virtio rproc-virtio.1.auto: registered virtio0 (type 7) [ 3.099635] remoteproc remoteproc0: remote processor f800817c.remoteproc is now up [ 3.108823] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x0 [ 3.114387] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x1 [ 3.121463] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x2 Boot CM4 firmware by remoteproc extra done End of /etc/init.d/rcS login[117]: root login on 'console' ~ # ~ # ~ # df -hT Filesystem Type Size Used Available Use% Mounted on /dev/root ext4 13.9G 177.4M 13.2G 1% / devtmpfs devtmpfs 1.3G 0 1.3G 0% /dev tmpfs tmpfs 1.7G 0 1.7G 0% /dev/shm tmpfs tmpfs 1.7G 0 1.7G 0% /tmp ~ #