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
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 | media/platform/sunplus/display/ sp7350/ |
|
eMMC | mmc/host/sunplus-mmc.* |
|
Ethernet | net/ethernet/stmicro/stmmac/ |
|
I2C | i2c/busses/i2c-designware-*.c |
|
Mailbox | mailbox/sunplus_ipc.* |
|
MIPI/CSI-RX | media/platform/sunplus/mipicsi/ |
|
NVMEM (OTP) | nvmem/sp-ocotp*.c |
|
PinCtl / GPIO | pinctrl/sunplus/ |
|
PWM | pwm/pwm-sunplus.c |
|
Remoteproc | remote/sp_remoteproc.c |
|
Reset | reset/reset-sunplus.c |
|
RNG | char/hw_random/sp7350-rng.c |
|
RT5759 (PMIC) | regulator/rt5759-regulator.c |
|
RTC | rtc/rtc-sunplus.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.c |
|
VIP9000 (NPU) | media/platform/sunplus/vip9000/ |
|
Video decoder - | media/platform/sunplus/ videocodec/ |
|
Video encoder - | media/platform/sunplus/ videocodec/ |
|
Watchdog | watchdog/sunplus_wdt.c |
|
For sound driver, due to historical reason, it locates at “soc/”, instead of at drivers/
Drivers | Folders or files | Features |
Audio (I2S) | sound/soc/sunplus/ |
|
SP7350 platform-specific 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 |