logo
0
0
Login

Phytium-Standalone-SDK

v1.4.0 ReleaseNote

如需Phytium全系CPU的软件适配支持,请联系 linan1284@phytium.com.cn

飞腾腾云S系列高性能服务器CPU

飞腾腾锐D系列高效能桌面CPU

飞腾腾珑E系列高端嵌入式CPU

1. 项目概要

1.1 仓库介绍

本项目代码仓库整体共分为两个分支: master 分支:开发分支,用于保存最新的协作开发代码以及bug修复后的代码。其只要求保障新功能基本正确并且能够满足基本的使用需求,并没有经过系统性和复杂条件下的测试。 release 分支:发布分支,包含核心启动代码、芯片外设驱动、用户使用例程和构建的脚本工具。用于保存经过系统性测试的代码并对外发布版本,默认下载此分支的代码。

1.2 基本介绍

本项目发布了 Phytium 系列 CPU 的 嵌入式软件开发工具包,包括板级支持包、第三方开源中间件、交叉编译构建工具、及其 Baremetal 参考例程,在支持多平台裸机应用开发的基础上,能够为多种RTOS提供外设驱动和配置构建工具。

LetterShell

1.3 系统架构

本项目的整体设计如下所示,自下而上可以分为平台层、组件层、框架层和应用层。

Framework

  • 平台层(Platform)在整个软件框架中位于最底层,提供了基本数据结构类型定义、驱动参数标定、硬件平台耦合的寄存器自检、板级启动、CPU 内存虚拟等功能
  • 组件层(Component)在整个软件框架中位于中间位置,向下依赖于平台层提供的参数配置与内存方案,向上提供应用开发与模块测试的支持
  • 接口构建层(Framework)为开发主机提供了开发环境,支持SDK安装,应用工程配置和二进制文件构建及烧录等工具。
  • 应用层(Application)提供了应用开发模板和例程,帮助开发者迅速熟悉SDK的使用,进行不同类型的应用程序开发

1.4 源代码结构

. ├── standalone.kconfig --> 配置定义 ├── LICENSE --> 版权声明 ├── README.md --> 使用说明 ├── arch │   └── armv8 --> 架构相关 ├── board │   ├── e2000d_demo │   ├── e2000q_demo │   ├── d2000_test │   ├── ft2004_dsk │   ├── phytiumpi_firefly │   ├── pd2308_demo │   ├── pd2408_test_a │   ├── pd2408_test_b │   └── user --> 板级IO复用,初始化和用户定义相关 ├── common │   ├── fprintf.c │   ├── fprintf.h │   ├── fsleep.c │   └── fsleep.h --> 通用方法 ├── doc │   ├── ChangeLog.md --> 修改记录 │   └── reference --> 接口说明文档 ├── drivers │   ├── can │   ├── dma │   ├── ... │   └── watchdog --> 外设驱动 ├── example --> 裸机例程 ├── lib │   ├── Kconfiglib │   └── libc --> 依赖库 ├── scripts ├── soc │   ├── pd1904 | ├── pe220x │   ├── pd2308 │   ├── pd2408 │   ├── ps2316 │   └── pd2008 --> soc平台相关 ├── third-party │   └── letter-shell-3.1 --> 第三方库 ├── tools ├── install.py --> 安装脚本 └── requirements.txt --> python环境依赖组件

2. 快速入门

  • 目前支持在Windows和Linux上使用SDK,支持在x86_64和ARM AARCH64设备上完成交叉编译

windowslinux输入图片说明phystudio


3. 硬件参考

3.1 PD1904

PD1904 是一款面向桌面应用的高性能通用 4 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。主要技术特征如下:

  • 兼容 ARM v8 64 位指令系统,兼容 32 位指令
  • 支持单精度、双精度浮点运算指令
  • 支持 ASIMD 处理指令
  • 集成 2 个 DDR4 通道,可对 DDR 存储数据进行实时加密
  • 集成 34 Lane PCIE3.0 接口:2 个 X16(每个可拆分成 2 个 X8),2 个 X1
  • 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应
  • 集成 1 个 SD 卡控制器,兼容 SD 2.0 规范
  • 集成 加密计算单元
  • 集成 4 个 UART,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通 用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO)
  • 集成温度传感器

