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

Key features and characteristics of the Linux kernel include:

  1. Monolithic Architecture: The Linux kernel follows a monolithic architecture, meaning that most of the essential operating system functions, such as process management, memory management, device drivers, and file systems, are implemented in a single, integrated piece of software.

  2. Multiuser and Multitasking Support: The Linux kernel supports multiple users and the ability to run multiple processes concurrently. It provides efficient process scheduling, allowing various tasks to run simultaneously on a system.

  3. Hardware Abstraction: The kernel abstracts the underlying hardware, providing a standardized interface for applications and higher-level components. This abstraction allows Linux to run on a wide range of hardware architectures and devices.

  4. Device Drivers: The Linux kernel includes a comprehensive set of device drivers to support a diverse range of hardware components. These drivers enable the operating system to interact with peripherals, storage devices, network interfaces, and other hardware.

  5. Memory Management: The kernel manages the system's memory, allocating and deallocating memory as needed by processes. It employs virtual memory techniques to provide each process with its own address space while efficiently utilizing physical memory.

  6. File Systems: Linux supports various file systems, including ext4, Btrfs, XFS, and more. The kernel handles file I/O operations, providing a consistent interface for interacting with files and directories.

  7. Security Features: The Linux kernel includes security features such as user and group permissions, access control lists (ACLs), and capabilities. Security modules like SELinux (Security-Enhanced Linux) and AppArmor can be integrated for additional access controls.

  8. Network Stack: Linux features a robust networking stack, supporting protocols such as TCP/IP. This facilitates networking capabilities, allowing Linux systems to function as servers, routers, and other networked devices.

  9. Open Source and Community-Driven Development: The Linux kernel is developed collaboratively by a global community of developers. Contributions and improvements come from individuals, organizations, and companies, fostering innovation and continuous development.

  10. Scalability: The Linux kernel is highly scalable, supporting a broad spectrum of devices, from small embedded systems to large-scale servers and clusters.

The Linux kernel serves as the foundation for numerous Linux distributions, each tailored to specific use cases. Its stability, performance, and open nature make it a popular choice for a wide range of computing environments, from desktops and servers to embedded systems and supercomputers.

Linux is an open-source Unix-like operating system. Linus Torvalds first released its kernel on October 5, 1991. Combined with other utilities, Linux has become a complete operating system. It supports various computer architectures, and anyone can freely use, modify, and redistribute it as long as they adhere to the GNU General Public License. Linux manages all devices on the system, including the CPU, interrupt controller, timer, and DRAM, while all applications run under its management.

Drivers locations and features

Drivers

Folders or files

Features

8-bit NAND

drivers/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)

drivers/iio/adc/sp-adc.c

  1. Support read external voltage.

  2. Support iio interface.

Audio (I2S)

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

AXI DMA

drivers/dma/dw-axi-dmac/

  1. Support Linux DMA Engine framework.

  2. Support memory-to-memory copy.

AXI Monitor

drivers/soc/sunplus/

 

CB DMA

drivers/dma/sp_cbdma.c

 

Clock

drivers/clk/clk-sp7350.c

  1. Support Linux Common Clock Framework.

  2. Support clock functions for all devices.

CPUFreq

drivers/cpufreq/sp7350-cpufreq.c

  1. Support cpufreq driver (CPU CLK rate) with RT5759 regulator driver (CPU voltage) for Q654 EVB.

CPUIdle

drivers/cpuidle/cpuidle-psci.c

 

Crypto Engine

drivers/crypto/sunplus/

  1. Support RSA function.

  2. Support AES function.

  3. Support HASH function.

Display

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

eMMC

drivers/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

drivers/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

drivers/i2c/busses/i2c-designware-*.c

  1. Support RX and TX transferring.

  2. Support 100kHz and 400kHz speeds.

Interrupt Controller

drivers/irqchip/irq-gic.c

 

Mailbox

drivers/mailbox/sunplus_ipc.*

  1. Support communication between CA55 and CM4.

  2. Support normal mode (software).

  3. Support direction mode (hardware).

MIPI/CSI-RX

drivers/media/platform/sunplus/mipicsi/
drivers/media/platform/sunplus/video/

  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 speed upto 1.5G bps.

  8. Support 1, 2 and 4 data lanes.

NVMEM (OTP)

drivers/nvmem/sp-ocotp*.c

  1. Support read OTP.

PinCtl / GPIO

drivers/pinctrl/sunplus/

  1. Support Linux pinctrl framework.

  2. Support pin-mux of all devices.

  3. Support all GPIO pins.

  4. Support interrupt pins.

PWM

drivers/pwm/pwm-sunplus.c

  1. Support set frequency and duty.

  2. Support set polarity.

  3. Support enable and disable.

Remoteproc

drivers/remote/sp_remoteproc.c

  1. Support downloading firmware of CM4.

  2. Support start and stop CM4.

  3. Support rpmsg (virtual serial port).

Reset

drivers/reset/reset-sunplus.c

  1. Support reset functions for all devices.

RNG

drivers/char/hw_random/sp7350-rng.c

  1. Support generating random number.

RT5759 (PMIC)

drivers/regulator/rt5759-regulator.c

 

RTC

drivers/rtc/rtc-sunplus.c

  1. Support set and read time.

  2. Support set and read alarm.

  3. Support alarm interrupt.

Semaphore

drivers/hwspinlock/sunplus_hwspinlock.c

  1. Support hardware lock and unlock.

SPI

drivers/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

drivers/mtd/nand/raw/sp_*

  1. Support Linux mtd framework.

  2. Support read and write standard 2k ECC sectors.

  3. Support block and chip erase.

  4. Support 4-bit operations.

  5. Support set clock frequency.

SPI-NOR

drivers/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

drivers/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 voltage-switching.

Thermal

drivers/thermal/sunplus_thermal.c

  1. Support read temperature of chip.

  2. Chip calibration data stored in OTP.

USB2.0 EHCI

drivers/usb/host/ehci*-sunplus.*

  1. Support high-speed read and write operation.

USB2.0 OHCI

drivers/usb/host/ohci*-sunplus.*

  1. Support full-speed read and write operation.

USB2.0 PHY

driver/phy/sunplus/phy-sunplus-usb2.c

USB2.0 UDC

drivers/usb/gadget/udc/sunplus_udc2.*

  1. Support device mode.

USB2.0 OTG

drivers/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

drivers/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

drivers/extcon/extcon-usb-gpio-sunplus.c

  1. Support USB type C receptacle.

USB3.0 PHY

drivers/usb/phy/synopsysu3phy-sunplus.c

UART

drivers/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).

VIP9000 (NPU)

drivers/media/platform/sunplus/vip9000/

  1. Support VIP9000 opoerations.

Video decoder
(VC8000D_nano)

drivers/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, VYUY422

Video encoder
(VC8000E_nano)

drivers/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

drivers/watchdog/sunplus_wdt.c

  1. Support pretimeout function.

  2. Support nowayout function.

Other files

Type

Folders

Files

 Descriptions

dts

arch/arm64/boot/dts/sunplus/

 sp7350-ev.dts

For Evaluation board

 sp7350-dm.dts

For Demo board

defconfig files

arch/arm64/configs/

sp7350_emmc_dm_defconfig

sp7350_sdcard_dm_defconfig

sp7350_emmc_ev_defconfig

sp7350_sdcard_ev_defconfig

sp7350_nand_ev_defconfig

sp7350_pnand_ev_defconfig

  • No labels