Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

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 git repositories: Kernel.org git repositories

Table of Contents

Features of Linux

The Linux kernel boasts several prominent features, including:

  1. Open Source: Linux is developed under the GNU General Public License (GPL), making its source code freely available for modification and redistribution.

  2. Modularity: The kernel is designed with a modular architecture, allowing for the addition or removal of features as needed.

  3. Multiplatform Support: Linux supports a wide range of hardware architectures, from desktop computers to embedded devices, servers, and supercomputers.

  4. Multitasking and Multiuser: Linux supports multitasking, enabling multiple processes to run simultaneously, and multiuser capabilities, allowing multiple users to interact with the system concurrently.

  5. Memory Management: The kernel efficiently manages system memory, including virtual memory, memory allocation, and memory protection mechanisms.

  6. Device Drivers: Linux includes a vast array of device drivers, providing support for a diverse range of hardware components, peripherals, and devices.

  7. Networking: Linux offers robust networking capabilities, supporting various networking protocols and technologies for communication.

  8. Security: The kernel incorporates numerous security features, including access controls, permissions, encryption, and secure communication protocols, to safeguard system integrity and data privacy.

  9. File Systems: Linux supports multiple file systems, including ext4, btrfs, xfs, and ntfs, and etc.

  10. 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/

  1. Support MTD framework.

  2. Support read and write standard 2k/4k/8k ECC sectors.

  3. Support block and chip erase.

ADC (SAR12B)

iio/adc/sp-adc.c

  1. Support read 4 channels external voltage.

  2. Support IIO interface.

AXI DMA

dma/dw-axi-dmac/

  1. Support Linux DMA Engine framework.

  2. Support memory-to-memory copy.

AXI Monitor

soc/sunplus/

  1. Sunplus internal use for monitoring AXI bus.

CB DMA

dma/sp_cbdma.c

  1. Sunplus internal use. 

Clock

clk/clk-sp7350.c

  1. Support Linux Common Clock Framework.

  2. Support clock functions for all devices.

CPUFreq

cpufreq/sp7350-cpufreq.c

  1. Support CPU frequency scaling.

Crypto Engine

crypto/sunplus/

  1. Support RSA-256/512/1024/2048 encryption.

  2. Support AES-128/192/256 encryption and decryption with ECB, CBC, CTR, modes

  3. Support MD5, SHA3-224/256/384/512.

  4. Support GHASH for AES GCM mode
    RSA.

  5. Support POLY1305.

  6. Support modular exponentiation.

Display

(framebuffer)

media/platform/sunplus/display/

sp7350/

  1. Support framebuffer.

  2. Support V4L2 framework

  3. Video input :

    1. Support 5 layers input video source, including 4 layers OSD and 1 layer image with scaling up and down.

    2. OSD layers (osd0, osd1, osd2, osd3):

      1. Support formats: ARGB8888, RGBA8888, ARGB4444, RGBA4444, ARGB1555, RGB565, YUY2, 8bpp

      2. Support source resolution upto 1920x1080.

    3. Image layer (vpp0):

      1. Supports formats: UYVY, NV12, NV24, NV16, YUY2

      2. Support up and down scaling up

      3. Support source resolution upto 3840x2880.

  4. Video output :

    1. Support MIPI/DSI TX and MIPI/CSI TX.

    2. MIPI/DSI TX:

      1. Support fromats: RGB888, RGB666_24BITS, RGB666_18BITS, RGB565

      2. Support resolution upto 1920x1080.

    3. MIPI/CSI TX:

      1. Support fromats: YUV422_20BITS, RGB888, RGB565

      2. Support resolution upto 3840x2880.

    4. Note that MIPI/DSI TX and MIPI/CSI TX share the same D-PHY.

    5. Support clock frequency up to 1.5G bps.

    6. Support 1, 2 and 4 data lanes.

  5. MIPI/DSI-TX supports:

    1. LT8912B MIPI to HDMI Bridge

    2. Raspberry Pi LCD (800x480) Panel

    3. TCXD024IBLON-2 LCD (240x320) Panel

    4. HXM0686TFT-001 LCD (480x1280) Panel

Display

(DRM)