3.2 PD2008

PD2008 是一款面向桌面应用的高性能通用 8 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。存储系统包含 Cache 子系统和 DDR,I/O 系统包含 PCIe、高速 IO 子系统、千兆位以太网 GMAC 和低速 IO 子系统,主要技术特征如下,

  • 兼容 ARM v8 64 位指令系统,兼容 32 位指令
  • 支持单精度、双精度浮点运算指令
  • 支持 ASIMD 处理指令
  • 集成 2 个 DDR 通道,支持 DDR4 和 LPDDR4,可对 DDR 存储数据进行实时加密
  • 集成 34 Lane PCIE3.0 接口:2 个 X16(每个可拆分成 2 个 X8),2 个 X1
  • 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应
  • 集成 1 个 SD 卡控制器,兼容 SD 2.0 规范
  • 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec
  • 集成 SM2、SM3、SM4、SM9 模块
  • 集成 4 个 UART,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO)
  • 集成 2 个温度传感器

3.3 PE2204

  • PE2204 集成2个FTC664核和2个FTC310核。主要技术特征如下:
  • 兼容ARM v8 64 位指令系统,兼容32 位指令
  • 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA
  • 支持单精度、双精度浮点运算指令
  • 两个 FTC664 核各包含 1MB 私有 L2 Cache,由两个 FTC310 核组成的Cluster 内含 256KB 共享的 L2 Cache
  • 集成1个DDR4 通道
  • 集成6Lane PCIE3.0 接口(X4+2X1 、X2+4X2、6*X1)
  • 集成4个1000M以太网控制器,支持2路SGMII接口和2路SGMII/RGMII接口
  • 集成3路USB2.0(OTG)和2路USB3.0(兼容 2.0)
  • 集成2路SATA3.0模块
  • 2路 DisplayPort1.4 接口
  • 集成常用低速接口:WDT、QSPI、PWM、Nand、SD/SDIO/eMMC 、SPI_M、UART、I2C、I2S、MIO、CAN-FD、GPIO、LocalBus、Timer

3.4 PE2202

  • PE2202 集成 2 个 FTC310 核。主要技术特征如下:
  • 兼容ARM v8 64 位指令系统,兼容32 位指令
  • 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA
  • 支持单精度、双精度浮点运算指令
  • L2 Cache 有256KB
  • 集成1个DDR4 通道
  • 集成4 Lane PCIE3.0 接口(4X1)
  • 集成4个1000M以太网控制器,支持 2 路 SGMII 接口和 2 路 SGMII/RGMII 接口
  • 集成3路USB2.0(OTG)和2路USB3.0(兼容 2.0)
  • 集成2路SATA3.0模块
  • 2路 DisplayPort1.4 接口
  • 集成常用低速接口:WDT,QSPI,PWM,Nand,SD/SDIO/eMMC ,SPI_M,UART,I2C,MIO,CAN-FD,GPIO,LocalBus,Timer

3.5 PE2201

  • PE2201 集成 1 个 FTC310 核,单核结构。主要技术特征如下:
  • 兼容ARM v8 64 位指令系统,兼容32 位指令
  • 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA
  • 支持单精度、双精度浮点运算指令
  • L2 Cache 有256KB
  • 集成1个DDR4 通道
  • 集成2 Lane PCIE3.0 接口(2X1)
  • 集成3个1000M以太网控制器,支持1路SGMII接口和2路RGMII/RMII接口
  • 集成1路USB2.0(Device)和2路USB2.0(OTG)
  • 2路 DisplayPort1.4 接口
  • 集成常用低速接口:WDT、DMAC、PWM、QSPI、SD/SDIO/eMMC、SPI Master、UART、I2C、MIO、I3C、PMBUS、GPIO、SGPIO、One-Wire、Timer、One-Wire