drivers/gpu/drm/sunplus/sp7350/

  1. Support DRM framework.

  2. Support legacy framebuffer device

  3. Video input :

    1. Support 5 layers input video source, including 4 layers OSD and 1 layer image with scaling up/down and blending.
      L6-OSD0: Cursor plane (not yet)
      L5-OSD1: Overlay plane
      L4-OSD2: Overlay plane
      L3-VPP0: Overlay (media) plane
      L1-OSD3: Primary plane

    2. OSD layers (osd0, osd1, osd2, osd3):

      1. Support formats: ARGB8888, RGBA8888, ARGB4444, RGBA4444, ARGB1555, RGB565, YUY2, 8bpp

      2. Support source resolution upto 1920x1080.

    3. Image layer (vpp0):

      1. Supports formats: UYVY, NV12, NV24, NV16, YUY2

      2. Support up and down scaling up

      3. Support source resolution upto 3840x2880.

  4. Video output :

    1. upport MIPI/DSI TX.

    2. MIPI/DSI TX:

      1. Support fromats: RGB888, RGB666_24BITS, RGB666_18BITS, RGB565

      2. Support resolution upto 1920x1080.

    3. MIPI/CSI TX:

      1. Support fromats: YUV422_20BITS, RGB888, RGB565

      2. Support resolution upto 3840x2880.

    4. Note that MIPI/DSI TX and MIPI/CSI TX share the same D-PHY.

    5. Support clock frequency up to 1.5G bps.

    6. Support 1, 2 and 4 data lanes.

  5. MIPI/DSI-TX supports:

    1. LT8912B MIPI to HDMI Bridge

    2. Raspberry Pi LCD (800x480) Panel

    3. TCXD024IBLON-2 LCD (240x320) Panel

    4. HXM0686TFT-001 LCD (480x1280) Panel

eMMC

mmc/host/sunplus-mmc.*

  1. Support Linux MMC framework.

  2. Support read and write User Data Area.

  3. Support access RPMB partition.

  4. Support DDR52, HS200 and HS400 speeds.

  5. Support dma mode.

  6. Support 1.8V and 3.3V devices.

Ethernet

net/ethernet/stmicro/stmmac/

  1. Support Half-duplex / Full-duplex operations.

  2. Support RMON/MIB counters.

  3. Support IEEE 1588 time-stamping (PTP).

  4. Support ARP offloading.

  5. Support automatic CRC / PAD insertion and checking.

  6. Support checksum offload for received and transmitted packets.

  7. Support standard or jumbo Ethernet packets.

  8. Support multi-cast.

  9. Support remote wake-up detection.

  10. Support programmable burst length, threshold, queue size.

  11. Support ethtool operations.

  12. Support loading MAC address from OTP.

I2C

i2c/busses/i2c-designware-*.c

  1. Support RX and TX transferring.

  2. Support 100kHz, 400kHz, 1.6M speeds.

Mailbox

mailbox/sunplus*.*

  1. Support Linux mailbox framework.

  2. Support communication between CA55 and CM4.

MIPI/CSI-RX

media/platform/sunplus/mipicsi/

  1. Support Linux V4L2 framework.

  2. Support RAW8, RAW10 and RAW12 formats.

  3. Support packed RAW10 and RAW12 formats output.

  4. Support enumerating camera supported formats.

  5. Support media control.

  6. Support virtual channel.

  7. Support 1, 2 and 4 data lanes.

NVMEM (OTP)

nvmem/sp-ocotp*.c

  1. Support read OTP.

PinCtl / GPIO

pinctrl/sunplus/

  1. Support Linux pinctrl framework.

  2. Support generic helper bindings.

  3. Support pin-mux of all devices.

  4. Support all GPIO pins.

  5. Support interrupt pins.

PWM

pwm/pwm-sunplus.c

  1. Support set frequency and duty.

  2. Support set polarity.

  3. Support enable and disable.

Regulators

  1. regulator/rt5759-regulator.c

  2. regulator/sti8070x-regulator.c

  1. Support Linux regulator framework.

  2. CPU frequency scaling.

Remoteproc

remote/sp_remoteproc.c

  1. Support downloading firmware of CM4.

  2. Support start and stop CM4.

  3. Support rpmsg (virtual serial port).

Reset

reset/reset-sunplus.c

  1. Support reset functions for all devices.

HW RNG

char/hw_random/sp7350-rng.c

  1. Support generating random number.

RTC

rtc/rtc-sunplus.c

  1. Support set and read time.

  2. Support set and read alarm.

  3. Support alarm interrupt.

Semaphore