3.7 PD2308

3.8 PS2316

3.9 PD2408

PD2408 是一款国产自主的处理器芯片,主要适用于笔记本电脑,也可用于独显,低成本台式机。存储系统包含 Cache 子系统和 DDR,I/O 系统包含 PCIe、高速 IO 子系统、千兆位以太网 GMAC 和低速 IO 子系统,主要技术特征如下,

  • 兼容 ARM v8 64 位指令系统,兼容 32 位指令
  • 支持半精度、单精度、双精度浮点运算指令
  • 支持 NEON处理指令
  • 支持 DDR4 和 LPDDR4,支持 DDR5 和 LPDDR5
  • 集成 12 Lane PCIE3.0 接口
  • 集成 1 路 以太网口
  • 集成 NPU
  • 集成 1 个 SD 卡控制器,兼容 SD 3.0 / EMMC 5.1规范
  • 集成 3 路USB3.2 gen2, 集成 2 路USB 3.2 gen1, 集成 2 路USB2.0
  • 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec
  • 集成 SM2、SM3、SM4 模块
  • 集成 3 个 UART,32 个 GPIO,6 个 I2C,1 个 QSPI,2 个通用 SPI,2 个 WDT,2 个PWM,2 个 sata3.0
  • 集成 2 个温度传感器
  • 集成TRNG真随机数生成器、HASH哈希算法加速器

4 例程支持情况

aiPlatform SupportedPlatform DevelopingComponent
TINYMAIXPD1904、PE220X、PD2008、PD2308、PS2316tinymaix_demo
PeripheralsPlatform SupportedPlatform DevelopingComponent
Generic Interrupt Controller v3PD1904、PE220X、PD2008、PD2308、PS2316、PD2408gicv3
Generic TimerPD1904、PE220X、PD2008、PD2308、PS2316、PD2408generic_timer
UART (PrimeCell PL011)PD1904、PE220X、PD2008、PD2308、PS2316serial
ADCPE220Xadc
CANPD1904、PE220X、PD2008、PD2308can/can
DDMAPE220X、seria/ddma
GDMAPE220X、PD2308、PD2408dma/gdma
IOPADPE220X、、PD2408iopad
IPCPE220X、ipc/semaphore
I2CPE220X、PD2308、PD2408PD1904/PD2008i2c
I2SPE220X、PD2308、PD2408i2s
PINPE220X、PD2008、PD2308PD1904/PD2008pin
QSPI (Nor Flash)PD1904、PE220X 、PD2008、PD2308、PD2408qspi
SPIPD1904、PE220X 、PD2008、PD2308、PD2408spi
TIMER & TACHOPE220X、PD2308、PD2408timer&tacho
MIOPE220X、i2c & serial
SDMMCPD1904、PD2008sd
SDIOPE220X、PD2308、PD2408sd
PCIE RCPE220X、PD1904、PD2008、PD2308、PS2316pcie rc
SATAPE220X、PD2308、PD2408sata/sata_controller
SATA PCIEPD1904、PE220X、PD2008、PD2308、PD2408sata/sata_pcie
PWMPE220X、PD2308、PD2408pwm
WDTPD1904、PD2008、PE220X、PD2308、PS2316、PD2408wdt
USB(Device)PE220X、PD2408usb/usb_device
MediaPlatform SupportedPlatform DevelopingComponent
DPPE220Xmedia_test
LVGLPE220Xlvgl_demo_test
SECPlatform SupportedPlatform DevelopingComponent
RNDPE220XPD2408trng_test
SHAPE220Xsha_test
NetworkPlatform SupportedPlatform DevelopingComponent
LWIPPD1904、PD2008、PE220Xlwip_startup
RAWPD1904、PE220X、PD2008raw_api
StoragePlatform SupportedPlatform DevelopingComponent
FATFSPD1904、PE220X、PD2008、PD2308、PD2408fatfs
MEMORY_POOLPD1904、PE220X、PD2008、PD2308、PS2316、PD2408memory_pool_test
SFUDPD1904、PE220X、PD2308、PD2408PD2008sfud
SPIFFSPD1904、PE220X、PD2308 、PD2408PD2008spiffs
SystemPlatform SupportedPlatform DevelopingComponent
TEMPLATEPD1904、PE220X、PD2008、PD2308、PS2316、PD2408template_test
AMP_TOOLSPE220X、PD2308、PD2008、PS2316、PD2408amp/amp_tools_example
LIBMETALPE220X、PD2008、PD1904、PD2308、PS2316、PD2408amp/libmetal_test
AMPPE220X、PD1904、PD2008、PD2308、PS2316、PD2408amp/openamp、amp/openamp_echo_remoteproc_load
PSCIPD1904、PE220X、PD2008、PD2308、PS2316、PD2408arch/armv8/psci、arch/armv8/mmu、arch/armv8/pmu
SCMIPE220X、PD2308、PD2408scmi_mhu
ATOMICPD1904、PE220X、PD2008、PD2308、PS2316、PD2408atomic
C++PD1904、PE220X、PD2008、PD2308、PS2316cxx/cryptopp&get-start
SHELLPD1904、PE220X、PD2008、PD2308、PS2316、PD2408letter_shell_test
NESTED INTERRUPTPD1904、PE220X、PD2008、PD2308、PS2316nested_interrupt
CMSISPD1904、PE220X、PD2008、PD2308、PS2316cmsis
DELAYPE220X、delay
NEWLIBPD1904、PE220X、PD2008、PD2308、PS2316newlib
UNWINDPD1904、PE220X、PD2008、PD2308、PS2316unwind
FJTAGPE220Xjtag_debugging
ACPIPD2308acpi_devices/acpi_utilities
FDTPD2308fdt_devices
PCI devicePlatform SupportedPlatform DevelopingComponent
-------------------------------------------------------------------------------------------------------
E1000PD1904、PE220X、PD2008、PD2308、PS2316、PD2408example\network\lwip_startup
NVMEPD1904、PE220X、PD2008、PD2308、PS2316、PD2408example\peripherals\pcie