hwspinlock/sunplus_hwspinlock.c

  1. Support hardware lock and unlock.

SPI

spi/spi-dw*

  1. Support master mode RX and TX transferring.

  2. Support set clock frequency.

  3. Support mode 0, 1, 2 and 3.

  4. Support DMA mode.

SPI-NAND

mtd/nand/raw/sp_*

  1. Support Linux mtd framework.

  2. Support read and write standard 2k ECC sectors for 1 or 2 planes.

  3. Support read and write standard 4k ECC sectors for 1 plane only.

  4. Support block and chip erase.

  5. Support 4-bit operations.

  6. Support set clock frequency.

SPI-NOR

mtd/spi-nor/controllers/

sp-spi-nor.c

  1. Support Linux MTD framework.

  2. Support read and write operations.

  3. Support block and chip erase.

  4. Support set clock frequency.

SD / SDIO

mmc/host/sunplus_sd3.*

  1. Support Linux MMC framework.

  2. Support read and write operations.

  3. Support DMA mode.

  4. Support SDR25, SDR50 and SDR104 speeds.

  5. Support dynamic voltage-switching.

Thermal

thermal/sunplus_thermal.c

  1. Support Linux Thermal framework.

  2. Support Linux HW monitor.

  3. Support read temperature of chip.

  4. Chip calibration data stored in OTP.

USB2.0 EHCI

usb/host/ehci*-sunplus.*

  1. Support high-speed read and write operation.

USB2.0 OHCI

usb/host/ohci*-sunplus.*

  1. Support full-speed read and write operation.

USB2.0 PHY

phy/sunplus/phy-sunplus-usb2.c

  1. PHY driver of USB2.0.

USB2.0 UDC

usb/gadget/udc/sunplus_udc2.*

  1. Support device mode.

USB2.0 OTG

usb/phy/otg-sp7350-sunplus.c

  1. Support role switch between host mode and device mode.

  2. Support only HNP and SRP.

USB3.0 DRD

usb/dw3/

  1. Support super-speed, high-speed and full-speed access.

  2. Support host and device mode.

  3. Support dynamic-role switch.

USB3.0 extcon

extcon/extcon-usb-gpio-sunplus.c

  1. Support USB type C receptacle.

USB3.0 PHY

usb/phy/synopsysu3phy-sunplus.c

  1. PHY driver of USB3.0.

UART

tty/serial/sunplus-uart.c

  1. Support all standard Baud rate.

  2. Support non-standard Baud rate up to 3,000,000 bps.

  3. Support hardware flow-control for UART1 and UART2.

  4. Support system console and early console for UART0.

  5. Support system request (sysrq) for system console.

Video sensors

media/i2c/imx219.c

media/i2c/imx708.c

media/i2c/ov5640.c

media/i2c/ov5647.c

media/i2c/tp2815.c

  1. Support video sensors: imx219, imx708, ov5640, and ov5647.

  2. Support CVBS to mipi-csi bridge, tp2815.

VIP9000 (NPU)

media/platform/sunplus/vip9000/

  1. Support VIP9000 opoerations.

Video decoder (VC8000D nano)

media/platform/sunplus/

videocodec/

  1. Support H.264 decode.

    1. Support output formats:  byte stream, NAL stream, SVC stream

    2. Support resolution upto 1920*1080.

  2. Support JPEG decode.

    1. Support output formats: JFIF file format 1.02

    2. Support resolution upto 1920*1080.

  3. Support H.264 post-processing.

    1. Support output formats: YUYV422, YVYU422, UYVY422, VYUY422

  4. Support JPEG post-processing.

    1. Support output formats: YUYV422, YVYU422, UYVY422, VYUY422Drivers

      Folders or files

      Features

      8-bit NAND

      mtd/nand/raw/sp_paranand/

      Support mtd framework.

      Support read and write standard 2k/4k/8k ECC sectors.

      Support block and chip erase.

      ADC (SAR12B)

      iio/adc/sp-adc.c

      Support read external voltage.

      Support iio interface.

      Audio (I2S)

      sound/soc/sunplus/

      Support Linux ALSA framework.

      Support S16_LE format, stereo record and play.

      Support frequencies: 32kHz, 44.1kHz, 48kHz, 64kHz, 96kHz and 192kHz.

      Support digital volume.

Video encoder (VC8000E nano)

media/platform/sunplus/