5. API指南

5.1 DRIVERS

5.1.1 FI2C

5.1.2 FPL011

5.1.3 FRTC

5.1.4 FWDT

5.1.5 FSPIM

5.1.6 FQSPI

5.1.7 FSDMMC

5.1.8 FSATA

5.1.10 FUSB

5.1.11 FGPIO

5.1.12 FGIC

5.1.13 FDDMA

5.1.14 FCAN

5.1.15 FADC

5.1.16 FPWM

5.1.17 FSDIF

5.1.18 FMEDIA

5.1.19 FSEC

5.2 MEMORY

5.3 CPU

5.3.1 MMU

5.3.2 FPINCTRL

5.3.3 FPSCI


6. 贡献方法

请联系飞腾嵌入式软件部

huanghe@phytium.com.cn

zhugengyu@phytium.com.cn

wangxiaodong1030@phytium.com.cn

liushengming1118@phytium.com.cn


7. 相关资源

  • ARM Architecture Reference Manual
  • ARM Cortex-A Series Programmer’s Guide
  • Programmer Guide for ARMv8-A
  • ARM System Developers Guide Designing and Optimizing System Software
  • FT-2000/4 软件编程手册-V1.4
  • D2000 软件编程手册-V1.0
  • 飞腾腾珑E2000系列处理器软件编程手册V0.8.1
  • 飞腾派软件开发手册-V1.0
  • Bare-metal programming for ARM —— A hands-on guide
  • Using the GNU Compiler Collection
  • Using ld, The GNU Linker
  • Using as, The GNU Assembler
  • Armv8-A memory model guide

8. 许可协议

Phytium Public License

About

from https://gitee.com/phytium_embedded/phytium-standalone-sdk/

372.51 MiB
0 forks0 stars5 branches29 TagREADMEBSD-3-Clause license
Language
C84.4%
Python6.1%
Makefile6.1%
Assembly1.3%
Others2.1%