videocodec/

  1. Support H.264 encode.

    1. Support input formats: YUV20P,NV12, NV21, YUYV422, UYVY422

    2. Support resolution upto 1920*1080.

  2. Support VP8 encode.

    1. Support input formats: YUV20P,NV12, NV21, YUYV422, UYVY422

    2. Support resolution upto 1920*1080.

  3. Support JPEG encode.

    1. Support input formats: YUV20P,NV12, NV21, YUYV422, UYVY422

    2. Support resolution: 96*32 ~ 8192*8192

Watchdog

watchdog/sunplus_wdt.c

  1. Support pretimeout function.

  2. Support nowayout function.

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/

  1. Support Linux ALSA framework.

  2. Support S16_LE format, stereo record and play.

  3. Support frequencies: 32kHz, 44.1kHz, 48kHz, 64kHz, 96kHz and 192kHz.

  4. Support digital volume.

Audio codec

  1. soc/codecs/es8316-sunplus.c

  1. Support stereo headset output.

  2. Support microphone input.

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 5.10.201 (wellslu@scdiu3) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP Thu Mar 7 11:48:47 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] 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] 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] 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] 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] 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] 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] 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] Reserved memory: created DMA memory pool at 0x0000000080000000, size 384 MiB
[    0.000000] OF: reserved mem: initialized node vcodec@80000000, compatible id shared-dma-pool
[    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] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x00000000efffffff]
[    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 0x0000000000000000-0x00000000000fffff]
[    0.000000]   node   0: [mem 0x0000000000100000-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-0x0000000097ffffff]
[    0.000000]   node   0: [mem 0x0000000098000000-0x00000000efffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000efffffff]
[    0.000000] cma: Reserved 16 MiB at 0x00000000ea000000
[    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 31 pages/cpu s86168 r8192 d32616 u126976
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 967680
[    0.000000] Kernel command line: console=ttyS0,115200 earlycon root=/dev/mmcblk0p8 rw rootwait
[    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: 2616828K/3932160K available (13310K kernel code, 3980K rwdata, 5440K rodata, 3200K init, 544K bss, 1028612K reserved, 286720K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    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] GIC: Using split EOI/Deactivate mode
[    0.000000] sp-clkc init
[    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.000003] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008289] Console: colour dummy device 80x25
[    0.012687] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=25000)
[    0.022989] pid_max: default: 32768 minimum: 301
[    0.027705] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.035069] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.043915] rcu: Hierarchical SRCU implementation.
[    0.049227] 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.061830] Detected VIPT I-cache on CPU1
[    0.061872] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[    0.070038] Detected VIPT I-cache on CPU2
[    0.070063] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    0.078202] Detected VIPT I-cache on CPU3
[    0.078224] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[    0.078277] smp: Brought up 1 node, 4 CPUs
[    0.114049] SMP: Total of 4 processors activated.
[    0.118771] CPU features: detected: Privileged Access Never
[    0.124366] CPU features: detected: LSE atomic instructions
[    0.129963] CPU features: detected: User Access Override
[    0.135297] CPU features: detected: 32-bit EL0 Support
[    0.140455] CPU features: detected: Common not Private translations
[    0.146752] CPU features: detected: RAS Extension Support
[    0.152173] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    0.160829] CPU features: detected: CRC32 instructions
[    0.165988] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    0.193601] CPU: All CPU(s) started at EL2
[    0.197658] alternatives: patching kernel code
[    0.203463] devtmpfs: initialized
[    0.212786] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.222512] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.235348] pinctrl core: initialized pinctrl subsystem
[    0.241110] NET: Registered protocol family 16
[    0.246544] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.253666] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.261552] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.269479] audit: initializing netlink subsys (disabled)
[    0.274952] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1
[    0.275265] thermal_sys: Registered thermal governor 'step_wise'
[    0.282797] cpuidle: using governor menu
[    0.292822] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.299620] ASID allocator initialised with 65536 entries
[    0.313157] SP7350 PinCtl by Sunplus Tech.(C) 2023
[    0.321268] iommu: Default domain type: Translated
[    0.331049] SCSI subsystem initialized
[    0.334826] usbcore: registered new interface driver usbfs
[    0.340279] usbcore: registered new interface driver hub
[    0.345608] usbcore: registered new device driver usb
[    0.351373] mc: Linux media interface: v0.10
[    0.355598] videodev: Linux video capture interface: v2.00
[    0.361102] pps_core: LinuxPPS API ver. 1 registered
[    0.366074] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.375260] PTP clock support registered
[    0.379401] sunplus,ocotp f8802380.otp: by Sunplus (C) 2020
[    0.385009] Advanced Linux Sound Architecture Driver Initialized.
[    0.391296] Bluetooth: Core ver 2.22
[    0.394819] NET: Registered protocol family 31
[    0.399264] Bluetooth: HCI device and connection manager initialized
[    0.405650] Bluetooth: HCI socket layer initialized
[    0.410545] Bluetooth: L2CAP socket layer initialized
[    0.415620] Bluetooth: SCO socket layer initialized
[    0.420745] clocksource: Switched to clocksource arch_sys_counter
[    0.758914] NET: Registered protocol family 2
[    0.763366] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.772048] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.780572] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.788642] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.796230] TCP: Hash tables configured (established 32768 bind 32768)
[    0.802790] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.809489] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.816720] NET: Registered protocol family 1
[    0.821307] RPC: Registered named UNIX socket transport module.
[    0.827195] RPC: Registered udp transport module.
[    0.831901] RPC: Registered tcp transport module.
[    0.836621] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.843997] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available
[    0.852914] Initialise system trusted keyrings
[    0.857397] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.865806] zbud: loaded
[    0.869227] NFS: Registering the id_resolver key type
[    0.874241] Key type id_resolver registered
[    0.878420] Key type id_legacy registered
[    0.882825] Key type cifs.idmap registered
[    0.886938] fuse: init (API version 7.32)
[    0.919931] Key type asymmetric registered
[    0.923967] Asymmetric key parser 'x509' registered
[    0.928877] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.936296] io scheduler mq-deadline registered
[    0.940842] io scheduler kyber registered
[    0.945240] usb 2.0 phy registered
[    0.948796] fbdev: sp_fbinfo not present
[    0.950122] dw_axi_dmac_platform f80fc000.dma-controller: DesignWare AXI DMA Controller, 16 channels
[    0.963521] ttyS f8801900.serial: sp_uart0's Rx is in PIO mode.
[    0.969413] ttyS f8801900.serial: sp_uart0's Tx is in PIO mode.
[    0.975356] f8801900.serial: ttyS0 at MMIO 0xf8801900 (irq = 18, base_baud = 1562500) is a sp_uart0
[    0.984531] printk: console [ttyS0] enabled
[    0.984531] printk: console [ttyS0] enabled
[    0.992827] printk: bootconsole [sunplus_uart0] disabled
[    0.992827] printk: bootconsole [sunplus_uart0] disabled
[    1.007215] loop: module loaded
[    1.008261] stmmaceth f8103000.stmmac: no reset control found
[    1.008425] stmmaceth f8103000.stmmac: User ID: 0x10, Synopsys ID: 0x37
[    1.011499] stmmaceth f8103000.stmmac:       DWMAC1000
[    1.016180] stmmaceth f8103000.stmmac: DMA HW capability register supported
[    1.023123] stmmaceth f8103000.stmmac: RX Checksum Offload Engine supported
[    1.030067] stmmaceth f8103000.stmmac: COE Type 2
[    1.034754] stmmaceth f8103000.stmmac: TX Checksum insertion supported
[    1.041266] stmmaceth f8103000.stmmac: Wake-Up On Lan supported
[    1.047195] stmmaceth f8103000.stmmac: Normal descriptors
[    1.052550] stmmaceth f8103000.stmmac: Ring mode enabled
[    1.057843] stmmaceth f8103000.stmmac: Enable RX Mitigation via HW Watchdog Timer
[    1.065309] stmmaceth f8103000.stmmac: device MAC address f6:32:06:b4:3e:c7
[    1.264024] register sunplus_usb_otg0_driver
[    1.269514] sunplus-usb-synopsys-u3phy f80bd000.uphy: sunplus_usb_synopsys_u3phy_probe
[    1.878990] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.879052] ehci-platform: EHCI generic platform driver
[    1.879600] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.885709] ohci-platform: OHCI generic platform driver
[    1.891124] register ehci0_hcd_sunplus_driver
[    1.895343] ehci0-sunplus f8102100.usb: Generic Platform EHCI Controller
[    1.901941] ehci0-sunplus f8102100.usb: new USB bus registered, assigned bus number 1
[    1.909795] ehci0-sunplus f8102100.usb: irq 37, io mem 0xf8102100
[    1.922742] ehci0-sunplus f8102100.usb: USB 2.0 started, EHCI 1.10
[    1.923241] hub 1-0:1.0: USB hub found
[    1.925746] hub 1-0:1.0: 1 port detected
[    1.929907] register ohci0_hcd_sunplus_driver
[    1.934061] ohci0-sunplus f8102080.usb: Generic Platform OHCI Controller
[    1.940650] ohci0-sunplus f8102080.usb: new USB bus registered, assigned bus number 2
[    1.948502] ohci0-sunplus f8102080.usb: irq 38, io mem 0xf8102080
[    2.008111] hub 2-0:1.0: USB hub found
[    2.008170] hub 2-0:1.0: 1 port detected
[    2.008507] usbcore: registered new interface driver cdc_acm
[    2.010224] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    2.018242] usbcore: registered new interface driver usb-storage
[    2.024236] usbcore: registered new interface driver ch341
[    2.029672] usbserial: USB Serial support registered for ch341-uart
[    2.035928] usbcore: registered new interface driver cp210x
[    2.041474] usbserial: USB Serial support registered for cp210x
[    2.047389] usbcore: registered new interface driver ftdi_sio
[    2.053105] usbserial: USB Serial support registered for FTDI USB Serial Device
[    2.060434] usbcore: registered new interface driver option
[    2.065951] usbserial: USB Serial support registered for GSM modem (1-port)
[    2.072953] usbcore: registered new interface driver pl2303
[    2.078451] usbserial: USB Serial support registered for pl2303
[    2.084438] sp_udc_probe start, port_num:0, ffffff8001b81000
[    2.090351] mousedev: PS/2 mouse device common for all mice
[    2.097117] sp7350-rtc f8801180.rtc: registered as rtc0
[    2.101045] sp7350-rtc f8801180.rtc: setting system clock to 1970-01-03T23:04:09 UTC (255849)
[    2.109254] [RTC] Info: sp7350-rtc loaded
[    2.113307] i2c /dev entries driver
[    2.116913] sp7350_display_probe: disp probe ...
[    2.121323] sp7350_display_probe: disp probe 4 irq
[    2.126362] connect_dev_name LT8912B-HDMI (1920x1080)
[    2.131140] sp7350_display_probe: disp probe  set layer blending
[    2.137481] sp7350_display_probe: disp probe done
[    2.189859] sp7350_disp_lt8912_probe
[    2.190076] hantro_dec f8168000.hantro_vc8000d: dec/pp kernel module.
[    2.190134] hantro_dec f8168000.hantro_vc8000d: major:243 minor:0
[    2.194912] hantro_dec f8168000.hantro_vc8000d: Core 0 HW ID=0x6e645000
[    2.201429] hantro_dec f8168000.hantro_vc8000d: Supported HW found at 0xf8168000
[    2.203752] usb 1-1: new high-speed USB device number 2 using ehci0-sunplus
[    2.208812] hantro_dec f8168000.hantro_vc8000d: clock enabled
[    2.221480] hantro_dec f8168000.hantro_vc8000d: reset okay
[    2.226966] hantro_dec f8168000.hantro_vc8000d: core[0] has H264
[    2.232934] hantro_dec f8168000.hantro_vc8000d: core[0] has JPEG
[    2.238927] hantro_dec f8168000.hantro_vc8000d: core[0] has PP
[    2.244738] hantro_dec f8168000.hantro_vc8000d: reset hardware
[    2.250678] hantro_enc f80ff000.hantro_vc8000e: major:242 minor:0
[    2.256705] hantro_enc f80ff000.hantro_vc8000e: mem iobaseaddr = f80ff000h
[    2.263578] hantro_enc f80ff000.hantro_vc8000e: mem mapping = ffffffc011ccd000h
[    2.270953] hantro_enc f80ff000.hantro_vc8000e: mem iosize = fffh
[    2.277119] hantro_enc f80ff000.hantro_vc8000e: clock enabled
[    2.282847] hantro_enc f80ff000.hantro_vc8000e: reset okay
[    2.288313] hantro_enc f80ff000.hantro_vc8000e: HW at base <0xf80ff000> with ID <0x6e655000>
[    2.297035] memalloc_d video_codec_dmem: major:241 minor:0
[    2.302321] memalloc_d video_codec_dmem: module init
[    2.307150] memalloc_d video_codec_dmem: SW build 1000
[    2.312356] memalloc_d video_codec_dmem: linear memory base = 0x74000000
[    2.319125] memalloc_d video_codec_dmem: linear memory size = 64 MB
[    2.325483] memalloc_d video_codec_dmem: Total size 64 MB; 4096 chunks of size 16384
[    2.333333] memalloc_e video_codec_emem: allocation method: DYNAMIC
[    2.339443] memalloc_e video_codec_emem: major:240 minor:0
[    2.344995] memalloc_e video_codec_emem: SW build 1000
[    2.346914] hub 1-1:1.0: USB hub found
[    2.350119] memalloc_e video_codec_emem: linear memory base = 0x60000000
[    2.354344] hub 1-1:1.0: 4 ports detected
[    2.360619] memalloc_e video_codec_emem: linear memory size = 327680 MB
[    2.371297] memalloc_e video_codec_emem: chunk size = 4 KB, chunks = 1 configured
[    2.378865] hantro_codec video_codec: Video codec clock enabled
[    2.384666] hantro_codec video_codec: Video codec reset okay
[    2.390385] usbcore: registered new interface driver uvcvideo
[    2.396033] USB Video Class driver (1.1.1)
[    2.402960] Bluetooth: HCI UART driver ver 2.3
[    2.404542] Bluetooth: HCI UART protocol H4 registered
[    2.438515] spsdc f8003e80.mmc: Got CD GPIO
[    2.524234] mmc0: new DDR MMC card at address 0001
[    2.525137] mmcblk0: mmc0:0001 88A398 7.28 GiB
[    2.525488] mmcblk0boot0: mmc0:0001 88A398 partition 1 4.00 MiB
[    2.528380] mmcblk0boot1: mmc0:0001 88A398 partition 2 4.00 MiB
[    2.534278] mmcblk0rpmb: mmc0:0001 88A398 partition 3 4.00 MiB, chardev (239:0)
[    2.537715] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    2.549621] usbcore: registered new interface driver usbhid
[    2.550121]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8
[    2.553439] usbhid: USB HID core driver
[    2.561800] remoteproc remoteproc0: f800817c.remoteproc is available
[    2.568751] optee: probing for conduit method.
[    2.572387] optee: revision 3.13 (150e2ba5)
[    2.572667] optee: initialized driver
[    2.580362] usbcore: registered new interface driver snd-usb-audio
[    2.586780] sunplus-audio f8800480.audio: sunplus_audio_probe
[    2.592170] sunplus-audio f8800480.audio: sunplus_i2s_register
[    2.598069] sunplus-audio f8800480.audio: sunplus_tdm_register
[    2.604153] aud-codec aud-codec: aud_codec_probe
[    2.604275] mmc2: error -110 whilst initialising SDIO card
[    2.614927] snd_spsoc_audio_init , create soc_card
[    2.618946] soc-audio soc-audio: ASoC: machine sp-aud should use snd_soc_register_card()
[    2.627279] debugfs: Directory 'f8800480.audio' with parent 'sp-aud' already present!
[    2.635850] NET: Registered protocol family 10
[    2.636279] mmc1: new ultra high speed SDR25 SDHC card at address 0001
[    2.639767] usb 1-1.1: new low-speed USB device number 3 using ehci0-sunplus
[    2.639976] Segment Routing with IPv6
[    2.640019] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.640376] NET: Registered protocol family 17
[    2.640504] Bluetooth: RFCOMM TTY layer initialized
[    2.640521] Bluetooth: RFCOMM socket layer initialized
[    2.640536] Bluetooth: RFCOMM ver 1.11
[    2.640545] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.640546] Bluetooth: BNEP filters: protocol multicast
[    2.640553] Bluetooth: BNEP socket layer initialized
[    2.640556] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.640561] Bluetooth: HIDP socket layer initialized
[    2.640637] Key type dns_resolver registered
[    2.640650] Key type ceph registered
[    2.640805] libceph: loaded (mon/osd proto 15/24)
[    2.641128] registered taskstats version 1
[    2.641135] Loading compiled-in X.509 certificates
[    2.646350] mmcblk1: mmc1:0001 SD16G 14.5 GiB
[    2.649199] fbdev: fb create 1920x1080, cmod 8(RGB565)
[    2.649217] sp7350-fb fb_disp_device: assigned reserved memory node disp_reserve@5c000000
[    2.742148] input: HID 04f3:0103 as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.0/0003:04F3:0103.0001/input/input0
[    2.747327]  mmcblk1: p1
[    2.757082] hid-generic 0003:04F3:0103.0001: input: USB HID v1.11 Keyboard [HID 04f3:0103] on usb-f8102100.usb-1.1/input0
[    2.770436] fbcon: Deferring console take-over
[    2.774349] input: HID 04f3:0103 Consumer Control as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.1/0003:04F3:0103.0002/input/input1
[    2.774860] fbdev: fb res 1920x1080, size 8298496 + 1024
[    2.787709] input: HID 04f3:0103 System Control as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.1/0003:04F3:0103.0002/input/input2
[    2.805402] hid-generic 0003:04F3:0103.0002: input: USB HID v1.11 Device [HID 04f3:0103] on usb-f8102100.usb-1.1/input1
[    2.880797] usb 1-1.3: new low-speed USB device number 4 using ehci0-sunplus
[    2.969691] input: Logitech USB Optical Mouse as /devices/platform/f8102100.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C06A.0003/input/input3
[    2.971298] hid-generic 0003:046D:C06A.0003: input: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-f8102100.usb-1.3/input0
[    3.179158] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.180837] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.182282] [dhd] _dhd_module_init: in Dongle Host Driver, version 101.10.361.36 (wlan=r892223-20231114-1)
[    3.182282] drivers/net/wireless/bcmdhd compiled on Mar  7 2024 at 11:50:05
[    3.182282]
[    3.200282] [dhd] STATIC-MSG) dhd_static_buf_init : 101.10.361.36 (wlan=r892223-20231107-1)
[    3.208640] [dhd] STATIC-MSG) dhd_init_wlan_mem : prealloc ok for index 0: 1102848(1077K)
[    3.216838] [dhd] no wifi platform data, skip
[    3.221111] [dhd] dhd_wifi_platform_load: Enter
[    3.225624] [dhd] DHD wifi platform data is required for Android build
[    3.232134] [dhd] DHD registering bus directly
[    3.236560] [dhd] bcmsdh_register: register client driver
[    3.241970] [dhd] _dhd_module_init: Exit err=0
[    3.246371] ALSA device list:
[    3.249321]   #0: Q645/Q654, Sunplus Technology Inc.
[    3.254388] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.262871] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    3.292263] EXT4-fs (mmcblk0p8): mounted filesystem with ordered data mode. Opts: (null)
[    3.292354] VFS: Mounted root (ext4 filesystem) on device 259:0.
[    3.295458] devtmpfs: mounted
[    3.299212] Freeing unused kernel memory: 3200K
[    3.302693] Run /sbin/init as init process
/etc/init.d/rcS starts...
Mounting other filesystems ...
rc.extra [bg]
******* resize2fs /dev/mmcblk0p8 ****************
extra done
resize2fs 1.46.2 (28-Feb-2021)
[    3.601208] EXT4-fs (mmcblk0p8): resizing filesystem from 142490 to 1899447 blocks
Filesystem at /dev/mmcblk0p8 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
[    3.735549] EXT4-fs (mmcblk0p8): resized filesystem to 1899447
The filesystem on /dev/mmcblk0p8 is now 1899447 (4k) blocks long.

[    3.762893] remoteproc remoteproc0: powering up f800817c.remoteproc
[    3.766193] remoteproc remoteproc0: Booting fw image firmware, size 244296
[    3.769557] virtio_rpmsg_bus virtio0: rpmsg host is online
[    3.773861]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
[    3.779871] remoteproc remoteproc0: remote processor f800817c.remoteproc is now up
[    3.797740] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x0
[    3.798065] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x1
[    3.801847] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x2
Boot CM4 firmware by remoteproc
End of /etc/init.d/rcS

login[148]: root login on 'console'
~ # [    3.893937] fbcon: Taking over console
[    3.895107] Console: switching to colour frame buffer device 240x67

~ # df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
/dev/root            ext4            7.0G    342.9M      6.4G   5% /
devtmpfs             devtmpfs        1.2G         0      1.2G   0% /dev
tmpfs                tmpfs           1.4G         0      1.4G   0% /dev/shm
tmpfs                tmpfs           1.4G         0      1.4G   0% /tmp
~ #

  • No labels