diff --git a/README.md b/README.md
index b97ff6b81d723d307dfb698178375ffc627aa710..23ef7401254bc13e59a2a52bb9615645ab616c7f 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,14 @@
**v1.4.0** [ReleaseNote](./doc/ChangeLog.md)
+**如需Phytium全系CPU的软件适配支持,请联系 ``linan1284@phytium.com.cn``**
+
+[飞腾腾云S系列高性能服务器CPU](https://www.phytium.com.cn/homepage/production/list/0)
+
+[飞腾腾锐D系列高效能桌面CPU](https://www.phytium.com.cn/homepage/production/list/1)
+
+[飞腾腾珑E系列高端嵌入式CPU](https://www.phytium.com.cn/homepage/production/list/2)
+
## 1. 项目概要
### 1.1 仓库介绍
@@ -42,6 +50,7 @@ release 分支:发布分支,包含核心启动代码、芯片外设驱动、
│ ├── d2000_test
│ ├── ft2004_dsk
│ ├── firefly
+│ ├── pd2308_demo
│ └── user --> 板级IO复用,初始化和用户定义相关
├── common
│ ├── fprintf.c
@@ -63,7 +72,9 @@ release 分支:发布分支,包含核心启动代码、芯片外设驱动、
├── scripts
├── soc
│ ├── d2000
-│ ├── e2000
+| ├── e2000
+│ ├── pd2308
+│ ├── ps2316
│ ├── phytiumpi
│ └── ft2004 --> soc平台相关
├── third-party
@@ -184,62 +195,77 @@ D2000 是一款面向桌面应用的高性能通用 8 核处理器。每 2 个
- 1路 HDMI 接口
- 集成常用低速接口:WDT、QSPI、PWM、SD/SDIO/eMMC 、SPI_M、UART、I2C、I2S、MIO、CAN-FD、GPIO、LocalBus、Timer
+### 3.7 PD2308
+
+### 3.8 PS2316
+
## 4 例程支持情况
+| ai | Platform Supported | Platform Developing | Component |
+| --------- | ----------------------------------------------------- | ------------------- | -------------- |
+| TINYMAIX | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | tinymaix_demo |
+
| Peripherals | Platform Supported | Platform Developing | Component |
| ------------------------------- | ----------------------------------------------------- | ------------------- | -------------------- |
-| Generic Interrupt Controller v3 | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | gicv3 |
-| Generic Timer | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | generic_timer |
-| UART (PrimeCell PL011) | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | serial |
+| Generic Interrupt Controller v3 | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | gicv3 |
+| Generic Timer | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | generic_timer |
+| UART (PrimeCell PL011) | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | serial |
| ADC | E2000 | | adc |
-| CAN | FT2000/4`
`E2000 `
`D2000 | | can/can |
-| CANFD | E2000 | | can/canfd |
-| DDMA | E2000`
`PHYTIUMPI | | seria/ddma |
-| GDMA | E2000`
`PHYTIUMPI | | dma/gdma |
-| IOPAD | E2000`
`PHYTIUMPI | | iopad |
-| IPC | E2000`
`PHYTIUMPI | | ipc/semaphore |
-| I2C | E2000`
`PHYTIUMPI | FT2004/D2000 | i2c |
-| PIN | E2000`
`PHYTIUMPI | FT2004/D2000 | pin |
-| QSPI (Nor Flash) | FT2000/4`
`E2000 `
`D2000 | | qspi |
-| SPI | FT2000/4`
`E2000 `
`D2000 | | spi |
-| TIMER & TACHO | E2000`
`PHYTIUMPI | | timer&tacho |
-| MIO | E2000`
`PHYTIUMPI | | i2c & serial |
-| SDMMC | FT2000/4`
`D2000 | | sd |
-| SDIO | E2000`
`PHYTIUMPI | | sd |
-| PCIE RC | E2000/FT2004/D2000 | | pcie rc |
-| SATA | E2000 | | sata/sata_controller |
-| SATA PCIE | FT2000/4`
`E2000 `
`D2000 | | sata/sata_pcie |
-| PWM | E2000`
`PHYTIUMPI | | pwm |
-| WDT | FT2000/4`
`D2000 `
`E2000 `
`PHYTIUMPI | | wdt |
-| FJTAG | E2000 | | jtag_debugging |
-| USB2(Device) | E2000 | | usb/psub2_device |
+| CAN | FT2000/4、E2000、D2000、PD2308 | | can/can |
+| DDMA | E2000、PHYTIUMPI | | seria/ddma |
+| GDMA | E2000、PHYTIUMPI、PD2308 | | dma/gdma |
+| IOPAD | E2000、PHYTIUMPI | | iopad |
+| IPC | E2000、PHYTIUMPI | | ipc/semaphore |
+| I2C | E2000、PHYTIUMPI、PD2308 | FT2004/D2000 | i2c |
+| I2S | E2000、PHYTIUMPI、PD2308 | | i2s |
+| PIN | E2000、PHYTIUMPI、、D2000、PD2308 | FT2004/D2000 | pin |
+| QSPI (Nor Flash) | FT2000/4、E2000 、D2000、PD2308 | | qspi |
+| SPI | FT2000/4、E2000 、D2000、PD2308 | | spi |
+| TIMER & TACHO | E2000、PHYTIUMPI、PD2308 | | timer&tacho |
+| MIO | E2000、PHYTIUMPI | | i2c & serial |
+| SDMMC | FT2000/4、D2000 | | sd |
+| SDIO | E2000、PHYTIUMPI、PD2308 | | sd |
+| PCIE RC | E2000、FT2004、D2000、PD2308、PS2316 | | pcie rc |
+| SATA | E2000、PD2308 | | sata/sata_controller |
+| SATA PCIE | FT2000/4、E2000、D2000、PD2308 | | sata/sata_pcie |
+| PWM | E2000、PHYTIUMPI、PD2308 | | pwm |
+| WDT | FT2000/4、D2000、E2000、PHYTIUMPI、PD2308、PS2316 | | wdt |
+| USB2(Device) | E2000 | | usb/psub2_device |
| Media | Platform Supported | Platform Developing | Component |
| ----- | ---------------------- | ------------------- | -------------- |
-| DP | E2000`
`PHYTIUMPI | | media_test |
-| LVGL | E2000`
`PHYTIUMPI | | lvgl_demo_test |
+| DP | E2000、PHYTIUMPI | | media_test |
+| LVGL | E2000、PHYTIUMPI | | lvgl_demo_test |
| Network | Platform Supported | Platform Developing | Component |
| ------- | ----------------------------------------------------- | ------------------- | ------------ |
-| LWIP | FT2000/4`
`D2000 `
`E2000 `
`PHYTIUMPI | | lwip_startup |
-| RAW | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | raw_api |
+| LWIP | FT2000/4、D2000、E2000、PHYTIUMPI | | lwip_startup |
+| RAW | FT2000/4、E2000、D2000、PHYTIUMPI | | raw_api |
| Storage | Platform Supported | Platform Developing | Component |
| ----------- | ----------------------------------------------------- | ------------------- | ---------------- |
-| FATFS | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | fatfs |
-| MEMORY_POOL | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | memory_pool_test |
-| SFUD | FT2000/4`
`E2000 `
`PHYTIUMPI | D2000 | sfud |
+| FATFS | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308 | | fatfs |
+| MEMORY_POOL | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | memory_pool_test |
+| SFUD | FT2000/4、E2000、PHYTIUMPI、PD2308 | D2000 | sfud |
+| SPIFFS | FT2000/4、E2000、PHYTIUMPI、PD2308 | D2000 | spiffs |
| System | Platform Supported | Platform Developing | Component |
| ---------------- | ----------------------------------------------------- | ------------------- | ---------------------- |
-| LIBMETAL | E2000`
`D2000 `
`PHYTIUMPI `
`FT2000/4 | | amp/libmetal_test |
-| AMP | E2000`
`PHYTIUMPI `
`FT2000/4 `
`D2000 | | amp/openamp |
-| PSCI | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | arch/armv8/psci |
-| SCMI | E2000 | | scmi_mhu |
-| ATOMIC | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | atomic |
-| C++ | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | cxx/cryptopp&get-start |
-| SHELL | FT2000/4`
`E2000 `
`D2000 | PHYTIUMPI | letter_shell_test |
-| NESTED INTERRUPT | FT2000/4`
`E2000 `
`D2000 `
`PHYTIUMPI | | nested_interrupt |
+| TEMPLATE | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | template_test |
+| AMP_TOOLS | E2000、PHYTIUMPI、PD2308、D2000、PS2316 | | amp/amp_tools_example |
+| LIBMETAL | E2000、D2000、PHYTIUMPI、FT2000/4、PD2308、PS2316 | | amp/libmetal_test |
+| AMP | E2000、PHYTIUMPI、FT2000/4、D2000、PD2308、PS2316 | | amp/openamp、amp/openamp_echo_remoteproc_load |
+| PSCI | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | arch/armv8/psci、arch/armv8/mmu、arch/armv8/pmu |
+| SCMI | E2000、PD2308 | | scmi_mhu |
+| ATOMIC | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | atomic |
+| C++ | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | cxx/cryptopp&get-start |
+| SHELL | FT2000/4、E2000、D2000、PD2308、PS2316 | PHYTIUMPI | letter_shell_test |
+| NESTED INTERRUPT | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | nested_interrupt |
+| CMSIS | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | cmsis |
+| DELAY | E2000、PHYTIUMPI | | delay |
+| NEWLIB | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | newlib |
+| UNWIND | FT2000/4、E2000、D2000、PHYTIUMPI、PD2308、PS2316 | | unwind |
+| FJTAG | E2000 | | jtag_debugging |
---
diff --git a/arch/armv8/aarch32/faarch.h b/arch/armv8/aarch32/faarch.h
index c34d5e9fcb51b3087f8f4bf3bff09223b8dffe0f..e9aa95b3b3ca9173a4ec08b76d1febf8b3125b89 100644
--- a/arch/armv8/aarch32/faarch.h
+++ b/arch/armv8/aarch32/faarch.h
@@ -181,6 +181,8 @@ static _ALWAYS_INLINE void AARCH32_WRITE_SYSREG_64(const int coproc, const int o
#define WMB DSB
+/* Compiler Barrier */
+#define BARRIER() __asm__ __volatile__("" : : : "memory");
#define INTERRUPT_DISABLE() \
__asm volatile("CPSID i" :: \
diff --git a/arch/armv8/aarch64/faarch.h b/arch/armv8/aarch64/faarch.h
index 9d4eb09320c03dd2e21f97ef2ad22c95f563f624..e836b172f3a2dee2b14e931379d187ee0ca69b8c 100644
--- a/arch/armv8/aarch64/faarch.h
+++ b/arch/armv8/aarch64/faarch.h
@@ -208,7 +208,7 @@ extern "C"
: "memory")
/* Data Memory Barrier */
-#define DMB() __asm__ __volatile__("dmb" \
+#define DMB() __asm__ __volatile__("dmb sy" \
: \
: \
: "memory")
@@ -223,6 +223,10 @@ extern "C"
: \
: "memory")
+/* Compiler Barrier */
+#define BARRIER() __asm__ __volatile__("" : : : "memory");
+
+
/* Count leading zeroes (clz) */
#ifndef CLZ
#define CLZ(arg) ( \
diff --git a/arch/armv8/aarch64/fexception.c b/arch/armv8/aarch64/fexception.c
index f188510eca95a7972579aa07fa75593b9487f05f..53b57fd18ee98045c720a27520ae62746d493623 100644
--- a/arch/armv8/aarch64/fexception.c
+++ b/arch/armv8/aarch64/fexception.c
@@ -34,7 +34,6 @@
#include "sdkconfig.h"
#include "fexception.h"
#include "funwind.h"
-
/************************** Constant Definitions *****************************/
/**************************** Type Definitions *******************************/
@@ -315,8 +314,9 @@ void SynchronousInterrupt(FExcFrame *exc)
{
u64 esr, far;
u64 ec, iss;
-
- f_printk("\r\n Synchronous exception:\r\n");
+ u32 cpuid;
+ GetCpuId(&cpuid);
+ f_printk("\r\n CPU:%d,Synchronous exception:\r\n",cpuid);
esr = AARCH64_READ_SYSREG(esr_el1);
far = AARCH64_READ_SYSREG(far_el1);
ec = (esr >> 26) & 0x3f;
diff --git a/arch/armv8/aarch64/gcc/fboot.S b/arch/armv8/aarch64/gcc/fboot.S
index 971c1b843a932c45e5aaadb88f17ba830a51a495..dc67c70d62525b14bca64e3b75546d3e00ed8236 100644
--- a/arch/armv8/aarch64/gcc/fboot.S
+++ b/arch/armv8/aarch64/gcc/fboot.S
@@ -25,28 +25,21 @@
*/
#include "sdkconfig.h"
+#include "fboot.h"
.global _boot
.global _vector_table
-.set vector_base, _vector_table
-.set el1_stack, __el1_stack
+.set vector_base, _vector_table
+.set el1_stack, __el1_stack
.section .boot,"ax"
_boot:
-#ifdef CONFIG_BOOT_WITH_FLUSH_CACHE
- mov x0, #0 /* clean and invaildate cache */
- TLBI VMALLE1
- ic IALLU /* Invalidate I cache to PoU */
- bl InvalidateFlushDcaches
- dsb sy
- isb
-#endif
bl FTraceUartInit
bl FTraceBootup
mrs x0, CurrentEL
@@ -81,22 +74,30 @@ _boot:
/* el2 code.*/
eret
El2Entry:
- mov x1, #0x0
- msr sctlr_el1, x1
- /* initialize the sctlr_el1 register before entering el1.*/
- msr sctlr_el1, xzr
- mrs x0, hcr_el2
- orr x0, x0, #(1<<31)
- bic x0, x0, #(1<<27) /* HCR_EL2.TGE = 0 */
- bic x0, x0, #(1<<5) /* HCR_EL2.AMO = 0 */
- bic x0, x0, #(1<<4) /* HCR_EL2.IMO = 0 */
- bic x0, x0, #(1<<3) /* HCR_EL2.FMO = 0 */
- /* rw=1 el1 execution state is aarch64.*/
- msr hcr_el2, x0
- mov x0, #0b00101
- /* daif=0000 */
- msr spsr_el2, x0
- /* m[4:0]=00101 el1h must match hcr_el2.rw.*/
+ dcache cisw /* flush dcache */
+
+ /* Ensure I-cache, D-cache and mmu are disabled for EL2/Stage1 */
+ disable_mmu sctlr_el2, x9
+
+ ic iallu
+ dsb nsh
+ isb
+
+ /* Ensure I-cache, D-cache and mmu are disabled for EL1/Stage2 */
+ mov x9, #(1 << 31)
+ msr hcr_el2, x9
+
+ /* Ensure traps to EL2 are disabled */
+ mov x9, #0x33ff
+ msr cptr_el2, x9
+ msr hstr_el2, xzr
+ msr vttbr_el2, xzr
+
+ /* Ensure I-cache, D-cache and mmu are disabled for EL1/Stage1 */
+ disable_mmu sctlr_el1 , x9
+
+ mov x9, #(FPSR_F_BIT | FPSR_I_BIT | FPSR_A_BIT | FPSR_D_BIT | FPSR_MODE_EL1h)
+ msr spsr_el2, x9
/* access generic timer registers */
mov x0, 0x3
diff --git a/arch/armv8/aarch64/gcc/fboot.h b/arch/armv8/aarch64/gcc/fboot.h
new file mode 100644
index 0000000000000000000000000000000000000000..d2d6738bf6e250d4b2c54fe1daa77a157d84caa2
--- /dev/null
+++ b/arch/armv8/aarch64/gcc/fboot.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright : (C) 2025 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: fboot.h
+ * Created Date: 2025-03-19 10:32:06
+ * Last Modified: 2025-03-19 10:33:08
+ * Description: This file is for
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ---------- -------- ---------------------------------
+ */
+#ifndef __FBOOT_H__
+#define __FBOOT_H__
+
+#ifdef __ASSEMBLER__
+
+#define FPSR_F_BIT 0x00000040
+#define FPSR_I_BIT 0x00000080
+#define FPSR_A_BIT 0x00000100
+#define FPSR_D_BIT 0x00000200
+
+#define FPSR_MODE_EL0t 0x00000000
+#define FPSR_MODE_EL1t 0x00000004
+#define FPSR_MODE_EL1h 0x00000005
+#define FPSR_MODE_EL2t 0x00000008
+#define FPSR_MODE_EL2h 0x00000009
+#define FPSR_MODE_SVC_32 0x00000013
+
+
+.macro disable_mmu sctlr tmp
+ mrs \tmp, \sctlr
+ bic \tmp, \tmp, #(1 << 0)
+ bic \tmp, \tmp, #(1 << 2)
+ bic \tmp, \tmp, #(1 << 12)
+ msr \sctlr, \tmp
+ isb
+.endm
+
+.macro dcache op
+ dsb sy
+ mrs x0, clidr_el1
+ and x3, x0, #0x7000000
+ lsr x3, x3, #23
+
+ cbz x3, finished_\op
+ mov x10, #0
+
+loop1_\op:
+ add x2, x10, x10, lsr #1
+ lsr x1, x0, x2
+ and x1, x1, #7
+ cmp x1, #2
+ b.lt skip_\op
+
+ msr csselr_el1, x10
+ isb
+
+ mrs x1, ccsidr_el1
+ and x2, x1, #7
+ add x2, x2, #4
+ mov x4, #0x3ff
+ and x4, x4, x1, lsr #3
+ clz w5, w4
+ mov x7, #0x7fff
+ and x7, x7, x1, lsr #13
+
+loop2_\op:
+ mov x9, x4
+
+loop3_\op:
+ lsl x6, x9, x5
+ orr x11, x10, x6
+ lsl x6, x7, x2
+ orr x11, x11, x6
+ dc \op, x11
+ subs x9, x9, #1
+ b.ge loop3_\op
+ subs x7, x7, #1
+ b.ge loop2_\op
+
+skip_\op:
+ add x10, x10, #2
+ cmp x3, x10
+ b.gt loop1_\op
+
+finished_\op:
+ mov x10, #0
+ msr csselr_el1, x10
+ dsb sy
+ isb
+.endm
+
+#else /* !__ASSEMBLER__ */
+#warning "Including assembly-specific header in C code"
+#endif
+#endif // !
\ No newline at end of file
diff --git a/arch/armv8/common/fgic_v3.c b/arch/armv8/common/fgic_v3.c
index 73c879fa4e30df8be037d775492dd1e15e4a599c..1baadff7042c5b7397054132610b00fa9ba2058a 100644
--- a/arch/armv8/common/fgic_v3.c
+++ b/arch/armv8/common/fgic_v3.c
@@ -265,7 +265,7 @@ void FGicCpuInterfaceInit(void)
uintptr FGicRedistributorIterate(void)
{
uintptr redis_base = 0;
- fsize_t mpidr_aff = (GetAffinity() & 0xfff);
+ fsize_t mpidr_aff = (GetAffinity() & CORE_AFF_MASK);
u32 gicr_typer_aff = 0;
for(redis_base = GICV3_RD_BASE_ADDR; redis_base < GICV3_RD_BASE_ADDR + GICV3_RD_SIZE; redis_base += GICV3_RD_OFFSET)
diff --git a/common/finterrupt.c b/common/finterrupt.c
index f7bad4523261f7a03ac82fdfccd6e79b38683edd..8859858aab73447aa7069f6cbb6075432afcacf3 100644
--- a/common/finterrupt.c
+++ b/common/finterrupt.c
@@ -408,21 +408,21 @@ static void InterruptStepHandler(s32 vector, void *param)
static u32 InterruptStep(void)
{
/* stop timer */
- GenericTimerStop(GENERIC_TIMER_ID0);
+ GenericTimerStop(GENERIC_TIMER_ID1);
/* setup and enable interrupt */
InterruptSetPriority(GENERIC_TIMER_NS_IRQ_NUM, TIMER_PRIORITY);
InterruptInstall(GENERIC_TIMER_NS_IRQ_NUM, InterruptStepHandler, NULL, NULL);
InterruptUmask(GENERIC_TIMER_NS_IRQ_NUM);
- GenericTimerSetTimerValue(GENERIC_TIMER_ID0, 1000);
- GenericTimerInterruptEnable(GENERIC_TIMER_ID0);
- GenericTimerStart(GENERIC_TIMER_ID0);
+ GenericTimerSetTimerValue(GENERIC_TIMER_ID1, 1000);
+ GenericTimerInterruptEnable(GENERIC_TIMER_ID1);
+ GenericTimerStart(GENERIC_TIMER_ID1);
INTERRUPT_ENABLE();
fsleep_microsec(100);
INTERRUPT_DISABLE();
- GenericTimerStop(GENERIC_TIMER_ID0);
- GenericTimerInterruptDisable(GENERIC_TIMER_ID0);
+ GenericTimerStop(GENERIC_TIMER_ID1);
+ GenericTimerInterruptDisable(GENERIC_TIMER_ID1);
InterruptMask(GENERIC_TIMER_NS_IRQ_NUM);
u32 step = rpr_array[1] - rpr_array[0];
@@ -442,6 +442,7 @@ void InterruptInit(InterruptDrvType *int_driver_p, u32 instance_id, INTERRUPT_RO
FASSERT(int_driver_p != NULL);
FASSERT(role_select <= INTERRUPT_ROLE_NONE);
interrupt_handler_p = int_driver_p;
+
if (INTERRUPT_ROLE_NONE == role_select )
{
return;
@@ -486,7 +487,7 @@ void InterruptInit(InterruptDrvType *int_driver_p, u32 instance_id, INTERRUPT_RO
}
else
{
- printf("rpr step is invalid.\n");
+ need_translate = 0;
}
if(role_select == INTERRUPT_ROLE_MASTER)
diff --git a/common/fsleep.c b/common/fsleep.c
index a1bf624daa07d97b6ce7b57d4c26d3e7fc066e96..7074fa0bf5e93e2de7909b1f44d1b26f2cd36d38 100644
--- a/common/fsleep.c
+++ b/common/fsleep.c
@@ -39,11 +39,11 @@ static u32 fsleep_general(u32 delay_time, u32 resolution)
volatile u64 need_tick;
need_tick = ((u64)delay_time * GenericTimerFrequecy() / resolution);
- old_tick = GenericTimerRead(GENERIC_TIMER_ID0);
+ old_tick = GenericTimerRead(GENERIC_TIMER_ID1);
while (pass_tick < need_tick)
{
- cur_tick = GenericTimerRead(GENERIC_TIMER_ID0);
+ cur_tick = GenericTimerRead(GENERIC_TIMER_ID1);
if (cur_tick == old_tick)
continue;
diff --git a/common/ftypes.h b/common/ftypes.h
index fafa911e3b82f2935f3ec5e9ad3a5d9b8ed8426f..54fba8227fba91266a5be816def27cdb28a87798 100644
--- a/common/ftypes.h
+++ b/common/ftypes.h
@@ -29,7 +29,6 @@
#include
#include
-#include
#include
#ifdef __cplusplus
diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md
index 0f2b34d5fe3d944e736c5afde63d83d1f6bb3dca..c7dddc1c22e80cef5be7aff853fe8e1a4f31d638 100644
--- a/doc/ChangeLog.md
+++ b/doc/ChangeLog.md
@@ -1,3 +1,39 @@
+# Phytium Standalone SDK 2025-04-10 ChangeLog
+
+Change Log since 2025-04-10
+
+## drivers
+
+modify i2s FI2sClkOutDiv func, and add samplerate param
+
+# Phytium Standalone SDK 2025-04-1 ChangeLog
+
+Change Log since 2025-04-1
+
+## third-party
+
+add in cmd_md.h to avoid build error in xpack compiler chain.
+
+# Phytium Standalone SDK 2025-03-13 ChangeLog
+
+Change Log since 2025-03-10
+
+## example
+
+- added ipv4 e1000e test example
+
+## driver
+
+- add e1000e driver
+
+## third-party
+
+- added the adaptation of lwip to e1000e
+
+## board
+
+- Add a pcie NIC to the e2000q
+
# Phytium Standalone SDK 2025-3-10 ChangeLog
Change Log since 2025-3-7
diff --git a/doc/reference/driver/e1000e.md b/doc/reference/driver/e1000e.md
new file mode 100644
index 0000000000000000000000000000000000000000..f28075cf92bfcc0539d8e22a30e111fb572c2055
--- /dev/null
+++ b/doc/reference/driver/e1000e.md
@@ -0,0 +1,452 @@
+# E1000E 驱动程序
+
+## 1. 概述
+
+E1000E 是 Intel 开发的一款高性能 PCIe 网卡驱动程序,专为支持 Intel Gigabit Ethernet 控制器的设备设计。它能够在各种操作系统中实现高效的网络数据传输,提供稳定、低延迟的网络连接。E1000E 驱动程序兼容多种 Intel 千兆网卡,支持多种网络协议和特性,是工业、企业和消费级网络应用中广泛采用的解决方案。
+
+## 2. 功能
+
+E1000E控制器驱动提供了E1000E的控制访问方法,
+
+- 初始化E1000E控制器
+- 以轮询方式发送/接收数据
+
+驱动相关的源文件包括,
+
+```
+.
+├── e1000e_debug.c
+├── e1000e_dma.c
+├── e1000e_g.c
+├── e1000e_hw.c
+├── e1000e_hw.h
+├── e1000e_phy.c
+├── e1000e_phy.h
+├── e1000e_sinit.c
+├── e1000e.c
+└── e1000e.h
+```
+
+## 3. 配置方法
+
+以下部分将指导您完成 e1000e 驱动的软件配置:
+
+- 初始化E1000E控制器
+
+## 4 应用示例
+
+### [lwip_startup例程](../../../example/network/lwip_startup)
+
+## 5. API参考
+
+### 5.1. 用户数据结构
+
+- e1000e控制数据
+
+```c
+typedef struct
+{
+ FE1000EConfig config;
+ FE1000ERingDescData rx_ring;
+ FE1000ERingDescData tx_ring;
+ volatile struct e1000_tx tx[TX_DESCRIPTORS] __aligned(16);
+ volatile struct e1000_rx rx[RX_DESCRIPTORS] __aligned(16);
+ uint8_t txb[TX_DESCRIPTORS * RX_BUFFER_SIZE];
+ uint8_t rxb[RX_DESCRIPTORS * RX_BUFFER_SIZE];
+ uint8_t mac[ETH_ALEN];
+ u32 is_ready;
+ FE1000EEvtHandler evt_handler[FE1000E_INTR_EVT_NUM];
+} FE1000ECtrl;
+```
+
+- e1000e配置数据,FE1000EConfig主要是e1000e控制器id、基地址、速度、双工和自协商,FE1000EPhyInterface主要包括各种物理接口模式
+
+```c
+typedef struct
+{
+ u32 instance_id;
+ uintptr base_addr;
+ FE1000EPhyInterface interface;
+ u32 speed; /* FE1000E_SPEED_XXX */
+ u32 duplex; /* 1 is full-duplex , 0 is half-duplex */
+ u32 auto_neg; /* Enable auto-negotiation - when set active high, autonegotiation operation is enabled. */
+} FE1000EConfig;
+```
+
+- e1000e物理接口配置
+
+```c
+typedef enum
+{
+ FE1000E_PHY_INTERFACE_MODE_SGMII,
+ FE1000E_PHY_INTERFACE_MODE_RMII,
+ FE1000E_PHY_INTERFACE_MODE_RGMII,
+ FE1000E_PHY_INTERFACE_MODE_XGMII,
+ FE1000E_PHY_INTERFACE_MODE_USXGMII,
+ FE1000E_PHY_INTERFACE_MODE_5GBASER ,
+ FE1000E_PHY_INTERFACE_MODE_2500BASEX
+} FE1000EPhyInterface;
+```
+
+- e1000e发送描述符
+
+```c
+struct FE1000ETxDesc
+{
+ uint64_t addr;
+ uint16_t len;
+ uint8_t cso;
+ uint8_t cmd;
+ uint8_t sta;
+ uint8_t css;
+ uint16_t special;
+};
+```
+
+- e1000e接收描述符
+
+```c
+struct FE1000ERxDesc
+{
+ uint64_t addr;
+ uint16_t len;
+ uint16_t csum;
+ uint8_t sta;
+ uint8_t err;
+ uint16_t special;
+};
+```
+
+- e1000e中断事件类型
+
+```c
+enum
+{
+ FE1000E_TX_COMPLETE_EVT = 0,
+ FE1000E_RX_COMPLETE_EVT,
+ FE1000E_LINK_STATUS_EVT,
+ FE1000E_PHY_STATUS_EVT,
+ FE1000E_DMA_ERR_EVT,
+
+ FE1000E_INTR_EVT_NUM
+};
+```
+
+### 5.2 错误码定义
+
+- FE1000E_SUCCESS 执行成功
+- FE1000E_ERR_TIMEOUT 执行超时错误
+- FE1000E_ERR_INVALID_DMA_MEM 非法DMA内容错误
+- FE1000E_ERR_NOT_READY 初始化失败
+- FE1000E_ERR_TRANS_FAILED 发送失败
+- FE1000E_ERR_PHY_NOT_SUPPORT 物理接口不支持
+- FE1000E_ERR_PHY_IS_NOT_FOUND 未发现物理接口
+- FE1000E_ERR_FAILED 执行失败
+- FE1000E_ERR_PHY_AUTO_FAILED 自协商失败
+- FE1000E_ERR_RECEV_FAILED 接收失败
+
+### 5.3. 用户API接口
+
+#### FE1000ELookupConfig
+
+- 获取e1000e控制器默认配置
+
+```c
+const FE1000EConfig *FE1000ELookupConfig(u32 instance_id);
+```
+
+Note:
+
+- 获取默认配置参数,包括基地址、中断号等
+
+Input:
+
+- {u32} instance_id,控制器id号
+
+Return:
+
+- {const FE1000EConfig *} e1000e默认配置,返回NULL如果找不到默认配置
+
+#### FE1000ECfgInitialize
+
+- 初始化e1000e控制器, 使之可以使用
+
+```c
+FError FE1000ECfgInitialize(FE1000ECtrl *instance_p, const FE1000EConfig *input_config_p);
+```
+
+Note:
+
+- 输入配置通过FE1000ELookupConfig获取,用户按照需要修改后传入此函数
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+- {FE1000EConfig} *input_config_p e1000e用户输入配置
+
+Return:
+
+- {FError} 驱动初始化的错误码信息,FE1000E_SUCCESS 表示初始化成功,其它返回值表示初始化失败
+
+#### FE1000ECfgDeInitialize
+
+- 完成e1000e驱动实例去使能,清零实例数据
+
+```c
+void FE1000ECfgDeInitialize(FE1000ECtrl *pctrl);
+```
+
+Note:
+
+- 在调用此函数之前,必须确保控制器已经停止工作
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- 无
+
+#### FE1000ESetupTxDescRing
+
+- 配置e1000e的发送DMA描述符和缓冲区
+
+```c
+FError FE1000ESetupTxDescRing(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+- 需要在控制器已正确初始化后调用此函数
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} TX DMA初始化的错误码信息,FE1000E_SUCCESS 表示TX DMA初始化成功,其它返回值表示TX DMA初始化失败
+
+#### FE1000ESetupRxDescRing
+
+- 配置e1000e的接收DMA描述符和缓冲区
+
+```c
+FError FE1000ESetupRxDescRing(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+- 需要在控制器已正确初始化后调用此函数
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} RX DMA初始化的错误码信息,FE1000E_SUCCESS 表示RX DMA初始化成功,其它返回值表示RX DMA初始化失败
+
+#### FE1000EStart
+
+- 用于启动e1000e控制器设备实例
+
+```c
+void FE1000EStart(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+- 在调用此函数之前,必须确保设备实例已经通过 FE1000ECfgInitialize 初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示启动成功,其它返回值表示启动失败
+
+#### FE1000EStop
+
+- 用于停止e1000e控制器设备实例
+
+```c
+void FE1000EStop(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+- 在调用此函数之前,必须确保设备实例已经通过 FE1000ECfgInitialize 初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示去启动成功,其它返回值表示去启动失败
+
+#### FE1000ERecvFrame
+
+- 用于接收通过e1000e控制器的数据帧
+
+```c
+FError FE1000ERecvFrame(FE1000ECtrl *instance_p)
+```
+
+Note:
+
+- 在调用此函数之前,必须确保 E1000E 驱动已成功初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示接收数据帧成功,其它返回值表示接收数据帧失败
+
+#### FE1000ESendFrame
+
+- 用于通过 E1000E 控制器发送数据帧
+
+```c
+FError FE1000ESendFrame(FE1000ECtrl *instance_p, u32 frame_len);
+```
+
+Note:
+
+- 在调用此函数之前,必须确保 E1000E 驱动已成功初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示发送数据帧成功,其它返回值表示发送数据帧失败
+
+#### FE1000ESoftwareReset
+
+- 用于触发 E1000E 控制器的软复位
+
+```c
+FError FE1000ESoftwareReset(uintptr addr);
+```
+
+Note:
+
+该函数会触发软复位并进行一些初始化设置,确保控制器处于正常工作状态
+
+Input:
+
+- {uintptr} addr E1000E控制器的基地址,指向设备的内存映射寄存器
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示发送数据帧成功,其它返回值表示发送数据帧失败
+
+#### FE1000EGetMacAddr
+
+- 用于获取 E1000E 控制器的 MAC 地址
+
+```c
+void FE1000EGetMacAddr(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+在读取 MAC 地址之前,确保 FE1000E 控制器已经成功初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- 无
+
+#### FE1000ESetMacAddr
+
+- 用于将给定的 MAC 地址设置到 E1000E 控制器
+
+```c
+void FE1000ESetMacAddr(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+确保在调用该函数之前,MAC 地址的正确性
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- 无
+
+#### FE1000EReset
+
+- 用于重置 E1000E 控制器
+
+```c
+FError FE1000EReset(FE1000ECtrl *instance_p);
+```
+
+Note:
+
+调用该函数时需要确保 instance_p 是有效的,并且控制器的配置已经正确初始化
+
+Input:
+
+- {FE1000ECtrl} *instance_p e1000e驱动控制数据
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示发送数据帧成功,其它返回值表示发送数据帧失败
+
+#### FE1000EPhyWrite
+
+- 用于向以太网控制器的 PHY 寄存器写入数据
+
+```c
+FError FE1000EPhyWrite(uintptr base_addr, unsigned int reg, uint16_t val);
+```
+
+Note:
+
+该函数不是线程安全的。如果多个线程可能同时访问此函数,用户需要确保使用互斥机制来避免并发问题
+
+Input:
+
+- {uintptr} base_addr e1000e控制器寄存器空间的基地址
+- {unsigned int} reg 要写入的 PHY 寄存器号
+- {uint16_t} val 要写入的值
+
+Return:
+
+- {FError} FE1000E_SUCCESS 表示发送数据帧成功,其它返回值表示发送数据帧失败
+
+#### FE1000EPhyRead
+
+- 用于从指定的 PHY 寄存器读取数据
+
+```c
+uint16_t FE1000EPhyRead(uintptr base_addr, unsigned int reg);
+```
+
+Note:
+
+该函数不是线程安全的。如果多个线程可能同时访问此函数,用户需要确保使用互斥机制来避免并发问题
+
+Input:
+
+- {uintptr} base_addr e1000e控制器寄存器空间的基地址
+- {unsigned int} reg 要读取的 PHY 寄存器号
+
+Return:
+
+- {uint16_t} 返回指定 PHY 寄存器的 16 位值
diff --git a/doc/reference/driver/fi2s.md b/doc/reference/driver/fi2s.md
index 5731d9bc0e9c36a10fa212e69c70a2f5fdcdc300..5313166d950e527bfdd4767fb3975745dad87f80 100644
--- a/doc/reference/driver/fi2s.md
+++ b/doc/reference/driver/fi2s.md
@@ -113,13 +113,14 @@ Return:
```c
-void FI2sClkOutDiv(FI2s *instance_p)
+void FI2sClkOutDiv(FI2s *instance, u32 samplerate)
```
- 使能I2S时钟输出
Input:
- FI2s* instance_p, 当前控制器的实例
+ - u32 samplerate, 配置采样率
Return:
- @return null
diff --git a/drivers/eth/Kconfig b/drivers/eth/Kconfig
index 5a413910baaa98b1bbf8c6faf020417f2612705d..0f7355f23993313a06a8f0c54bc1c145e2c35c62 100644
--- a/drivers/eth/Kconfig
+++ b/drivers/eth/Kconfig
@@ -10,6 +10,11 @@ menu "Eth Configuration"
prompt "Use FGMAC"
default n
+ config ENABLE_E1000E
+ bool
+ prompt "Use E1000E"
+ default n
+
if ENABLE_FGMAC
source "$(STANDALONE_DIR)/drivers/eth/fgmac/Kconfig"
endif
diff --git a/drivers/eth/e1000e/e1000e.c b/drivers/eth/e1000e/e1000e.c
new file mode 100644
index 0000000000000000000000000000000000000000..c937a8a75e7176872b299aafe8eae95a8892f49b
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e.c
@@ -0,0 +1,231 @@
+/*
+ * Copyright : (C) 2024 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e.c
+ * Date: 2024-12-23 14:46:52
+ * LastEditTime: 2024-12-23 14:46:58
+ * Description: This file is for e1000e driver .Functions in this file are the minimum required functions
+ * for this driver.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2024/12/23 first release
+ */
+
+#include "e1000e.h"
+#include "e1000e_hw.h"
+#include "ftypes.h"
+#include "stdio.h"
+#include "fdrivers_port.h"
+
+#define E1000E_DEBUG_TAG "E1000E"
+#define E1000E_PRINT_E(format, ...) FT_DEBUG_PRINT_E(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_PRINT_I(format, ...) FT_DEBUG_PRINT_I(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_PRINT_D(format, ...) FT_DEBUG_PRINT_D(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_PRINT_W(format, ...) FT_DEBUG_PRINT_W(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/**
+ * @name: FE1000ECfgInitialize
+ * @msg: Initialize e1000e ctrl
+ * @param {FE1000ECtrl} *instance_p, pointer to the FE1000ECtrl instance.
+ * @param {FE1000EConfig} *input_config_p, Default configuration parameters of FE1000e
+ * @return {FError} return FE1000E_SUCCESS if successful, return others if failed
+ */
+FError FE1000ECfgInitialize(FE1000ECtrl *instance_p, FE1000EConfig *input_config_p)
+{
+ FError ret = FE1000E_SUCCESS;
+ FASSERT(instance_p != NULL);
+ FASSERT(input_config_p != NULL);
+
+ /*Set default values and configuration data */
+ FE1000ECfgDeInitialize(instance_p);
+
+ instance_p->config = *input_config_p;
+
+ /* initialize the e1000e controller */
+ ret = FE1000EReset(instance_p);
+ if (FE1000E_SUCCESS != ret)
+ {
+ /*permit failed*/
+ E1000E_PRINT_E("E1000E reset failed.");
+ return FE1000E_ERR_FAILED;
+ }
+
+ instance_p->is_ready = FT_COMPONENT_IS_READY;
+
+ return FE1000E_SUCCESS;
+}
+
+/**
+ * @name: FE1000ECfgDeInitialize
+ * @msg: DeInitialization function for the device instance
+ * @param {FE1000ECtrl} *instance_p, pointer to the FE1000ECtrl instance.
+ * @return {*}
+ */
+void FE1000ECfgDeInitialize(FE1000ECtrl *pctrl)
+{
+ FASSERT(pctrl);
+
+ pctrl->is_ready = 0;
+ memset(pctrl, 0, sizeof(*pctrl));
+
+ return;
+}
+
+/**
+ * @name: FE1000EStop
+ * @msg: Deinitializes the specified FE1000E device instance by disabling its
+ * interrupts, receiver, and transmitter, and marking the instance as stopped.
+ * @param {FE1000ECtrl} *instance_p, pointer to the FE1000ECtrl instance.
+ * @return {*}
+ */
+void FE1000EStop(FE1000ECtrl *instance_p)
+{
+ u32 reg_val;
+
+ FASSERT(instance_p != NULL);
+ FASSERT(instance_p->is_ready == (u32)FT_COMPONENT_IS_READY);
+
+ /* Disable all interrupts */
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_IMS, ~IMS_ALL_MASK);
+
+ /* Disable the receiver */
+ reg_val = FE1000E_READREG32(instance_p->config.base_addr, E1000_RCTL);
+ reg_val &= (u32)(~RCTL_EN);
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_RCTL, reg_val);
+
+ /* Disable the transmitter */
+ reg_val = FE1000E_READREG32(instance_p->config.base_addr, E1000_TCTL);
+ reg_val &= (u32)(~TCTL_EN);
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_TCTL, reg_val);
+
+ /* Mark as stopped */
+ instance_p->is_ready = 0U;
+
+ return;
+}
+
+/**
+ * @name: FE1000EStart
+ * @msg: Initializes and starts the specified FE1000E device instance by enabling
+ * the transmitter and receiver and clearing any existing interrupt statuses.
+ * @param {FE1000ECtrl} *instance_p, pointer to the FE1000ECtrl instance.
+ * @return: None
+ */
+void FE1000EStart(FE1000ECtrl *instance_p)
+{
+ u32 reg_val;
+
+ /* Assert bad arguments and conditions */
+ FASSERT(instance_p != NULL);
+ FASSERT(instance_p->is_ready == (u32)FT_COMPONENT_IS_READY);
+
+ /* clear any existed int status */
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_IMS, ~IMS_ALL_MASK);
+
+ /* Enable transmitter if not already enabled */
+ reg_val = FE1000E_READREG32(instance_p->config.base_addr, E1000_TCTL);
+ reg_val |= (u32)(TCTL_EN);
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_TCTL, reg_val);
+
+ /* Enable receiver if not already enabled */
+ reg_val = FE1000E_READREG32(instance_p->config.base_addr, E1000_RCTL);
+ reg_val |= (u32)(RCTL_EN);
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_RCTL, reg_val);
+
+ return;
+}
+
+/**
+ * @name: FE1000EGetMacAddr
+ * @msg: 获取FE1000E控制器配置的MAC地址
+ * @return {*}
+ * @param {FE1000ECtrl*} instance_p 控制器
+ */
+void FE1000EGetMacAddr(FE1000ECtrl *instance_p)
+{
+ uintptr base_addr = instance_p->config.base_addr;
+ uint32_t ral, rah;
+ uint32_t eerd;
+ unsigned int n;
+
+ /* 读取mac 地址 */
+ if (FE1000E_READREG32(base_addr, E1000_RAH) & RAH_AV)
+ {
+ E1000E_PRINT_D("Address Valid!");
+ ral = FE1000E_READREG32(base_addr, E1000_RAL);
+ rah = FE1000E_READREG32(base_addr, E1000_RAH);
+ memcpy(instance_p->mac, &ral, 4);
+ memcpy(instance_p->mac + 4, &rah, 2);
+ }
+ else
+ {
+ E1000E_PRINT_D("Address Not Valid!");
+ for (n = 0; n < 3; n++)
+ {
+ FE1000E_WRITEREG32(base_addr, E1000_EERD, EERD_START | (n << EERD_ADDR_SHIFT));
+ do
+ {
+ eerd = FE1000E_READREG32(base_addr, E1000_EERD);
+ BARRIER();
+ } while (!(eerd & EERD_DONE));
+ instance_p->mac[n * 2] = (uint8_t)(eerd >> EERD_DATA_SHIFT);
+ instance_p->mac[n * 2 + 1] = (uint8_t)(eerd >> (EERD_DATA_SHIFT + 8));
+ }
+ }
+
+ return;
+}
+
+/**
+ * @name: FE1000ESetMacAddr
+ * @msg: 设置FE1000E控制器的MAC地址
+ * @return {*}
+ * @param {FE1000ECtrl*} instance_p 控制器寄存器基地址
+ */
+void FE1000ESetMacAddr(FE1000ECtrl *instance_p)
+{
+ uintptr base_addr = instance_p->config.base_addr;
+
+ /* 写入mac 地址 */
+ FE1000E_WRITEREG32(base_addr, E1000_RAL, *(uint32_t *)instance_p->mac);
+ FE1000E_WRITEREG32(base_addr, E1000_RAH, *(uint16_t *)&instance_p->mac[4] | RAH_AV);
+
+ return;
+}
+
+/**
+ * @name: FE1000EReset
+ * @msg: reset FE1000E controller
+ * @param {FE1000ECtrl} *instance_p, instance of FE1000E controller
+ * @return err code information, FE1000E_SUCCESS indicates success,others indicates failed
+ */
+FError FE1000EReset(FE1000ECtrl *instance_p)
+{
+ FASSERT(instance_p);
+ FError ret = FE1000E_SUCCESS;
+
+ /* do software reset per init */
+ ret = FE1000ESoftwareReset(instance_p->config.base_addr);
+
+ /* backup mac address before software reset */
+ FE1000EGetMacAddr(instance_p);
+
+ E1000E_PRINT_I("MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", instance_p->mac[0], instance_p->mac[1], instance_p->mac[2], instance_p->mac[3], instance_p->mac[4], instance_p->mac[5]);
+
+ /* recover mac address after softwate reset */
+ FE1000ESetMacAddr(instance_p);
+
+ return ret;
+}
diff --git a/drivers/eth/e1000e/e1000e.h b/drivers/eth/e1000e/e1000e.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a8cd7013541416ac8386f95b889de2202048759
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e.h
@@ -0,0 +1,194 @@
+/*
+ * Copyright : (C) 2024 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e.h
+ * Date: 2025-01-03 14:46:52
+ * LastEditTime: 2025-01-03 14:46:58
+ * Description: This file is for e1000e driver .Functions in this file are the minimum required functions
+ * for this driver.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/03 first release
+ */
+
+#ifndef E1000E_H
+#define E1000E_H
+
+#include "ftypes.h"
+#include "fassert.h"
+#include "ferror_code.h"
+#include "fparameters.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define FE1000E_SUCCESS FT_SUCCESS
+#define FE1000E_ERR_TIMEOUT FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 1)
+#define FE1000E_ERR_INVALID_DMA_MEM FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 2)
+#define FE1000E_ERR_NOT_READY FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 3)
+#define FE1000E_ERR_TRANS_FAILED FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 4)
+#define FE1000E_ERR_PHY_NOT_SUPPORT FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 5)
+#define FE1000E_ERR_PHY_IS_NOT_FOUND FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 6)
+#define FE1000E_ERR_FAILED FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 7)
+#define FE1000E_ERR_PHY_AUTO_FAILED FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 8)
+#define FE1000E_ERR_RECEV_FAILED FT_MAKE_ERRCODE(ErrModBsp, ErrBspEth, 9)
+
+/* E1000E */
+#define FE1000E_NUM 1U
+#define FE1000E0_ID 0U
+
+#define ETH_ALEN 6
+#define RX_DESCRIPTORS 8
+#define RX_BUFFER_SIZE 2048
+#define TX_DESCRIPTORS 8
+
+#define FE1000E_SPEED_10 10U
+#define FE1000E_SPEED_100 100U
+#define FE1000E_SPEED_1000 1000U
+#define FE1000E_SPEED_2500 2500U
+#define FE1000E_SPEED_5000 5000U
+#define FE1000E_SPEED_10000 10000U
+#define FE1000E_SPEED_25000 25000U
+
+#define FE1000E_MTU 1500U /* max MTU size of Ethernet frame */
+#define FE1000E_MTU_JUMBO 10240U /* max MTU size of jumbo frame including Ip header + IP payload */
+#define FE1000E_HDR_SIZE 14U /* size of Ethernet header , DA + SA + TYPE*/
+#define FE1000E_HDR_VLAN_SIZE 18U /* size of Ethernet header with VLAN */
+#define FE1000E_TRL_SIZE 4U /* size of Ethernet trailer (FCS) */
+
+#define FE1000E_MAX_FRAME_SIZE (FE1000E_MTU + FE1000E_HDR_SIZE + FE1000E_TRL_SIZE)
+#define FE1000E_MAX_FRAME_SIZE_JUMBO (FE1000E_MTU_JUMBO + FE1000E_HDR_SIZE + FE1000E_TRL_SIZE)
+
+typedef void (*FE1000EEvtHandler)(void *pCtrl);
+
+/* Legacy TX Descriptor */
+struct FE1000ETxDesc
+{
+ uint64_t addr;
+ uint16_t len;
+ uint8_t cso;
+ uint8_t cmd;
+ uint8_t sta;
+ uint8_t css;
+ uint16_t special;
+};
+
+/* Legacy RX Descriptor */
+struct FE1000ERxDesc
+{
+ uint64_t addr;
+ uint16_t len;
+ uint16_t csum;
+ uint8_t sta;
+ uint8_t err;
+ uint16_t special;
+};
+
+typedef enum
+{
+ FE1000E_PHY_INTERFACE_MODE_SGMII,
+ FE1000E_PHY_INTERFACE_MODE_RMII,
+ FE1000E_PHY_INTERFACE_MODE_RGMII,
+ FE1000E_PHY_INTERFACE_MODE_XGMII,
+ FE1000E_PHY_INTERFACE_MODE_USXGMII,
+ FE1000E_PHY_INTERFACE_MODE_5GBASER ,
+ FE1000E_PHY_INTERFACE_MODE_2500BASEX
+} FE1000EPhyInterface;
+
+typedef struct
+{
+ u32 instance_id;
+ uintptr base_addr;
+ FE1000EPhyInterface interface;
+ u32 speed; /* FE1000E_SPEED_XXX */
+ u32 duplex; /* 1 is full-duplex , 0 is half-duplex */
+ u32 auto_neg; /* Enable auto-negotiation - when set active high, autonegotiation operation is enabled. */
+} FE1000EConfig;
+
+typedef struct
+{
+ u32 desc_idx; /* For Current Desc position */
+ u32 desc_buf_idx; /* For Current Desc buffer buf position */
+ u32 desc_first_buf_idx; /* For Identifing the first buffer the frame is in */
+ u32 desc_max_num; /* Max Number for Desc and Desc buffer */
+ u8 *desc_buf_base; /* Desc buffer Base */
+} FE1000ERingDescData; /* FE1000E DMA描述符表(链式)相关数据 */
+
+enum
+{
+ FE1000E_TX_COMPLETE_EVT = 0,
+ FE1000E_RX_COMPLETE_EVT,
+ FE1000E_LINK_STATUS_EVT,
+ FE1000E_PHY_STATUS_EVT,
+ FE1000E_DMA_ERR_EVT,
+
+ FE1000E_INTR_EVT_NUM
+}; /* interrupt event type */
+
+typedef struct
+{
+ FE1000EConfig config;
+ FE1000ERingDescData rx_ring;
+ FE1000ERingDescData tx_ring;
+ volatile struct FE1000ETxDesc tx[TX_DESCRIPTORS] __aligned(16);
+ volatile struct FE1000ERxDesc rx[RX_DESCRIPTORS] __aligned(16);
+ uint8_t txb[TX_DESCRIPTORS * RX_BUFFER_SIZE];
+ uint8_t rxb[RX_DESCRIPTORS * RX_BUFFER_SIZE];
+ uint8_t mac[ETH_ALEN];
+ u32 is_ready;
+ FE1000EEvtHandler evt_handler[FE1000E_INTR_EVT_NUM]; /* User registered interrupt handler */
+} FE1000ECtrl;
+
+typedef enum
+{
+ FE1000E_LINKDOWN = 0,
+ FE1000E_LINKUP = 1,
+ FE1000E_NEGOTIATION = 2,
+} FE1000ELinkStatus;
+
+FE1000EConfig *FE1000ELookupConfig(u32 instance_id);
+FError FE1000ECfgInitialize(FE1000ECtrl *instance_p, FE1000EConfig *cofig_p);
+void FE1000ECfgDeInitialize(FE1000ECtrl *pctrl);
+
+void FE1000EStop(FE1000ECtrl *instance_p);
+void FE1000EStart(FE1000ECtrl *instance_p);
+
+/* 配置FE1000E的发送DMA描述符和缓冲区 */
+FError FE1000ESetupTxDescRing(FE1000ECtrl *instance_p);
+
+/* 配置FE1000E的接收DMA描述符和缓冲区 */
+FError FE1000ESetupRxDescRing(FE1000ECtrl *instance_p);
+
+/* 获取FE1000E控制器配置的MAC地址 */
+void FE1000EGetMacAddr(FE1000ECtrl *instance_p);
+
+/* 设置FE1000E控制器的MAC地址 */
+void FE1000ESetMacAddr(FE1000ECtrl *instance_p);
+
+FError FE1000EReset(FE1000ECtrl *instance_p);
+
+void FE1000EDebugPrint(FE1000ECtrl *instance_p);
+
+FError FE1000ERecvFrame(FE1000ECtrl *instance_p);
+
+FError FE1000ESendFrame(FE1000ECtrl *instance_p, u32 frame_len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
diff --git a/drivers/eth/e1000e/e1000e_debug.c b/drivers/eth/e1000e/e1000e_debug.c
new file mode 100644
index 0000000000000000000000000000000000000000..12014a6677c990aaa2dfa5c9e8994fc0a41d5b57
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_debug.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_debug.c
+ * Date: 2025-01-03 15:33:03
+ * LastEditTime: 2025-01-03 15:33:04
+ * Description: This file is for user to debug e1000e information.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/03 first release
+ */
+
+#include "e1000e_hw.h"
+#include "e1000e.h"
+#include "fio.h"
+#include "fdrivers_port.h"
+
+#define FE1000E_DEBUG_TAG "FE1000E_DEBUG"
+#define FE1000E_ERROR(format, ...) FT_DEBUG_PRINT_E(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_INFO(format, ...) FT_DEBUG_PRINT_I(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_DEBUG(format, ...) FT_DEBUG_PRINT_D(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_WARN(format, ...) FT_DEBUG_PRINT_W(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/**
+ * @name: FE1000EDebugPrint
+ * @msg: Prints debug information for the FE1000E device instance by reading
+ * and logging various hardware registers.
+ * @param {FE1000ECtrl *}instance_p 驱动控制数据
+ * @return: None
+ */
+void FE1000EDebugPrint(FE1000ECtrl *instance_p)
+{
+ FE1000EConfig *config_p;
+ config_p = &instance_p->config;
+ FUNUSED(config_p);
+ FE1000E_INFO("E1000_CTRL 0x%08x", FtIn32(config_p->base_addr + E1000_CTRL));
+ FE1000E_INFO("E1000_MDIC 0x%08x", FtIn32(config_p->base_addr + E1000_MDIC));
+ FE1000E_INFO("E1000_STATUS 0x%08x", FtIn32(config_p->base_addr + E1000_STATUS));
+ FE1000E_INFO("E1000_RAL 0x%08x", FtIn32(config_p->base_addr + E1000_RAL));
+ FE1000E_INFO("E1000_RAH 0x%08x", FtIn32(config_p->base_addr + E1000_RAH));
+ FE1000E_INFO("E1000_RDBAL 0x%08x", FtIn32(config_p->base_addr + E1000_RDBAL));
+ FE1000E_INFO("E1000_RDBAH 0x%08x", FtIn32(config_p->base_addr + E1000_RDBAH));
+ FE1000E_INFO("E1000_RDLEN 0x%08x", FtIn32(config_p->base_addr + E1000_RDLEN));
+ FE1000E_INFO("E1000_RDH 0x%08x", FtIn32(config_p->base_addr + E1000_RDH));
+ FE1000E_INFO("E1000_RDT 0x%08x", FtIn32(config_p->base_addr + E1000_RDT));
+ FE1000E_INFO("E1000_RXDCTL 0x%08x", FtIn32(config_p->base_addr + E1000_RXDCTL));
+ FE1000E_INFO("E1000_RCTL 0x%08x", FtIn32(config_p->base_addr + E1000_RCTL));
+ FE1000E_INFO("E1000_TDBAL 0x%08x", FtIn32(config_p->base_addr + E1000_TDBAL));
+ FE1000E_INFO("E1000_TDBAH 0x%08x", FtIn32(config_p->base_addr + E1000_TDBAH));
+ FE1000E_INFO("E1000_TDLEN 0x%08x", FtIn32(config_p->base_addr + E1000_TDLEN));
+ FE1000E_INFO("E1000_TDH 0x%08x", FtIn32(config_p->base_addr + E1000_TDH));
+ FE1000E_INFO("E1000_TDT 0x%08x", FtIn32(config_p->base_addr + E1000_TDT));
+ FE1000E_INFO("E1000_TXDCTL 0x%08x", FtIn32(config_p->base_addr + E1000_TXDCTL));
+ FE1000E_INFO("E1000_TCTL 0x%08x", FtIn32(config_p->base_addr + E1000_TCTL));
+ FE1000E_INFO("E1000_TIPG 0x%08x", FtIn32(config_p->base_addr + E1000_TIPG));
+
+ return;
+}
diff --git a/drivers/eth/e1000e/e1000e_dma.c b/drivers/eth/e1000e/e1000e_dma.c
new file mode 100644
index 0000000000000000000000000000000000000000..332a9e535eab8fa1181626c0fc72f0de31d509e3
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_dma.c
@@ -0,0 +1,215 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_dma.c
+ * Date: 2025-01-03 14:46:52
+ * LastEditTime: 2025-01-03 14:46:58
+ * Description: This file implements dma descriptor ring related functions.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/03 first release
+ */
+
+/***************************** Include Files *********************************/
+
+#include
+#include "fassert.h"
+#include "e1000e.h"
+#include "e1000e_hw.h"
+#include "fdrivers_port.h"
+#include "fdebug.h"
+
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+#define E1000E_DEBUG_TAG "E1000E-DMA"
+#define E1000E_ERROR(format, ...) FT_DEBUG_PRINT_E(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_WARN(format, ...) FT_DEBUG_PRINT_W(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_INFO(format, ...) FT_DEBUG_PRINT_I(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define E1000E_DEBUG(format, ...) FT_DEBUG_PRINT_D(E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define INT_TO_POINTER(x) ((void *)(intptr_t)(x))
+#define POINTER_TO_INT(x) ((uintptr) (x))
+
+/************************** Variable Definitions *****************************/
+
+/************************** Function Prototypes ******************************/
+
+/**
+ * @name: FE1000ESetupRxDescRing
+ * @msg: 配置E1000E的接收DMA描述符和缓冲区
+ * @param {FE1000ECtrl *}instance_p 驱动控制数据
+ * @return {FError} RX DMA初始化的错误码信息,E1000E_SUCCESS 表示RX DMA初始化成功,其它返回值表示RX DMA初始化失败
+ */
+FError FE1000ESetupRxDescRing(FE1000ECtrl *instance_p)
+{
+ uintptr bar0_addr = instance_p->config.base_addr;
+ uint32_t val;
+ unsigned int n;
+
+ FASSERT(instance_p);
+
+ /* 初始化描述符 */
+ /* 将buffer 填入每个描述符 */
+ for (n = 0; n < RX_DESCRIPTORS; n++)
+ {
+ instance_p->rx[n].addr = (unsigned long)&instance_p->rxb[n * RX_BUFFER_SIZE];
+ }
+
+ /* RDBAL 写入描述符地址低位 */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDBAL, (unsigned long)&instance_p->rx);
+ /* RDBAH 将0写入描述符地址高位 */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDBAH, 0);
+ /* 写入 RDLEN */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDLEN, sizeof(instance_p->rx));
+ /* 初始化 head tail */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDH, 0);
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDT, 0);
+ /* 使能 RXDCTL 第25 位 */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RXDCTL, FE1000E_READREG32(bar0_addr, E1000_RXDCTL) | RXDCTL_ENABLE);
+ /* 初始化 RCTL */
+ val = FE1000E_READREG32(bar0_addr, E1000_RCTL);
+ val |= RCTL_EN | RCTL_BAM | RCTL_BSIZE_2048 | RCTL_SECRC;
+ FE1000E_WRITEREG32(bar0_addr, E1000_RCTL, val);
+ /* 设置接收尾帧 */
+ FE1000E_WRITEREG32(bar0_addr, E1000_RDT, RX_DESCRIPTORS - 1);
+ return FE1000E_SUCCESS;
+}
+
+/**
+ * @name: FE1000ESetupTxDescRing
+ * @msg: 配置E1000E的发送DMA描述符和缓冲区
+ * @param {FE1000ECtrl *}instance_p 驱动控制数据
+ * @return {FError} TX DMA初始化的错误码信息,E1000E_SUCCESS 表示TX DMA初始化成功,其它返回值表示TX DMA初始化失败
+ */
+FError FE1000ESetupTxDescRing(FE1000ECtrl *instance_p)
+{
+ uintptr bar0_addr = instance_p->config.base_addr;
+ uint32_t val;
+
+ FASSERT(instance_p);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TDBAL, (unsigned long)&instance_p->tx);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TDBAH, 0);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TDLEN, sizeof(instance_p->tx));
+ FE1000E_WRITEREG32(bar0_addr, E1000_TDH, 0);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TDT, 0);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TXDCTL, FE1000E_READREG32(bar0_addr, E1000_TXDCTL) | TXDCTL_ENABLE);
+ val = FE1000E_READREG32(bar0_addr, E1000_TCTL);
+ val |= TCTL_EN | TCTL_PSP | TCTL_CT_DEF | TCTL_COLD_DEF;
+ FE1000E_WRITEREG32(bar0_addr, E1000_TCTL, val);
+ FE1000E_WRITEREG32(bar0_addr, E1000_TIPG, TIPG_IPGT_DEF | TIPG_IPGR1_DEF | TIPG_IPGR2_DEF);
+
+ return FE1000E_SUCCESS;
+}
+
+/**
+ * @name: PacketReceptionDone
+ * @msg: Marks the completion of a packet reception and updates the RX descriptor index
+ * for the specified FE1000E device instance.
+ * @param {FE1000ECtrl *}instance_p 驱动控制数据
+ * @return: None
+ */
+static void PacketReceptionDone(FE1000ECtrl *instance_p)
+{
+ unsigned int idx = instance_p->rx_ring.desc_idx;
+
+ instance_p->rx[idx].sta &= ~(0x01);
+ instance_p->rx_ring.desc_idx = (instance_p->rx_ring.desc_idx + 1) % RX_DESCRIPTORS;
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_RDT, idx);
+}
+
+/**
+ * @name: FE1000ERecvFrame
+ * @msg: 通过E1000E接收数据帧
+ * @return {FError} E1000E_SUCCESS 表示接收数据帧成功,其它返回值表示接收数据帧失败
+ * @param {FE1000ECtrl} *instance_p 驱动控制数据
+ * @note 调用函数前需要确保E1000E驱动初始化成功
+ */
+FError FE1000ERecvFrame(FE1000ECtrl *instance_p)
+{
+ // void *buf;
+ uint16_t len;
+ u32 rx_idx = instance_p->rx_ring.desc_idx;
+
+ FASSERT(instance_p);
+
+ if (!(instance_p->rx[rx_idx].sta & RDESC_STA_DD))
+ {
+ return FE1000E_ERR_RECEV_FAILED;
+ }
+
+ // buf = INT_TO_POINTER((uint32_t)instance_p->rx[rx_idx].addr);
+ len = instance_p->rx[rx_idx].len;
+
+ E1000E_DEBUG("rx[%d].sta: 0x%02hx", rx_idx, instance_p->rx[rx_idx].sta);
+ E1000E_DEBUG("rx[%d].len: %d", rx_idx, instance_p->rx[rx_idx].len);
+
+ E1000E_INFO("Recv buf is:");
+ // FtDumpHexByte(((u8 *)(buf)), (u32)len);
+
+ if (len <= 0)
+ {
+ E1000E_DEBUG("Invalid RX descriptor length: %hu", instance_p->rx[rx_idx].len);
+ return FE1000E_ERR_RECEV_FAILED;
+ }
+
+ PacketReceptionDone(instance_p);
+
+ return FE1000E_SUCCESS;
+}
+
+/**
+ * @name: FE1000ESendFrame
+ * @msg: 通过FE1000E发送数据帧
+ * @return {FError} FE1000E_SUCCESS 表示发送数据帧成功,其它返回值表示发送数据帧失败
+ * @param {FE1000ECtrl *} instance_p 驱动控制数据
+ * @param {u32} frame_len 数据帧长度
+ * @note 调用函数前需要确保FE1000E驱动初始化成功
+ */
+FError FE1000ESendFrame(FE1000ECtrl *instance_p, u32 frame_len)
+{
+ FASSERT(instance_p);
+ unsigned int idx = instance_p->tx_ring.desc_idx;
+
+ if (0U == frame_len)
+ {
+ return FE1000E_SUCCESS;
+ }
+
+ E1000E_INFO("Send buf is:");
+ // FtDumpHexByte((&instance_p->txb[instance_p->tx_ring.desc_idx]), (u32)frame_len);
+
+ E1000E_DEBUG("frame_len: %d", frame_len);
+ instance_p->tx[idx].addr = POINTER_TO_INT(&instance_p->txb[instance_p->tx_ring.desc_idx]);
+ instance_p->tx[idx].len = frame_len;
+ instance_p->tx[idx].cmd = TDESC_EOP | TDESC_RS | TDESC_IFCS;
+ E1000E_DEBUG("tx[%d].sta: 0x%02hx", idx, instance_p->tx[idx].sta);
+ E1000E_DEBUG("tx[%d].cmd: 0x%02hx", idx, instance_p->tx[idx].cmd);
+ instance_p->tx_ring.desc_idx = (instance_p->tx_ring.desc_idx + 1) % TX_DESCRIPTORS;
+ FE1000E_WRITEREG32(instance_p->config.base_addr, E1000_TDT, instance_p->tx_ring.desc_idx);
+ DMB();
+ /* 等待发送完成 */
+ while (!(instance_p->tx[idx].sta))
+ {
+
+ }
+
+ E1000E_DEBUG("tx[%d].sta: 0x%02hx", idx, instance_p->tx[idx].sta);
+ E1000E_DEBUG("tx[%d].cmd: 0x%02hx", idx, instance_p->tx[idx].cmd);
+
+ return (instance_p->tx[idx].sta & TDESC_STA_DD) ? FE1000E_SUCCESS : FE1000E_ERR_TRANS_FAILED;
+}
diff --git a/drivers/eth/e1000e/e1000e_g.c b/drivers/eth/e1000e/e1000e_g.c
new file mode 100644
index 0000000000000000000000000000000000000000..68825771f9633d77dae5911017fcf9d722947714
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_g.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_g.c
+ * Date: 2025-01-02 14:53:42
+ * LastEditTime: 2025-01-02 08:25:09
+ * Description: This file is for e1000e driver static config
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/02 first release
+ */
+
+
+/* - This file contains a configuration table that specifies the configuration
+- 驱动全局变量定义,包括静态配置参数 */
+
+/***************************** Include Files *********************************/
+
+#include "ftypes.h"
+#include "fparameters.h"
+#include "e1000e.h"
+
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Variable Definitions *****************************/
+/*
+ * The configuration table for e1000e device
+ */
+FE1000EConfig FE1000E_CONFIG_TBL[FE1000E_NUM] =
+{
+ {
+ .instance_id = 0, /* Id of device*/
+ .base_addr = 0,
+ .interface = FE1000E_PHY_INTERFACE_MODE_SGMII,
+ .speed = 1000,
+ .duplex = 1,
+ .auto_neg = 1,
+ },
+};
+
+
+/*****************************************************************************/
diff --git a/drivers/eth/e1000e/e1000e_hw.c b/drivers/eth/e1000e/e1000e_hw.c
new file mode 100644
index 0000000000000000000000000000000000000000..4814d38c34594c7020ebbe55715bc97c0e05f027
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_hw.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_hw.c
+ * Date: 2025-01-02 14:46:52
+ * LastEditTime: 2025-01-02 14:46:58
+ * Description: This file is for manipulation of hardware registers .
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/02 first release
+ */
+
+#include "fassert.h"
+#include "fdrivers_port.h"
+#include "e1000e.h"
+#include "e1000e_hw.h"
+#include "e1000e_phy.h"
+#include "faarch.h"
+
+/***************************** Include Files *********************************/
+
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/************************** Variable Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+#define FE1000E_DEBUG_TAG "FE1000E-HW"
+#define FE1000E_ERROR(format, ...) FT_DEBUG_PRINT_E(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_WARN(format, ...) FT_DEBUG_PRINT_W(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_INFO(format, ...) FT_DEBUG_PRINT_I(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_DEBUG(format, ...) FT_DEBUG_PRINT_D(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+static const char *speed_info[] = { "10", "100", "1000", "1000" };
+
+/************************** Function Prototypes ******************************/
+
+/**
+ * @name: FE1000ESoftwareReset
+ * @msg: 触发FE1000E控制器软件复位
+ * @return {*}
+ * @param {uintptr} uintptr, e1000e控制器地址
+ * @param {int} timeout 等待复位完成的状态检测周期数目
+ */
+FError FE1000ESoftwareReset(uintptr addr)
+{
+ uintptr base_addr = addr;
+ uint32_t reg;
+ uint32_t val;
+
+ /* 全局重置 */
+ FE1000E_WRITEREG32(base_addr, E1000_CTRL, CTRL_RST);
+ FDriverUdelay(20000);
+
+ /* CTRL */
+ reg = FE1000E_READREG32(base_addr, E1000_CTRL);
+ reg &= ~(CTRL_LRST | CTRL_FRCSPD);
+ reg |= CTRL_SLU;
+ FE1000E_WRITEREG32(base_addr, E1000_CTRL, reg);
+
+ /* power up again in case the previous user turned it off */
+ FE1000EPhyWrite(base_addr, PHY_CTRL, FE1000EPhyRead(base_addr, PHY_CTRL) & ~PHYC_POWER_DOWN);
+
+ FE1000E_INFO("Waiting for link...");
+ while (!(FE1000E_READREG32(base_addr, E1000_STATUS) & STATUS_LU))
+ BARRIER();
+ FE1000E_INFO(" ok");
+
+ /* 读取 phy ,确定link的速度 */
+ val = FE1000E_READREG32(base_addr, E1000_STATUS) & STATUS_SPEED;
+ val >>= STATUS_SPEEDSHFT;
+ FE1000E_INFO("Link speed: %s Mb/s", speed_info[val]);
+
+ return FE1000E_SUCCESS;
+}
diff --git a/drivers/eth/e1000e/e1000e_hw.h b/drivers/eth/e1000e/e1000e_hw.h
new file mode 100644
index 0000000000000000000000000000000000000000..846104016aa268e304ab04494ab6e3054d291897
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_hw.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright : (C) 2024 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_hw.h
+ * Date: 2025-01-03 14:46:52
+ * LastEditTime: 2025-01-03 14:46:58
+ * Description: This file is hardware definition file.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/03 first release
+ */
+
+#ifndef E1000E_HW_H
+#define E1000E_HW_H
+
+#include "fparameters.h"
+#include "fio.h"
+#include "ftypes.h"
+#include "fdrivers_port.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define E1000_CTRL 0x00000 /* Device Control - RW */
+#define CTRL_FD (1) /* Full-Duplex */
+#define CTRL_LRST (1 << 3) /* Link Reset */
+#define CTRL_SLU (1 << 6) /* Set Link Up */
+#define CTRL_FRCSPD (1 << 11) /* Force Speed */
+#define CTRL_FRCDPLX (1 << 12) /* Force Duplex */
+#define CTRL_RST (1 << 26) /* Device Reset */
+
+#define E1000_STATUS 0x00008 /* Device Status - RO */
+#define STATUS_LU (1 << 1)
+#define STATUS_SPEEDSHFT 6
+#define STATUS_SPEED (3 << STATUS_SPEEDSHFT)
+
+#define E1000_EECD 0x00010 /* EEPROM/Flash Control - RW */
+#define E1000_EERD 0x00014 /* EEPROM Read - RW */
+#define EERD_START (1 << 0)
+#define EERD_DONE (1 << 1)
+#define EERD_ADDR_SHIFT 2
+#define EERD_DATA_SHIFT 16
+
+#define E1000_CTRL_EXT 0x00018 /* Extended Device Control - RW */
+#define E1000_FLA 0x0001C /* Flash Access - RW */
+#define E1000_MDIC 0x00020 /* MDI Control - RW */
+#define MDIC_REGADD_SHFT 16
+#define MDIC_PHYADD (0x1 << 21)
+#define MDIC_OP_WRITE (0x1 << 26)
+#define MDIC_OP_READ (0x2 << 26)
+#define MDIC_READY (0x1 << 28)
+#define PHY_CTRL 0
+#define PHYC_POWER_DOWN (1 << 11)
+
+#define E1000_FCAL 0x00028 /* Flow Control Address Low - RW */
+#define E1000_FCAH 0x0002C /* Flow Control Address High -RW */
+#define E1000_FEXT 0x0002C /* Future Extended - RW */
+#define E1000_FEXTNVM 0x00028 /* Future Extended NVM - RW */
+#define E1000_FEXTNVM3 0x0003C /* Future Extended NVM 3 - RW */
+#define E1000_FEXTNVM4 0x00024 /* Future Extended NVM 4 - RW */
+#define E1000_FEXTNVM5 0x00014 /* Future Extended NVM 5 - RW */
+#define E1000_FEXTNVM6 0x00010 /* Future Extended NVM 6 - RW */
+#define E1000_FEXTNVM7 0x000E4 /* Future Extended NVM 7 - RW */
+#define E1000_FEXTNVM8 0x5BB0 /* Future Extended NVM 8 - RW */
+#define E1000_FEXTNVM9 0x5BB4 /* Future Extended NVM 9 - RW */
+#define E1000_FEXTNVM11 0x5BBC /* Future Extended NVM 11 - RW */
+#define E1000_FEXTNVM12 0x5BC0 /* Future Extended NVM 12 - RW */
+#define E1000_PCIEANACFG 0x00F18 /* PCIE Analog Config */
+#define E1000_DPGFR 0x00FAC /* Dynamic Power Gate Force Control Register */
+
+#define E1000_FCT 0x00030 /* Flow Control Type - RW */
+#define E1000_VET 0x00038 /* VLAN Ether Type - RW */
+#define E1000_ICR 0x000C0 /* Interrupt Cause Read - R/clr */
+#define ICR_TXDW (1) /* Transmit Descriptor Written Back */
+#define ICR_TXQE (1 << 1) /* Transmit Queue Empty */
+#define ICR_LSC (1 << 2) /* Link Status Change */
+#define ICR_RXDMT0 (1 << 4) /* Receive Descriptor Minimum Threshold hit */
+#define ICR_RXO (1 << 6) /* Receiver Overrun */
+#define ICR_RXT0 (1 << 7) /* Receiver Timer Interrupt 0 */
+
+#define E1000_ITR 0x000C4 /* Interrupt Throttling Rate - RW */
+#define E1000_ICS 0x000C8 /* Interrupt Cause Set - WO */
+#define ICS_TXDW (1) /* Transmit Descriptor Written Back */
+#define ICS_TXQE (1 << 1) /* Transmit Queue Empty */
+#define ICS_LSC (1 << 2) /* Link Status Change */
+#define ICS_RXDMT0 (1 << 4) /* Receive Descriptor Minimum Threshold hit */
+#define ICS_RXO (1 << 6) /* Receiver FIFO Overrun */
+#define ICS_RXT0 (1 << 7) /* Receiver Timer Interrupt 0 */
+
+#define E1000_IMS 0x000D0 /* Interrupt Mask Set - RW */
+#define IMS_TXDW (1) /* Transmit Descriptor Written Back */
+#define IMS_TXQE (1 << 1) /* Transmit Queue Empty */
+#define IMS_LSC (1 << 2) /* Link Status Change */
+#define IMS_RXDMT0 (1 << 4) /* Receive Descriptor Minimum Threshold hit */
+#define IMS_RXO (1 << 6) /* Receiver FIFO Overrun */
+#define IMS_RXT0 (1 << 7) /* Receiver Timer Interrupt 0 */
+#define IMS_ALL_MASK GENMASK(31, 0)
+
+#define E1000_IMC 0x000D8 /* Interrupt Mask Clear - WO */
+#define E1000_IAM 0x000E0 /* Interrupt Acknowledge Auto Mask */
+#define E1000_IVAR 0x000E4 /* Interrupt Vector Allocation Register - RW */
+#define E1000_SVCR 0x000F0
+#define E1000_SVT 0x000F4
+#define E1000_LPIC 0x000FC /* Low Power IDLE control */
+
+#define E1000_RCTL 0x00100 /* Rx Control - RW */
+#define RCTL_EN (1 << 1)
+#define RCTL_UPE (1 << 3) /* Unicast Promiscuous Enabled */
+#define RCTL_MPE (1 << 4) /* Multicast Promiscuous Enabled */
+#define RCTL_RDMTS_1_2 (0 << 8)
+#define RCTL_RDMTS_1_4 (1 << 8)
+#define RCTL_RDMTS_1_8 (1 << 9)
+#define RCTL_BAM (1 << 15) /* Broadcast Accept Mode */
+#define RCTL_BSIZE_2048 (0 << 16)
+#define RCTL_SECRC (1 << 26)
+
+#define E1000_FCTTV 0x00170 /* Flow Control Transmit Timer Value - RW */
+#define E1000_TXCW 0x00178 /* Tx Configuration Word - RW */
+#define E1000_RXCW 0x00180 /* Rx Configuration Word - RO */
+#define E1000_PBA_ECC 0x01100 /* PBA ECC Register */
+
+#define E1000_TCTL 0x00400 /* Tx Control - RW */
+#define TCTL_EN (1 << 1)
+#define TCTL_PSP (1 << 3)
+#define TCTL_CT_DEF (0x0F << 4)
+#define TCTL_COLD_DEF (0x3F << 12)
+
+#define E1000_TCTL_EXT 0x00404 /* Extended Tx Control - RW */
+
+#define E1000_TIPG 0x00410 /* Tx Inter-packet gap -RW */
+#define TIPG_IPGT_DEF (10 << 0)
+#define TIPG_IPGR1_DEF (10 << 10)
+#define TIPG_IPGR2_DEF (10 << 20)
+
+#define E1000_AIT 0x00458 /* Adaptive Interframe Spacing Throttle - RW */
+#define E1000_LEDCTL 0x00E00 /* LED Control - RW */
+#define E1000_EXTCNF_CTRL 0x00F00 /* Extended Configuration Control */
+#define E1000_EXTCNF_SIZE 0x00F08 /* Extended Configuration Size */
+#define E1000_PBA 0x01000 /* Packet Buffer Allocation - RW */
+#define E1000_PBS 0x01008 /* Packet Buffer Size */
+#define E1000_PBECCSTS 0x0100C /* Packet Buffer ECC Status - RW */
+#define E1000_IOSFPC 0x00F28 /* TX corrupted data */
+#define E1000_EEMNGCTL 0x01010 /* MNG EEprom Control */
+#define E1000_EEWR 0x0102C /* EEPROM Write Register - RW */
+#define E1000_FLOP 0x0103C /* FLASH Opcode Register */
+#define E1000_ERT 0x02008 /* Early Rx Threshold - RW */
+#define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */
+#define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */
+#define E1000_PSRCTL 0x02170 /* Packet Split Receive Control - RW */
+#define E1000_RDFH 0x02410 /* Rx Data FIFO Head - RW */
+#define E1000_RDFT 0x02418 /* Rx Data FIFO Tail - RW */
+#define E1000_RDFHS 0x02420 /* Rx Data FIFO Head Saved - RW */
+#define E1000_RDFTS 0x02428 /* Rx Data FIFO Tail Saved - RW */
+#define E1000_RDFPC 0x02430 /* Rx Data FIFO Packet Count - RW */
+#define E1000_RDTR 0x02820 /* Rx Delay Timer - RW */
+#define E1000_RADV 0x0282C /* Rx Interrupt Absolute Delay Timer - RW */
+
+#define E1000_RDBAL 0x02800 /* RX Descriptor Base Address Low - RW */
+#define E1000_RDBAH 0x02804 /* RX Descriptor Base Address High - RW */
+#define E1000_RDLEN 0x02808 /* RX Descriptor Length - RW */
+#define E1000_RDH 0x02810 /* RX Descriptor Head - RW */
+#define E1000_RDT 0x02818 /* RX Descriptor Tail - RW */
+#define E1000_RDTR 0x02820 /* RX Delay Timer - RW */
+
+#define E1000_RXDCTL 0x02828 /* RX Descriptor Control queue 0 - RW */
+#define RXDCTL_WTHRESH (1 << 16) /* Write Back Threshold */
+#define RXDCTL_GRAN (1 << 24) /* Granularity */
+#define RXDCTL_ENABLE (1 << 25)
+
+#define E1000_TDBAL 0x03800 /* TX Descriptor Base Address Low - RW */
+#define E1000_TDBAH 0x03804 /* TX Descriptor Base Address High - RW */
+#define E1000_TDLEN 0x03808 /* TX Descriptor Length - RW */
+#define E1000_TDH 0x03810 /* TX Descriptor Head - RW */
+#define E1000_TDT 0x03818 /* TX Descripotr Tail - RW */
+#define E1000_TIDV 0x03820 /* TX Interrupt Delay Value - RW */
+
+#define E1000_TXDCTL 0x03828 /* TX Descriptor Control - RW */
+#define TXDCTL_WTHRESH (1 << 16) /* Write Back Threshold */
+#define TXDCTL_82571 (1 << 22)
+#define TXDCTL_GRAN (1 << 24) /* Granularity */
+#define TXDCTL_ENABLE (1 << 25)
+
+#define E1000_TARC0 0x03840 /* TX Arbitration Count (0) */
+#define E1000_RAL 0x05400 /* Receive Address Low - RW Array */
+#define E1000_RAH 0x05404 /* Receive Address High - RW Array */
+#define RAH_AV (1 << 31)
+
+#define E1000_MRQC 0x05818 /* Multiple Receive Control - RW */
+#define E1000_GCR 0x05B00 /* PCI-Ex Control */
+#define E1000_GSCL_1 0x05B10 /* PCI-Ex Statistic Control #1 */
+#define E1000_GSCL_2 0x05B14 /* PCI-Ex Statistic Control #2 */
+#define E1000_GSCL_3 0x05B18 /* PCI-Ex Statistic Control #3 */
+#define E1000_GSCL_4 0x05B1C /* PCI-Ex Statistic Control #4 */
+#define E1000_FACTPS 0x05B30 /* Function Active and Power State to MNG */
+#define E1000_SWSM 0x05B50 /* SW Semaphore */
+#define E1000_FWSM 0x05B54 /* FW Semaphore */
+#define E1000_FFLT_DBG 0x05F04 /* Debug Register */
+#define E1000_HICR 0x08F00 /* Host Interface Control */
+
+/* 描述符 */
+#define RDESC_STA_DD (1) /* Descriptor Done */
+#define TDESC_STA_DD (1) /* Descriptor Done */
+
+#define TDESC_EOP (1) /* End Of Packet */
+#define TDESC_IFCS (1 << 1) /* Insert FCS */
+#define TDESC_RS (1 << 3) /* Report Status */
+
+
+#define FE1000E_READREG32(add, reg_offset) FtIn32(add + (u32)reg_offset)
+#define FE1000E_WRITEREG32(add, reg_offset, reg_value) FtOut32(add + (u32)reg_offset, (u32)reg_value)
+#define FE1000E_SETBIT32(add, reg_offset, reg_value) FtSetBit32(add + (u32)reg_offset, (u32)reg_value)
+#define FE1000E_CLEARBIT32(add, reg_offset, reg_value) FtClearBit32(add + (u32)reg_offset, (u32)reg_value)
+
+/* 触发FE1000E控制器软件复位 */
+FError FE1000ESoftwareReset(uintptr addr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
diff --git a/drivers/eth/e1000e/e1000e_phy.c b/drivers/eth/e1000e/e1000e_phy.c
new file mode 100644
index 0000000000000000000000000000000000000000..f4d5ab5a55dd17e0781768ab25f14b9eb133db9c
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_phy.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_phy.c
+ * Date: 2025-01-13 14:46:52
+ * LastEditTime: 2025-01-13 14:46:58
+ * Description: This file is for phy types.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/13 first release
+ */
+
+#include "fdrivers_port.h"
+#include "e1000e.h"
+#include "e1000e_phy.h"
+#include "e1000e_hw.h"
+#include "faarch.h"
+
+#define FE1000E_DEBUG_TAG "FE1000E_PHY"
+#define FE1000E_ERROR(format, ...) FT_DEBUG_PRINT_E(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_INFO(format, ...) FT_DEBUG_PRINT_I(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_DEBUG(format, ...) FT_DEBUG_PRINT_D(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_WARN(format, ...) FT_DEBUG_PRINT_W(FE1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/**
+ * Write data to the specified PHY register. The Ethernet driver does not
+ * require the device to be stopped before writing to the PHY. Although it is
+ * probably a good idea to stop the device, it is the responsibility of the
+ * application to deem this necessary. The MAC provides the driver with the
+ * ability to talk to a PHY that adheres to the Media Independent Interface
+ * (MII) as defined in the IEEE 802.3 standard.
+ *
+ * @param base_addr Base address of the Ethernet controller's register space.
+ * @param reg The register number (0-31) of the PHY to which data will be written.
+ * @param val The 16-bit value to write to the specified PHY register.
+ *
+ * @return
+ *
+ * - FT_SUCCESS if the PHY was written to successfully. Since there is no error
+ * status from the MAC on a write, the user should read the PHY to verify the
+ * write was successful.
+ * - FE1000E_ERR_PHY_BUSY if there is another PHY operation in progress
+ *
+ * @note
+ *
+ * This function is not thread-safe. If multiple threads can access this
+ * function, the user must ensure mutual exclusion.
+ *
+ * If the hardware malfunctions (e.g., the `MDIC_READY` status bit is not set),
+ * this function could enter an infinite loop. Users should consider adding a
+ * timeout mechanism for error recovery.
+ *
+ * During the execution of this function, all host interface reads and writes
+ * to the specified Ethernet controller instance are blocked.
+ *
+ ******************************************************************************/
+FError FE1000EPhyWrite(uintptr base_addr, unsigned int reg, uint16_t val)
+{
+ FE1000E_WRITEREG32(base_addr, E1000_MDIC, val | (reg << MDIC_REGADD_SHFT) | MDIC_PHYADD | MDIC_OP_WRITE);
+ while (!(FE1000E_READREG32(base_addr, E1000_MDIC) & MDIC_READY))
+ BARRIER();
+ return FT_SUCCESS;
+}
+
+/**
+ * Read the current value of the PHY register indicated by the phy_address and
+ * the register_num parameters. The MAC provides the driver with the ability to
+ * talk to a PHY that adheres to the Media Independent Interface (MII) as
+ * defined in the IEEE 802.3 standard.
+ *
+ *
+ * @param base_addr Base address of the Ethernet controller's register space.
+ * @param reg The register number (0-31) of the PHY to read.
+ *
+ * @return
+ *
+ * - The 16-bit value read from the specified PHY register.
+ * - If the read operation is not successful due to hardware issues, the
+ * function may not return (see note below).
+ *
+ * @note
+ *
+ * This function is not thread-safe. Users must ensure mutual exclusion
+ * when multiple threads access this function.
+ *
+ * If the hardware malfunctions (e.g., the `MDIC_READY` bit is not set),
+ * the function may enter an infinite loop. Users are advised to implement
+ * a timeout mechanism for error recovery if needed.
+ *
+ * During the execution of this function, all host interface reads and writes
+ * to the specified Ethernet controller instance are blocked.
+ *
+ ******************************************************************************/
+uint16_t FE1000EPhyRead(uintptr base_addr, unsigned int reg)
+{
+ uint32_t val;
+ FE1000E_WRITEREG32(base_addr, E1000_MDIC, (reg << MDIC_REGADD_SHFT) | MDIC_PHYADD | MDIC_OP_READ);
+ val = FE1000E_READREG32(base_addr, E1000_MDIC);
+ do
+ {
+ val = FE1000E_READREG32(base_addr, E1000_MDIC);
+ BARRIER();
+ } while (!(val & MDIC_READY));
+
+ return (uint16_t)val;
+}
diff --git a/drivers/eth/e1000e/e1000e_phy.h b/drivers/eth/e1000e/e1000e_phy.h
new file mode 100644
index 0000000000000000000000000000000000000000..85bad06e9502bbe5e3a0d64a0c18449af2586dea
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_phy.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_phy.h
+ * Date: 2025-01-13 14:46:52
+ * LastEditTime: 2025-01-13 14:46:58
+ * Description: This file is for phy configuration.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/13 first release
+ */
+
+#ifndef FE1000E_PHY_H
+#define FE1000E_PHY_H
+
+#include "ftypes.h"
+#include "ferror_code.h"
+#include "e1000e.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define E1000E_PHY_RESET_ENABLE 1
+#define E1000E_PHY_RESET_DISABLE 0
+
+enum
+{
+ FE1000E_PHY_AUTONEGOTIATION_DISABLE = 0,
+ FE1000E_PHY_AUTONEGOTIATION_ENABLE
+};
+
+enum
+{
+ FE1000E_PHY_MODE_HALFDUPLEX = 0,
+ FE1000E_PHY_MODE_FULLDUPLEX
+};
+
+/* phy interface */
+FError FE1000EPhyWrite(uintptr base_addr, unsigned int reg, uint16_t val);
+uint16_t FE1000EPhyRead(uintptr base_addr, unsigned int reg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/drivers/eth/e1000e/e1000e_sinit.c b/drivers/eth/e1000e/e1000e_sinit.c
new file mode 100644
index 0000000000000000000000000000000000000000..53533f84b6ddd2fd98e95589d537e616b06166fd
--- /dev/null
+++ b/drivers/eth/e1000e/e1000e_sinit.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_sinit.c
+ * Date: 2025-01-02 14:53:42
+ * LastEditTime: 2025-01-02 08:25:15
+ * Description: This file is for e1000e driver static init
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/02 first release
+ */
+
+
+
+/* - This file contains the implementation of driver's static initialization functionality.
+- 驱动静态初始化 */
+
+/***************************** Include Files *********************************/
+
+#include "ftypes.h"
+#include "fparameters.h"
+#include "e1000e.h"
+
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Variable Definitions *****************************/
+
+extern FE1000EConfig FE1000E_CONFIG_TBL[FE1000E_NUM];
+
+/************************** Function Prototypes ******************************/
+/**
+ * @name: FE1000ELookupConfig
+ * @msg: 获取E1000E驱动的默认配置参数
+ * @return {FE1000EConfig *}, 驱动默认配置
+ * @param {u32} instance_id, 驱动控制器号
+ * @note 返回E1000E的默认配置,复制后修改配置
+ * 需要确认当前平台支持输入的instance_id
+ */
+FE1000EConfig *FE1000ELookupConfig(u32 instance_id)
+{
+ FE1000EConfig *ptr = NULL;
+ u32 index;
+
+ for (index = 0; index < (u32)FE1000E_NUM; index++)
+ {
+ if (FE1000E_CONFIG_TBL[index].instance_id == instance_id)
+ {
+ ptr = &FE1000E_CONFIG_TBL[index];
+ break;
+ }
+ }
+
+ return (FE1000EConfig *)ptr;
+}
\ No newline at end of file
diff --git a/drivers/eth/src.mk b/drivers/eth/src.mk
index 8e440167edfaf53becbe58964207f737b8d5b592..afa80585a917da8ab3c35dc6c90091f6c81ee444 100644
--- a/drivers/eth/src.mk
+++ b/drivers/eth/src.mk
@@ -32,3 +32,14 @@ endif
endif
+ifdef CONFIG_ENABLE_E1000E
+DRIVERS_CSRCS += \
+ e1000e.c\
+ e1000e_g.c\
+ e1000e_sinit.c\
+ e1000e_dma.c\
+ e1000e_hw.c\
+ e1000e_debug.c\
+ e1000e_phy.c
+endif
+
diff --git a/drivers/i2s/fes8336/fes8336.c b/drivers/i2s/fes8336/fes8336.c
index 214e6658b7c4df6b42b8d15b9ad63cb4d6ef3307..d0fa0049dabe11620a3b7774017a52aa778ebb5d 100644
--- a/drivers/i2s/fes8336/fes8336.c
+++ b/drivers/i2s/fes8336/fes8336.c
@@ -65,8 +65,8 @@ _UNUSED static const struct reg_default es8336_reg_defaults[] =
{0x50, 0x00}, {0x51, 0x00}, {0x52, 0x00}, {0x53, 0x00},
};
-static FI2c master_device;
-static FMioCtrl es8336;
+FI2c master_device;
+FMioCtrl es8336;
/**
* @name: FEs8336WriteByte
diff --git a/drivers/i2s/fi2s/fi2s.c b/drivers/i2s/fi2s/fi2s.c
index c500f3b3536d4640b26df5a29775d85f728f0517..e0b18fecc57c26d03295c7d70c2636e8c9509726 100644
--- a/drivers/i2s/fi2s/fi2s.c
+++ b/drivers/i2s/fi2s/fi2s.c
@@ -211,16 +211,17 @@ void FI2sDeInitialize(FI2s *instance)
/**
* @name: FI2sClkOutDiv
* @msg: this function calculates the SCLK Output divider value of the i2s
- * @param (FI2s *} instance :the instance_p of i2s
+ * @param (FI2s *} instance :the instance_p of i2s
+ * @param (u32 *} samplerate :config the samplerate
* @return Null
*/
-FError FI2sClkOutDiv(FI2s *instance)
+FError FI2sClkOutDiv(FI2s *instance, u32 samplerate)
{
FASSERT(instance != NULL);
u64 fix, point;
u32 reg, cfg;
- instance->data_config.sample_rate = FI2S_SAMPLE_RATE_CD;
+ instance->data_config.sample_rate = samplerate;
switch (instance->data_config.word_length)
{
diff --git a/drivers/i2s/fi2s/fi2s.h b/drivers/i2s/fi2s/fi2s.h
index 9b6e964d208f29391d1db408db9df0e1a64374bb..dc7dc77d746cca25294913b5c38e3ca47aa09965 100644
--- a/drivers/i2s/fi2s/fi2s.h
+++ b/drivers/i2s/fi2s/fi2s.h
@@ -128,7 +128,7 @@ void FI2sRxHwEnable(FI2s *instance);
void FI2sTxHwEnable(FI2s *instance);
/* set the i2s clk and resolution*/
-FError FI2sClkOutDiv(FI2s *instance);
+FError FI2sClkOutDiv(FI2s *instance, u32 samplerate);
/*enable i2s irq*/
void FI2sEnableIrq(FI2s *instance, u32 event_type);
diff --git a/drivers/include.mk b/drivers/include.mk
index d0ac9e1b7c8c372319dea910f06e9a656cfcda88..f639ce8e0b9a372e8ff453b858fa1eb45bb738f4 100644
--- a/drivers/include.mk
+++ b/drivers/include.mk
@@ -55,6 +55,10 @@ ifdef CONFIG_ENABLE_FXMAC
endif
endif
+ifdef CONFIG_ENABLE_E1000E
+ BUILD_INC_PATH_DIR += $(DRV_CUR_DIR)/eth/e1000e
+endif
+
# can
ifdef CONFIG_USE_FCAN
BUILD_INC_PATH_DIR += $(DRV_CUR_DIR)/can/fcan
diff --git a/example/ai/tinymaix/README.md b/example/ai/tinymaix/README.md
index eee8ec9531813b17d504ea42a5d9f532d6f07624..7ea878ceddd065b19219a8dd76402a2c26e24cd7 100644
--- a/example/ai/tinymaix/README.md
+++ b/example/ai/tinymaix/README.md
@@ -29,7 +29,7 @@ MbNet物品分类测试例程 (tinymaix_mbnet_example.c)
本例程需要以下硬件,
-- E2000D/Q Demo 板,PhytiumPi开发板
+- E2000D/Q Demo 板,PhytiumPi开发板,D2000、FT2004、pd2308、ps2316等系列开发板均可
- 串口线和串口上位机
### 2.1 硬件配置方法
diff --git a/example/ai/tinymaix/configs/ps2316_aarch64_test16_tinymaix.config b/example/ai/tinymaix/configs/ps2316_aarch64_test16_tinymaix.config
new file mode 100644
index 0000000000000000000000000000000000000000..7db30130b759b5208a02b3ac888d8131661e575e
--- /dev/null
+++ b/example/ai/tinymaix/configs/ps2316_aarch64_test16_tinymaix.config
@@ -0,0 +1,10 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="tinymaix"
+CONFIG_LOG_INFO=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_TINYMAIX=y
+CONFIG_TINYMAIX_USING_MODULE_FP32=y
+CONFIG_DEBUG_NOOPT=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_MAX_LENGTH=0x2000000
diff --git a/example/ai/tinymaix/sdkconfig b/example/ai/tinymaix/sdkconfig
index 3845cbc966602633307efb70679360cb7a16d01a..1b40818ba8ad56539de58375e2dc4b3eed171a9c 100644
--- a/example/ai/tinymaix/sdkconfig
+++ b/example/ai/tinymaix/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -156,7 +141,17 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-# CONFIG_USE_LETTER_SHELL is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter shell configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter shell configuration
+
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
@@ -237,7 +232,7 @@ CONFIG_USE_COMPILE_CHAIN=y
CONFIG_DEFAULT_LINKER_SCRIPT=y
# CONFIG_USER_DEFINED_LD is not set
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
-CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_IMAGE_MAX_LENGTH=0x2000000
CONFIG_HEAP_SIZE=1
CONFIG_STACK_SIZE=0x400
# end of Linker Options
diff --git a/example/ai/tinymaix/sdkconfig.h b/example/ai/tinymaix/sdkconfig.h
index 7be6200c309377a02ae5ab63ba25ba1af2920590..2319b74a793ce7c8cdf59544442742de9c4d7d51 100644
--- a/example/ai/tinymaix/sdkconfig.h
+++ b/example/ai/tinymaix/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -143,7 +130,15 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-/* CONFIG_USE_LETTER_SHELL is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter shell configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter shell configuration */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
@@ -216,7 +211,7 @@
#define CONFIG_DEFAULT_LINKER_SCRIPT
/* CONFIG_USER_DEFINED_LD is not set */
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
-#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
+#define CONFIG_IMAGE_MAX_LENGTH 0x2000000
#define CONFIG_HEAP_SIZE 1
#define CONFIG_STACK_SIZE 0x400
/* end of Linker Options */
diff --git a/example/media/lvgl_demo_test/sdkconfig b/example/media/lvgl_demo_test/sdkconfig
index a511dce2e9dd07d58cff03dba69f82cbd47633bc..0e387d00f49669cfe0c8c8ec5b226b7ca7eab11a 100644
--- a/example/media/lvgl_demo_test/sdkconfig
+++ b/example/media/lvgl_demo_test/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/media/lvgl_demo_test/sdkconfig.h b/example/media/lvgl_demo_test/sdkconfig.h
index 35e263f8a01713bd1b8283c7a85a72dfc8ce7254..32d3e3a786e46859053098df6171f7bab234d234 100644
--- a/example/media/lvgl_demo_test/sdkconfig.h
+++ b/example/media/lvgl_demo_test/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/media/media_test/sdkconfig b/example/media/media_test/sdkconfig
index e8d26ac4c8c48520197da15172b00d5928f59e6a..fd972efa9c5e8143e72cc7dfb48a8ef1bdaa9503 100644
--- a/example/media/media_test/sdkconfig
+++ b/example/media/media_test/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/media/media_test/sdkconfig.h b/example/media/media_test/sdkconfig.h
index 2564a2837ef300767b1fe65864169520d1b60671..7bb9d399ec3067a9bffbe07e459ac0fe942c7391 100644
--- a/example/media/media_test/sdkconfig.h
+++ b/example/media/media_test/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/network/lwip_http/sdkconfig b/example/network/lwip_http/sdkconfig
index d2ab93a67db8ff4ce52c1c67aeabcabc6d1d74ef..f7eb50968e3c02af12797d17d36835310def78bb 100644
--- a/example/network/lwip_http/sdkconfig
+++ b/example/network/lwip_http/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_http/sdkconfig.h b/example/network/lwip_http/sdkconfig.h
index ca35b8d6764907f32c50698e1f985335835afa59..4dc000b753f3847f53e77f66b688ce5d54c4688a 100644
--- a/example/network/lwip_http/sdkconfig.h
+++ b/example/network/lwip_http/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_iperf/sdkconfig b/example/network/lwip_iperf/sdkconfig
index 1050dd74cec388a89e8bba3aad11d80813d16281..2b7f1ff9c088428354fb98b349dd9d58e950cf92 100644
--- a/example/network/lwip_iperf/sdkconfig
+++ b/example/network/lwip_iperf/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_iperf/sdkconfig.h b/example/network/lwip_iperf/sdkconfig.h
index 6d68283d92d5a038fc141ab46a7805deab32350c..e7388c52be6367c2ad8f0dadf44c9d3f55a387d4 100644
--- a/example/network/lwip_iperf/sdkconfig.h
+++ b/example/network/lwip_iperf/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_jumbo/sdkconfig b/example/network/lwip_jumbo/sdkconfig
index 9236cda9d41bf72ee038ca0f8d15f04818269d0b..7b19211d4755ba8edf733a91a90463e039f3b2d8 100644
--- a/example/network/lwip_jumbo/sdkconfig
+++ b/example/network/lwip_jumbo/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_jumbo/sdkconfig.h b/example/network/lwip_jumbo/sdkconfig.h
index 001155899436e46552025a831ef0713a48274cc4..2a841b2072371dfd7778c47730475d2508c690b7 100644
--- a/example/network/lwip_jumbo/sdkconfig.h
+++ b/example/network/lwip_jumbo/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_multicast/sdkconfig b/example/network/lwip_multicast/sdkconfig
index 257e622d44583424d95ace7be57b06ad3fa413ad..0cfea1c48413d30d346fa8d3441cd6a6ba41cfc2 100644
--- a/example/network/lwip_multicast/sdkconfig
+++ b/example/network/lwip_multicast/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_multicast/sdkconfig.h b/example/network/lwip_multicast/sdkconfig.h
index 60d7144ef5467c8b1d53cf5f892ae7de711d0dfd..d64d974cd3fc951a83addf631c1557e4c6482490 100644
--- a/example/network/lwip_multicast/sdkconfig.h
+++ b/example/network/lwip_multicast/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_sntp/sdkconfig b/example/network/lwip_sntp/sdkconfig
index ed84b184f52c4698a5e4d8b213a508916a0f793c..71aa02f60cd2bee2cd68a3a36ef2e14ce126c5d0 100644
--- a/example/network/lwip_sntp/sdkconfig
+++ b/example/network/lwip_sntp/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_sntp/sdkconfig.h b/example/network/lwip_sntp/sdkconfig.h
index 35f24b8b66facd1f45e2b9446786fa14d65310cc..6c433dd0957a94c0bd8b164ec6a7eb5b4920bb84 100644
--- a/example/network/lwip_sntp/sdkconfig.h
+++ b/example/network/lwip_sntp/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_startup/README.md b/example/network/lwip_startup/README.md
index d942db9755697f06b897bfec416cf8642106a28e..b1a38bed263c753de75601954778557e87925dd3 100644
--- a/example/network/lwip_startup/README.md
+++ b/example/network/lwip_startup/README.md
@@ -7,7 +7,7 @@
本例程示范了MAC控制器在lwip各种模式下的初始化流程,初始化成功后的网卡数据收发正常,能够ping通网络。
### 1.1 网卡ipv4模式初始化测试例程 (lwip_ipv4_example.c)
-- ipv4模式下初始化开发板上所有网口以及对应网卡控制器
+- ipv4模式下初始化开发板上所有网口以及对应网卡控制器(包括pcie网卡)
- 为每个网卡配置静态IPv4地址
- 可以通过主机端对相应网口进行ping通
@@ -125,6 +125,15 @@ lwip ipv4


+测试pcie e1000e网卡需确保pcie网卡硬件正确连接,额外使能pcie、e1000e驱动,使能lwip e1000e驱动使能,如下图所示:
+
+
+
+平台网卡与pcie网卡可同时运行测试结果如下:
+
+
+
+
#### 2.4.2 网卡ipv6模式初始化测试例程 (lwip_ipv6_example.c)
```
diff --git a/example/network/lwip_startup/configs/d2000_aarch32_test_lwip.config b/example/network/lwip_startup/configs/d2000_aarch32_test_lwip.config
index ff9c88ee66c242bb1e66044e778ba85d47671883..78ce311233884340462878e971d2f28ce37e2c27 100644
--- a/example/network/lwip_startup/configs/d2000_aarch32_test_lwip.config
+++ b/example/network/lwip_startup/configs/d2000_aarch32_test_lwip.config
@@ -3,7 +3,12 @@ CONFIG_TARGET_D2000=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FGMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
+CONFIG_LWIP_FGMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/d2000_aarch64_test_lwip.config b/example/network/lwip_startup/configs/d2000_aarch64_test_lwip.config
index 4a6353d1c623997ec97493809cb0aa350af63f5d..318c7e961489fac1e96851c7c389ef32f4fb619f 100644
--- a/example/network/lwip_startup/configs/d2000_aarch64_test_lwip.config
+++ b/example/network/lwip_startup/configs/d2000_aarch64_test_lwip.config
@@ -2,7 +2,12 @@ CONFIG_TARGET_D2000=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FGMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
+CONFIG_LWIP_FGMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip.config b/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip.config
index 12317446f0e12708b846bbbabf7e7df936db03b2..38b4d288e9910a6f00da563e5e691f90c7da981f 100644
--- a/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip.config
+++ b/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip.config
@@ -3,8 +3,12 @@ CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip.config b/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip.config
index 1cb73be28691fc610cded85ff7ddd8e2c53e97c6..54ac72d1a858fde9af130ccd744fe6941ec7e5cc 100644
--- a/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip.config
+++ b/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip.config
@@ -2,8 +2,12 @@ CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip.config b/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip.config
index 05eaff407edf70fbd49bcc98e1938e34ee1694a4..8ac8d4e6062d051509b6227f9dc3cd40c59cc1e6 100644
--- a/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip.config
+++ b/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip.config
@@ -2,8 +2,12 @@ CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip.config b/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip.config
index 206282062af8c8cc3d4eb836dc2bf3426f7b94cd..759329864564eab98ea257237f372fd775509b14 100644
--- a/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip.config
+++ b/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip.config
@@ -1,8 +1,12 @@
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip.config b/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip.config
index b0193ddc4c5ad1f9e69f97e10d8838e11d1db613..d784cbc8e0e68459ecb7562614cb5711c010d017 100644
--- a/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip.config
+++ b/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip.config
@@ -3,7 +3,12 @@ CONFIG_TARGET_FT2004=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FGMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
+CONFIG_LWIP_FGMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip.config b/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip.config
index d99bab2b0c7fd79fa023259da87d735b17604751..82d80b00f177099ca442a0ac1fd76b5ccd3d0957 100644
--- a/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip.config
+++ b/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip.config
@@ -2,7 +2,12 @@ CONFIG_TARGET_FT2004=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FGMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
+CONFIG_LWIP_FGMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/pd2308_aarch64_demo_lwip.config b/example/network/lwip_startup/configs/pd2308_aarch64_demo_lwip.config
index 2d7ddc514891e521007178b9010a650f0e44488a..63372468042d8d37bbe0472e93519903b0717377 100644
--- a/example/network/lwip_startup/configs/pd2308_aarch64_demo_lwip.config
+++ b/example/network/lwip_startup/configs/pd2308_aarch64_demo_lwip.config
@@ -3,8 +3,12 @@ CONFIG_TARGET_NAME="lwip"
CONFIG_ENABLE_IOPAD=y
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip.config b/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip.config
index b1ada47695505250601e12f0b3ba57f6094591ca..b5964146454190f577821eedd8172a63a0edf26a 100644
--- a/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip.config
+++ b/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip.config
@@ -3,8 +3,12 @@ CONFIG_TARGET_PHYTIUMPI=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip.config b/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip.config
index ab62649b7185d7536c3a894c31176b83244a8bbe..ced254f0c28be766c67e9b3729a03a48b138c775 100644
--- a/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip.config
+++ b/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip.config
@@ -2,8 +2,12 @@ CONFIG_TARGET_PHYTIUMPI=y
CONFIG_TARGET_NAME="lwip"
CONFIG_USE_ETH=y
CONFIG_ENABLE_FXMAC=y
+CONFIG_ENABLE_E1000E=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
CONFIG_USE_LWIP=y
CONFIG_LWIP_FXMAC=y
+CONFIG_LWIP_E1000E=y
CONFIG_LWIP_USE_MEM_HEAP=y
CONFIG_LWIP_IP4_REASSEMBLY=y
CONFIG_IP_REASS_MAX_PBUFS=32
diff --git a/example/network/lwip_startup/fig/CONFIG_ENABLE_E1000E.png b/example/network/lwip_startup/fig/CONFIG_ENABLE_E1000E.png
new file mode 100644
index 0000000000000000000000000000000000000000..5365db86ade74801f6efa65dfe3922fbb87d4ca0
Binary files /dev/null and b/example/network/lwip_startup/fig/CONFIG_ENABLE_E1000E.png differ
diff --git a/example/network/lwip_startup/fig/CONFIG_ENABLE_FPCIE_ECAM.png b/example/network/lwip_startup/fig/CONFIG_ENABLE_FPCIE_ECAM.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef2f8f620293a0fafe9b0adebddc7634c7fb5ff8
Binary files /dev/null and b/example/network/lwip_startup/fig/CONFIG_ENABLE_FPCIE_ECAM.png differ
diff --git a/example/network/lwip_startup/fig/CONFIG_LWIP_E1000E.png b/example/network/lwip_startup/fig/CONFIG_LWIP_E1000E.png
new file mode 100644
index 0000000000000000000000000000000000000000..0bb2afc8b994b10ad2f0a082e3d06527fa14a4c3
Binary files /dev/null and b/example/network/lwip_startup/fig/CONFIG_LWIP_E1000E.png differ
diff --git a/example/network/lwip_startup/fig/ipv4_e1000e_example_ping.png b/example/network/lwip_startup/fig/ipv4_e1000e_example_ping.png
new file mode 100644
index 0000000000000000000000000000000000000000..081164c900f8755e6d3b221e49dc84c9be6827c2
Binary files /dev/null and b/example/network/lwip_startup/fig/ipv4_e1000e_example_ping.png differ
diff --git a/example/network/lwip_startup/fig/ipv4_e1000e_example_result.png b/example/network/lwip_startup/fig/ipv4_e1000e_example_result.png
new file mode 100644
index 0000000000000000000000000000000000000000..11aa24a964cae9d4d4ee6d932c1097076cf36c4f
Binary files /dev/null and b/example/network/lwip_startup/fig/ipv4_e1000e_example_result.png differ
diff --git a/example/network/lwip_startup/inc/net_pcie_common.h b/example/network/lwip_startup/inc/net_pcie_common.h
new file mode 100644
index 0000000000000000000000000000000000000000..4016ed93d34a5835465b3844415bdec334ec0f88
--- /dev/null
+++ b/example/network/lwip_startup/inc/net_pcie_common.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: net_pcie_common.h
+ * Date: 2025-01-13 14:53:42
+ * LastEditTime: 2025-01-13 17:46:03
+ * Description: This file is for net pcie example common definition
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ---------- -------- ---------------------------------
+ * 1.0 huangjin 2025/01/13 first release
+ */
+#ifndef NET_PCIE_COMMON_H
+#define NET_PCIE_COMMON_H
+
+#include "fdebug.h"
+#include "e1000e.h"
+#include "fpcie_ecam.h"
+#include "lwip_port.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define FNET_DEBUG_TAG "NET_PCIE_TEST"
+#define FNET_ERROR(format, ...) FT_DEBUG_PRINT_E(FNET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FNET_WARN(format, ...) FT_DEBUG_PRINT_W(FNET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FNET_INFO(format, ...) FT_DEBUG_PRINT_I(FNET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FNET_DEBUG(format, ...) FT_DEBUG_PRINT_D(FNET_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define PCI_CLASS_STORAGE_NET_AHCI 0x020000
+
+#define ETH_NAME_PREFIX 'e'
+#define PCIE_ETH_NAME_PREFIX 'p'
+
+#define CONFIG_DEFAULT_INIT(config, driver_config, instance_id, interface_type) \
+ .config.magic_code = LWIP_PORT_CONFIG_MAGIC_CODE, \
+ .config.driver_type = driver_config, \
+ .config.mac_instance = instance_id, \
+ .config.mii_interface = interface_type, \
+ .config.autonegotiation = 1, \
+ .config.phy_speed = LWIP_PORT_SPEED_1000M, \
+ .config.phy_duplex = LWIP_PORT_FULL_DUPLEX, \
+ .config.capability = LWIP_PORT_MODE_NAIVE,
+
+typedef struct
+{
+ UserConfig lwip_mac_config;
+ u32 dhcp_en;
+ char* ipaddr;
+ char* netmask;
+ char* gw;
+ unsigned char mac_address[6];
+ struct netif netif;
+} BoardMacConfig;
+
+/* 转化地址格式 */
+void SetIP(ip_addr_t* ipaddr, ip_addr_t* gw, ip_addr_t* netmask, BoardMacConfig mac_config);
+
+/*pcie and sata init function*/
+FError FNetPcieInit(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/example/network/lwip_startup/sdkconfig b/example/network/lwip_startup/sdkconfig
index 0301ed4aace7c99217645d05f403350f0f78957d..a6455b1089fb2e6e5788f4def4a42cbf30f3d959 100644
--- a/example/network/lwip_startup/sdkconfig
+++ b/example/network/lwip_startup/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+CONFIG_ENABLE_E1000E=y
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -147,7 +150,15 @@ CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
# CONFIG_USE_SDMMC is not set
-# CONFIG_USE_PCIE is not set
+CONFIG_USE_PCIE=y
+
+#
+# Pcie Configuration
+#
+CONFIG_ENABLE_FPCIE_ECAM=y
+# CONFIG_ENABLE_FPCIEC is not set
+# end of Pcie Configuration
+
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
# CONFIG_USE_NAND is not set
@@ -176,6 +187,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_E1000E=y
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/lwip_startup/sdkconfig.h b/example/network/lwip_startup/sdkconfig.h
index 2ea48bebf183ebd7927522b643d19aaa535be92a..534dce5216965f21bccc0053a1bae940c5ab1f85 100644
--- a/example/network/lwip_startup/sdkconfig.h
+++ b/example/network/lwip_startup/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+#define CONFIG_ENABLE_E1000E
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -133,7 +136,13 @@
/* CONFIG_USE_TIMER is not set */
/* CONFIG_USE_MIO is not set */
/* CONFIG_USE_SDMMC is not set */
-/* CONFIG_USE_PCIE is not set */
+#define CONFIG_USE_PCIE
+
+/* Pcie Configuration */
+
+#define CONFIG_ENABLE_FPCIE_ECAM
+/* CONFIG_ENABLE_FPCIEC is not set */
+/* end of Pcie Configuration */
/* CONFIG_USE_WDT is not set */
/* CONFIG_USE_DMA is not set */
/* CONFIG_USE_NAND is not set */
@@ -158,6 +167,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+#define CONFIG_LWIP_E1000E
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/lwip_startup/src/lwip_dhcp_example.c b/example/network/lwip_startup/src/lwip_dhcp_example.c
index 039037ce5d8ecd96cd4e10ad3d3d4283590cf44e..92cde74a3c7045adec961b3ee0dcd8fabaf7adfa 100644
--- a/example/network/lwip_startup/src/lwip_dhcp_example.c
+++ b/example/network/lwip_startup/src/lwip_dhcp_example.c
@@ -113,16 +113,19 @@ static int DhcpService_Is_Sucess()
{
struct netif *netif;
char * ip_addr;
+ int ret = 0;
for (int i = 0; i < MAC_NUM; i++)
{
netif = LwipPortGetByName(board_mac_config[i].lwip_mac_config.name);
ip_addr = ipaddr_ntoa(&(netif->ip_addr));
if(strcmp(ip_addr,board_mac_config[i].ipaddr) == 0)
- return 0;
+ printf("Eth%d dhcp service failed, please check the network configuration and physical connection status.\r\n", i);
+ else
+ ret++;
}
- return 1;
+ return ret;
}
int LwipDhcpTestCreate(void)
diff --git a/example/network/lwip_startup/src/lwip_ipv4_example.c b/example/network/lwip_startup/src/lwip_ipv4_example.c
index e3c587a990deb4584e0805075bf6aeddd66d2860..ac3fc2bd0a8ec56bcb067713d77652fae48d37f0 100644
--- a/example/network/lwip_startup/src/lwip_ipv4_example.c
+++ b/example/network/lwip_startup/src/lwip_ipv4_example.c
@@ -13,13 +13,14 @@
*
* FilePath: lwip_ipv4_example.c
* Created Date: 2023-09-20 11:29:05
- * Last Modified: 2024-03-19 11:01:50
+ * Last Modified: 2025-01-06 11:01:50
* Description: This file is for lwip ipv4 example function implementation.
*
* Modify History:
* Ver Who Date Changes
* ----- ---------- -------- ---------------------------------
* 1.0 liuzhihong 2023/10/8 first release
+ * 1.1 huangjin 2025/01/06 add e1000e
*/
@@ -43,36 +44,10 @@
#include "lwip/netif.h"
#include "lwip/tcpip.h"
#include "lwip/inet.h"
+#include "net_pcie_common.h"
-
-#define ETH_NAME_PREFIX 'e'
-
-#define CONFIG_DEFAULT_INIT(config,driver_config,instance_id,interface_type) \
- .config.magic_code = LWIP_PORT_CONFIG_MAGIC_CODE, \
- .config.driver_type = driver_config, \
- .config.mac_instance = instance_id, \
- .config.mii_interface = interface_type, \
- .config.autonegotiation = 1, \
- .config.phy_speed = LWIP_PORT_SPEED_1000M, \
- .config.phy_duplex = LWIP_PORT_FULL_DUPLEX, \
- .config.capability = LWIP_PORT_MODE_NAIVE,
-
-
-
-typedef struct
+static BoardMacConfig board_mac_config[MAC_NUM] =
{
- UserConfig lwip_mac_config;
- u32 dhcp_en;
- char* ipaddr;
- char* netmask;
- char* gw;
- unsigned char mac_address[6];
- struct netif netif;
-} BoardMacConfig;
-
-
- static BoardMacConfig board_mac_config[MAC_NUM] =
- {
#if defined(MAC_NUM0)
{
CONFIG_DEFAULT_INIT(lwip_mac_config,MAC_NUM0_LWIP_PORT_TYPE,MAC_NUM0_CONTROLLER,MAC_NUM0_MII_INTERFACE)
@@ -95,44 +70,42 @@ typedef struct
#endif
};
-
-static void SetIP(ip_addr_t* ipaddr,ip_addr_t* gw,ip_addr_t* netmask,u32 mac_id)
-{
-
- if(inet_aton(board_mac_config[mac_id].ipaddr,ipaddr)==0)
- printf("The addr of ipaddr is wrong\r\n");
- if(inet_aton(board_mac_config[mac_id].gw,gw)==0)
- printf("The addr of gw is wrong\r\n");
- if(inet_aton(board_mac_config[mac_id].netmask,netmask)==0)
- printf("The addr of netmask is wrong\r\n");
-
-}
int LwipIpv4TestCreate(void)
{
FError ret = FT_SUCCESS;
+
+ /*init pcie net*/
+ ret = FNetPcieInit();
+ if (ret != FT_SUCCESS)
+ {
+ FNET_ERROR("Net Pcie init failed, please check if the e1000e is successfully connected");
+ }
+
/* mac init */
for (int i = 0; i < MAC_NUM; i++)
{
-
struct netif *netif_p = NULL;
- ip_addr_t ipaddr,netmask, gw;
+ ip_addr_t ipaddr, netmask, gw;
+
board_mac_config[i].lwip_mac_config.name[0] = ETH_NAME_PREFIX;
itoa(board_mac_config[i].lwip_mac_config.mac_instance, &(board_mac_config[i].lwip_mac_config.name[1]), 10);
-
- /* mac ip addr set: char* -> ip_addr_t */
- SetIP(&ipaddr,&gw,&netmask,i);
- /* ******************************************************************* */
-
- netif_p= &board_mac_config[i].netif;
+ /* mac ip addr set: char* -> ip_addr_t */
+ SetIP(&ipaddr, &gw, &netmask, board_mac_config[i]);
+ /*********************************************************************/
+ netif_p = &board_mac_config[i].netif;
/* Add network interface to the netif_list, and set it as default */
if (!LwipPortAdd(netif_p, &ipaddr, &netmask, &gw, board_mac_config[i].mac_address, (UserConfig *)&board_mac_config[i]))
{
- printf("Error adding N/W interface %d.\n\r",board_mac_config[i].lwip_mac_config.mac_instance);
+ printf("Error adding N/W interface %d.\n\r", board_mac_config[i].lwip_mac_config.mac_instance);
ret = ERR_GENERAL;
goto exit;
}
- printf("LwipPortAdd mac_instance %d is over.\n\r",board_mac_config[i].lwip_mac_config.mac_instance);
-
+ else
+ {
+ printf("LwipPortAdd mac_instance %d is over.\n\r", board_mac_config[i].lwip_mac_config.mac_instance);
+ ret = FT_SUCCESS;
+ }
+
netif_set_default(netif_p);
if (netif_is_link_up(netif_p))
@@ -149,10 +122,8 @@ int LwipIpv4TestCreate(void)
/* 当netif链接关闭时,必须调用该函数 */
netif_set_down(netif_p);
}
-
-
}
-
+
printf("Network setup complete.\n");
exit:
@@ -170,12 +141,11 @@ exit:
void LwipIpv4TestDeinit(void)
{
- for (int i = 0; i < MAC_NUM; i++)
- {
+ for (int i = 0; i < MAC_NUM; i++)
+ {
struct netif *netif_p = NULL;
- netif_p=&board_mac_config[i].netif;
- LwipPortStop(netif_p,board_mac_config[i].dhcp_en);
- }
-
+ netif_p = &board_mac_config[i].netif;
+ LwipPortStop(netif_p, board_mac_config[i].dhcp_en);
+ }
}
diff --git a/example/network/lwip_startup/src/net_pcie_common.c b/example/network/lwip_startup/src/net_pcie_common.c
new file mode 100644
index 0000000000000000000000000000000000000000..5c4e6ba05ee6bb246d835c4a181f62f02b2e4488
--- /dev/null
+++ b/example/network/lwip_startup/src/net_pcie_common.c
@@ -0,0 +1,202 @@
+
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: net_pcie_common.c
+ * Date: 2025-01-13 14:53:42
+ * LastEditTime: 2025-01-13 17:46:03
+ * Description: This file is for net pcie common functions
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ---------- -------- ---------------------------------
+ * 1.0 huangjin 2025/01/13 first release
+ */
+
+/***************************** Include Files *********************************/
+#include
+#include
+#include "sdkconfig.h"
+#ifndef SDK_CONFIG_H__
+ #warning "Please include sdkconfig.h"
+#endif
+#include "finterrupt.h"
+#include "fpcie_ecam.h"
+#include "fpcie_ecam_common.h"
+#include "e1000e.h"
+#include "e1000e_hw.h"
+#include "fcpu_info.h"
+#include "ferror_code.h"
+#include "fpcie_ecam_msi.h"
+#include "net_pcie_common.h"
+
+#include "lwip/ip4_addr.h"
+#include "lwip/inet.h"
+#include "lwip/netif.h"
+
+
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+extern FE1000EConfig FE1000E_CONFIG_TBL[FE1000E_NUM];
+
+/*max support 16 ahci controllers*/
+static FPcieEcam pcie_device;
+
+static BoardMacConfig pcie_mac_config =
+{
+ CONFIG_DEFAULT_INIT(lwip_mac_config, LWIP_PORT_TYPE_E1000E, 0, LWIP_PORT_INTERFACE_SGMII)
+ .dhcp_en = 0,
+ .ipaddr = "192.168.4.12",
+ .gw = "192.168.4.1",
+ .netmask = "255.255.255.0",
+ .mac_address = {0x6c, 0xb3, 0x11, 0x0f, 0x9a, 0x44},
+};
+/************************** Variable Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Function *****************************************/
+
+void SetIP(ip_addr_t* ipaddr, ip_addr_t* gw, ip_addr_t* netmask, BoardMacConfig mac_config)
+{
+ if(inet_aton(mac_config.ipaddr, ipaddr) == 0)
+ printf("The addr of ipaddr is wrong\r\n");
+ if(inet_aton(mac_config.gw, gw) == 0)
+ printf("The addr of gw is wrong\r\n");
+ if(inet_aton(mac_config.netmask, netmask) == 0)
+ printf("The addr of netmask is wrong\r\n");
+}
+
+static FError FPcieInit(FPcieEcam *pcie_device)
+{
+ FError ret = FE1000E_SUCCESS;
+
+ ret = FPcieEcamCfgInitialize(pcie_device, FPcieEcamLookupConfig(FPCIE_ECAM_INSTANCE0), NULL);
+ if (ret != FT_SUCCESS)
+ {
+ return ret;
+ }
+ FNET_DEBUG("\n");
+ FNET_DEBUG(" PCI:\n");
+ FNET_DEBUG(" B:D:F VID:PID parent_BDF class_code\n");
+ ret = FPcieEcamEnumerateBus(pcie_device, 0) ;
+ if (ret != FT_SUCCESS)
+ {
+ return ret;
+ }
+
+ return ret;
+}
+
+FError FNetPcieInit(void)
+{
+ FError ret = FE1000E_SUCCESS;
+ s32 host;
+ u32 class = 0;
+ const u32 class_code = PCI_CLASS_STORAGE_NET_AHCI;
+ uintptr bar_addr = 0;
+ u8 bus = 0;
+ u8 device = 0;
+ u8 function = 0;
+ u32 config_data;
+ u32 cmdstat;
+
+ struct netif *netif_p = NULL;
+ ip_addr_t ipaddr, netmask, gw;
+
+ /* pcie init */
+ ret = FPcieInit(&pcie_device);
+ if (ret != FE1000E_SUCCESS)
+ {
+ FNET_ERROR("FPcieInit failed.");
+ return FE1000E_ERR_FAILED;
+ }
+
+ /* find xhci host from pcie instance */
+ for (host = 0; host < pcie_device.scans_bdf_count; host++)
+ {
+ bus = pcie_device.scans_bdf[host].bus;
+ device = pcie_device.scans_bdf[host].device;
+ function = pcie_device.scans_bdf[host].function;
+
+ FPcieEcamReadConfigSpace(&pcie_device, bus, device, function, FPCIE_CCR_REV_CLASSID_REGS, &config_data);
+ FNET_DEBUG("FPCIE_CCR_REV_CLASSID_REGS = %x\n", config_data);
+ class = config_data >> 8;
+
+ if (class == class_code)
+ {
+ FPcieEcamReadConfigSpace(&pcie_device, bus, device, function, FPCIE_CCR_ID_REG, &config_data);
+
+ FNET_DEBUG("AHCI-PCI HOST found !!!, b.d.f = %x.%x.%x\n", bus, device, function);
+
+ FPcieEcamReadConfigSpace(&pcie_device, bus, device, function, FPCIE_CCR_BAR_ADDR0_REGS, (u32 *)&bar_addr);
+ FNET_DEBUG("FNetPcieIntrInstall BarAddress %p", bar_addr);
+ FE1000E_CONFIG_TBL[FE1000E0_ID].base_addr = bar_addr;
+
+ if (0x0 == bar_addr)
+ {
+ FNET_ERROR("Bar address: 0x%lx", bar_addr);
+ return -1;
+ }
+
+ break;
+ }
+ }
+ if (class != class_code)
+ {
+ FNET_ERROR("class_code: 0x%06x is not pcie net card!", class);
+ return -1;
+ }
+
+ /* 设置cmd reg */
+ FPcieEcamReadConfigSpace(&pcie_device, bus, device, function, FPCIE_CCR_CMD_STATUS_REGS, &cmdstat);
+ cmdstat |= (FPCIE_CCR_CMD_MEMORY_ACCESS_ENABLED |FPCIE_CCR_CMD_BUS_MASTER_ENABLED);
+ FPcieEcamWriteConfigSpace(&pcie_device, bus, device, function, FPCIE_CCR_CMD_STATUS_REGS, cmdstat);
+
+ /* pcie net init */
+ pcie_mac_config.lwip_mac_config.name[0] = PCIE_ETH_NAME_PREFIX;
+ itoa(pcie_mac_config.lwip_mac_config.mac_instance, &(pcie_mac_config.lwip_mac_config.name[1]), 10);
+ SetIP(&ipaddr, &gw, &netmask, pcie_mac_config);
+ netif_p = &pcie_mac_config.netif;
+ /* Add network interface to the netif_list, and set it as default */
+ if (!LwipPortAdd(netif_p, &ipaddr, &netmask, &gw, pcie_mac_config.mac_address, (UserConfig *)&pcie_mac_config))
+ {
+ printf("Error adding N/W interface %d.\n\r", pcie_mac_config.lwip_mac_config.mac_instance);
+ ret = ERR_GENERAL;
+ return FE1000E_ERR_FAILED;
+ }
+ printf("LwipPortAdd pcie_mac_instance %d is over.\n\r", pcie_mac_config.lwip_mac_config.mac_instance);
+
+ netif_set_default(netif_p);
+
+ if (netif_is_link_up(netif_p))
+ {
+ /* 当netif完全配置好时,必须调用该函数 */
+ netif_set_up(netif_p);
+ if (pcie_mac_config.dhcp_en == 1)
+ {
+ LwipPortDhcpSet(netif_p, TRUE);
+ }
+ }
+ else
+ {
+ /* 当netif链接关闭时,必须调用该函数 */
+ netif_set_down(netif_p);
+ }
+
+ return ret;
+}
diff --git a/example/network/mac_frame/sdkconfig b/example/network/mac_frame/sdkconfig
index f2d7381171e6b8d168a4d757c02c97397f8c3cdf..6585ed2f3eeb1090c57906a775886b7e760802cd 100644
--- a/example/network/mac_frame/sdkconfig
+++ b/example/network/mac_frame/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
# CONFIG_FXMAC_PHY_COMMON is not set
CONFIG_FXMAC_PHY_YT=y
# end of Eth Configuration
diff --git a/example/network/mac_frame/sdkconfig.h b/example/network/mac_frame/sdkconfig.h
index e77bbca1074fa205c3323165f71d1cfdbed6cd93..11893cabd14a1449a762defa6a8b4fc85ceb0812 100644
--- a/example/network/mac_frame/sdkconfig.h
+++ b/example/network/mac_frame/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
/* CONFIG_FXMAC_PHY_COMMON is not set */
#define CONFIG_FXMAC_PHY_YT
/* end of Eth Configuration */
diff --git a/example/network/raw_api/tcp_client/sdkconfig b/example/network/raw_api/tcp_client/sdkconfig
index 3fce263f6b81eaef6908c9ff089f528237c9e717..84bc2e22ac6c393ad73743396f4318b3878a889a 100644
--- a/example/network/raw_api/tcp_client/sdkconfig
+++ b/example/network/raw_api/tcp_client/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/raw_api/tcp_client/sdkconfig.h b/example/network/raw_api/tcp_client/sdkconfig.h
index 3df2e980e459daa8ce237431a8ca77ad9ce49a0f..15aca399174f6325dae982472989c68a98ea9406 100644
--- a/example/network/raw_api/tcp_client/sdkconfig.h
+++ b/example/network/raw_api/tcp_client/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/raw_api/tcp_server/sdkconfig b/example/network/raw_api/tcp_server/sdkconfig
index 8a386163f9771a5ba9f9812a49adb65554363ec4..805370d701c5b063fa224fc5cfc014cf91e104b1 100644
--- a/example/network/raw_api/tcp_server/sdkconfig
+++ b/example/network/raw_api/tcp_server/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/raw_api/tcp_server/sdkconfig.h b/example/network/raw_api/tcp_server/sdkconfig.h
index 1f43a66c430b7acd9577e39a09fc97991806f237..5ce34c61e4fcc207a3d99dd87a8d2b470b457f43 100644
--- a/example/network/raw_api/tcp_server/sdkconfig.h
+++ b/example/network/raw_api/tcp_server/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/raw_api/udp_client/sdkconfig b/example/network/raw_api/udp_client/sdkconfig
index 1c7f041aefa0ef045877d4c7613a5619222bb0aa..afce3b5d33ff6147e2934ee4e7101dd329fdb5fa 100644
--- a/example/network/raw_api/udp_client/sdkconfig
+++ b/example/network/raw_api/udp_client/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/raw_api/udp_client/sdkconfig.h b/example/network/raw_api/udp_client/sdkconfig.h
index 5a8e2d101d0be4a5ce2df556d0f567ee82f1c59b..45e03d6d35aaa8fee3eb6a8a795c56402c817cc9 100644
--- a/example/network/raw_api/udp_client/sdkconfig.h
+++ b/example/network/raw_api/udp_client/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/network/raw_api/udp_server/sdkconfig b/example/network/raw_api/udp_server/sdkconfig
index 20c13a7ec138397f43a3f7d60ab032ef6be3ca16..3b61f83f62a7449ae2f393b07fdc0a9af3a1907e 100644
--- a/example/network/raw_api/udp_server/sdkconfig
+++ b/example/network/raw_api/udp_server/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
@@ -138,6 +140,7 @@ CONFIG_USE_ETH=y
#
CONFIG_ENABLE_FXMAC=y
# CONFIG_ENABLE_FGMAC is not set
+# CONFIG_ENABLE_E1000E is not set
CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_FXMAC_PHY_YT is not set
# end of Eth Configuration
@@ -176,6 +179,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_E1000E is not set
# CONFIG_LWIP_FSDIF is not set
# end of LWIP Port Configuration
diff --git a/example/network/raw_api/udp_server/sdkconfig.h b/example/network/raw_api/udp_server/sdkconfig.h
index 3499eba0dc5bcdeb68299dfe33026788865489cf..fcde61037faf05f05aff6216d6d535996be57c3a 100644
--- a/example/network/raw_api/udp_server/sdkconfig.h
+++ b/example/network/raw_api/udp_server/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
@@ -125,6 +127,7 @@
#define CONFIG_ENABLE_FXMAC
/* CONFIG_ENABLE_FGMAC is not set */
+/* CONFIG_ENABLE_E1000E is not set */
#define CONFIG_FXMAC_PHY_COMMON
/* CONFIG_FXMAC_PHY_YT is not set */
/* end of Eth Configuration */
@@ -158,6 +161,7 @@
#define CONFIG_LWIP_FXMAC
/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_E1000E is not set */
/* CONFIG_LWIP_FSDIF is not set */
/* end of LWIP Port Configuration */
#define CONFIG_LWIP_NO_SYS
diff --git a/example/peripherals/can/can/sdkconfig b/example/peripherals/can/can/sdkconfig
index cf4ebdbd4123d0b2a11fc98e49b34fc40d632eb8..27387158c4fa929661b0ba4a0f775be8ce776a77 100644
--- a/example/peripherals/can/can/sdkconfig
+++ b/example/peripherals/can/can/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/can/can/sdkconfig.h b/example/peripherals/can/can/sdkconfig.h
index b20119195803d23433c6752d596714b051106dd2..ba79128548f1f578b1137420d235ccc0484f2b81 100644
--- a/example/peripherals/can/can/sdkconfig.h
+++ b/example/peripherals/can/can/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/can/canfd/sdkconfig b/example/peripherals/can/canfd/sdkconfig
index 26c70cb653681a48950bfc5f8fe22abc3e92d661..ac893b4ae6c700b5c002453f6f337fdd8f698b52 100644
--- a/example/peripherals/can/canfd/sdkconfig
+++ b/example/peripherals/can/canfd/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/can/canfd/sdkconfig.h b/example/peripherals/can/canfd/sdkconfig.h
index f3ba2bf8402d33a6aec63efc0e004d64c6d60812..b81931e36c16e4201dcf3398220b2d7d67109411 100644
--- a/example/peripherals/can/canfd/sdkconfig.h
+++ b/example/peripherals/can/canfd/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/dma/ddma/sdkconfig b/example/peripherals/dma/ddma/sdkconfig
index 47fd0947978e7e59269a03077a043b2fc26ab449..1ba5d520f03848af7768a96a709ff70f2c5699c4 100644
--- a/example/peripherals/dma/ddma/sdkconfig
+++ b/example/peripherals/dma/ddma/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/dma/ddma/sdkconfig.h b/example/peripherals/dma/ddma/sdkconfig.h
index 211b04d0db5f6a1ed65638e5887f1cd8e8b547c0..523db120f06359436e23548b7e413ad58952dcd8 100644
--- a/example/peripherals/dma/ddma/sdkconfig.h
+++ b/example/peripherals/dma/ddma/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/dma/gdma/sdkconfig b/example/peripherals/dma/gdma/sdkconfig
index cac07272a8cd34ad757c8955c102ebb9def30cee..70d5d1c49ada35817731e1cdee5fdbb8f412dddb 100644
--- a/example/peripherals/dma/gdma/sdkconfig
+++ b/example/peripherals/dma/gdma/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/dma/gdma/sdkconfig.h b/example/peripherals/dma/gdma/sdkconfig.h
index 5475183bd541d0be3799530b96210c0abab956ee..c6edea12eb22c7a615ae58140aff4c08f39b4276 100644
--- a/example/peripherals/dma/gdma/sdkconfig.h
+++ b/example/peripherals/dma/gdma/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/generic_timer/configs/ps2316_aarch64_test16_gtimer.config b/example/peripherals/generic_timer/configs/ps2316_aarch64_test16_gtimer.config
new file mode 100644
index 0000000000000000000000000000000000000000..4a3b20092750e3de1772a5d6a07df47642d774af
--- /dev/null
+++ b/example/peripherals/generic_timer/configs/ps2316_aarch64_test16_gtimer.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="gtimer"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/peripherals/generic_timer/sdkconfig b/example/peripherals/generic_timer/sdkconfig
index 7a55be1f2e10c7189b6a020431cfcf6bbb6470f6..95dd4f7f84dbc869b94001c9d7665373ab2214bd 100644
--- a/example/peripherals/generic_timer/sdkconfig
+++ b/example/peripherals/generic_timer/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/peripherals/generic_timer/sdkconfig.h b/example/peripherals/generic_timer/sdkconfig.h
index e1405cc3e95ec884e395c187a46a9f5b2ac0b5c5..895aa2c54a9c52da6a21663577beebe67481951c 100644
--- a/example/peripherals/generic_timer/sdkconfig.h
+++ b/example/peripherals/generic_timer/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/peripherals/generic_timer/src/physical_counter.c b/example/peripherals/generic_timer/src/physical_counter.c
index 4c2c81e6d84219cad7a29f7209582599dcb02c9d..4327056a7469812cdabb72889a38d2f927053c08 100644
--- a/example/peripherals/generic_timer/src/physical_counter.c
+++ b/example/peripherals/generic_timer/src/physical_counter.c
@@ -28,6 +28,7 @@
#include "ftypes.h"
#include "fgeneric_timer.h"
#include "fsleep.h"
+#include "sdkconfig.h"
/* timer beats per second */
#define BEATS_PER_SEC 1
@@ -35,6 +36,12 @@
/*timer interrupt compare type */
#define SET_TIMER_VALUE 1
+#if defined(CONFIG_TARGET_PS2316)
+#define GENERIC_TIMER_DELTA 400U
+#else
+#define GENERIC_TIMER_DELTA 50U
+#endif
+
static u64 ticks_per_beat;
static volatile u64 expected_ticks;
static u32 count = 0;
@@ -81,7 +88,7 @@ static void FGenericPhysicalTimerHandler(s32 vector, void *param)
if(count == 1)
goto next;
- if((delta - delta_old - GenericTimerFrequecy()) > 50)
+ if((delta - delta_old - GenericTimerFrequecy()) > GENERIC_TIMER_DELTA)
{
GenericTimerStop(GENERIC_TIMER_ID0);
InterruptMask(GENERIC_TIMER_NS_IRQ_NUM);
diff --git a/example/peripherals/generic_timer/src/virtual_counter.c b/example/peripherals/generic_timer/src/virtual_counter.c
index e8a9bb74a10d2d47f51649929f3af49bfcbd750b..06e6f860b850340ac22093d2e4f3c439139999f0 100644
--- a/example/peripherals/generic_timer/src/virtual_counter.c
+++ b/example/peripherals/generic_timer/src/virtual_counter.c
@@ -28,6 +28,7 @@
#include "ftypes.h"
#include "fgeneric_timer.h"
#include "fsleep.h"
+#include "sdkconfig.h"
/* timer beats per second */
#define BEATS_PER_SEC 1
@@ -35,6 +36,12 @@
/*timer interrupt compare type */
#define SET_TIMER_VALUE 1
+#if defined(CONFIG_TARGET_PS2316)
+#define GENERIC_TIMER_DELTA 400U
+#else
+#define GENERIC_TIMER_DELTA 50U
+#endif
+
static u64 ticks_per_beat;
static volatile u64 expected_ticks;
static u32 count = 0;
@@ -79,7 +86,7 @@ static void FGenericVirtualTimerHandler(s32 vector, void *param)
if(count == 1)
goto next;
- if((delta - delta_old - GenericTimerFrequecy()) > 50)
+ if((delta - delta_old - GenericTimerFrequecy()) > GENERIC_TIMER_DELTA)
{
GenericTimerStop(GENERIC_TIMER_ID0);
InterruptMask(GENERIC_TIMER_NS_IRQ_NUM);
diff --git a/example/peripherals/gicv3/master/amp_config.json b/example/peripherals/gicv3/master/amp_config.json
index 531fd5e1cd1fe7a8315b9ae0dfdf9b33ac07a8e6..ee250d67131ada6f7334dd5c45a6b2beee32a067 100644
--- a/example/peripherals/gicv3/master/amp_config.json
+++ b/example/peripherals/gicv3/master/amp_config.json
@@ -107,6 +107,14 @@
{
"path1":["../slave",1,0,"pd2308_aarch64_demo_gic_slave.config"]
}
+ ],
+ "config11":[
+ {
+ "bootstrap":["./",0,0,"ps2316_aarch64_test16_gic_master.config"]
+ },
+ {
+ "path1":["../slave",1,0,"ps2316_aarch64_test16_gic_slave.config"]
+ }
]
}
}
diff --git a/example/peripherals/gicv3/master/configs/d2000_aarch32_test_gic_master.config b/example/peripherals/gicv3/master/configs/d2000_aarch32_test_gic_master.config
index 86eae9b10303304bedfbaa8a66e4acbd250d26d2..5332f84f9d7faa48a19e8d9163035c9ac80b09db 100644
--- a/example/peripherals/gicv3/master/configs/d2000_aarch32_test_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/d2000_aarch32_test_gic_master.config
@@ -1,9 +1,9 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_USE_L3CACHE=y
CONFIG_DISABLE_L3CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_D2000=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/d2000_aarch64_test_gic_master.config b/example/peripherals/gicv3/master/configs/d2000_aarch64_test_gic_master.config
index 2b036c5274029f5d6ce8a7d4a7041afdda91d244..712cdc08da7de0ac1b8e873d0759bb4da1456489 100644
--- a/example/peripherals/gicv3/master/configs/d2000_aarch64_test_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/d2000_aarch64_test_gic_master.config
@@ -1,8 +1,8 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_L3CACHE=y
CONFIG_DISABLE_L3CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_D2000=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/e2000d_aarch32_demo_gic_master.config b/example/peripherals/gicv3/master/configs/e2000d_aarch32_demo_gic_master.config
index 3b710dc39a9e3095d0dbfb2d2dec275d337d4f2e..42322fe39a6a9f3fd5a7fe64f84d2aa3bf6821c1 100644
--- a/example/peripherals/gicv3/master/configs/e2000d_aarch32_demo_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/e2000d_aarch32_demo_gic_master.config
@@ -1,7 +1,7 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/e2000d_aarch64_demo_gic_master.config b/example/peripherals/gicv3/master/configs/e2000d_aarch64_demo_gic_master.config
index 54608b4ca8747615473d82b004e5cd4381685bcb..13a84ed6e040ae6803779c6b3ef6642db2e7bbcc 100644
--- a/example/peripherals/gicv3/master/configs/e2000d_aarch64_demo_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/e2000d_aarch64_demo_gic_master.config
@@ -1,6 +1,6 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/e2000q_aarch32_demo_gic_master.config b/example/peripherals/gicv3/master/configs/e2000q_aarch32_demo_gic_master.config
index 0063f034d447cac33d349132969c4780a97d87cc..4541411c374cdd230c1df3cfd19a4fad68ec04e4 100644
--- a/example/peripherals/gicv3/master/configs/e2000q_aarch32_demo_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/e2000q_aarch32_demo_gic_master.config
@@ -1,7 +1,7 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/master/configs/e2000q_aarch64_demo_gic_master.config b/example/peripherals/gicv3/master/configs/e2000q_aarch64_demo_gic_master.config
index cf8e226e7e496b122705297d9212425d0c825277..70650f79ab2d6a11154331e0696e27e0efb63cef 100644
--- a/example/peripherals/gicv3/master/configs/e2000q_aarch64_demo_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/e2000q_aarch64_demo_gic_master.config
@@ -1,7 +1,7 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
CONFIG_MSDF_CORE_ID=0
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/master/configs/ft2004_aarch32_dsk_gic_master.config b/example/peripherals/gicv3/master/configs/ft2004_aarch32_dsk_gic_master.config
index 6eb4e768f06d4a7b0f69538f91771e556f10f0e1..bade022c3b7f13a443264324384f54a238ab214b 100644
--- a/example/peripherals/gicv3/master/configs/ft2004_aarch32_dsk_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/ft2004_aarch32_dsk_gic_master.config
@@ -1,9 +1,9 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_USE_L3CACHE=y
CONFIG_DISABLE_L3CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_FT2004=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/ft2004_aarch64_dsk_gic_master.config b/example/peripherals/gicv3/master/configs/ft2004_aarch64_dsk_gic_master.config
index af9ebb13e5cedfe024a879e4c92a3f9988123e00..9e23fb83ac4a9119761308b8ae75bbcac233e4f0 100644
--- a/example/peripherals/gicv3/master/configs/ft2004_aarch64_dsk_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/ft2004_aarch64_dsk_gic_master.config
@@ -1,8 +1,8 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_L3CACHE=y
CONFIG_DISABLE_L3CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_FT2004=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/pd2308_aarch64_demo_gic_master.config b/example/peripherals/gicv3/master/configs/pd2308_aarch64_demo_gic_master.config
index 78cf8cfb5fee1f2137278329787ac7b4de6a2edc..e78997eb25a6d82188bcacf51b0bd5b4c8753a94 100644
--- a/example/peripherals/gicv3/master/configs/pd2308_aarch64_demo_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/pd2308_aarch64_demo_gic_master.config
@@ -1,6 +1,6 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_PD2308=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/phytiumpi_aarch32_firefly_gic_master.config b/example/peripherals/gicv3/master/configs/phytiumpi_aarch32_firefly_gic_master.config
index 8b9248b0adb58de3393d2c9132cd41a3306573b9..e0fd1b5bd197f6c280912069c93fe68c0b728cff 100644
--- a/example/peripherals/gicv3/master/configs/phytiumpi_aarch32_firefly_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/phytiumpi_aarch32_firefly_gic_master.config
@@ -1,7 +1,7 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_PHYTIUMPI=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_INFO=y
diff --git a/example/peripherals/gicv3/master/configs/phytiumpi_aarch64_firefly_gic_master.config b/example/peripherals/gicv3/master/configs/phytiumpi_aarch64_firefly_gic_master.config
index 7e4f58483349370c7d9639fcccd2a001bdb85909..11e86bf652b82d82b58cd7e2c2fc4de49f165728 100644
--- a/example/peripherals/gicv3/master/configs/phytiumpi_aarch64_firefly_gic_master.config
+++ b/example/peripherals/gicv3/master/configs/phytiumpi_aarch64_firefly_gic_master.config
@@ -1,7 +1,7 @@
-CONFIG_ENABLE_GIC_ITS=y
CONFIG_USE_MSDF=y
CONFIG_MSDF1=y
CONFIG_MSDF_CORE_ID=0
+CONFIG_ENABLE_GIC_ITS=y
CONFIG_TARGET_PHYTIUMPI=y
CONFIG_TARGET_NAME="gic_master"
CONFIG_LOG_DEBUG=y
diff --git a/example/peripherals/gicv3/master/configs/ps2316_aarch64_test16_gic_master.config b/example/peripherals/gicv3/master/configs/ps2316_aarch64_test16_gic_master.config
new file mode 100644
index 0000000000000000000000000000000000000000..0f367634ad977e0b89fdc031cdedc1e5280f1c5c
--- /dev/null
+++ b/example/peripherals/gicv3/master/configs/ps2316_aarch64_test16_gic_master.config
@@ -0,0 +1,13 @@
+CONFIG_USE_MSDF=y
+CONFIG_MSDF1=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="gic_master"
+CONFIG_LOG_INFO=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_DEBUG_NOOPT=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x90100000
diff --git a/example/peripherals/gicv3/master/makefile b/example/peripherals/gicv3/master/makefile
index b26ddaa9139b2741d455ceaf5011ad676ea43810..62b1bd823c5af361890fbee3a930987232254f47 100644
--- a/example/peripherals/gicv3/master/makefile
+++ b/example/peripherals/gicv3/master/makefile
@@ -35,6 +35,12 @@ backupconfig:
$(MAKE) -C $(MASTER_PROJECT_DIR) backup_kconfig
$(MAKE) -C $(SLAVE_PROJECT_DIR) backup_kconfig
-boot:
+image:
+ make clean
make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal.elf
+
+
+
+scp_remote:
+ scp $(USR_BOOT_DIR)/baremetal.elf root@10.31.32.21:/home/zhugy/tftpboot/huanghe
\ No newline at end of file
diff --git a/example/peripherals/gicv3/master/sdkconfig b/example/peripherals/gicv3/master/sdkconfig
index c3e72e3d1f99e76ef4a1a76f4323b49bb0cba76f..3d8558f9d3c708415f914d3a2833a665c5a15581 100644
--- a/example/peripherals/gicv3/master/sdkconfig
+++ b/example/peripherals/gicv3/master/sdkconfig
@@ -39,33 +39,33 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
# CONFIG_MSDF0 is not set
CONFIG_MSDF1=y
-CONFIG_SOC_CORE_MAX_ID=3
+CONFIG_SOC_CORE_MAX_ID=15
CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
-CONFIG_ENABLE_GIC_ITS=y
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -74,24 +74,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -105,8 +89,8 @@ CONFIG_TARGET_NAME="gic_master"
#
CONFIG_ELOG_LINE_BUF_SIZE=0x100
# CONFIG_LOG_VERBOS is not set
-CONFIG_LOG_DEBUG=y
-# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
@@ -124,7 +108,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/peripherals/gicv3/master/sdkconfig.h b/example/peripherals/gicv3/master/sdkconfig.h
index 07e80fcc858ac57aa229644f6333c591ab7aa8de..8706917aedf54929ba3d5e66d95f2c8fdf264ce8 100644
--- a/example/peripherals/gicv3/master/sdkconfig.h
+++ b/example/peripherals/gicv3/master/sdkconfig.h
@@ -37,31 +37,31 @@
#define CONFIG_USE_MSDF
/* CONFIG_MSDF0 is not set */
#define CONFIG_MSDF1
-#define CONFIG_SOC_CORE_MAX_ID 3
+#define CONFIG_SOC_CORE_MAX_ID 15
#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
-#define CONFIG_ENABLE_GIC_ITS
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -69,22 +69,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -96,8 +82,8 @@
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
/* CONFIG_LOG_VERBOS is not set */
-#define CONFIG_LOG_DEBUG
-/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_DEBUG is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
@@ -114,7 +100,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/peripherals/gicv3/master/src/cmd_gic.c b/example/peripherals/gicv3/master/src/cmd_gic.c
index 9825886118dc3c139c8a1c363af4e1637c481053..e3c29aad66da286a81d585fda9bb38f25b8a8ad2 100644
--- a/example/peripherals/gicv3/master/src/cmd_gic.c
+++ b/example/peripherals/gicv3/master/src/cmd_gic.c
@@ -44,8 +44,10 @@ static void FGicExampleUsage(void)
printf("Usage:\r\n");
printf("gic ppi_example\r\n");
printf("-- run ppi test example.\r\n");
+#ifdef CONFIG_ENABLE_GIC_ITS
printf("gic lpi_example\r\n");
printf("-- run lpi test example.\r\n");
+#endif
#ifdef CONFIG_SLAVE_CORE_ID
printf("gic sgi_example\r\n");
printf("-- run sgi test example.\r\n");
@@ -76,10 +78,12 @@ static int FGicExampleEntry(int argc, char *argv[])
{
ret = FPpiExample();
}
+#ifdef CONFIG_ENABLE_GIC_ITS
else if(!strcmp(argv[1], "lpi_example"))
{
ret = FLpiExample();
}
+#endif
#ifdef CONFIG_SLAVE_CORE_ID
else if (!strcmp(argv[1], "sgi_example"))
{
diff --git a/example/peripherals/gicv3/master/src/lpi_example.c b/example/peripherals/gicv3/master/src/lpi_example.c
index 35d112926ebe50f83b6e923c199179e6e087295e..bc18918ea86df740366969b16a6a0f54b5ecf64f 100644
--- a/example/peripherals/gicv3/master/src/lpi_example.c
+++ b/example/peripherals/gicv3/master/src/lpi_example.c
@@ -13,7 +13,7 @@
*
* FilePath: lpi_example.c
* Created Date: 2024-08-05 15:42:18
- * Last Modified: 2024-08-13 10:29:05
+ * Last Modified: 2025-03-19 16:52:17
* Description: This file is for
*
* Modify History:
@@ -36,7 +36,7 @@
/* Generate a DeviceID over the whole 16bits */
-#define ITS_TEST_DEV(id) ((((id + 256) % 16) << 12) | (((id + 256) % 24) << 8) | (id & 0xff))
+#define ITS_TEST_DEV(id) ((((id + 256) % 16) << 12) | (((id + 256) % 24) << 8) | (id & 0xff))
/* Cover up to 8192 LPIs over 256 DevicesIDs and 32 EventIDs per DeviceID */
#define ITS_TEST_NUM_DEVS 256
@@ -221,9 +221,9 @@ static int TestFgicItsInit(void)
int ret = 0;
FGic *gic_instance = NULL;
gic_instance = (FGic *)InterruptGetInstance();
-
int devn, event_id;
+
for (devn = 0; devn < ITS_TEST_NUM_DEVS; ++devn)
{
int device_id = ITS_TEST_DEV(devn);
diff --git a/example/peripherals/gicv3/mbis/configs/e2000d_aarch32_demo_gic_mbis.config b/example/peripherals/gicv3/mbis/configs/e2000d_aarch32_demo_gic_mbis.config
index 69cc48a8f90e5891f27473e5b15b90f1e524766f..f38eab9de82d3df9733c1434d29bda583dd21225 100644
--- a/example/peripherals/gicv3/mbis/configs/e2000d_aarch32_demo_gic_mbis.config
+++ b/example/peripherals/gicv3/mbis/configs/e2000d_aarch32_demo_gic_mbis.config
@@ -1,7 +1,6 @@
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="gic_mbis"
-CONFIG_LOG_DEBUG=y
CONFIG_USE_GPIO=y
CONFIG_ENABLE_FGPIO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/mbis/configs/e2000d_aarch64_demo_gic_mbis.config b/example/peripherals/gicv3/mbis/configs/e2000d_aarch64_demo_gic_mbis.config
index 2e058978bf4158e1f3bb837e03c5dbe4921efd75..aa27dae02a40a976711c81a1a78afce6dc795d2d 100644
--- a/example/peripherals/gicv3/mbis/configs/e2000d_aarch64_demo_gic_mbis.config
+++ b/example/peripherals/gicv3/mbis/configs/e2000d_aarch64_demo_gic_mbis.config
@@ -1,6 +1,5 @@
CONFIG_TARGET_E2000D=y
CONFIG_TARGET_NAME="gic_mbis"
-CONFIG_LOG_DEBUG=y
CONFIG_USE_GPIO=y
CONFIG_ENABLE_FGPIO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/mbis/configs/e2000q_aarch32_demo_gic_mbis.config b/example/peripherals/gicv3/mbis/configs/e2000q_aarch32_demo_gic_mbis.config
index 04a8e6ae03fa1df4d7aec8aacf5641a493066e10..646e20413cff1b7225d2bf398d8330ea8624c881 100644
--- a/example/peripherals/gicv3/mbis/configs/e2000q_aarch32_demo_gic_mbis.config
+++ b/example/peripherals/gicv3/mbis/configs/e2000q_aarch32_demo_gic_mbis.config
@@ -1,6 +1,5 @@
CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_TARGET_NAME="gic_mbis"
-CONFIG_LOG_DEBUG=y
CONFIG_USE_GPIO=y
CONFIG_ENABLE_FGPIO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/mbis/configs/e2000q_aarch64_demo_gic_mbis.config b/example/peripherals/gicv3/mbis/configs/e2000q_aarch64_demo_gic_mbis.config
index b6ef5241cf831a26861c743e4e43badedd984255..3701baaca5cc41ebf2553fa755b41a668729fc3b 100644
--- a/example/peripherals/gicv3/mbis/configs/e2000q_aarch64_demo_gic_mbis.config
+++ b/example/peripherals/gicv3/mbis/configs/e2000q_aarch64_demo_gic_mbis.config
@@ -1,5 +1,4 @@
CONFIG_TARGET_NAME="gic_mbis"
-CONFIG_LOG_DEBUG=y
CONFIG_USE_GPIO=y
CONFIG_ENABLE_FGPIO=y
CONFIG_USE_LETTER_SHELL=y
diff --git a/example/peripherals/gicv3/mbis/sdkconfig b/example/peripherals/gicv3/mbis/sdkconfig
index cc73f4fe5cddfed2302216db717347008063812a..fccb8031901562cffc2f7d1bceed612bda15d9b2 100644
--- a/example/peripherals/gicv3/mbis/sdkconfig
+++ b/example/peripherals/gicv3/mbis/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="e2000"
CONFIG_TARGET_TYPE_NAME="q"
@@ -101,10 +103,10 @@ CONFIG_TARGET_NAME="gic_mbis"
#
CONFIG_ELOG_LINE_BUF_SIZE=0x100
# CONFIG_LOG_VERBOS is not set
-CONFIG_LOG_DEBUG=y
+# CONFIG_LOG_DEBUG is not set
# CONFIG_LOG_INFO is not set
# CONFIG_LOG_WARN is not set
-# CONFIG_LOG_ERROR is not set
+CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
diff --git a/example/peripherals/gicv3/mbis/sdkconfig.h b/example/peripherals/gicv3/mbis/sdkconfig.h
index 4be4d8b9e4cca016d31df3ac3ce085120e908b9e..f8eb69a388d97fbd02b5d335d015af37bcc6422d 100644
--- a/example/peripherals/gicv3/mbis/sdkconfig.h
+++ b/example/peripherals/gicv3/mbis/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "e2000"
#define CONFIG_TARGET_TYPE_NAME "q"
@@ -92,10 +94,10 @@
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
/* CONFIG_LOG_VERBOS is not set */
-#define CONFIG_LOG_DEBUG
+/* CONFIG_LOG_DEBUG is not set */
/* CONFIG_LOG_INFO is not set */
/* CONFIG_LOG_WARN is not set */
-/* CONFIG_LOG_ERROR is not set */
+#define CONFIG_LOG_ERROR
/* CONFIG_LOG_NONE is not set */
/* CONFIG_LOG_EXTRA_INFO is not set */
/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
diff --git a/example/peripherals/gicv3/slave/configs/ps2316_aarch64_test16_gic_slave.config b/example/peripherals/gicv3/slave/configs/ps2316_aarch64_test16_gic_slave.config
new file mode 100644
index 0000000000000000000000000000000000000000..77cd578b9a3d5b58ae7b711528e8a758e7a71d7b
--- /dev/null
+++ b/example/peripherals/gicv3/slave/configs/ps2316_aarch64_test16_gic_slave.config
@@ -0,0 +1,12 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="gic_slave"
+CONFIG_LOG_INFO=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_DEBUG_NOOPT=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xa0100000
diff --git a/example/peripherals/gicv3/slave/makefile b/example/peripherals/gicv3/slave/makefile
index ef67dad5e5a6de6d9ba8c789696b1d5b327499ac..f16028a4c1187c2090072be850cb0e257d33383f 100644
--- a/example/peripherals/gicv3/slave/makefile
+++ b/example/peripherals/gicv3/slave/makefile
@@ -19,6 +19,6 @@ USER_INCLUDE := $(PROJECT_DIR) \
include $(SDK_DIR)/tools/build/makeall.mk
USR_BOOT_DIR ?= /mnt/d/tftpboot
-boot:
+image:
make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal_rc.elf
diff --git a/example/peripherals/gicv3/slave/sdkconfig b/example/peripherals/gicv3/slave/sdkconfig
index 7e11ea8a72302b807838c99ba15d9b0228d3cefa..08f833ada3c59e62b085516859c5a915915b3575 100644
--- a/example/peripherals/gicv3/slave/sdkconfig
+++ b/example/peripherals/gicv3/slave/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -100,8 +85,8 @@ CONFIG_TARGET_NAME="gic_slave"
#
CONFIG_ELOG_LINE_BUF_SIZE=0x100
# CONFIG_LOG_VERBOS is not set
-CONFIG_LOG_DEBUG=y
-# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_SLAVE=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/peripherals/gicv3/slave/sdkconfig.h b/example/peripherals/gicv3/slave/sdkconfig.h
index 008f4aad2ba2e9a0a0a3ac21ffd0ff449070db54..190c0c653d8f8b26026fefbeaade4aa75b56e98b 100644
--- a/example/peripherals/gicv3/slave/sdkconfig.h
+++ b/example/peripherals/gicv3/slave/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -91,8 +78,8 @@
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
/* CONFIG_LOG_VERBOS is not set */
-#define CONFIG_LOG_DEBUG
-/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_DEBUG is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/peripherals/i2c/sdkconfig b/example/peripherals/i2c/sdkconfig
index 39fed9c8a2e2b21db58c267e52eb4237d59c75b7..101762ef16c5df4229dd869dcbb1989b6dadbd12 100644
--- a/example/peripherals/i2c/sdkconfig
+++ b/example/peripherals/i2c/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/i2c/sdkconfig.h b/example/peripherals/i2c/sdkconfig.h
index 1b4ccdec0799caac090a3d74b4bcde2343e4ba93..5e31f457f386a82a9d1cea57e03964e1d52aabe7 100644
--- a/example/peripherals/i2c/sdkconfig.h
+++ b/example/peripherals/i2c/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/i2s/i2s_dp/sdkconfig b/example/peripherals/i2s/i2s_dp/sdkconfig
index 9061e72982944afe557ae31ab11e6af77c2bce45..84fa2f8b898f11d22c3de6100f8ede4c58458297 100644
--- a/example/peripherals/i2s/i2s_dp/sdkconfig
+++ b/example/peripherals/i2s/i2s_dp/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="e2000"
CONFIG_TARGET_TYPE_NAME="q"
diff --git a/example/peripherals/i2s/i2s_dp/sdkconfig.h b/example/peripherals/i2s/i2s_dp/sdkconfig.h
index 7bcac7ff519ce4f6b7f79e0256302ca6d4bf9afb..756e96c36e9b0847b9f3d478d87559ba7bd90397 100644
--- a/example/peripherals/i2s/i2s_dp/sdkconfig.h
+++ b/example/peripherals/i2s/i2s_dp/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "e2000"
#define CONFIG_TARGET_TYPE_NAME "q"
diff --git a/example/peripherals/i2s/i2s_dp/src/i2s_rx_example.c b/example/peripherals/i2s/i2s_dp/src/i2s_rx_example.c
index 3373dda06547fa5bcd5cc4adb1eeca76bebc1a9c..41203b4e1e37802f5157e4b0c5eef6edb1819ba7 100644
--- a/example/peripherals/i2s/i2s_dp/src/i2s_rx_example.c
+++ b/example/peripherals/i2s/i2s_dp/src/i2s_rx_example.c
@@ -202,7 +202,7 @@ FError FI2sRxInit(u32 word_length)
return ret;
}
- FI2sClkOutDiv(instance);
+ FI2sClkOutDiv(instance, FI2S_SAMPLE_RATE_CD);
FI2sIrqSet(instance);
FI2sIrqAllEnable(instance);
FI2sTxRxEnable(instance, TRUE); /* 模块使能 */
diff --git a/example/peripherals/i2s/i2s_play_from_record/sdkconfig b/example/peripherals/i2s/i2s_play_from_record/sdkconfig
index c8ee5a2b40697313f4b1fca27ad802a639781575..e8acb36fe7ec66fb798f955e3cbaa6add8383da4 100644
--- a/example/peripherals/i2s/i2s_play_from_record/sdkconfig
+++ b/example/peripherals/i2s/i2s_play_from_record/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/i2s/i2s_play_from_record/sdkconfig.h b/example/peripherals/i2s/i2s_play_from_record/sdkconfig.h
index d5765e1b2dcecad32d4b10cfecf9d11acaff56ab..f2f4861ec18dc52548ad02e39001c91ca54de59c 100644
--- a/example/peripherals/i2s/i2s_play_from_record/sdkconfig.h
+++ b/example/peripherals/i2s/i2s_play_from_record/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c b/example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c
index 6f3081dbd21ecef205e19efe7fa4ab7e60974b13..38d407a482cc53b009063134670c58baed52e062 100644
--- a/example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c
+++ b/example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c
@@ -58,6 +58,7 @@ static u32 rx_channel = 1; /* 接收通道为DDMA通道1 */
static u32 tx_channel = 0; /* 接收通道为DDMA通道0 */
#define PER_BUFFER_SIZE 16384/*录制时每个buffer的大小,单位字节*/
#define TX_RX_BUF_LEN 16384/*录制时总buffer的大,单位字节*/
+
static u32 rx_buf[2][TX_RX_BUF_LEN] __attribute__((aligned(FDDMA_DDR_ADDR_ALIGMENT))) = {0};
volatile static uint8_t buff_using_num = 0;
@@ -176,7 +177,7 @@ FError FI2sRxInit(u32 word_length)
return ret;
}
- FI2sClkOutDiv(instance);
+ FI2sClkOutDiv(instance, FI2S_SAMPLE_RATE_CD);
FI2sTxRxEnable(instance, TRUE); /* 模块使能 */
return ret;
}
diff --git a/example/peripherals/i3c/sdkconfig b/example/peripherals/i3c/sdkconfig
index b6212b77331ada23571ebcaa8c5de7382eba3183..744a68c3ee5cc0bb59c3a430da1f4955d81dacfd 100644
--- a/example/peripherals/i3c/sdkconfig
+++ b/example/peripherals/i3c/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/i3c/sdkconfig.h b/example/peripherals/i3c/sdkconfig.h
index e228b28025afc7c984101656d4c0d548cb6fafdd..e131cb5fb79a6eebf65e233980bde7101b0dff33 100644
--- a/example/peripherals/i3c/sdkconfig.h
+++ b/example/peripherals/i3c/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/iopad/sdkconfig b/example/peripherals/iopad/sdkconfig
index 057ac3ac45f33a9c6423c9f3e2857e1750d32bad..317d686ef620a0f6eca2907b92a8fc601b01c532 100644
--- a/example/peripherals/iopad/sdkconfig
+++ b/example/peripherals/iopad/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/iopad/sdkconfig.h b/example/peripherals/iopad/sdkconfig.h
index 2aa9c0878a1714f6c185c560c6b16ca313623ca1..03b2b966623ef8220b2d164915d7b826f8c6040a 100644
--- a/example/peripherals/iopad/sdkconfig.h
+++ b/example/peripherals/iopad/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/ipc/semaphore/sdkconfig b/example/peripherals/ipc/semaphore/sdkconfig
index 5cad416fee32bd54b7288d77d230ce7a8fe5fbe9..7fcf1eec0dc0264f5e077cc0a97a3dda399cacbb 100644
--- a/example/peripherals/ipc/semaphore/sdkconfig
+++ b/example/peripherals/ipc/semaphore/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/ipc/semaphore/sdkconfig.h b/example/peripherals/ipc/semaphore/sdkconfig.h
index 1d95c7cac13190df81b2ad88060f649d15bc7843..9000d0679dd4445558e3a35491bf676479862fe6 100644
--- a/example/peripherals/ipc/semaphore/sdkconfig.h
+++ b/example/peripherals/ipc/semaphore/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/pcie/configs/ps2316_aarch64_test16_baremetal_rc.config b/example/peripherals/pcie/configs/ps2316_aarch64_test16_baremetal_rc.config
new file mode 100644
index 0000000000000000000000000000000000000000..758d4821a2e4b27cde0ddd7890b62a23af73ecea
--- /dev/null
+++ b/example/peripherals/pcie/configs/ps2316_aarch64_test16_baremetal_rc.config
@@ -0,0 +1,12 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="baremetal_rc"
+CONFIG_LOG_VERBOS=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_PCIE=y
+CONFIG_ENABLE_FPCIE_ECAM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/peripherals/pcie/makefile b/example/peripherals/pcie/makefile
index 3498bc39babfb829944ae756be2f8a4bb57cdee6..e95801e36fde9b394155d44e0df20f89fc7750cb 100644
--- a/example/peripherals/pcie/makefile
+++ b/example/peripherals/pcie/makefile
@@ -23,3 +23,4 @@ image:
make clean
make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal.elf
+ cp ./$(IMAGE_OUT_NAME).bin $(USR_BOOT_DIR)/baremetal.bin
\ No newline at end of file
diff --git a/example/peripherals/pcie/sdkconfig b/example/peripherals/pcie/sdkconfig
index 2585471be14b3cd4933db060416b6598f3044233..4e4614bf4b6736135646dcb03f14b9f66483747d 100644
--- a/example/peripherals/pcie/sdkconfig
+++ b/example/peripherals/pcie/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -52,10 +53,11 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="pd2308"
-CONFIG_SOC_CORE_NUM=8
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -68,23 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="demo"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_PD2308_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -117,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -141,7 +128,7 @@ CONFIG_USE_PCIE=y
# Pcie Configuration
#
CONFIG_ENABLE_FPCIE_ECAM=y
-CONFIG_ENABLE_FPCIEC=y
+# CONFIG_ENABLE_FPCIEC is not set
# end of Pcie Configuration
# CONFIG_USE_WDT is not set
diff --git a/example/peripherals/pcie/sdkconfig.h b/example/peripherals/pcie/sdkconfig.h
index 53d9e903840dc7e49acc439b669f507e7ade9555..5f5d6cf39382de8da9efa3a329f53ff523d0bfff 100644
--- a/example/peripherals/pcie/sdkconfig.h
+++ b/example/peripherals/pcie/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -48,10 +49,11 @@
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "pd2308"
-#define CONFIG_SOC_CORE_NUM 8
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -63,21 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "demo"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_PD2308_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -107,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -128,7 +117,7 @@
/* Pcie Configuration */
#define CONFIG_ENABLE_FPCIE_ECAM
-#define CONFIG_ENABLE_FPCIEC
+/* CONFIG_ENABLE_FPCIEC is not set */
/* end of Pcie Configuration */
/* CONFIG_USE_WDT is not set */
/* CONFIG_USE_DMA is not set */
diff --git a/example/peripherals/pin/figs/pin_gpio_intr_board.png b/example/peripherals/pin/figs/pin_gpio_intr_board.png
index c756db602b3c46f1b8fbc0e945626cee97fae6b2..a8d138a3c8c9a11165800b4c90cedc3c30425864 100644
Binary files a/example/peripherals/pin/figs/pin_gpio_intr_board.png and b/example/peripherals/pin/figs/pin_gpio_intr_board.png differ
diff --git a/example/peripherals/pin/sdkconfig b/example/peripherals/pin/sdkconfig
index a172f889c5239611be4c7e57fcfceb36e0c6e7a6..6fe9a0b217421d59074e6ec1c2b02bc89353f8b7 100644
--- a/example/peripherals/pin/sdkconfig
+++ b/example/peripherals/pin/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/pin/sdkconfig.h b/example/peripherals/pin/sdkconfig.h
index 24ec5bf75d1d3ceca7ede8ec7e49c462dfa19c01..423d691e13202a7850d4031569c8ed3699b60ba0 100644
--- a/example/peripherals/pin/sdkconfig.h
+++ b/example/peripherals/pin/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/pin/src/pin_gpio_intr_example.c b/example/peripherals/pin/src/pin_gpio_intr_example.c
index 186933b41ac201bf71ea480fb7d9418d754564fc..04ac2ef7931d0458fd8b14aa6932afa6a1b2e803 100644
--- a/example/peripherals/pin/src/pin_gpio_intr_example.c
+++ b/example/peripherals/pin/src/pin_gpio_intr_example.c
@@ -54,8 +54,8 @@
static const u32 input_pin_index = FGPIO_ID(FGPIO_CTRL_0, FGPIO_PIN_0);
static const u32 output_pin_index = FGPIO_ID(FGPIO_CTRL_4, FGPIO_PIN_13);
#elif defined(CONFIG_E2000Q_DEMO_BOARD) || defined(CONFIG_E2000D_DEMO_BOARD)
-static const u32 input_pin_index = FGPIO_ID(FGPIO_CTRL_4, FGPIO_PIN_13);
-static const u32 output_pin_index = FGPIO_ID(FGPIO_CTRL_4, FGPIO_PIN_10);
+static const u32 input_pin_index = FGPIO_ID(FGPIO_CTRL_4, FGPIO_PIN_11);
+static const u32 output_pin_index = FGPIO_ID(FGPIO_CTRL_4, FGPIO_PIN_12);
#elif defined(CONFIG_PD2308_DEMO_BOARD)
static const u32 input_pin_index = FGPIO_ID(FGPIO_CTRL_0, FGPIO_PIN_8);
static const u32 output_pin_index = FGPIO_ID(FGPIO_CTRL_0, FGPIO_PIN_10);
diff --git a/example/peripherals/pmbus/sdkconfig b/example/peripherals/pmbus/sdkconfig
index d04edcfb8302f5f68a7519b3966d0eac204ac1ab..1447b452f3637ecb5e9afc6770e4768e9680fa69 100644
--- a/example/peripherals/pmbus/sdkconfig
+++ b/example/peripherals/pmbus/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/pmbus/sdkconfig.h b/example/peripherals/pmbus/sdkconfig.h
index 1104691a1ae8478d7ff23c10506e420700283d14..c85bb5f6cb74071d744f883773643ada8b585e67 100644
--- a/example/peripherals/pmbus/sdkconfig.h
+++ b/example/peripherals/pmbus/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/pwm/sdkconfig b/example/peripherals/pwm/sdkconfig
index 0a76ea226e37e55dcfd0e10d838944d45aa2bac8..573f3089bef10dd6fa67b1657841b1d2ff88c059 100644
--- a/example/peripherals/pwm/sdkconfig
+++ b/example/peripherals/pwm/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/pwm/sdkconfig.h b/example/peripherals/pwm/sdkconfig.h
index 4237312d7728df7a5a07efee61825c3808ce72dd..3a5fd1f87f714acc5e9528fdf44c7219242534a7 100644
--- a/example/peripherals/pwm/sdkconfig.h
+++ b/example/peripherals/pwm/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/qspi/sdkconfig b/example/peripherals/qspi/sdkconfig
index be11f179582eda7caab01f79ba808e2904716370..bd0b3d5ca51a14757457d3568dbbef7fdb1078a5 100644
--- a/example/peripherals/qspi/sdkconfig
+++ b/example/peripherals/qspi/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/qspi/sdkconfig.h b/example/peripherals/qspi/sdkconfig.h
index 942e054e788ab0469022f61f169867677417132d..a997b3a6465acc23f3bf577eaa1072ffdbf2b25c 100644
--- a/example/peripherals/qspi/sdkconfig.h
+++ b/example/peripherals/qspi/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/sata/sata_controller/sdkconfig b/example/peripherals/sata/sata_controller/sdkconfig
index 003339fbc235515997585bef1bb59796cdd01afb..c9971fb311d77eb0cc4c7683d576a893e2addf83 100644
--- a/example/peripherals/sata/sata_controller/sdkconfig
+++ b/example/peripherals/sata/sata_controller/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/sata/sata_controller/sdkconfig.h b/example/peripherals/sata/sata_controller/sdkconfig.h
index 5b23fc621f7638ed554815e64739b368262d62ad..76450639ec78314ee9831350dd0e9219646367ec 100644
--- a/example/peripherals/sata/sata_controller/sdkconfig.h
+++ b/example/peripherals/sata/sata_controller/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/sata/sata_pcie/sdkconfig b/example/peripherals/sata/sata_pcie/sdkconfig
index 47224575f6845a2c87ef8cf4d2f57055e030e24c..f10e4c39ec8569b8c6486559ec595403506ef7a2 100644
--- a/example/peripherals/sata/sata_pcie/sdkconfig
+++ b/example/peripherals/sata/sata_pcie/sdkconfig
@@ -54,6 +54,7 @@ CONFIG_ENABLE_GIC_ITS=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/sata/sata_pcie/sdkconfig.h b/example/peripherals/sata/sata_pcie/sdkconfig.h
index da0a0094a42193ab7bd433abc61f11bec365c258..78f229f7b66f1b9cbdec9d5d35d1d1afb0b1eb76 100644
--- a/example/peripherals/sata/sata_pcie/sdkconfig.h
+++ b/example/peripherals/sata/sata_pcie/sdkconfig.h
@@ -50,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/sd/sdkconfig b/example/peripherals/sd/sdkconfig
index d945653019b3013ab991bbae084f19f71a736df1..db4f94131aec11b18131423c0dc2fdd1ebc746d1 100644
--- a/example/peripherals/sd/sdkconfig
+++ b/example/peripherals/sd/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/sd/sdkconfig.h b/example/peripherals/sd/sdkconfig.h
index 44fbf7d75387ae3a6828fdd724750584c780eb7f..45830da89e5257d24ece5e15b269c1568e72afe2 100644
--- a/example/peripherals/sd/sdkconfig.h
+++ b/example/peripherals/sd/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/serial/configs/ps2316_aarch64_test16_serial.config b/example/peripherals/serial/configs/ps2316_aarch64_test16_serial.config
new file mode 100644
index 0000000000000000000000000000000000000000..6b32bf906e336eab4d9c4722cc56dc220361ae3f
--- /dev/null
+++ b/example/peripherals/serial/configs/ps2316_aarch64_test16_serial.config
@@ -0,0 +1,9 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="serial"
+CONFIG_LOG_INFO=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_HEAP_SIZE=2
diff --git a/example/peripherals/serial/sdkconfig b/example/peripherals/serial/sdkconfig
index 8c22ad5d1fa87c6b6d212733c53a91341be4740d..c34cad6215c90283e6f368d246b166e13df99269 100644
--- a/example/peripherals/serial/sdkconfig
+++ b/example/peripherals/serial/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -101,9 +86,9 @@ CONFIG_TARGET_NAME="serial"
CONFIG_ELOG_LINE_BUF_SIZE=0x100
# CONFIG_LOG_VERBOS is not set
# CONFIG_LOG_DEBUG is not set
-# CONFIG_LOG_INFO is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -135,20 +120,11 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_CAN is not set
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
-CONFIG_USE_MIO=y
-
-#
-# Hardware Mio Configuration
-#
-CONFIG_ENABLE_MIO=y
-# end of Hardware Mio Configuration
-
+# CONFIG_USE_MIO is not set
# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
-CONFIG_USE_DMA=y
-# CONFIG_ENABLE_FGDMA is not set
-CONFIG_ENABLE_FDDMA=y
+# CONFIG_USE_DMA is not set
# CONFIG_USE_NAND is not set
# CONFIG_USE_RTC is not set
# CONFIG_USE_SATA is not set
diff --git a/example/peripherals/serial/sdkconfig.h b/example/peripherals/serial/sdkconfig.h
index c51ce923035b26c4840d021b22824b4081371194..c1d4ba0cc871c030fec71693321bdf7f3ff670a3 100644
--- a/example/peripherals/serial/sdkconfig.h
+++ b/example/peripherals/serial/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -92,9 +79,9 @@
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
/* CONFIG_LOG_VERBOS is not set */
/* CONFIG_LOG_DEBUG is not set */
-/* CONFIG_LOG_INFO is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
-#define CONFIG_LOG_ERROR
+/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
/* CONFIG_LOG_EXTRA_INFO is not set */
/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -123,18 +110,11 @@
/* CONFIG_USE_CAN is not set */
/* CONFIG_USE_I2C is not set */
/* CONFIG_USE_TIMER is not set */
-#define CONFIG_USE_MIO
-
-/* Hardware Mio Configuration */
-
-#define CONFIG_ENABLE_MIO
-/* end of Hardware Mio Configuration */
+/* CONFIG_USE_MIO is not set */
/* CONFIG_USE_SDMMC is not set */
/* CONFIG_USE_PCIE is not set */
/* CONFIG_USE_WDT is not set */
-#define CONFIG_USE_DMA
-/* CONFIG_ENABLE_FGDMA is not set */
-#define CONFIG_ENABLE_FDDMA
+/* CONFIG_USE_DMA is not set */
/* CONFIG_USE_NAND is not set */
/* CONFIG_USE_RTC is not set */
/* CONFIG_USE_SATA is not set */
diff --git a/example/peripherals/spi/sdkconfig b/example/peripherals/spi/sdkconfig
index 1c4ed9e23805358f3e9154c7e71894b1a2de601a..c9ff2435df99b747669748dbd7971b0f6811b53f 100644
--- a/example/peripherals/spi/sdkconfig
+++ b/example/peripherals/spi/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="pd2308"
CONFIG_SOC_CORE_NUM=8
diff --git a/example/peripherals/spi/sdkconfig.h b/example/peripherals/spi/sdkconfig.h
index 91d12d348e40e5e396d3ec466bffbd7c72d71bcf..2c28ab9c49581fa5269f669b398389944f0448a5 100644
--- a/example/peripherals/spi/sdkconfig.h
+++ b/example/peripherals/spi/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "pd2308"
#define CONFIG_SOC_CORE_NUM 8
diff --git a/example/peripherals/timer/tacho/sdkconfig b/example/peripherals/timer/tacho/sdkconfig
index 746b2334160db9e24000ef5188ba6b1828f63576..d5cbec1cc8c1f8aa0888031813318fbbe024ef82 100644
--- a/example/peripherals/timer/tacho/sdkconfig
+++ b/example/peripherals/timer/tacho/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/timer/tacho/sdkconfig.h b/example/peripherals/timer/tacho/sdkconfig.h
index 7bd5cdecb00427186e8f310aedcbd5b022e4f22e..f1a932fe4b1648cb269f4d90c223d21c09a9a780 100644
--- a/example/peripherals/timer/tacho/sdkconfig.h
+++ b/example/peripherals/timer/tacho/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/timer/timer/sdkconfig b/example/peripherals/timer/timer/sdkconfig
index 258e7081a4ee9a27ef46fdc9c462a36b9dcac21f..d5ca684e6beab2136941aa644e3399710819e124 100644
--- a/example/peripherals/timer/timer/sdkconfig
+++ b/example/peripherals/timer/timer/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/peripherals/timer/timer/sdkconfig.h b/example/peripherals/timer/timer/sdkconfig.h
index ac1938cf5fca2f4db4dbd1d1604406bc24eb1b09..254d9d71de8b5b7e7f41366b06afafa40cce803e 100644
--- a/example/peripherals/timer/timer/sdkconfig.h
+++ b/example/peripherals/timer/timer/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/peripherals/usb/pusb2_device/sdkconfig b/example/peripherals/usb/pusb2_device/sdkconfig
index 848d9d3330903ca3cfaf2bf10c894a61396c15a1..61d1ab0df4fcb79f249c9e4352c70b58a397f4d7 100644
--- a/example/peripherals/usb/pusb2_device/sdkconfig
+++ b/example/peripherals/usb/pusb2_device/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="e2000"
CONFIG_TARGET_TYPE_NAME="q"
diff --git a/example/peripherals/usb/pusb2_device/sdkconfig.h b/example/peripherals/usb/pusb2_device/sdkconfig.h
index 132aa9b6bdd6c34dae8a4f09ee03ec8e7a708d3b..ed33ab1d7f20cbd50cb5497af959590d6ec07389 100644
--- a/example/peripherals/usb/pusb2_device/sdkconfig.h
+++ b/example/peripherals/usb/pusb2_device/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "e2000"
#define CONFIG_TARGET_TYPE_NAME "q"
diff --git a/example/peripherals/wdt/configs/ps2316_aarch64_test16_wdt.config b/example/peripherals/wdt/configs/ps2316_aarch64_test16_wdt.config
new file mode 100644
index 0000000000000000000000000000000000000000..61ee5209fdadbb0376b016c03c83af5bf9468b23
--- /dev/null
+++ b/example/peripherals/wdt/configs/ps2316_aarch64_test16_wdt.config
@@ -0,0 +1,10 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="wdt"
+CONFIG_USE_WDT=y
+CONFIG_USE_FWDT=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_HEAP_SIZE=2
diff --git a/example/peripherals/wdt/sdkconfig b/example/peripherals/wdt/sdkconfig
index ce41b5253f373fb1448e951016fcfc3583fe7b1a..7d68eea0012605d0dc8e3e87d4e0ce148d27f384 100644
--- a/example/peripherals/wdt/sdkconfig
+++ b/example/peripherals/wdt/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/peripherals/wdt/sdkconfig.h b/example/peripherals/wdt/sdkconfig.h
index 06ed9fdad5bf41f13ffdfb9f25d3d4d9fce674bc..73f2beca883a7a09942e7db2a4571fc897e1daaa 100644
--- a/example/peripherals/wdt/sdkconfig.h
+++ b/example/peripherals/wdt/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/python/configs/ps2316_aarch64_test16_micropython.config b/example/python/configs/ps2316_aarch64_test16_micropython.config
new file mode 100644
index 0000000000000000000000000000000000000000..2f0ff4edbc388ea75433fa42c7f29f7a397941dc
--- /dev/null
+++ b/example/python/configs/ps2316_aarch64_test16_micropython.config
@@ -0,0 +1,11 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="micropython"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_FSL_SDMMC=y
+CONFIG_USE_MICROPYTHON=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_HEAP_SIZE=2
diff --git a/example/python/sdkconfig b/example/python/sdkconfig
index 2d51307ddd3ccf9fb1fdc5c3dbb8bcc2de350547..83ffe145bb4b7d7ac77cb36712bc90a174b3d7b6 100644
--- a/example/python/sdkconfig
+++ b/example/python/sdkconfig
@@ -29,7 +29,6 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
-# CONFIG_USE_L3CACHE is not set
CONFIG_BOOT_WITH_FLUSH_CACHE=y
# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
@@ -42,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -51,12 +51,13 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
-CONFIG_TARGET_FT2004=y
+# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="ft2004"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -69,13 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="dsk"
-CONFIG_FT2004_DSK_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -107,7 +103,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
# Drivers configuration
#
CONFIG_USE_IOMUX=y
-CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOCTRL is not set
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
@@ -125,9 +121,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-CONFIG_ENABLE_FSDMMC=y
-# CONFIG_ENABLE_FSDIF is not set
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -176,7 +170,7 @@ CONFIG_USE_FSL_SDMMC=y
# Host configuration
#
# CONFIG_FSL_SDMMC_USE_FSDIF is not set
-CONFIG_FSL_SDMMC_USE_FSDMMC=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
# end of Host configuration
#
diff --git a/example/python/sdkconfig.h b/example/python/sdkconfig.h
index fceed0a6c50c8f057df7913b16f20a1026b9f3c5..15995a18c38958f56e8fb09657add750c9c9288e 100644
--- a/example/python/sdkconfig.h
+++ b/example/python/sdkconfig.h
@@ -28,7 +28,6 @@
#define CONFIG_GCC_CODE_MODEL_SMALL
/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
-/* CONFIG_USE_L3CACHE is not set */
#define CONFIG_BOOT_WITH_FLUSH_CACHE
/* CONFIG_MMU_DEBUG_PRINTS is not set */
/* end of Arm architecture configuration */
@@ -39,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -47,12 +47,13 @@
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
-#define CONFIG_TARGET_FT2004
+/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "ft2004"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -64,12 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "dsk"
-#define CONFIG_FT2004_DSK_BOARD
-
-/* IO mux configuration when board start up */
-
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -98,7 +95,7 @@
/* Drivers configuration */
#define CONFIG_USE_IOMUX
-#define CONFIG_ENABLE_IOCTRL
+/* CONFIG_ENABLE_IOCTRL is not set */
/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
@@ -114,9 +111,7 @@
/* CONFIG_USE_I2C is not set */
/* CONFIG_USE_TIMER is not set */
/* CONFIG_USE_MIO is not set */
-#define CONFIG_USE_SDMMC
-#define CONFIG_ENABLE_FSDMMC
-/* CONFIG_ENABLE_FSDIF is not set */
+/* CONFIG_USE_SDMMC is not set */
/* CONFIG_USE_PCIE is not set */
/* CONFIG_USE_WDT is not set */
/* CONFIG_USE_DMA is not set */
@@ -159,7 +154,7 @@
/* Host configuration */
/* CONFIG_FSL_SDMMC_USE_FSDIF is not set */
-#define CONFIG_FSL_SDMMC_USE_FSDMMC
+/* CONFIG_FSL_SDMMC_USE_FSDMMC is not set */
/* end of Host configuration */
/* Protocol configuration */
diff --git a/example/storage/fatfs/sdkconfig b/example/storage/fatfs/sdkconfig
index 15ddefa3db6421a3c6f397298aa0f9af2c933feb..60cc3ce9dbe8fa83497916f07858616130751f89 100644
--- a/example/storage/fatfs/sdkconfig
+++ b/example/storage/fatfs/sdkconfig
@@ -54,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/storage/fatfs/sdkconfig.h b/example/storage/fatfs/sdkconfig.h
index 2eb7338b2dbbc6d9e6827bc9ddc1c876c6357d69..06fb07bd7a2d64de787732cf19aec1afab8d61e0 100644
--- a/example/storage/fatfs/sdkconfig.h
+++ b/example/storage/fatfs/sdkconfig.h
@@ -50,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/storage/memory_pool_test/configs/ps2316_aarch64_test16_mem_pool.config b/example/storage/memory_pool_test/configs/ps2316_aarch64_test16_mem_pool.config
new file mode 100644
index 0000000000000000000000000000000000000000..8ca5d7737b3aa880b7608029937182681cf5e0b0
--- /dev/null
+++ b/example/storage/memory_pool_test/configs/ps2316_aarch64_test16_mem_pool.config
@@ -0,0 +1,8 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="mem_pool"
+CONFIG_LOG_DEBUG=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/storage/memory_pool_test/sdkconfig b/example/storage/memory_pool_test/sdkconfig
index 0c82e4767c835563af11f62f6693a419658275c9..3f47c52bc139dc8cd837524cfd1df7b9732dabe1 100644
--- a/example/storage/memory_pool_test/sdkconfig
+++ b/example/storage/memory_pool_test/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/storage/memory_pool_test/sdkconfig.h b/example/storage/memory_pool_test/sdkconfig.h
index dfb76995717d08fa4e0f24df51207c3cb767b053..0f73db26ae8f8df26619c973e6845a5c3bf0e77a 100644
--- a/example/storage/memory_pool_test/sdkconfig.h
+++ b/example/storage/memory_pool_test/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/storage/sfud/sdkconfig b/example/storage/sfud/sdkconfig
index 5dee8756ac057aa9015a884bd33e0845443eb213..604d73528a8b7078434c6b04f2466e513b2cc8d1 100644
--- a/example/storage/sfud/sdkconfig
+++ b/example/storage/sfud/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/storage/sfud/sdkconfig.h b/example/storage/sfud/sdkconfig.h
index f402e795c91e8efac745f417d5d2576e64de9f84..fe94a73caa7efb21b9821c9845e06358f9ff8584 100644
--- a/example/storage/sfud/sdkconfig.h
+++ b/example/storage/sfud/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/storage/spiffs/sdkconfig b/example/storage/spiffs/sdkconfig
index 160c28d22fe9fafe389cc782a6b5afefb0739ee2..0aa1bcd43ddc8a5235c4719070d0da5a912bbe7a 100644
--- a/example/storage/spiffs/sdkconfig
+++ b/example/storage/spiffs/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/storage/spiffs/sdkconfig.h b/example/storage/spiffs/sdkconfig.h
index bcd2e4735f2b17ed7ead7f3426f7765f8b81d1cb..a308383ff918f907892697af9bd135ad8c9727b9 100644
--- a/example/storage/spiffs/sdkconfig.h
+++ b/example/storage/spiffs/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/system/amp/amp_tools_example/amp/README.md b/example/system/amp/amp_tools_example/amp/README.md
index 7a07b472a3037bd27524359f2a4f19cbd040db09..970b95435c2d4e8883b62118f3d6fcc981137e9b 100644
--- a/example/system/amp/amp_tools_example/amp/README.md
+++ b/example/system/amp/amp_tools_example/amp/README.md
@@ -34,7 +34,7 @@ MCS锁(Mellor-Crummey and Scott Lock)介绍:
本例程需要以下硬件,
-- E2000D/Q Demo,D2000,FT2000/4,PhytiumPi
+- E2000D/Q Demo,D2000,FT2000/4,PhytiumPi,pd2308,ps2316
- 串口连接电脑,USB转串口模块
### 2.1 硬件配置方法
diff --git a/example/system/amp/amp_tools_example/amp/amp_config.json b/example/system/amp/amp_tools_example/amp/amp_config.json
index 1ff2968e1b4079a2c9c96a8feecbe35d49348f4c..227969724419b9d2080293978d07c059365818de 100644
--- a/example/system/amp/amp_tools_example/amp/amp_config.json
+++ b/example/system/amp/amp_tools_example/amp/amp_config.json
@@ -95,7 +95,27 @@
"path2":["../amp2",2,0,"d2000_aarch32_test_template.config"],
"path3":["../amp3",3,0,"d2000_aarch32_test_template.config"]
}
- ]
+ ],
+ "config8":[
+ {
+ "bootstrap":["./",0,0,"ps2316_aarch64_test16_template.config"]
+ },
+ {
+ "path1":["../amp1",1,0,"ps2316_aarch64_test16_template.config"],
+ "path2":["../amp2",2,0,"ps2316_aarch64_test16_template.config"],
+ "path3":["../amp3",3,0,"ps2316_aarch64_test16_template.config"]
+ }
+ ],
+ "config9":[
+ {
+ "bootstrap":["./",0,0,"pd2308_aarch64_demo_template.config"]
+ },
+ {
+ "path1":["../amp1",1,0,"pd2308_aarch64_demo_template.config"],
+ "path2":["../amp2",2,0,"pd2308_aarch64_demo_template.config"],
+ "path3":["../amp3",3,0,"pd2308_aarch64_demo_template.config"]
+ }
+ ]
}
}
]
diff --git a/example/system/amp/amp_tools_example/amp/configs/pd2308_aarch64_demo_template.config b/example/system/amp/amp_tools_example/amp/configs/pd2308_aarch64_demo_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..7637e060a69e593911722059d408e937028169c7
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp/configs/pd2308_aarch64_demo_template.config
@@ -0,0 +1,7 @@
+CONFIG_USE_MSDF=y
+CONFIG_MSDF1=y
+CONFIG_TARGET_PD2308=y
+CONFIG_TARGET_NAME="template"
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/amp/amp_tools_example/amp/configs/ps2316_aarch64_test16_template.config b/example/system/amp/amp_tools_example/amp/configs/ps2316_aarch64_test16_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..50e3e445218645337a873b991e038d3497187753
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp/configs/ps2316_aarch64_test16_template.config
@@ -0,0 +1,7 @@
+CONFIG_USE_MSDF=y
+CONFIG_MSDF1=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/amp/amp_tools_example/amp/sdkconfig b/example/system/amp/amp_tools_example/amp/sdkconfig
index a1991866a776189be937d687f23cae8e276f9425..0758150ba329c434385cdea50bff6985624cd8a9 100644
--- a/example/system/amp/amp_tools_example/amp/sdkconfig
+++ b/example/system/amp/amp_tools_example/amp/sdkconfig
@@ -39,12 +39,13 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
# CONFIG_MSDF0 is not set
CONFIG_MSDF1=y
-CONFIG_SOC_CORE_MAX_ID=1
+CONFIG_SOC_CORE_MAX_ID=15
CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -52,20 +53,19 @@ CONFIG_MAX_XLAT_TABLES=256
#
# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
-CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="e2000"
-CONFIG_TARGET_TYPE_NAME="d"
-CONFIG_SOC_CORE_NUM=2
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -74,25 +74,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_E2000D_DEMO_BOARD=y
-CONFIG_BOARD_NAME="demo"
-
-#
-# IO mux configuration when board start up
-#
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_ADC_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -125,7 +108,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -162,7 +145,17 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-# CONFIG_USE_LETTER_SHELL is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter shell configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter shell configuration
+
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
diff --git a/example/system/amp/amp_tools_example/amp/sdkconfig.h b/example/system/amp/amp_tools_example/amp/sdkconfig.h
index 31a85d0a8c12d095c6b6afb1c6e9812402c27a99..708056569e2fd1b01e79ad13791d0b13f0263ba1 100644
--- a/example/system/amp/amp_tools_example/amp/sdkconfig.h
+++ b/example/system/amp/amp_tools_example/amp/sdkconfig.h
@@ -37,31 +37,31 @@
#define CONFIG_USE_MSDF
/* CONFIG_MSDF0 is not set */
#define CONFIG_MSDF1
-#define CONFIG_SOC_CORE_MAX_ID 1
+#define CONFIG_SOC_CORE_MAX_ID 15
#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
-#define CONFIG_TARGET_E2000D
+/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "e2000"
-#define CONFIG_TARGET_TYPE_NAME "d"
-#define CONFIG_SOC_CORE_NUM 2
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -69,23 +69,8 @@
/* Board Configuration */
-#define CONFIG_E2000D_DEMO_BOARD
-#define CONFIG_BOARD_NAME "demo"
-
-/* IO mux configuration when board start up */
-
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_ADC_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -115,7 +100,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -149,7 +134,15 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-/* CONFIG_USE_LETTER_SHELL is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter shell configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter shell configuration */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
diff --git a/example/system/amp/amp_tools_example/amp1/configs/pd2308_aarch64_demo_template.config b/example/system/amp/amp_tools_example/amp1/configs/pd2308_aarch64_demo_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..b9d77f112d6c579d4ce836d99ecbb2b1e9718607
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp1/configs/pd2308_aarch64_demo_template.config
@@ -0,0 +1,6 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_TARGET_NAME="template"
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x90100000
diff --git a/example/system/amp/amp_tools_example/amp1/configs/ps2316_aarch64_test16_template.config b/example/system/amp/amp_tools_example/amp1/configs/ps2316_aarch64_test16_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..04af6105c163c0a890807eeb1544428f5cc27805
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp1/configs/ps2316_aarch64_test16_template.config
@@ -0,0 +1,6 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x90100000
diff --git a/example/system/amp/amp_tools_example/amp1/sdkconfig b/example/system/amp/amp_tools_example/amp1/sdkconfig
index 96e5f8aa2dd30b0857b49d706487fd4d3c489117..7c255ace6ceb74ea3e239e8c24f0d7000763a7d1 100644
--- a/example/system/amp/amp_tools_example/amp1/sdkconfig
+++ b/example/system/amp/amp_tools_example/amp1/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -48,20 +49,19 @@ CONFIG_MAX_XLAT_TABLES=256
#
# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
-CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="e2000"
-CONFIG_TARGET_TYPE_NAME="d"
-CONFIG_SOC_CORE_NUM=2
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -70,25 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_E2000D_DEMO_BOARD=y
-CONFIG_BOARD_NAME="demo"
-
-#
-# IO mux configuration when board start up
-#
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_ADC_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -121,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/amp_tools_example/amp1/sdkconfig.h b/example/system/amp/amp_tools_example/amp1/sdkconfig.h
index 118630d90500e764a0cda5cbe76adb787b9c9afb..404ebc73cb87f3a1f4beaa1fcea941432ce5d138 100644
--- a/example/system/amp/amp_tools_example/amp1/sdkconfig.h
+++ b/example/system/amp/amp_tools_example/amp1/sdkconfig.h
@@ -38,26 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
-#define CONFIG_TARGET_E2000D
+/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "e2000"
-#define CONFIG_TARGET_TYPE_NAME "d"
-#define CONFIG_SOC_CORE_NUM 2
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -65,23 +65,8 @@
/* Board Configuration */
-#define CONFIG_E2000D_DEMO_BOARD
-#define CONFIG_BOARD_NAME "demo"
-
-/* IO mux configuration when board start up */
-
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_ADC_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -111,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/amp_tools_example/amp2/configs/pd2308_aarch64_demo_template.config b/example/system/amp/amp_tools_example/amp2/configs/pd2308_aarch64_demo_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..4a824c70dbb7d7cd41caa972649169bf99f32de2
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp2/configs/pd2308_aarch64_demo_template.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="demo"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xa0100000
diff --git a/example/system/amp/amp_tools_example/amp2/configs/ps2316_aarch64_test16_template.config b/example/system/amp/amp_tools_example/amp2/configs/ps2316_aarch64_test16_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..24ce60ce8ac345a7d505a77944cb518325a0616a
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp2/configs/ps2316_aarch64_test16_template.config
@@ -0,0 +1,6 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xa0100000
diff --git a/example/system/amp/amp_tools_example/amp2/sdkconfig b/example/system/amp/amp_tools_example/amp2/sdkconfig
index f9087ce4e9ce09393c39b78da843b469ce7feeb5..299181cd82242224c0db0475513abfd9270e2d82 100644
--- a/example/system/amp/amp_tools_example/amp2/sdkconfig
+++ b/example/system/amp/amp_tools_example/amp2/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -156,17 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-CONFIG_USE_LETTER_SHELL=y
-
-#
-# Letter shell configuration
-#
-CONFIG_LS_PL011_UART=y
-CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
-# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
-# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
-# end of Letter shell configuration
-
+# CONFIG_USE_LETTER_SHELL is not set
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
diff --git a/example/system/amp/amp_tools_example/amp2/sdkconfig.h b/example/system/amp/amp_tools_example/amp2/sdkconfig.h
index 5033ebe67561fafa0df6e4138b54b9159bc84f8a..042ad7dbb3550ba7831c5e25676d38816a8480c4 100644
--- a/example/system/amp/amp_tools_example/amp2/sdkconfig.h
+++ b/example/system/amp/amp_tools_example/amp2/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -143,15 +130,7 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-#define CONFIG_USE_LETTER_SHELL
-
-/* Letter shell configuration */
-
-#define CONFIG_LS_PL011_UART
-#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
-/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
-/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
-/* end of Letter shell configuration */
+/* CONFIG_USE_LETTER_SHELL is not set */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
diff --git a/example/system/amp/amp_tools_example/amp3/configs/pd2308_aarch64_demo_template.config b/example/system/amp/amp_tools_example/amp3/configs/pd2308_aarch64_demo_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..8e378225dec8c782a744e27ecdea4955f751d75e
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp3/configs/pd2308_aarch64_demo_template.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="demo"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xb0100000
diff --git a/example/system/amp/amp_tools_example/amp3/configs/ps2316_aarch64_test16_template.config b/example/system/amp/amp_tools_example/amp3/configs/ps2316_aarch64_test16_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..5eaf44713f0c246bfc100f9bd49f9f840cdfd5a9
--- /dev/null
+++ b/example/system/amp/amp_tools_example/amp3/configs/ps2316_aarch64_test16_template.config
@@ -0,0 +1,6 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="template"
+CONFIG_USE_SERIAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xb0100000
diff --git a/example/system/amp/amp_tools_example/amp3/sdkconfig b/example/system/amp/amp_tools_example/amp3/sdkconfig
index ac0374c3df382ea033d6a7f06aec5dae4f8fe25b..810b9a3e27a8c37108e89702ba678e93543d24f3 100644
--- a/example/system/amp/amp_tools_example/amp3/sdkconfig
+++ b/example/system/amp/amp_tools_example/amp3/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -156,17 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-CONFIG_USE_LETTER_SHELL=y
-
-#
-# Letter shell configuration
-#
-CONFIG_LS_PL011_UART=y
-CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
-# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
-# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
-# end of Letter shell configuration
-
+# CONFIG_USE_LETTER_SHELL is not set
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
diff --git a/example/system/amp/amp_tools_example/amp3/sdkconfig.h b/example/system/amp/amp_tools_example/amp3/sdkconfig.h
index 19484e13731498312f84cf57d244944b68a697d7..45b98b7fb9c2db5df19f70bc184a5f5c3ea44b38 100644
--- a/example/system/amp/amp_tools_example/amp3/sdkconfig.h
+++ b/example/system/amp/amp_tools_example/amp3/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -143,15 +130,7 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-#define CONFIG_USE_LETTER_SHELL
-
-/* Letter shell configuration */
-
-#define CONFIG_LS_PL011_UART
-#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
-/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
-/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
-/* end of Letter shell configuration */
+/* CONFIG_USE_LETTER_SHELL is not set */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
diff --git a/example/system/amp/libmetal_test/apu_running/amp_config.json b/example/system/amp/libmetal_test/apu_running/amp_config.json
index 9ff4151fb3617400cf9f72d9bbdb4c1e28a1a8db..f4be2fc9ea17d7e948b408cd6072dc668b173f85 100644
--- a/example/system/amp/libmetal_test/apu_running/amp_config.json
+++ b/example/system/amp/libmetal_test/apu_running/amp_config.json
@@ -107,6 +107,14 @@
{
"path1":["../rpu_running",1,0,"pd2308_aarch64_demo_rpu.config"]
}
+ ],
+ "config11":[
+ {
+ "bootstrap":["./",0,0,"ps2316_aarch64_test16_apu.config"]
+ },
+ {
+ "path1":["../rpu_running",1,0,"ps2316_aarch64_test16_rpu.config"]
+ }
]
}
}
diff --git a/example/system/amp/libmetal_test/apu_running/configs/ps2316_aarch64_test16_apu.config b/example/system/amp/libmetal_test/apu_running/configs/ps2316_aarch64_test16_apu.config
new file mode 100644
index 0000000000000000000000000000000000000000..29b8f3e467e19d9cb00015813fbf44a1bd059679
--- /dev/null
+++ b/example/system/amp/libmetal_test/apu_running/configs/ps2316_aarch64_test16_apu.config
@@ -0,0 +1,14 @@
+CONFIG_IPI_IRQ_NUM_PRIORITY=1
+CONFIG_TARGET_CPU_ID=1
+CONFIG_USE_MSDF=y
+CONFIG_MSDF1=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="apu"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_LIBMETAL=y
+# CONFIG_CHECK_DEPS is not set
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/amp/libmetal_test/apu_running/makefile b/example/system/amp/libmetal_test/apu_running/makefile
index 839eb9281ba37e2bf621cc9283c80791d5f67338..4c33d0c2dad142cf3542b628d7f6bfd3b12ac66a 100644
--- a/example/system/amp/libmetal_test/apu_running/makefile
+++ b/example/system/amp/libmetal_test/apu_running/makefile
@@ -65,5 +65,7 @@ clean_all:
$(MAKE) -C ./ clean
$(MAKE) -C ../rpu_running clean
-boot:
+image:
+ make clean
+ make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/apu_libmetal_core0.elf
diff --git a/example/system/amp/libmetal_test/apu_running/sdkconfig b/example/system/amp/libmetal_test/apu_running/sdkconfig
index 760a8f6be6aac31d5606dbda1378afcac34714ef..de1e4e2b088d24050e11455ea8705709518b0800 100644
--- a/example/system/amp/libmetal_test/apu_running/sdkconfig
+++ b/example/system/amp/libmetal_test/apu_running/sdkconfig
@@ -49,32 +49,33 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
# CONFIG_MSDF0 is not set
CONFIG_MSDF1=y
-CONFIG_SOC_CORE_MAX_ID=3
+CONFIG_SOC_CORE_MAX_ID=15
CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -83,24 +84,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -133,7 +118,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/libmetal_test/apu_running/sdkconfig.h b/example/system/amp/libmetal_test/apu_running/sdkconfig.h
index 9497c4eff989e2a107ad138d083dc595c6c29e2c..f83a63a029a6ab9f3c241db4bd294a2d8ac40589 100644
--- a/example/system/amp/libmetal_test/apu_running/sdkconfig.h
+++ b/example/system/amp/libmetal_test/apu_running/sdkconfig.h
@@ -44,30 +44,31 @@
#define CONFIG_USE_MSDF
/* CONFIG_MSDF0 is not set */
#define CONFIG_MSDF1
-#define CONFIG_SOC_CORE_MAX_ID 3
+#define CONFIG_SOC_CORE_MAX_ID 15
#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -75,22 +76,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -120,7 +107,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/libmetal_test/rpu_running/configs/ps2316_aarch64_test16_rpu.config b/example/system/amp/libmetal_test/rpu_running/configs/ps2316_aarch64_test16_rpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..dd3cb783fc1ae8b8207cdf95c8e0834a4578a191
--- /dev/null
+++ b/example/system/amp/libmetal_test/rpu_running/configs/ps2316_aarch64_test16_rpu.config
@@ -0,0 +1,13 @@
+CONFIG_IPI_IRQ_NUM_PRIORITY=1
+CONFIG_TARGET_CPU_ID=0
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="rpu"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_LIBMETAL=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x90000000
diff --git a/example/system/amp/libmetal_test/rpu_running/makefile b/example/system/amp/libmetal_test/rpu_running/makefile
index 97c1bbba1222b2320678f74df0e3431d6ffab584..9554814b640af47c7cdd9cc5ba59e97cbe926be9 100644
--- a/example/system/amp/libmetal_test/rpu_running/makefile
+++ b/example/system/amp/libmetal_test/rpu_running/makefile
@@ -52,5 +52,7 @@ load_phytiumpi_aarch32:
load_phytiumpi_aarch64:
$(MAKE) load_kconfig LOAD_CONFIG_NAME=phytiumpi_aarch64_firefly_rpu
-boot:
+image:
+ make clean
+ make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/rpu_libmetal_core0.elf
\ No newline at end of file
diff --git a/example/system/amp/libmetal_test/rpu_running/sdkconfig b/example/system/amp/libmetal_test/rpu_running/sdkconfig
index 472d179a65adb3f5689716bff39a80bc675ff228..79c1dbee6ce9334f8c446276553ca2c9cdf98d86 100644
--- a/example/system/amp/libmetal_test/rpu_running/sdkconfig
+++ b/example/system/amp/libmetal_test/rpu_running/sdkconfig
@@ -51,26 +51,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -79,24 +80,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -109,9 +94,9 @@ CONFIG_TARGET_NAME="rpu"
# Sdk common configuration
#
CONFIG_ELOG_LINE_BUF_SIZE=0x100
-CONFIG_LOG_VERBOS=y
+# CONFIG_LOG_VERBOS is not set
# CONFIG_LOG_DEBUG is not set
-# CONFIG_LOG_INFO is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
@@ -129,7 +114,7 @@ CONFIG_INTERRUPT_ROLE_SLAVE=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/libmetal_test/rpu_running/sdkconfig.h b/example/system/amp/libmetal_test/rpu_running/sdkconfig.h
index e720771b8cb610d0f9bc80c6cbffbc57bb27d2f4..b7e5e54c6e4f9c210ae5cbd8fa48deba4e617d21 100644
--- a/example/system/amp/libmetal_test/rpu_running/sdkconfig.h
+++ b/example/system/amp/libmetal_test/rpu_running/sdkconfig.h
@@ -45,25 +45,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -71,22 +72,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -97,9 +84,9 @@
/* Sdk common configuration */
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
-#define CONFIG_LOG_VERBOS
+/* CONFIG_LOG_VERBOS is not set */
/* CONFIG_LOG_DEBUG is not set */
-/* CONFIG_LOG_INFO is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
@@ -116,7 +103,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/openamp/common/memory_layout.h b/example/system/amp/openamp/common/memory_layout.h
index f561348509abff3bba8c1af3d5eca15926b91584..5cd871200f1396590ad6b9f0a3a3d9854f283cce 100644
--- a/example/system/amp/openamp/common/memory_layout.h
+++ b/example/system/amp/openamp/common/memory_layout.h
@@ -13,7 +13,7 @@
*
* FilePath: memory_
* Created Date: 2024-04-29 14:22:47
- * Last Modified: 2024-08-14 11:08:31
+ * Last Modified: 2025-01-14 14:44:15
* Description: This file is for
*
* Modify History:
@@ -44,8 +44,8 @@ extern "C" {
#define SLAVE00_TX_VRING_ADDR 0xc1000000
#define SLAVE00_RX_VRING_ADDR (SLAVE00_TX_VRING_ADDR + SLAVE00_VRING_SIZE/2)
-#define SLAVE00_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
-#define SLAVE00_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
+#define SLAVE00_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
+#define SLAVE00_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
#if defined __cplusplus
}
diff --git a/example/system/amp/openamp/common/openamp_configs.h b/example/system/amp/openamp/common/openamp_configs.h
index 95b28b0141584002a57ccec202765bcd06ad3a6c..8280f539d0db7d0c965e285d427eca2c1127bc98 100644
--- a/example/system/amp/openamp/common/openamp_configs.h
+++ b/example/system/amp/openamp/common/openamp_configs.h
@@ -13,7 +13,7 @@
*
* FilePath: memory_attr.h
* Created Date: 2024-05-06 19:20:51
- * Last Modified: 2024-11-28 10:45:13
+ * Last Modified: 2025-01-10 14:08:18
* Description: This file is for
*
* Modify History:
@@ -38,7 +38,7 @@ extern "C" {
#define RPMSG_SERVICE_00_NAME "rpmsg_service_name_00"
/* 从核发送消息时,需要指定发送的cpu的核号,用来确定软件中断的发送到哪个核上 */
-#if defined(CONFIG_TARGET_E2000D) || defined(CONFIG_TARGET_D2000)
+#if defined(CONFIG_TARGET_E2000D) || defined(CONFIG_TARGET_D2000) || defined(CONFIG_TARGET_PS2316)
#define MASTER_CORE 0 /* 与amp_config.json中的主核配置保持一致 */
#else
#define MASTER_CORE 2 /* 与amp_config.json中的主核配置保持一致 */
@@ -47,7 +47,7 @@ extern "C" {
/* 主核发送消息时,需要指定接收的cpu的核号,用来确定软件中断的发送到哪个核上,以及主核指定启动镜像在那个核心上运行 */
#if defined(CONFIG_TARGET_D2000)
#define SLAVE_CORE_00 4
-#elif defined(CONFIG_TARGET_E2000D)
+#elif defined(CONFIG_TARGET_E2000D) || defined(CONFIG_TARGET_PS2316)
#define SLAVE_CORE_00 1
#else
#define SLAVE_CORE_00 0
diff --git a/example/system/amp/openamp/device_core/configs/ps2316_aarch64_test16_openamp_device_core.config b/example/system/amp/openamp/device_core/configs/ps2316_aarch64_test16_openamp_device_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..2b3aec7a0e73827d5c17bf269a817988cc7a06c9
--- /dev/null
+++ b/example/system/amp/openamp/device_core/configs/ps2316_aarch64_test16_openamp_device_core.config
@@ -0,0 +1,13 @@
+CONFIG_TARGET_NAME="openamp_device_core"
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xe0100000
diff --git a/example/system/amp/openamp/device_core/makefile b/example/system/amp/openamp/device_core/makefile
index 368f9c0130512ca3db0869fe5633505c0c86bd00..656024cfddf76371901602477195cdcad1890518 100644
--- a/example/system/amp/openamp/device_core/makefile
+++ b/example/system/amp/openamp/device_core/makefile
@@ -16,6 +16,7 @@ USR_BOOT_DIR ?= /mnt/d/tftpboot
USER_BOOT_IMAGE ?= openamp_device_core
# 完成编译
-boot:
+image:
+ make clean
make all -s -j
@cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/$(USER_BOOT_IMAGE).elf
diff --git a/example/system/amp/openamp/device_core/sdkconfig b/example/system/amp/openamp/device_core/sdkconfig
index dc3b1af20a5a42e7dd87e363fe23e2f28f3a357f..0b8e285d87ff4770cf57986c4e22ea876adf5bce 100644
--- a/example/system/amp/openamp/device_core/sdkconfig
+++ b/example/system/amp/openamp/device_core/sdkconfig
@@ -53,26 +53,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -81,24 +82,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -130,7 +115,7 @@ CONFIG_INTERRUPT_ROLE_SLAVE=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/openamp/device_core/sdkconfig.h b/example/system/amp/openamp/device_core/sdkconfig.h
index 9db218f4ce671c5b0b423704817af2fb63637c6e..aa81b4749b313e8ff6aede4022371b6540c29696 100644
--- a/example/system/amp/openamp/device_core/sdkconfig.h
+++ b/example/system/amp/openamp/device_core/sdkconfig.h
@@ -45,25 +45,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -71,22 +72,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -115,7 +102,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/openamp/driver_core/amp_config.json b/example/system/amp/openamp/driver_core/amp_config.json
index a88bb6d25f16d6ed8549d3739b24388c1f8689ed..b450d8c1ab425c3e2811cc344f9aefb844f7e8d4 100644
--- a/example/system/amp/openamp/driver_core/amp_config.json
+++ b/example/system/amp/openamp/driver_core/amp_config.json
@@ -67,6 +67,12 @@
"bootstrap":["./",0,1,"d2000_aarch32_test_openamp_driver_core.config"],
"path0":["../device_core",10000,0,"d2000_aarch32_test_openamp_device_core.config"]
}
+ ],
+ "config8":[
+ {
+ "bootstrap":["./",0,1,"ps2316_aarch64_test16_openamp_driver_core.config"],
+ "path0":["../device_core",10000,0,"ps2316_aarch64_test16_openamp_device_core.config"]
+ }
]
}
}
diff --git a/example/system/amp/openamp/driver_core/configs/ps2316_aarch64_test16_openamp_driver_core.config b/example/system/amp/openamp/driver_core/configs/ps2316_aarch64_test16_openamp_driver_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..c62e84405cb4ef36b7d671c4094ac530cf4109b5
--- /dev/null
+++ b/example/system/amp/openamp/driver_core/configs/ps2316_aarch64_test16_openamp_driver_core.config
@@ -0,0 +1,12 @@
+CONFIG_TARGET_NAME="openamp_driver_core"
+CONFIG_USE_MSDF=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/amp/openamp/driver_core/makefile b/example/system/amp/openamp/driver_core/makefile
index 4cc31a49d264eac296bf0f221daf39fd4f495973..35829f2b0ac9031f4f377cbc7603036d989dba9e 100644
--- a/example/system/amp/openamp/driver_core/makefile
+++ b/example/system/amp/openamp/driver_core/makefile
@@ -30,6 +30,6 @@ clean_all:
$(MAKE) -C ../device_core clean
# 完成编译
-boot:
+image:
make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/$(USER_BOOT_IMAGE).elf
\ No newline at end of file
diff --git a/example/system/amp/openamp/driver_core/sdkconfig b/example/system/amp/openamp/driver_core/sdkconfig
index cc0d0b9534cb6776b7d38c8a601b3bc34e807777..becd887cc7aade4ce107a8a4ea7ee515727766ce 100644
--- a/example/system/amp/openamp/driver_core/sdkconfig
+++ b/example/system/amp/openamp/driver_core/sdkconfig
@@ -51,32 +51,33 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF0=y
# CONFIG_MSDF1 is not set
-CONFIG_SOC_CORE_MAX_ID=3
-CONFIG_MSDF_CORE_ID=2
+CONFIG_SOC_CORE_MAX_ID=15
+CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -85,24 +86,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -134,7 +119,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/openamp/driver_core/sdkconfig.h b/example/system/amp/openamp/driver_core/sdkconfig.h
index bf7923e53f94540a197d9ba93f041052dfa8cda5..0179bad3124d1eabd474716a42909df21adb9538 100644
--- a/example/system/amp/openamp/driver_core/sdkconfig.h
+++ b/example/system/amp/openamp/driver_core/sdkconfig.h
@@ -44,30 +44,31 @@
#define CONFIG_USE_MSDF
#define CONFIG_MSDF0
/* CONFIG_MSDF1 is not set */
-#define CONFIG_SOC_CORE_MAX_ID 3
-#define CONFIG_MSDF_CORE_ID 2
+#define CONFIG_SOC_CORE_MAX_ID 15
+#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -75,22 +76,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -119,7 +106,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/openamp_echo_remoteproc_load/common/memory_layout.h b/example/system/amp/openamp_echo_remoteproc_load/common/memory_layout.h
index ed1a0800cfd0a763194931693b8f700ce22e6f73..90c75197aee724203dc4346c90c9ba27270fd5f2 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/common/memory_layout.h
+++ b/example/system/amp/openamp_echo_remoteproc_load/common/memory_layout.h
@@ -13,7 +13,7 @@
*
* FilePath: memory_
* Created Date: 2024-04-29 14:22:47
- * Last Modified: 2024-06-17 19:50:41
+ * Last Modified: 2025-01-13 15:20:13
* Description: This file is for
*
* Modify History:
@@ -44,8 +44,8 @@ extern "C" {
#define SLAVE00_TX_VRING_ADDR 0xc1000000
#define SLAVE00_RX_VRING_ADDR (SLAVE00_TX_VRING_ADDR + SLAVE00_VRING_SIZE/2)
-#define SLAVE00_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
-#define SLAVE00_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
+#define SLAVE00_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
+#define SLAVE00_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
/*slave core1*/
#define SLAVE01_IMAGE_NUM 1 /*镜像位置与amp_config.json中编译排序对应*/
@@ -61,8 +61,8 @@ extern "C" {
#define SLAVE01_TX_VRING_ADDR 0xc9000000
#define SLAVE01_RX_VRING_ADDR (SLAVE01_TX_VRING_ADDR + SLAVE01_VRING_SIZE/2)
-#define SLAVE01_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
-#define SLAVE01_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_RW)
+#define SLAVE01_SOURCE_TABLE_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
+#define SLAVE01_SHARE_BUFFER_ATTRIBUTE (MT_NORMAL|MT_P_RW_U_NA)
#if defined __cplusplus
}
diff --git a/example/system/amp/openamp_echo_remoteproc_load/common/openamp_configs.h b/example/system/amp/openamp_echo_remoteproc_load/common/openamp_configs.h
index 1a60d17111233d1cd89b75b36bd051fca736557b..880c225846e1e39134acdf1718ed827cc2e8bc6b 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/common/openamp_configs.h
+++ b/example/system/amp/openamp_echo_remoteproc_load/common/openamp_configs.h
@@ -13,7 +13,7 @@
*
* FilePath: memory_attr.h
* Created Date: 2024-05-06 19:20:51
- * Last Modified: 2024-11-29 14:26:17
+ * Last Modified: 2025-01-14 09:39:01
* Description: This file is for
*
* Modify History:
@@ -43,7 +43,7 @@ _UNUSED static u32 remoteproc_online_mask = 0 ;
#define RPMSG_SERVICE_01_NAME "rpmsg_service_name_01"
/* 从核发送消息时,需要指定发送的cpu的核号,用来确定软件中断的发送到哪个核上 */
-#if defined(CONFIG_TARGET_E2000D) || defined(CONFIG_TARGET_D2000)
+#if defined(CONFIG_TARGET_E2000D) || defined(CONFIG_TARGET_D2000) || defined(CONFIG_TARGET_PS2316) || defined(CONFIG_TARGET_PD2308)
#define MASTER_CORE 0 /* 与amp_config.json中的主核配置保持一致 */
#else
#define MASTER_CORE 2 /* 与amp_config.json中的主核配置保持一致 */
@@ -52,7 +52,7 @@ _UNUSED static u32 remoteproc_online_mask = 0 ;
#if defined(CONFIG_TARGET_E2000D)
#define SLAVE_CORE_00 1 /* 与amp_config.json中的从核配置保持一致 */
#define SLAVE_CORE_01 1
-#elif defined(CONFIG_TARGET_D2000)
+#elif defined(CONFIG_TARGET_D2000) || defined(CONFIG_TARGET_PS2316) || defined(CONFIG_TARGET_PD2308)
#define SLAVE_CORE_00 1
#define SLAVE_CORE_01 2
#else
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/amp_config.json b/example/system/amp/openamp_echo_remoteproc_load/master/amp_config.json
index ee88f2e4d43270076997616271fa97df33b5dedc..1fbbfee47f9dc470d8404b849b0c6ae879ce1c0c 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/amp_config.json
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/amp_config.json
@@ -81,6 +81,22 @@
"path1":["../slave_01",10000,0,"d2000_aarch32_test_openamp_device_core.config"],
"bootstrap":["./",0,1,"d2000_aarch32_test_openamp_driver_core.config"]
}
+ ],
+ "config8":
+ [
+ {
+ "path0":["../slave_00",10000,0,"pd2308_aarch64_demo_openamp_device_core.config"],
+ "path1":["../slave_01",10000,0,"pd2308_aarch64_demo_openamp_device_core.config"],
+ "bootstrap":["./",0,1,"pd2308_aarch64_demo_openamp_driver_core.config"]
+ }
+ ],
+ "config9":
+ [
+ {
+ "path0":["../slave_00",10000,0,"ps2316_aarch64_test16_openamp_device_core.config"],
+ "path1":["../slave_01",10000,0,"ps2316_aarch64_test16_openamp_device_core.config"],
+ "bootstrap":["./",0,1,"ps2316_aarch64_test16_openamp_driver_core.config"]
+ }
]
}
}
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/configs/pd2308_aarch64_demo_openamp_driver_core.config b/example/system/amp/openamp_echo_remoteproc_load/master/configs/pd2308_aarch64_demo_openamp_driver_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..52325c2d36856174969b9f7395d83e4605c215a7
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/configs/pd2308_aarch64_demo_openamp_driver_core.config
@@ -0,0 +1,17 @@
+CONFIG_TARGET_NAME="openamp_driver_core"
+CONFIG_USE_MSDF=y
+CONFIG_TARGET_PD2308=y
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_MAX_LENGTH=0x2000000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/configs/ps2316_aarch64_test16_openamp_driver_core.config b/example/system/amp/openamp_echo_remoteproc_load/master/configs/ps2316_aarch64_test16_openamp_driver_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..4ed876f15884b6117e1bdb5aa15ea582e6b8cc1c
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/configs/ps2316_aarch64_test16_openamp_driver_core.config
@@ -0,0 +1,17 @@
+CONFIG_TARGET_NAME="openamp_driver_core"
+CONFIG_USE_MSDF=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_MAX_LENGTH=0x2000000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/main.c b/example/system/amp/openamp_echo_remoteproc_load/master/main.c
index 7b5fdeebe9499018a099b82018e941a9be917d60..2336d942005a114290db20fe0a2e1727ed06886d 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/main.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/main.c
@@ -13,7 +13,7 @@
*
* FilePath: main.c
* Created Date: 2024-04-29 10:08:18
- * Last Modified: 2024-07-01 17:27:26
+ * Last Modified: 2025-01-14 14:43:45
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig b/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig
index 9e88849919c9064aa4d6deb4abca7ba65217cef8..a86d62526b18d614ef8c202a81a9c06ea1a34192 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig
@@ -51,32 +51,33 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
CONFIG_MSDF0=y
# CONFIG_MSDF1 is not set
-CONFIG_SOC_CORE_MAX_ID=3
-CONFIG_MSDF_CORE_ID=2
+CONFIG_SOC_CORE_MAX_ID=15
+CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -85,24 +86,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -134,7 +119,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -236,7 +221,7 @@ CONFIG_DEBUG_LINK_MAP=y
# CONFIG_STRICT_PROTOTYPES is not set
CONFIG_DEBUG_SYMBOLS=y
CONFIG_FRAME_POINTER=y
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig.h b/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig.h
index 0e4be5ba1755cf8920aad27f9378bbca0f634b39..c1906d9f64ff807e8e8116fafaf31a9b6c0bfdf3 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig.h
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/sdkconfig.h
@@ -44,30 +44,31 @@
#define CONFIG_USE_MSDF
#define CONFIG_MSDF0
/* CONFIG_MSDF1 is not set */
-#define CONFIG_SOC_CORE_MAX_ID 3
-#define CONFIG_MSDF_CORE_ID 2
+#define CONFIG_SOC_CORE_MAX_ID 15
+#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -75,22 +76,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -119,7 +106,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -211,7 +198,7 @@
/* CONFIG_STRICT_PROTOTYPES is not set */
#define CONFIG_DEBUG_SYMBOLS
#define CONFIG_FRAME_POINTER
-/* CONFIG_OUTPUT_ASM_DIS is not set */
+#define CONFIG_OUTPUT_ASM_DIS
/* CONFIG_ENABLE_WSHADOW is not set */
/* CONFIG_ENABLE_WUNDEF is not set */
#define CONFIG_DOWNGRADE_DIAG_WARNING
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_00_example.c b/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_00_example.c
index 1c614f45e58bc407e2cd445b3db569d2be7c44e5..81c84271d2f1e07a6dcddea38a76b35a1dd3ab1d 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_00_example.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_00_example.c
@@ -13,7 +13,7 @@
*
* FilePath: remoteproc_00_example.c
* Created Date: 2024-04-29 10:08:42
- * Last Modified: 2024-06-20 17:13:07
+ * Last Modified: 2025-01-14 15:12:11
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_01_example.c b/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_01_example.c
index 5dc8c0b1b2f53a9f37086056dfe89d762773dd7b..7367b08af9d5af6260044f924995bef4937b6e76 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_01_example.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/master/src/remoteproc_01_example.c
@@ -13,7 +13,7 @@
*
* FilePath: remoteproc_01_example.c
* Created Date: 2024-04-29 10:08:42
- * Last Modified: 2024-06-20 14:48:57
+ * Last Modified: 2025-01-14 15:12:06
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/pd2308_aarch64_demo_openamp_device_core.config b/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/pd2308_aarch64_demo_openamp_device_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..41c3e263e4514f1f7e4bc800160fd1dbceb58b76
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/pd2308_aarch64_demo_openamp_device_core.config
@@ -0,0 +1,16 @@
+CONFIG_TARGET_NAME="openamp_device_core"
+CONFIG_TARGET_PD2308=y
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x82100000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/ps2316_aarch64_test16_openamp_device_core.config b/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/ps2316_aarch64_test16_openamp_device_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..4cd442c764c358682cafd60dada2c0a8727b26ab
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/configs/ps2316_aarch64_test16_openamp_device_core.config
@@ -0,0 +1,16 @@
+CONFIG_TARGET_NAME="openamp_device_core"
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x82100000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/main.c b/example/system/amp/openamp_echo_remoteproc_load/slave_00/main.c
index 0483d64176d4321b54bc99ecdcca7463dee32de8..da5420bce2df3f4a58354760b08e5baa95c8fb85 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_00/main.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/main.c
@@ -13,7 +13,7 @@
*
* FilePath: main.c
* Created Date: 2024-04-29 16:41:26
- * Last Modified: 2024-06-20 14:42:47
+ * Last Modified: 2025-01-10 16:24:13
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig b/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig
index 1d4aa938ba30c01cc57121edd161a88f396f1a03..0db29fc2ae29318c8597a743e08fb3b3471c72d1 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig
@@ -53,26 +53,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -81,24 +82,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -120,8 +105,8 @@ CONFIG_LOG_INFO=y
CONFIG_LOG_DISPALY_CORE_NUM=y
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
-CONFIG_INTERRUPT_ROLE_MASTER=y
-# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# CONFIG_INTERRUPT_ROLE_MASTER is not set
+CONFIG_INTERRUPT_ROLE_SLAVE=y
# CONFIG_INTERRUPT_ROLE_NONE is not set
# end of Sdk common configuration
@@ -130,7 +115,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig.h b/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig.h
index d515c92576e2193ca967a21f4edea41ccca74dc7..8e6563784482a81fbe2cf1a3ff5c433026883ae6 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig.h
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/sdkconfig.h
@@ -45,25 +45,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -71,22 +72,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -106,8 +93,8 @@
#define CONFIG_LOG_DISPALY_CORE_NUM
/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
-#define CONFIG_INTERRUPT_ROLE_MASTER
-/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* CONFIG_INTERRUPT_ROLE_MASTER is not set */
+#define CONFIG_INTERRUPT_ROLE_SLAVE
/* CONFIG_INTERRUPT_ROLE_NONE is not set */
/* end of Sdk common configuration */
@@ -115,7 +102,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_00/src/slaver_00_rpmsg-ping.c b/example/system/amp/openamp_echo_remoteproc_load/slave_00/src/slaver_00_rpmsg-ping.c
index 5d7fa46144272d98d45dd5991ceca9a49b6b751e..5b0587c757f569ad7afcb8b3cd5eaf61ea09e036 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_00/src/slaver_00_rpmsg-ping.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_00/src/slaver_00_rpmsg-ping.c
@@ -13,7 +13,7 @@
*
* FilePath: slaver_00_rpmsg-ping.c
* Created Date: 2024-05-09 19:50:06
- * Last Modified: 2024-06-19 10:56:36
+ * Last Modified: 2025-01-14 14:04:14
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/pd2308_aarch64_demo_openamp_device_core.config b/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/pd2308_aarch64_demo_openamp_device_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..54949e74251ead0f1d90b25cea6a5a6d2afecd10
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/pd2308_aarch64_demo_openamp_device_core.config
@@ -0,0 +1,16 @@
+CONFIG_TARGET_NAME="openamp_device_core"
+CONFIG_TARGET_PD2308=y
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x84100000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/ps2316_aarch64_test16_openamp_device_core.config b/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/ps2316_aarch64_test16_openamp_device_core.config
new file mode 100644
index 0000000000000000000000000000000000000000..e59baaf90879be41b6d988f885c8bc0c52233120
--- /dev/null
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_01/configs/ps2316_aarch64_test16_openamp_device_core.config
@@ -0,0 +1,16 @@
+CONFIG_TARGET_NAME="openamp_device_core"
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_SERIAL=y
+CONFIG_USE_AMP=y
+CONFIG_USE_OPENAMP=y
+CONFIG_USE_OPENAMP_IPI=y
+# CONFIG_OUTPUT_BINARY is not set
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x84100000
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig b/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig
index a2e6a1307ee1a5f5f9f28fe4979baeae00a08fa9..bcfde83736229af1d0d3a7771145c66822dfcdc0 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig
@@ -53,26 +53,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -81,24 +82,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -120,8 +105,8 @@ CONFIG_LOG_INFO=y
CONFIG_LOG_DISPALY_CORE_NUM=y
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
-CONFIG_INTERRUPT_ROLE_MASTER=y
-# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# CONFIG_INTERRUPT_ROLE_MASTER is not set
+CONFIG_INTERRUPT_ROLE_SLAVE=y
# CONFIG_INTERRUPT_ROLE_NONE is not set
# end of Sdk common configuration
@@ -130,7 +115,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig.h b/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig.h
index 7f279889aa4d97a314c7b0b66a4022d28692d9b2..711bfb5eff27fd4e929b53f55c708777060255cd 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig.h
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_01/sdkconfig.h
@@ -45,25 +45,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -71,22 +72,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -106,8 +93,8 @@
#define CONFIG_LOG_DISPALY_CORE_NUM
/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
-#define CONFIG_INTERRUPT_ROLE_MASTER
-/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* CONFIG_INTERRUPT_ROLE_MASTER is not set */
+#define CONFIG_INTERRUPT_ROLE_SLAVE
/* CONFIG_INTERRUPT_ROLE_NONE is not set */
/* end of Sdk common configuration */
@@ -115,7 +102,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/amp/openamp_echo_remoteproc_load/slave_01/src/slaver_01_rpmsg-ping.c b/example/system/amp/openamp_echo_remoteproc_load/slave_01/src/slaver_01_rpmsg-ping.c
index b94cb7814d41902075e9684b32c0ae135d8d2574..49d4af7d0d4129f2effab0c50cd98a9dd0dac980 100644
--- a/example/system/amp/openamp_echo_remoteproc_load/slave_01/src/slaver_01_rpmsg-ping.c
+++ b/example/system/amp/openamp_echo_remoteproc_load/slave_01/src/slaver_01_rpmsg-ping.c
@@ -13,7 +13,7 @@
*
* FilePath: slaver_01_rpmsg-ping.c
* Created Date: 2024-05-09 19:50:06
- * Last Modified: 2024-06-13 15:30:58
+ * Last Modified: 2025-01-14 14:03:49
* Description: This file is for
*
* Modify History:
diff --git a/example/system/amp/openamp_for_linux/sdkconfig b/example/system/amp/openamp_for_linux/sdkconfig
index 4f956a6e94ce36946e35ffa2024b14a355186824..a127f5b862cd3d358c70122345eabe6b6552962b 100644
--- a/example/system/amp/openamp_for_linux/sdkconfig
+++ b/example/system/amp/openamp_for_linux/sdkconfig
@@ -53,6 +53,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -65,6 +66,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/system/amp/openamp_for_linux/sdkconfig.h b/example/system/amp/openamp_for_linux/sdkconfig.h
index fa90f363479dfa74b31d2a6ed4739a18638375a3..fd821649856857f26f6f08e6ab0a00a7d05389bb 100644
--- a/example/system/amp/openamp_for_linux/sdkconfig.h
+++ b/example/system/amp/openamp_for_linux/sdkconfig.h
@@ -45,6 +45,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -56,6 +57,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/system/arch/armv8/mmu/master/configs/ps2316_aarch64_test16_mmu_test.config b/example/system/arch/armv8/mmu/master/configs/ps2316_aarch64_test16_mmu_test.config
new file mode 100644
index 0000000000000000000000000000000000000000..f5ed248b00dcc18273fb2cfe4bbb7d47ffb644f1
--- /dev/null
+++ b/example/system/arch/armv8/mmu/master/configs/ps2316_aarch64_test16_mmu_test.config
@@ -0,0 +1,12 @@
+CONFIG_MAX_XLAT_TABLES=2048
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="mmu_test"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_MAX_LENGTH=0x10000000
diff --git a/example/system/arch/armv8/mmu/master/sdkconfig b/example/system/arch/armv8/mmu/master/sdkconfig
index 868e27bfdf5c86137ec1fb91ce533698f0b47b18..f753e9b22d5f15604f7b9da053486ef11a9eb410 100644
--- a/example/system/arch/armv8/mmu/master/sdkconfig
+++ b/example/system/arch/armv8/mmu/master/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=2048
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/arch/armv8/mmu/master/sdkconfig.h b/example/system/arch/armv8/mmu/master/sdkconfig.h
index 6fd1bc4029cb92f9b81c44414d0e1ea96267282b..809cb73828ce8a293993a107df8c7d16134badd3 100644
--- a/example/system/arch/armv8/mmu/master/sdkconfig.h
+++ b/example/system/arch/armv8/mmu/master/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 2048
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/arch/armv8/pmu/configs/pd2308_aarch64_demo_pmu.config b/example/system/arch/armv8/pmu/configs/pd2308_aarch64_demo_pmu.config
new file mode 100644
index 0000000000000000000000000000000000000000..63ea066b5c1c0e111c0debb0a1ddd54741c89322
--- /dev/null
+++ b/example/system/arch/armv8/pmu/configs/pd2308_aarch64_demo_pmu.config
@@ -0,0 +1,10 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_TARGET_NAME="pmu"
+CONFIG_LOG_DEBUG=y
+CONFIG_ENABLE_IOPAD=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_HEAP_SIZE=2
diff --git a/example/system/arch/armv8/pmu/configs/ps2316_aarch64_test16_pmu.config b/example/system/arch/armv8/pmu/configs/ps2316_aarch64_test16_pmu.config
new file mode 100644
index 0000000000000000000000000000000000000000..c0b28a2b7f719d06839f977c8ccbc3c3853a82ed
--- /dev/null
+++ b/example/system/arch/armv8/pmu/configs/ps2316_aarch64_test16_pmu.config
@@ -0,0 +1,9 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="pmu"
+CONFIG_LOG_INFO=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_HEAP_SIZE=2
diff --git a/example/system/arch/armv8/pmu/sdkconfig b/example/system/arch/armv8/pmu/sdkconfig
index e1ba66f2504c6aa452fd2a769b52941438416e3b..37d7a5e730d6340c6a09d8fac21760329f73a703 100644
--- a/example/system/arch/armv8/pmu/sdkconfig
+++ b/example/system/arch/armv8/pmu/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -100,8 +85,8 @@ CONFIG_TARGET_NAME="pmu"
#
CONFIG_ELOG_LINE_BUF_SIZE=0x100
# CONFIG_LOG_VERBOS is not set
-CONFIG_LOG_DEBUG=y
-# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -146,8 +131,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_ADC is not set
# CONFIG_USE_PWM is not set
# CONFIG_USE_IPC is not set
-CONFIG_USE_MEDIA=y
-# CONFIG_USE_FMEDIA is not set
+# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
# CONFIG_USE_I2S is not set
# CONFIG_USE_I3C is not set
@@ -192,9 +176,9 @@ CONFIG_OUTPUT_BINARY=y
#
# Optimization options
#
-CONFIG_DEBUG_NOOPT=y
+# CONFIG_DEBUG_NOOPT is not set
# CONFIG_DEBUG_CUSTOMOPT is not set
-# CONFIG_DEBUG_FULLOPT is not set
+CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
CONFIG_DEBUG_LINK_MAP=y
# CONFIG_CCACHE is not set
@@ -232,8 +216,8 @@ CONFIG_USE_COMPILE_CHAIN=y
CONFIG_DEFAULT_LINKER_SCRIPT=y
# CONFIG_USER_DEFINED_LD is not set
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
-CONFIG_IMAGE_MAX_LENGTH=0x10000000
-CONFIG_HEAP_SIZE=1
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=2
CONFIG_STACK_SIZE=0x400
# end of Linker Options
# end of Build setup
diff --git a/example/system/arch/armv8/pmu/sdkconfig.h b/example/system/arch/armv8/pmu/sdkconfig.h
index e61dee707e4be6e9e937a188a5a29c71cd48f859..d3f171b1e8b514e55d691781b195807bcf147046 100644
--- a/example/system/arch/armv8/pmu/sdkconfig.h
+++ b/example/system/arch/armv8/pmu/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -91,8 +78,8 @@
#define CONFIG_ELOG_LINE_BUF_SIZE 0x100
/* CONFIG_LOG_VERBOS is not set */
-#define CONFIG_LOG_DEBUG
-/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_DEBUG is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -134,8 +121,7 @@
/* CONFIG_USE_ADC is not set */
/* CONFIG_USE_PWM is not set */
/* CONFIG_USE_IPC is not set */
-#define CONFIG_USE_MEDIA
-/* CONFIG_USE_FMEDIA is not set */
+/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
/* CONFIG_USE_I2S is not set */
/* CONFIG_USE_I3C is not set */
@@ -175,9 +161,9 @@
/* Optimization options */
-#define CONFIG_DEBUG_NOOPT
+/* CONFIG_DEBUG_NOOPT is not set */
/* CONFIG_DEBUG_CUSTOMOPT is not set */
-/* CONFIG_DEBUG_FULLOPT is not set */
+#define CONFIG_DEBUG_FULLOPT
#define CONFIG_DEBUG_OPT_UNUSED_SECTIONS
#define CONFIG_DEBUG_LINK_MAP
/* CONFIG_CCACHE is not set */
@@ -211,8 +197,8 @@
#define CONFIG_DEFAULT_LINKER_SCRIPT
/* CONFIG_USER_DEFINED_LD is not set */
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
-#define CONFIG_IMAGE_MAX_LENGTH 0x10000000
-#define CONFIG_HEAP_SIZE 1
+#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
+#define CONFIG_HEAP_SIZE 2
#define CONFIG_STACK_SIZE 0x400
/* end of Linker Options */
/* end of Build setup */
diff --git a/example/system/arch/armv8/psci/makefile b/example/system/arch/armv8/psci/makefile
deleted file mode 100644
index 2bd076610030322df41b6c073a72729658748eae..0000000000000000000000000000000000000000
--- a/example/system/arch/armv8/psci/makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-PROJECT_DIR = $(CURDIR)
-
-SDK_DIR ?= $(CURDIR)/../../../../..
-
-
-AMP_PATH += $(PROJECT_DIR)/psci_test
-AMP_PATH += $(PROJECT_DIR)/psci_test/psci_slave
-
-include $(SDK_DIR)/tools/build/makeall.mk
-
-USR_BOOT_DIR ?= /mnt/d/tftpboot
-
-backupconfig:
- $(MAKE) -C ./psci_test backup_kconfig
- $(MAKE) -C ./psci_test/psci_slave backup_kconfig
-
-menuconfig_test:
- $(MAKE) -C ./psci_test menuconfig
-
-menuconfig_slave:
- $(MAKE) -C ./psci_test/psci_slave menuconfig
diff --git a/example/system/arch/armv8/psci/psci_test/amp_config.json b/example/system/arch/armv8/psci/psci_test/amp_config.json
index 7e8ed71a66207ef704749ecf9fd68541d3b99b8f..fe78ac1c3511868cc8a297464b1efefb9c3b1208 100644
--- a/example/system/arch/armv8/psci/psci_test/amp_config.json
+++ b/example/system/arch/armv8/psci/psci_test/amp_config.json
@@ -91,6 +91,14 @@
{
"path1":["./psci_slave",1,0,"pd2308_aarch64_demo_psci_slave.config"]
}
+ ],
+ "config9":[
+ {
+ "bootstrap":["./",0,0,"ps2316_aarch64_test16_psci.config"]
+ },
+ {
+ "path1":["./psci_slave",1,0,"ps2316_aarch64_test16_psci_slave.config"]
+ }
]
}
}
diff --git a/example/system/arch/armv8/psci/psci_test/configs/ps2316_aarch64_test16_psci.config b/example/system/arch/armv8/psci/psci_test/configs/ps2316_aarch64_test16_psci.config
new file mode 100644
index 0000000000000000000000000000000000000000..eae8d1ac68b7cd62129ec99f3311b8c289ce8cbd
--- /dev/null
+++ b/example/system/arch/armv8/psci/psci_test/configs/ps2316_aarch64_test16_psci.config
@@ -0,0 +1,12 @@
+CONFIG_USE_MSDF=y
+CONFIG_MSDF1=y
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="psci"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/arch/armv8/psci/psci_test/makefile b/example/system/arch/armv8/psci/psci_test/makefile
index 59357ef1c9070d84d458e1e023b9c2a79e5b449c..b656aad4cb738ff0bb5edec95265fc4f7e8520d3 100644
--- a/example/system/arch/armv8/psci/psci_test/makefile
+++ b/example/system/arch/armv8/psci/psci_test/makefile
@@ -17,7 +17,7 @@ USER_INCLUDE := $(PROJECT_DIR) \
include $(SDK_DIR)/tools/build/makeall.mk
USR_BOOT_DIR ?= /mnt/d/tftpboot
-boot:
+image:
make clean
make all -j
cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal.elf
diff --git a/example/system/arch/armv8/psci/psci_test/psci_slave/configs/ps2316_aarch64_test16_psci_slave.config b/example/system/arch/armv8/psci/psci_test/psci_slave/configs/ps2316_aarch64_test16_psci_slave.config
new file mode 100644
index 0000000000000000000000000000000000000000..929fa1e990b1fa0821d00f2f1cde5ade8ecd8ceb
--- /dev/null
+++ b/example/system/arch/armv8/psci/psci_test/psci_slave/configs/ps2316_aarch64_test16_psci_slave.config
@@ -0,0 +1,14 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="psci_slave"
+CONFIG_LOG_INFO=y
+CONFIG_LOG_DISPALY_CORE_NUM=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_AMP=y
+CONFIG_DEBUG_CUSTOMOPT=y
+CONFIG_DEBUG_OPTLEVEL="-O0"
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0x81100000
diff --git a/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig b/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig
index 5ae70a550c47e11fd8f12b8451d40ddd8f162a94..276c840978b41b480f30469b368ba63d4c7286fd 100644
--- a/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig
+++ b/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig.h b/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig.h
index 6705c2228ed9bbacb2a78810db6945c745f6a647..4c0ae9def60452a4d350ac64b7d98532b7372aa7 100644
--- a/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig.h
+++ b/example/system/arch/armv8/psci/psci_test/psci_slave/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/arch/armv8/psci/psci_test/sdkconfig b/example/system/arch/armv8/psci/psci_test/sdkconfig
index fca498205c7bbc7b169b13148f24c0a42d94309c..2022fa9631b112fd925853abc5a0218edf2abaca 100644
--- a/example/system/arch/armv8/psci/psci_test/sdkconfig
+++ b/example/system/arch/armv8/psci/psci_test/sdkconfig
@@ -39,32 +39,33 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_USE_MSDF=y
# CONFIG_MSDF0 is not set
CONFIG_MSDF1=y
-CONFIG_SOC_CORE_MAX_ID=3
+CONFIG_SOC_CORE_MAX_ID=15
CONFIG_MSDF_CORE_ID=0
# end of multi-core system deployment framework
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -73,24 +74,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -123,7 +108,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/arch/armv8/psci/psci_test/sdkconfig.h b/example/system/arch/armv8/psci/psci_test/sdkconfig.h
index 7ee4b7b7d41c00f423ac801e752840f9a9e9a84e..19140032d36f37d1002c9fc2cddbdcedd0198706 100644
--- a/example/system/arch/armv8/psci/psci_test/sdkconfig.h
+++ b/example/system/arch/armv8/psci/psci_test/sdkconfig.h
@@ -37,30 +37,31 @@
#define CONFIG_USE_MSDF
/* CONFIG_MSDF0 is not set */
#define CONFIG_MSDF1
-#define CONFIG_SOC_CORE_MAX_ID 3
+#define CONFIG_SOC_CORE_MAX_ID 15
#define CONFIG_MSDF_CORE_ID 0
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -68,22 +69,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -113,7 +100,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/atomic/configs/ps2316_aarch64_test16_atomic.config b/example/system/atomic/configs/ps2316_aarch64_test16_atomic.config
new file mode 100644
index 0000000000000000000000000000000000000000..051415d15ccfb1ecc07f19ee990e7dbdbecd2dd2
--- /dev/null
+++ b/example/system/atomic/configs/ps2316_aarch64_test16_atomic.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="atomic"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/atomic/sdkconfig b/example/system/atomic/sdkconfig
index be4aecfab9f4c12d8ddc0fe602d2d4e7d717c723..5a7a2a0e14b084118c0955d892872a245dd571d2 100644
--- a/example/system/atomic/sdkconfig
+++ b/example/system/atomic/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/atomic/sdkconfig.h b/example/system/atomic/sdkconfig.h
index c881da23c986f23607cd6e71da26628e0d74d8fe..d733907d16d0e97ac386edb81057f5160f512fe3 100644
--- a/example/system/atomic/sdkconfig.h
+++ b/example/system/atomic/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/cmsis/dsp/configs/ps2316_aarch64_test16_cmsis_dsp.config b/example/system/cmsis/dsp/configs/ps2316_aarch64_test16_cmsis_dsp.config
new file mode 100644
index 0000000000000000000000000000000000000000..1ca037c6af44a5745282d8b33a3e94d007240cf1
--- /dev/null
+++ b/example/system/cmsis/dsp/configs/ps2316_aarch64_test16_cmsis_dsp.config
@@ -0,0 +1,26 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="cmsis_dsp"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_CMSIS=y
+CONFIG_USE_CMSIS_DSP=y
+CONFIG_CMSIS_DSP_MATH_NEON=y
+CONFIG_CMSIS_DSP_BASIC_MATH_FUNCTIONS=y
+CONFIG_CMSIS_DSP_BAYES_FUNCTIONS=y
+CONFIG_CMSIS_DSP_COMMON_TABLES=y
+CONFIG_CMSIS_DSP_COMPLEX_MATH_FUNCTIONS=y
+CONFIG_CMSIS_DSP_CONTROLLER_FUNCTIONS=y
+CONFIG_CMSIS_DSP_DISTANCE_FUNCTIONS=y
+CONFIG_CMSIS_DSP_FAST_MATH_FUNCTIONS=y
+CONFIG_CMSIS_DSP_FILTERING_FUNCTIONS=y
+CONFIG_CMSIS_DSP_INTERPOLATION_FUNCTIONS=y
+CONFIG_CMSIS_DSP_MATRIX_FUNCTIONS=y
+CONFIG_CMSIS_DSP_QUATERNION_MATH_FUNCTIONS=y
+CONFIG_CMSIS_DSP_STATISTICS_FUNCTIONS=y
+CONFIG_CMSIS_DSP_SUPPORT_FUNCTIONS=y
+CONFIG_CMSIS_DSP_SVM_FUNCTIONS=y
+CONFIG_CMSIS_DSP_TRANSFORM_FUNCTIONS=y
+CONFIG_CMSIS_DSP_WINDOW_FUNCTIONS=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/cmsis/dsp/sdkconfig b/example/system/cmsis/dsp/sdkconfig
index a0993dbbcc00142a15d4c5cfee3c439e46b8245d..475424b2730124c3b5ee54af33860657cc6b3e0d 100644
--- a/example/system/cmsis/dsp/sdkconfig
+++ b/example/system/cmsis/dsp/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/cmsis/dsp/sdkconfig.h b/example/system/cmsis/dsp/sdkconfig.h
index 717ed7231f741d83477ea7662c7d025b7e17602d..4db58012356a24626974a93b735679126c7ab2bf 100644
--- a/example/system/cmsis/dsp/sdkconfig.h
+++ b/example/system/cmsis/dsp/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/cxx/cryptopp/configs/pd2308_aarch64_test16_cxx.config b/example/system/cxx/cryptopp/configs/pd2308_aarch64_test16_cxx.config
new file mode 100644
index 0000000000000000000000000000000000000000..645aed7ef6fcefaf2232c49e12c4804b1397af99
--- /dev/null
+++ b/example/system/cxx/cryptopp/configs/pd2308_aarch64_test16_cxx.config
@@ -0,0 +1,9 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="cxx"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_CRYPTO_PLUS_PLUS=y
+# CONFIG_CHECK_DEPS is not set
+CONFIG_ENABLE_CXX=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/cxx/cryptopp/configs/ps2316_aarch64_test16_cxx.config b/example/system/cxx/cryptopp/configs/ps2316_aarch64_test16_cxx.config
new file mode 100644
index 0000000000000000000000000000000000000000..192af65d497511dd8c49e7cce15608f337abb4b1
--- /dev/null
+++ b/example/system/cxx/cryptopp/configs/ps2316_aarch64_test16_cxx.config
@@ -0,0 +1,8 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="cxx"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_USE_CRYPTO_PLUS_PLUS=y
+# CONFIG_CHECK_DEPS is not set
+CONFIG_ENABLE_CXX=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/cxx/cryptopp/sdkconfig b/example/system/cxx/cryptopp/sdkconfig
index a5b874ac463a90ff55119eb11416f5000cee093b..1267d6c35ed29e4530ac06ba4693034bc8b906ab 100644
--- a/example/system/cxx/cryptopp/sdkconfig
+++ b/example/system/cxx/cryptopp/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -156,7 +141,17 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-# CONFIG_USE_LETTER_SHELL is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter shell configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter shell configuration
+
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
diff --git a/example/system/cxx/cryptopp/sdkconfig.h b/example/system/cxx/cryptopp/sdkconfig.h
index d31e28c47383ade68d3b20b72d748357d2a03826..891b31ce04d3aba739e42588fd85c8bdc822b7c9 100644
--- a/example/system/cxx/cryptopp/sdkconfig.h
+++ b/example/system/cxx/cryptopp/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -143,7 +130,15 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-/* CONFIG_USE_LETTER_SHELL is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter shell configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter shell configuration */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
diff --git a/example/system/cxx/get-start/configs/pd2308_aarch64_test16_cxx_start.config b/example/system/cxx/get-start/configs/pd2308_aarch64_test16_cxx_start.config
new file mode 100644
index 0000000000000000000000000000000000000000..a6c5b2278b632c27a6dbfa93de8f75adc9ca75d3
--- /dev/null
+++ b/example/system/cxx/get-start/configs/pd2308_aarch64_test16_cxx_start.config
@@ -0,0 +1,8 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="cxx_start"
+CONFIG_USE_LETTER_SHELL=y
+# CONFIG_CHECK_DEPS is not set
+CONFIG_ENABLE_CXX=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/cxx/get-start/configs/ps2316_aarch64_test16_cxx_start.config b/example/system/cxx/get-start/configs/ps2316_aarch64_test16_cxx_start.config
new file mode 100644
index 0000000000000000000000000000000000000000..037a3917db3fa76155364c85bc6b0e2ad8c8ca14
--- /dev/null
+++ b/example/system/cxx/get-start/configs/ps2316_aarch64_test16_cxx_start.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="cxx_start"
+CONFIG_USE_LETTER_SHELL=y
+# CONFIG_CHECK_DEPS is not set
+CONFIG_ENABLE_CXX=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/cxx/get-start/sdkconfig b/example/system/cxx/get-start/sdkconfig
index cf9336cd999ce000e349346337f5318b9ad1a48d..43bf877dde84a560f79ae2736c6169c3d47860dd 100644
--- a/example/system/cxx/get-start/sdkconfig
+++ b/example/system/cxx/get-start/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -156,7 +141,17 @@ CONFIG_ENABLE_Pl011_UART=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-# CONFIG_USE_LETTER_SHELL is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter shell configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter shell configuration
+
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
diff --git a/example/system/cxx/get-start/sdkconfig.h b/example/system/cxx/get-start/sdkconfig.h
index 57de0a25c68dd67637dcf873bbf7bde65f55e422..2e84590219d6d2b1d925e0b939a6bc2816c43719 100644
--- a/example/system/cxx/get-start/sdkconfig.h
+++ b/example/system/cxx/get-start/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -143,7 +130,15 @@
/* Third-party configuration */
/* CONFIG_USE_LWIP is not set */
-/* CONFIG_USE_LETTER_SHELL is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter shell configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter shell configuration */
/* CONFIG_USE_AMP is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
diff --git a/example/system/delay_test/sdkconfig b/example/system/delay_test/sdkconfig
index c41a6a04e9ffdaeaf60f620c55e7b4e443c6d214..e9b712c6d3f32acd4919f79bc6f540246a806d7a 100644
--- a/example/system/delay_test/sdkconfig
+++ b/example/system/delay_test/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
diff --git a/example/system/delay_test/sdkconfig.h b/example/system/delay_test/sdkconfig.h
index 601c37c9662399856278269f225778414777ca29..c1e7871af5ccbe29667d79ac4c4b7c6c25b3c3f8 100644
--- a/example/system/delay_test/sdkconfig.h
+++ b/example/system/delay_test/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
diff --git a/example/system/jtag_debugging/sdkconfig b/example/system/jtag_debugging/sdkconfig
index 7c3e371d02916079c4a23f65d9e54e155b054b5f..528a9e29641c51619bd246a4520cf80143a27642 100644
--- a/example/system/jtag_debugging/sdkconfig
+++ b/example/system/jtag_debugging/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -53,6 +54,7 @@ CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
CONFIG_SOC_NAME="e2000"
CONFIG_TARGET_TYPE_NAME="q"
diff --git a/example/system/jtag_debugging/sdkconfig.h b/example/system/jtag_debugging/sdkconfig.h
index 0fa41c00625c75d229d95ee4e93d71f675a02fd0..8eb4ae1ead424a39980359ca01dc799af17ae128 100644
--- a/example/system/jtag_debugging/sdkconfig.h
+++ b/example/system/jtag_debugging/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -49,6 +50,7 @@
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
#define CONFIG_SOC_NAME "e2000"
#define CONFIG_TARGET_TYPE_NAME "q"
diff --git a/example/system/letter_shell_test/configs/ps2316_aarch64_test16_shell.config b/example/system/letter_shell_test/configs/ps2316_aarch64_test16_shell.config
new file mode 100644
index 0000000000000000000000000000000000000000..d1352ff0331800ea6f35ad32ce2d9f9285797cb2
--- /dev/null
+++ b/example/system/letter_shell_test/configs/ps2316_aarch64_test16_shell.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="shell"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/letter_shell_test/sdkconfig b/example/system/letter_shell_test/sdkconfig
index bca3af993796df6efa986f638652cb3fddd85f48..04328889816badbc44531590766af2ccf3a99835 100644
--- a/example/system/letter_shell_test/sdkconfig
+++ b/example/system/letter_shell_test/sdkconfig
@@ -41,6 +41,7 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
@@ -52,10 +53,11 @@ CONFIG_MAX_XLAT_TABLES=256
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="pd2308"
-CONFIG_SOC_CORE_NUM=8
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -68,23 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="demo"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_PD2308_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -117,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/letter_shell_test/sdkconfig.h b/example/system/letter_shell_test/sdkconfig.h
index 7df48113a12086687e2930b9e8cefaf95ecbc275..d46869c45143aefd197906f84bf2329a5071fc4a 100644
--- a/example/system/letter_shell_test/sdkconfig.h
+++ b/example/system/letter_shell_test/sdkconfig.h
@@ -38,6 +38,7 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
@@ -48,10 +49,11 @@
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "pd2308"
-#define CONFIG_SOC_CORE_NUM 8
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -63,21 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "demo"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_PD2308_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -107,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/nested_interrupt/configs/ps2316_aarch64_test16_nest.config b/example/system/nested_interrupt/configs/ps2316_aarch64_test16_nest.config
new file mode 100644
index 0000000000000000000000000000000000000000..7d703ec760e4a54553f431fc47569c59399e165a
--- /dev/null
+++ b/example/system/nested_interrupt/configs/ps2316_aarch64_test16_nest.config
@@ -0,0 +1,8 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="nest"
+CONFIG_LOG_DEBUG=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/nested_interrupt/sdkconfig b/example/system/nested_interrupt/sdkconfig
index f4b5ba63c5f2b144e5faf2d569d170176711a6a5..f8a64b4dfa3bfb679d8c16f5d23d350479b19a7b 100644
--- a/example/system/nested_interrupt/sdkconfig
+++ b/example/system/nested_interrupt/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/nested_interrupt/sdkconfig.h b/example/system/nested_interrupt/sdkconfig.h
index 4a68eb297c884b873e3edca59cf870f737720d94..1998ae276b8359adfb320a05620a8279fb524fe6 100644
--- a/example/system/nested_interrupt/sdkconfig.h
+++ b/example/system/nested_interrupt/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/newlib_test/configs/pd2308_aarch64_test16_newlib.config b/example/system/newlib_test/configs/pd2308_aarch64_test16_newlib.config
new file mode 100644
index 0000000000000000000000000000000000000000..f820ebf16f73ad17211db39c5f2d3bc87f4eb08b
--- /dev/null
+++ b/example/system/newlib_test/configs/pd2308_aarch64_test16_newlib.config
@@ -0,0 +1,7 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="newlib"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_CUSTOMOPT=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/newlib_test/configs/ps2316_aarch64_test16_newlib.config b/example/system/newlib_test/configs/ps2316_aarch64_test16_newlib.config
new file mode 100644
index 0000000000000000000000000000000000000000..89b6b1f0e5d66ef7c246acc16666f94d7e711346
--- /dev/null
+++ b/example/system/newlib_test/configs/ps2316_aarch64_test16_newlib.config
@@ -0,0 +1,6 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="newlib"
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_CUSTOMOPT=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/newlib_test/sdkconfig b/example/system/newlib_test/sdkconfig
index a5df06085a35554854808feef727c6a37b1c7233..9bf5e17aff310e7be42462898bac51d1592cc751 100644
--- a/example/system/newlib_test/sdkconfig
+++ b/example/system/newlib_test/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/newlib_test/sdkconfig.h b/example/system/newlib_test/sdkconfig.h
index 408567391d0f772b1650424ff088876b1f304251..d4cfb0819cd96d8e3f1420c4e8b696b8d82bd761 100644
--- a/example/system/newlib_test/sdkconfig.h
+++ b/example/system/newlib_test/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/example/system/scmi_mhu/sdkconfig b/example/system/scmi_mhu/sdkconfig
index 53929c9d710d0f5d4edc9cbd1eb9bf6b785e4e1f..4808e691db54d355a03980b382610158f7a72d03 100644
--- a/example/system/scmi_mhu/sdkconfig
+++ b/example/system/scmi_mhu/sdkconfig
@@ -41,27 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
# CONFIG_TARGET_PHYTIUMPI is not set
-CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PD2308=y
+# CONFIG_TARGET_PS2316 is not set
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="e2000"
-CONFIG_TARGET_TYPE_NAME="q"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="pd2308"
+CONFIG_SOC_CORE_NUM=8
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -76,11 +76,10 @@ CONFIG_BOARD_NAME="demo"
# CONFIG_USE_CAN_IOPAD is not set
# CONFIG_USE_QSPI_IOPAD is not set
# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_E2000Q_DEMO_BOARD=y
+CONFIG_PD2308_DEMO_BOARD=y
#
# IO mux configuration when board start up
@@ -92,7 +91,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="baremetal"
+CONFIG_TARGET_NAME="scmi"
# end of Build project name
# end of Board Configuration
@@ -123,7 +122,14 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-# CONFIG_USE_SERIAL is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
# CONFIG_USE_GPIO is not set
# CONFIG_USE_ETH is not set
# CONFIG_USE_CAN is not set
@@ -141,7 +147,14 @@ CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_PWM is not set
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
-# CONFIG_USE_SCMI_MHU is not set
+CONFIG_USE_SCMI_MHU=y
+
+#
+# Scmi Configuration
+#
+CONFIG_ENABLE_SCMI_MHU=y
+# end of Scmi Configuration
+
# CONFIG_USE_I2S is not set
# CONFIG_USE_I3C is not set
# end of Drivers configuration
@@ -150,7 +163,17 @@ CONFIG_ENABLE_IOPAD=y
# Third-party configuration
#
# CONFIG_USE_LWIP is not set
-# CONFIG_USE_LETTER_SHELL is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter shell configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter shell configuration
+
# CONFIG_USE_AMP is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
@@ -170,7 +193,7 @@ CONFIG_ENABLE_IOPAD=y
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -188,8 +211,8 @@ CONFIG_DEBUG_LINK_MAP=y
#
# Debug options
#
-# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
-# CONFIG_WALL_WARNING_ERROR is not set
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
# CONFIG_STRICT_PROTOTYPES is not set
# CONFIG_DEBUG_SYMBOLS is not set
# CONFIG_FRAME_POINTER is not set
@@ -212,5 +235,11 @@ CONFIG_USE_COMPILE_CHAIN=y
#
# Linker Options
#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
# end of Linker Options
# end of Build setup
diff --git a/example/system/scmi_mhu/sdkconfig.h b/example/system/scmi_mhu/sdkconfig.h
index e728ca30d6eaba59b3221350a054ce9f90910755..9e6cc51a62244af70c904c043498431347d68bda 100644
--- a/example/system/scmi_mhu/sdkconfig.h
+++ b/example/system/scmi_mhu/sdkconfig.h
@@ -38,26 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
/* CONFIG_TARGET_PHYTIUMPI is not set */
-#define CONFIG_TARGET_E2000Q
+/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PD2308
+/* CONFIG_TARGET_PS2316 is not set */
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "e2000"
-#define CONFIG_TARGET_TYPE_NAME "q"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "pd2308"
+#define CONFIG_SOC_CORE_NUM 8
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -66,8 +66,20 @@
/* Board Configuration */
#define CONFIG_BOARD_NAME "demo"
-/* CONFIG_E2000Q_DEMO_BOARD is not set */
-#define CONFIG_CUS_DEMO_BOARD
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_PD2308_DEMO_BOARD
+
+/* IO mux configuration when board start up */
+
+/* end of IO mux configuration when board start up */
+/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
@@ -97,7 +109,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-/* CONFIG_ENABLE_IOPAD is not set */
+#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -163,7 +175,7 @@
/* Build setup */
#define CONFIG_CHECK_DEPS
-#define CONFIG_OUTPUT_BINARY
+/* CONFIG_OUTPUT_BINARY is not set */
/* Optimization options */
diff --git a/example/system/template/configs/ps2316_aarch64_test16_template.config b/example/system/template/configs/ps2316_aarch64_test16_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..dda3d5df12cceddc8099eab7cfe12c7adbafaa57
--- /dev/null
+++ b/example/system/template/configs/ps2316_aarch64_test16_template.config
@@ -0,0 +1,14 @@
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="template"
+CONFIG_BOOTUP_DEBUG_PRINTS=y
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xc8000000
diff --git a/example/system/template/configs/qemu_virt_64_aarch64_demo_template.config b/example/system/template/configs/qemu_virt_64_aarch64_demo_template.config
new file mode 100644
index 0000000000000000000000000000000000000000..359eb578ecfac2dfac0c55717ebf65b9f540242f
--- /dev/null
+++ b/example/system/template/configs/qemu_virt_64_aarch64_demo_template.config
@@ -0,0 +1,15 @@
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+CONFIG_TARGET_QEMU_VIRT=y
+CONFIG_DEFAULT_DEBUG_PRINT_UART0=y
+CONFIG_BOARD_NAME="demo"
+CONFIG_TARGET_NAME="template"
+CONFIG_INTERRUPT_ROLE_SLAVE=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART0=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+CONFIG_IMAGE_LOAD_ADDRESS=0xc8000000
diff --git a/example/system/template/makefile b/example/system/template/makefile
index 543dfffd5bc0ee53ae95a627fd24b06c8e04f603..c024a82614971252f4afc9fd4f2c9fe7d595ffaf 100644
--- a/example/system/template/makefile
+++ b/example/system/template/makefile
@@ -11,4 +11,5 @@ USR_BOOT_DIR ?= /mnt/d/tftpboot
image:
make clean
make all -j
- cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal.elf
\ No newline at end of file
+ cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/baremetal.elf
+ cp ./$(IMAGE_OUT_NAME).bin $(USR_BOOT_DIR)/baremetal.bin
\ No newline at end of file
diff --git a/example/system/template/sdkconfig b/example/system/template/sdkconfig
index ae8bce769cd89bb0fa35c15b2e8bde21c73fc032..c8ab4b92b4bc0b2bb45b413dc9dea36cb19d728c 100644
--- a/example/system/template/sdkconfig
+++ b/example/system/template/sdkconfig
@@ -29,7 +29,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
-CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
@@ -41,52 +41,37 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
-# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
+# CONFIG_TARGET_PS2316 is not set
+CONFIG_TARGET_QEMU_VIRT=y
+CONFIG_SOC_NAME="qemu_virt_64"
CONFIG_SOC_CORE_NUM=4
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
-CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
-# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART1 is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART0=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
# end of Soc configuration
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="demo"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -109,8 +94,8 @@ CONFIG_LOG_ERROR=y
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
-CONFIG_INTERRUPT_ROLE_MASTER=y
-# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# CONFIG_INTERRUPT_ROLE_MASTER is not set
+CONFIG_INTERRUPT_ROLE_SLAVE=y
# CONFIG_INTERRUPT_ROLE_NONE is not set
# end of Sdk common configuration
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
@@ -162,8 +147,8 @@ CONFIG_USE_LETTER_SHELL=y
# Letter shell configuration
#
CONFIG_LS_PL011_UART=y
-CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
-# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART1 is not set
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART0=y
# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
# end of Letter shell configuration
@@ -191,9 +176,9 @@ CONFIG_OUTPUT_BINARY=y
#
# Optimization options
#
-# CONFIG_DEBUG_NOOPT is not set
+CONFIG_DEBUG_NOOPT=y
# CONFIG_DEBUG_CUSTOMOPT is not set
-CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_FULLOPT is not set
CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
CONFIG_DEBUG_LINK_MAP=y
# CONFIG_CCACHE is not set
@@ -207,9 +192,9 @@ CONFIG_DEBUG_LINK_MAP=y
CONFIG_DEBUG_ENABLE_ALL_WARNING=y
CONFIG_WALL_WARNING_ERROR=y
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
-# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -230,7 +215,7 @@ CONFIG_USE_COMPILE_CHAIN=y
#
CONFIG_DEFAULT_LINKER_SCRIPT=y
# CONFIG_USER_DEFINED_LD is not set
-CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_LOAD_ADDRESS=0xc8000000
CONFIG_IMAGE_MAX_LENGTH=0x1000000
CONFIG_HEAP_SIZE=1
CONFIG_STACK_SIZE=0x400
diff --git a/example/system/template/sdkconfig.h b/example/system/template/sdkconfig.h
index 029e427b932fef3fb6a04a8cf76d7dd62e402fe8..01b53793179b9517f3d11e35c2a2007fe4622e64 100644
--- a/example/system/template/sdkconfig.h
+++ b/example/system/template/sdkconfig.h
@@ -28,7 +28,7 @@
#define CONFIG_GCC_CODE_MODEL_SMALL
/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
-#define CONFIG_BOOT_WITH_FLUSH_CACHE
+/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
/* CONFIG_MMU_DEBUG_PRINTS is not set */
/* end of Arm architecture configuration */
@@ -38,48 +38,35 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
-/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
+/* CONFIG_TARGET_PS2316 is not set */
+#define CONFIG_TARGET_QEMU_VIRT
+#define CONFIG_SOC_NAME "qemu_virt_64"
#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
-#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
-/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART1 is not set */
+#define CONFIG_DEFAULT_DEBUG_PRINT_UART0
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
/* end of Soc configuration */
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "demo"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -100,8 +87,8 @@
/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
-#define CONFIG_INTERRUPT_ROLE_MASTER
-/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* CONFIG_INTERRUPT_ROLE_MASTER is not set */
+#define CONFIG_INTERRUPT_ROLE_SLAVE
/* CONFIG_INTERRUPT_ROLE_NONE is not set */
/* end of Sdk common configuration */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
@@ -148,8 +135,8 @@
/* Letter shell configuration */
#define CONFIG_LS_PL011_UART
-#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
-/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART1 is not set */
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART0
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter shell configuration */
/* CONFIG_USE_AMP is not set */
@@ -174,9 +161,9 @@
/* Optimization options */
-/* CONFIG_DEBUG_NOOPT is not set */
+#define CONFIG_DEBUG_NOOPT
/* CONFIG_DEBUG_CUSTOMOPT is not set */
-#define CONFIG_DEBUG_FULLOPT
+/* CONFIG_DEBUG_FULLOPT is not set */
#define CONFIG_DEBUG_OPT_UNUSED_SECTIONS
#define CONFIG_DEBUG_LINK_MAP
/* CONFIG_CCACHE is not set */
@@ -189,9 +176,9 @@
#define CONFIG_DEBUG_ENABLE_ALL_WARNING
#define CONFIG_WALL_WARNING_ERROR
/* CONFIG_STRICT_PROTOTYPES is not set */
-/* CONFIG_DEBUG_SYMBOLS is not set */
-/* CONFIG_FRAME_POINTER is not set */
-/* CONFIG_OUTPUT_ASM_DIS is not set */
+#define CONFIG_DEBUG_SYMBOLS
+#define CONFIG_FRAME_POINTER
+#define CONFIG_OUTPUT_ASM_DIS
/* CONFIG_ENABLE_WSHADOW is not set */
/* CONFIG_ENABLE_WUNDEF is not set */
#define CONFIG_DOWNGRADE_DIAG_WARNING
@@ -209,7 +196,7 @@
#define CONFIG_DEFAULT_LINKER_SCRIPT
/* CONFIG_USER_DEFINED_LD is not set */
-#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
+#define CONFIG_IMAGE_LOAD_ADDRESS 0xc8000000
#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
#define CONFIG_HEAP_SIZE 1
#define CONFIG_STACK_SIZE 0x400
diff --git a/example/system/unwind/configs/pd2308_aarch64_test16_unwind.config b/example/system/unwind/configs/pd2308_aarch64_test16_unwind.config
new file mode 100644
index 0000000000000000000000000000000000000000..c805563ba6f9875ac75c0d9507fba1a08a59ff1d
--- /dev/null
+++ b/example/system/unwind/configs/pd2308_aarch64_test16_unwind.config
@@ -0,0 +1,14 @@
+CONFIG_TARGET_PD2308=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
+CONFIG_TARGET_NAME="unwind"
+CONFIG_LOG_WARN=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_USE_NEWLIB=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/unwind/configs/ps2316_aarch64_test16_unwind.config b/example/system/unwind/configs/ps2316_aarch64_test16_unwind.config
new file mode 100644
index 0000000000000000000000000000000000000000..020b1c7e64c1cc2a0f0dee3d6d815b4fbf595579
--- /dev/null
+++ b/example/system/unwind/configs/ps2316_aarch64_test16_unwind.config
@@ -0,0 +1,13 @@
+CONFIG_TARGET_PS2316=y
+CONFIG_BOARD_NAME="test16"
+CONFIG_TARGET_NAME="unwind"
+CONFIG_LOG_WARN=y
+CONFIG_USE_LETTER_SHELL=y
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_ENABLE_ALL_WARNING=y
+CONFIG_WALL_WARNING_ERROR=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_FRAME_POINTER=y
+CONFIG_OUTPUT_ASM_DIS=y
+CONFIG_USE_NEWLIB=y
+CONFIG_DEFAULT_LINKER_SCRIPT=y
diff --git a/example/system/unwind/sdkconfig b/example/system/unwind/sdkconfig
index 527c3ab1eeb0c265b881a9d906361147851460dd..e4ce7076852cb00200ea2153f8d4d166f0b9e226 100644
--- a/example/system/unwind/sdkconfig
+++ b/example/system/unwind/sdkconfig
@@ -41,26 +41,27 @@ CONFIG_BOOT_WITH_FLUSH_CACHE=y
CONFIG_MMU_PAGE_SIZE=0x1000
CONFIG_MAX_XLAT_TABLES=256
+# CONFIG_ENABLE_GIC_ITS is not set
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
# CONFIG_TARGET_PD2308 is not set
+CONFIG_TARGET_PS2316=y
# CONFIG_TARGET_QEMU_VIRT is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="ps2316"
+CONFIG_SOC_CORE_NUM=16
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
@@ -69,24 +70,8 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
-# end of IO mux configuration when board start up
-
-# CONFIG_CUS_DEMO_BOARD is not set
+CONFIG_BOARD_NAME="test16"
+CONFIG_CUS_DEMO_BOARD=y
#
# Build project name
@@ -119,7 +104,7 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
#
CONFIG_USE_IOMUX=y
# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
CONFIG_USE_SERIAL=y
diff --git a/example/system/unwind/sdkconfig.h b/example/system/unwind/sdkconfig.h
index 75ece42d94cab963380c2adc43ca27fa69c9dc09..be4987ea82e2c5a132b9a8d1e08d924b9284ea03 100644
--- a/example/system/unwind/sdkconfig.h
+++ b/example/system/unwind/sdkconfig.h
@@ -38,25 +38,26 @@
/* end of multi-core system deployment framework */
#define CONFIG_MMU_PAGE_SIZE 0x1000
#define CONFIG_MAX_XLAT_TABLES 256
+/* CONFIG_ENABLE_GIC_ITS is not set */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
/* CONFIG_TARGET_PD2308 is not set */
+#define CONFIG_TARGET_PS2316
/* CONFIG_TARGET_QEMU_VIRT is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "ps2316"
+#define CONFIG_SOC_CORE_NUM 16
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
@@ -64,22 +65,8 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
-/* end of IO mux configuration when board start up */
-/* CONFIG_CUS_DEMO_BOARD is not set */
+#define CONFIG_BOARD_NAME "test16"
+#define CONFIG_CUS_DEMO_BOARD
/* Build project name */
@@ -109,7 +96,7 @@
#define CONFIG_USE_IOMUX
/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
#define CONFIG_USE_SERIAL
diff --git a/soc/common/fcpu_info.c b/soc/common/fcpu_info.c
index 731b32aacaff6a5954feaecb1ac28a38e4484492..5de64b3ef23520abcbcdbe9dd9484262fba6112e 100644
--- a/soc/common/fcpu_info.c
+++ b/soc/common/fcpu_info.c
@@ -30,7 +30,7 @@ FError GetCpuId(u32 *cpu_id_p)
fsize_t affinity = GetAffinity();
FError ret = ERR_SUCCESS ;
- switch (affinity & 0xfff)
+ switch (affinity & 0xfffff)
{
#ifdef CORE0_AFF
case CORE0_AFF:
@@ -71,6 +71,46 @@ FError GetCpuId(u32 *cpu_id_p)
case CORE7_AFF:
*cpu_id_p = 7 ;
break;
+#endif
+#ifdef CORE8_AFF
+ case CORE8_AFF:
+ *cpu_id_p = 8 ;
+ break;
+#endif
+#ifdef CORE9_AFF
+ case CORE9_AFF:
+ *cpu_id_p = 9 ;
+ break;
+#endif
+#ifdef CORE10_AFF
+ case CORE10_AFF:
+ *cpu_id_p = 10 ;
+ break;
+#endif
+#ifdef CORE11_AFF
+ case CORE11_AFF:
+ *cpu_id_p = 11 ;
+ break;
+#endif
+#ifdef CORE12_AFF
+ case CORE12_AFF:
+ *cpu_id_p = 12 ;
+ break;
+#endif
+#ifdef CORE13_AFF
+ case CORE13_AFF:
+ *cpu_id_p = 13 ;
+ break;
+#endif
+#ifdef CORE14_AFF
+ case CORE14_AFF:
+ *cpu_id_p = 14 ;
+ break;
+#endif
+#ifdef CORE15_AFF
+ case CORE15_AFF:
+ *cpu_id_p = 15 ;
+ break;
#endif
default:
ret = ERR_GENERAL ;
diff --git a/soc/d2000/fparameters.h b/soc/d2000/fparameters.h
index 12638353334bc60b31f676da3871a7c655fc7c95..61e12ed7d35c1b9e2183204f4c9cf783c86428aa 100644
--- a/soc/d2000/fparameters.h
+++ b/soc/d2000/fparameters.h
@@ -40,6 +40,7 @@ extern "C"
#define CORE6_AFF 0x300
#define CORE7_AFF 0x301
#define FCORE_NUM 8
+#define CORE_AFF_MASK 0xFFF
/* cache */
#define CACHE_LINE_ADDR_MASK 0x3FUL
diff --git a/soc/e2000/d/fparameters.h b/soc/e2000/d/fparameters.h
index 88a6d73feade6dc925baf9233a9065a3edc40ca0..8a5f8dffef6a863eae9b6ef4b0931676731abd90 100644
--- a/soc/e2000/d/fparameters.h
+++ b/soc/e2000/d/fparameters.h
@@ -38,6 +38,7 @@ extern "C"
#define CORE0_AFF 0x200U
#define CORE1_AFF 0x201U
#define FCORE_NUM 2
+#define CORE_AFF_MASK 0xFFF
/* PWM */
#define FPWM0_ID 0
diff --git a/soc/e2000/q/fparameters.h b/soc/e2000/q/fparameters.h
index 2b35fffcedfbadb165d3e4b40bccc990a59a5c2e..c122b110ae2f940165865e20baa03657b8f1e255 100644
--- a/soc/e2000/q/fparameters.h
+++ b/soc/e2000/q/fparameters.h
@@ -39,6 +39,7 @@ extern "C"
#define CORE1_AFF 0x100U
#define CORE2_AFF 0x200U
#define CORE3_AFF 0x201U
+#define CORE_AFF_MASK 0xFFF
#define FCORE_NUM 4
/* PWM */
diff --git a/soc/e2000/s/fparameters.h b/soc/e2000/s/fparameters.h
index 66d2e7ccda92c47195da5be7179a2922178aac2e..7202c37322ef335e517adf479552913b6aff4c2c 100644
--- a/soc/e2000/s/fparameters.h
+++ b/soc/e2000/s/fparameters.h
@@ -35,6 +35,7 @@ extern "C"
#define SOC_TARGET_E2000S
#define CORE0_AFF 0x200U
+#define CORE_AFF_MASK 0xFFF
#define FCORE_NUM 1
/* ADC */
diff --git a/soc/ft2004/fparameters.h b/soc/ft2004/fparameters.h
index caecd4c140010954140fc3c2d74348a68b88ee1e..44741a39a25ca6d69495bd5f50480737b0dbe828 100644
--- a/soc/ft2004/fparameters.h
+++ b/soc/ft2004/fparameters.h
@@ -35,6 +35,7 @@ extern "C"
#define CORE1_AFF 0x1
#define CORE2_AFF 0x100
#define CORE3_AFF 0x101
+#define CORE_AFF_MASK 0xFFF
#define FCORE_NUM 4
/* cache */
diff --git a/soc/pd2308/fparameters.h b/soc/pd2308/fparameters.h
index a18919d432a9d886f3669bf82060ab3ab26930a9..5a655da62e23d3d4b8b77da85bb402a224e3e3b7 100644
--- a/soc/pd2308/fparameters.h
+++ b/soc/pd2308/fparameters.h
@@ -40,6 +40,7 @@ extern "C"
#define CORE6_AFF 0x10200
#define CORE7_AFF 0x10300
#define FCORE_NUM 8
+#define CORE_AFF_MASK 0xFFFFF
/* cache */
@@ -750,6 +751,9 @@ enum
#define FSCMI_MAX_OPPS 9
#define FSCMI_MAX_POWER_DOMAINS 40
+/* PMU */
+#define FPMU_IRQ_NUM 23
+
#ifdef __cplusplus
}
#endif
diff --git a/soc/phytiumpi/fparameters.h b/soc/phytiumpi/fparameters.h
index 086e57f5ae0543a42586a287d417a802b9791c27..0539b877625bc14e52a68c42de00cccf5a909570 100644
--- a/soc/phytiumpi/fparameters.h
+++ b/soc/phytiumpi/fparameters.h
@@ -39,6 +39,7 @@ extern "C"
#define CORE1_AFF 0x100U
#define CORE2_AFF 0x200U
#define CORE3_AFF 0x201U
+#define CORE_AFF_MASK 0xFFF
#define FCORE_NUM 4
/*****************************************************************************/
diff --git a/soc/phytiumpi/fparameters_comm.h b/soc/phytiumpi/fparameters_comm.h
index f39b191b06e4933dfc98bd091bb7f79e26dac38a..08f48ae939d0886c9128a7d76f6b191c3011c409 100644
--- a/soc/phytiumpi/fparameters_comm.h
+++ b/soc/phytiumpi/fparameters_comm.h
@@ -45,21 +45,32 @@ extern "C"
#define FPCIE0_ID 0
#define FPCIE0_MISC_IRQ_NUM 40
-#define FPCIE_CFG_MAX_NUM_OF_BUS 256
-#define FPCIE_CFG_MAX_NUM_OF_DEV 32
-#define FPCIE_CFG_MAX_NUM_OF_FUN 8
+#define FPCIE_ECAM_INSTANCE_NUM 1
+#define FPCIE_ECAM_INSTANCE0 0
-#define FPCI_CONFIG_BASE_ADDR 0x40000000U
-#define FPCI_CONFIG_REG_LENGTH 0x10000000U
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_BUS 256
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_DEV 32
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_FUN 8
-#define FPCI_IO_CONFIG_BASE_ADDR 0x50000000U
-#define FPCI_IO_CONFIG_REG_LENGTH 0x08000000U
+#define FPCIE_ECAM_INTA_IRQ_NUM 36
+#define FPCIE_ECAM_INTB_IRQ_NUM 37
+#define FPCIE_ECAM_INTC_IRQ_NUM 38
+#define FPCIE_ECAM_INTD_IRQ_NUM 39
-#define FPCI_MEM32_BASE_ADDR 0x58000000U
-#define FPCI_MEM32_REG_LENGTH 0x27FFFFFFU
+/* max scan*/
+#define FPCIE_MAX_SCAN_NUMBER 128
-#define FPCI_MEM64_BASE_ADDR 0x1000000000U
-#define FPCI_MEM64_REG_LENGTH 0x1000000000U
+#define FPCI_ECAM_CONFIG_BASE_ADDR 0x40000000U
+#define FPCI_ECAM_CONFIG_REG_LENGTH 0x10000000U
+
+#define FPCI_ECAM_IO_CONFIG_BASE_ADDR 0x50000000U
+#define FPCI_ECAM_IO_CONFIG_REG_LENGTH 0x08000000U
+
+#define FPCI_ECAM_MEM32_BASE_ADDR 0x58000000U /* mmio 32 */
+#define FPCI_ECAM_MEM32_REG_LENGTH 0x27FFFFFFU
+
+#define FPCI_ECAM_MEM64_BASE_ADDR 0x1000000000U /* mmio 64 */
+#define FPCI_ECAM_MEM64_REG_LENGTH 0x1000000000U
#define FPCI_EU0_C0_CONTROL_BASE_ADDR 0x29000000U
#define FPCI_EU0_C1_CONTROL_BASE_ADDR 0x29010000U
diff --git a/soc/ps2316/cpu_inc.mk b/soc/ps2316/cpu_inc.mk
new file mode 100644
index 0000000000000000000000000000000000000000..45086cb77eba7199c7ba1e5cbb7ffe79637f9f45
--- /dev/null
+++ b/soc/ps2316/cpu_inc.mk
@@ -0,0 +1 @@
+BUILD_INC_PATH_DIR += $(SDK_DIR)/soc/ps2316
diff --git a/soc/ps2316/fcpu_affinity_mask.c b/soc/ps2316/fcpu_affinity_mask.c
new file mode 100644
index 0000000000000000000000000000000000000000..3bc4848060ef6df132123d4baf01700be6b6ce14
--- /dev/null
+++ b/soc/ps2316/fcpu_affinity_mask.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: fcpu_affinity_mask.c
+ * Date: 2023-11-6 10:33:28
+ * LastEditTime: 2023-11-6 10:33:28
+ * Description: This file is for
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhangyan 2023/11/6 init commit
+ */
+#include "fparameters.h"
+#include "ftypes.h"
+
+const int cluster_ids[FCORE_NUM] = {
+ CORE0_AFF,
+ CORE1_AFF,
+ CORE2_AFF,
+ CORE3_AFF,
+ CORE4_AFF,
+ CORE5_AFF,
+ CORE6_AFF,
+ CORE7_AFF,
+ CORE8_AFF,
+ CORE9_AFF,
+ CORE10_AFF,
+ CORE11_AFF,
+ CORE12_AFF,
+ CORE13_AFF,
+ CORE14_AFF,
+ CORE15_AFF
+};
+
+/**
+ * @name: GetCpuMaskToAffval
+ * @msg: Convert information in cpu_mask to cluster_ID and target_list
+ * @param {u32} *cpu_mask is each bit of cpu_mask represents a selected CPU, for example, 0x3 represents core0 and CORE1 .
+ * @param {u32} *cluster_id is information about the cluster in which core resides ,format is
+ * |--------[bit31-24]-------[bit23-16]-------------[bit15-8]-----------[bit7-0]
+ * |--------Affinity level3-----Affinity level2-----Affinity level1-----Affinity level0
+ * @param {u32} *target_list is core mask in cluster
+ * @return {u32} 0 indicates that the conversion was not successful , 1 indicates that the conversion was successful
+ */
+u32 GetCpuMaskToAffval(u32 *cpu_mask, u32 *cluster_id, u32 *target_list)
+{
+ if (*cpu_mask == 0)
+ {
+ return 0;
+ }
+
+ *target_list = 0;
+ *cluster_id = 0;
+
+ for (int i = 0; i < sizeof(cluster_ids) / sizeof(cluster_ids[0]); i++)
+ {
+ if (*cpu_mask & (1 << i))
+ {
+ *cpu_mask &= ~(1 << i) ;
+ *cluster_id = cluster_ids[i];
+ *target_list = 1;
+ break;
+ }
+ }
+
+ return 1;
+}
diff --git a/soc/ps2316/fmmu_table.c b/soc/ps2316/fmmu_table.c
new file mode 100644
index 0000000000000000000000000000000000000000..7ea6a1047f60217ae416a1b01f8771f2ff0efc23
--- /dev/null
+++ b/soc/ps2316/fmmu_table.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: fmmu_table.c
+ * Date: 2023-11-6 10:33:28
+ * LastEditTime: 2023-11-6 10:33:28
+ * Description: This file is for
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhangyan 2023/11/6 init commit
+ * 1.1 huanghe 2024/05/21 Unified aarch32 and aarch64 mmu tables
+ */
+
+#include "fmmu.h"
+#include "fparameters.h"
+
+const struct ArmMmuRegion mmu_regions[] =
+{
+ MMU_REGION_FLAT_ENTRY("DEVICE_REGION",
+ 0x00, 0x40000000,
+ MT_DEVICE_NGNRNE | MT_P_RW_U_NA | MT_NS),
+
+
+ MMU_REGION_FLAT_ENTRY("PCIE_CONFIG_REGION",
+ 0x40000000, 0x10000000,
+ MT_DEVICE_NGNRNE | MT_P_RW_U_NA | MT_NS),
+
+ MMU_REGION_FLAT_ENTRY("PCIE_CONFIG_REGION",
+ 0x50000000, 0x30000000,
+ MT_DEVICE_NGNRNE | MT_P_RW_U_NA | MT_NS),
+ /* # TODO mmu 需要升级特性 */
+ // MMU_REGION_FLAT_ENTRY("PCIE_MEM64_REGION",
+ // 0x40000000000, 0x30000000,
+ // MT_DEVICE_NGNRNE | MT_P_RW_U_NA | MT_NS),
+};
+
+const struct ArmMmuConfig mmu_config =
+{
+ .num_regions = ARRAY_SIZE(mmu_regions),
+ .mmu_regions = mmu_regions,
+};
\ No newline at end of file
diff --git a/soc/ps2316/fparameters.h b/soc/ps2316/fparameters.h
new file mode 100644
index 0000000000000000000000000000000000000000..e6a047bb04d0301f045d94c6e2cd24aea261776b
--- /dev/null
+++ b/soc/ps2316/fparameters.h
@@ -0,0 +1,253 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: fparameters.h
+ * Date: 2025-01-14 14:53:42
+ * LastEditTime: 2025-03-27 14:53:42
+ * Description: This file is for
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 LiuSM 2025-01-14 First version.
+ */
+
+#ifndef BSP_BOARD_PS2316_PARAMETERS_H
+#define BSP_BOARD_PS2316_PARAMETERS_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if !defined(__ASSEMBLER__)
+#include "ftypes.h"
+#endif
+
+#define CORE0_AFF 0x0
+#define CORE1_AFF 0x10000
+#define CORE2_AFF 0x20000
+#define CORE3_AFF 0x30000
+#define CORE4_AFF 0x40000
+#define CORE5_AFF 0x50000
+#define CORE6_AFF 0x60000
+#define CORE7_AFF 0x70000
+#define CORE8_AFF 0x80000
+#define CORE9_AFF 0x90000
+#define CORE10_AFF 0xa0000
+#define CORE11_AFF 0xb0000
+#define CORE12_AFF 0xc0000
+#define CORE13_AFF 0xd0000
+#define CORE14_AFF 0xe0000
+#define CORE15_AFF 0xf0000
+
+#define FCORE_NUM 16
+#define CORE_AFF_MASK 0xFFFFF
+
+
+/* cache */
+#define CACHE_LINE_ADDR_MASK 0x3FUL
+#define CACHE_LINE 64U
+
+
+/* PCIE ECAM */
+
+/* Pci express */
+#define FPCIE_ECAM_INSTANCE_NUM 1
+#define FPCIE_ECAM_INSTANCE0 0
+
+#define FPCIE_ECAM_MAX_OUTBOUND_NUM 8
+
+/* Bus, Device and Function */
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_BUS 256
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_DEV 32
+#define FPCIE_ECAM_CFG_MAX_NUM_OF_FUN 8
+
+#define FPCIE_ECAM_INTA_IRQ_NUM 60
+#define FPCIE_ECAM_INTB_IRQ_NUM 61
+#define FPCIE_ECAM_INTC_IRQ_NUM 62
+#define FPCIE_ECAM_INTD_IRQ_NUM 63
+
+/* max scan*/
+#define FPCIE_MAX_SCAN_NUMBER 128
+
+/* memory space */
+#define FPCI_ECAM_CONFIG_BASE_ADDR 0x40000000 /* ecam */
+#define FPCI_ECAM_CONFIG_REG_LENGTH 0x10000000
+
+#define FPCI_ECAM_IO_CONFIG_BASE_ADDR 0x50000000 /* io address space */
+#define FPCI_ECAM_IO_CONFIG_REG_LENGTH 0x08000000
+
+#define FPCI_ECAM_MEM32_BASE_ADDR 0x58000000 /* mmio 32 */
+#define FPCI_ECAM_MEM32_REG_LENGTH 0x27ffffff
+
+#define FPCI_ECAM_MEM64_BASE_ADDR 0x40000000000 /* mmio 64 */
+#define FPCI_ECAM_MEM64_REG_LENGTH 0x1fffffffff
+
+/* UART */
+
+
+#define FUART0_ID 0
+#define FUART1_ID 1
+#define FUART2_ID 2
+#define FUART_NUM 3
+
+#define FUART0_IRQ_NUM 48
+#define FUART0_BASE_ADDR 0x20000000
+#define FUART0_CLK_FREQ_HZ 48000000
+
+#define FUART1_IRQ_NUM 47
+#define FUART1_BASE_ADDR 0x20001000
+#define FUART1_CLK_FREQ_HZ 48000000
+
+#define FUART2_IRQ_NUM 46
+#define FUART2_BASE_ADDR 0x20002000
+#define FUART2_CLK_FREQ_HZ 48000000
+
+#define FT_STDOUT_BASE_ADDR FUART1_BASE_ADDR
+#define FT_STDIN_BASE_ADDR FUART1_BASE_ADDR
+
+
+/* GPIO */
+#if !defined(__ASSEMBLER__)
+enum
+{
+ FGPIO0_ID = 0,
+
+ FGPIO_NUM
+};
+#endif
+
+#define FGPIO_WITH_PIN_IRQ 1U /* max id of gpio assign irq for each pin */
+
+#define FGPIO0_BASE_ADDR 0x2000A000
+
+#define FGPIO_CTRL_PIN_NUM 16U
+
+#define FGPIO_PIN_IRQ_BASE 37U
+#define FGPIO_PIN_IRQ_NUM_GET(id, pin) (FGPIO_PIN_IRQ_BASE)
+
+/* iopad */
+#define FIOPAD_BASE_ADDR 0x38003000U
+
+#if !defined(__ASSEMBLER__)
+/* IOPAD */
+enum
+{
+ FIOPAD0_ID = 0,
+
+ FIOPAD_NUM
+};
+#endif
+
+/* PMU */
+#define FPMU_IRQ_NUM 23
+
+/* QSPI */
+#if !defined(__ASSEMBLER__)
+enum
+{
+ FQSPI0_ID = 0,
+
+ FQSPI_NUM
+};
+
+#define FQSPI_BASE_ADDR 0x1A100000U
+
+/* FQSPI cs 0_3, chip number */
+enum
+{
+ FQSPI_CS_0 = 0,
+ FQSPI_CS_1 = 1,
+ FQSPI_CS_2 = 2,
+ FQSPI_CS_3 = 3,
+ FQSPI_CS_NUM
+};
+
+#endif
+
+#define FQSPI_MEM_START_ADDR 0x0U
+#define FQSPI_MEM_END_ADDR 0x07FFFFFFU /* 128MB */
+
+/* WDT */
+#if !defined(__ASSEMBLER__)
+enum
+{
+ FWDT0_ID = 0,
+ FWDT1_ID,
+
+ FWDT_NUM
+};
+#endif
+
+#define FWDT0_REFRESH_BASE_ADDR 0x1A102000U
+#define FWDT1_REFRESH_BASE_ADDR 0x1A104000U
+
+#define FWDT_CONTROL_BASE_ADDR(x) ((x)+0x1000)
+
+#define FWDT0_IRQ_NUM 50
+#define FWDT1_IRQ_NUM 49
+
+#define FWDT_CLK_FREQ_HZ 48000000U /* 48MHz */
+
+/****** GIC v3 *****/
+#define FT_GICV3_INSTANCES_NUM 1U
+#define GICV3_REG_LENGTH 0x00009000U
+
+/*
+ * The maximum priority value that can be used in the GIC.
+ */
+#define GICV3_MAX_INTR_PRIO_VAL 240U
+#define GICV3_INTR_PRIO_MASK 0x000000f0U
+
+#define ARM_GIC_NR_IRQS 270U
+#define ARM_GIC_IRQ_START 0U
+#define FGIC_NUM 1U
+
+#define ARM_GIC_IPI_COUNT 16U /* MPCore IPI count */
+#define SGI_INT_MAX 16U
+#define SPI_START_INT_NUM 32U /* SPI start at ID32 */
+#define PPI_START_INT_NUM 16U /* PPI start at ID16 */
+#define GIC_INT_MAX_NUM 1020U /* GIC max interrupts count */
+
+#define GICV3_BASE_ADDR 0x22000000U
+#define GICV3_ITS_BASE_ADDR (GICV3_BASE_ADDR + 0X40000U)
+#define GICV3_DISTRIBUTOR_BASE_ADDR (GICV3_BASE_ADDR + 0)
+#define GICV3_RD_BASE_ADDR (GICV3_BASE_ADDR + 0x0C0000U)
+#define GICV3_RD_OFFSET (2U << 16)
+#define GICV3_RD_SIZE (16U << 16)
+#define FT_GICV3_VECTORTABLE_NUM GIC_INT_MAX_NUM
+
+
+/* generic timer */
+/* non-secure physical timer int id */
+#define GENERIC_TIMER_NS_IRQ_NUM 30U
+
+/* virtual timer int id */
+#define GENERIC_VTIMER_IRQ_NUM 27U
+
+#if !defined(__ASSEMBLER__)
+enum
+{
+ GENERIC_TIMER_ID0 = 0, /* non-secure physical timer */
+ GENERIC_TIMER_ID1 = 1, /* virtual timer */
+
+ GENERIC_TIMER_NUM
+};
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/soc/ps2316/src.mk b/soc/ps2316/src.mk
new file mode 100644
index 0000000000000000000000000000000000000000..74a0b1ea4a9f1eac216f13fd04090077e7f5deef
--- /dev/null
+++ b/soc/ps2316/src.mk
@@ -0,0 +1,5 @@
+
+SOC_CSRCS += \
+ fmmu_table.c\
+ fcpu_affinity_mask.c
+
diff --git a/soc/qemu_virt_64/fparameters.h b/soc/qemu_virt_64/fparameters.h
index b7790eda21e1e46a23a203dd7de9d314609fc3ae..99092812631393735c02280618d9a250d19ceadb 100644
--- a/soc/qemu_virt_64/fparameters.h
+++ b/soc/qemu_virt_64/fparameters.h
@@ -39,27 +39,35 @@ extern "C"
#define CORE1_AFF 0x1
#define CORE2_AFF 0x2
#define CORE3_AFF 0x3
+#define CORE_AFF_MASK 0xF
#define FCORE_NUM 4
/* cache */
#define CACHE_LINE_ADDR_MASK 0x3FUL
#define CACHE_LINE 64U
-
-
/* UART */
#define FUART0_ID 0
-#define FUART_NUM 1
+#define FUART1_ID 1
+#define FUART2_ID 2
+#define FUART_NUM 3
#define FUART0_IRQ_NUM 33
#define FUART0_BASE_ADDR 0x09000000
-#define FUART0_CLK_FREQ_HZ 100000000
+#define FUART0_CLK_FREQ_HZ 24000000
+
+#define FUART1_IRQ_NUM 42
+#define FUART1_BASE_ADDR 0x09001000
+#define FUART1_CLK_FREQ_HZ 24000000
+
+#define FUART2_IRQ_NUM 43
+#define FUART2_BASE_ADDR 0x09002000
+#define FUART2_CLK_FREQ_HZ 24000000
#define FT_STDOUT_BASE_ADDR FUART0_BASE_ADDR
#define FT_STDIN_BASE_ADDR FUART0_BASE_ADDR
-
/* GIC v3 */
#define ARM_GIC_NR_IRQS 1024
#define ARM_GIC_IRQ_START 0
diff --git a/soc/soc.kconfig b/soc/soc.kconfig
index e57c56cb4bb4fee1aa6648778542f421189a14b0..969dc1fc9a4234685adcf1334b6a84585dd5e15e 100644
--- a/soc/soc.kconfig
+++ b/soc/soc.kconfig
@@ -24,6 +24,9 @@ menu "Soc configuration"
config TARGET_PD2308
bool "PD2308"
+
+ config TARGET_PS2316
+ bool "PS2316"
config TARGET_QEMU_VIRT
bool "qemu_virt_64"
@@ -37,6 +40,7 @@ menu "Soc configuration"
default "d2000" if TARGET_D2000
default "phytiumpi" if TARGET_PHYTIUMPI
default "pd2308" if TARGET_PD2308
+ default "ps2316" if TARGET_PS2316
default "qemu_virt_64" if TARGET_QEMU_VIRT
config TARGET_TYPE_NAME
@@ -54,24 +58,25 @@ menu "Soc configuration"
default 1 if TARGET_E2000S
default 8 if TARGET_D2000 || TARGET_PD2308
default 4 if TARGET_QEMU_VIRT
+ default 16 if TARGET_PS2316
default 0
config F32BIT_MEMORY_ADDRESS
hex
- default 0x80000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308
+ default 0x80000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308 || TARGET_PS2316 || TARGET_QEMU_VIRT
config F32BIT_MEMORY_LENGTH
hex
- default 0x80000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308
+ default 0x80000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308 || TARGET_PS2316 || TARGET_QEMU_VIRT
config F64BIT_MEMORY_ADDRESS
hex
- default 0x2000000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308
+ default 0x2000000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308 || TARGET_PS2316 || TARGET_QEMU_VIRT
config F64BIT_MEMORY_LENGTH
hex
- default 0x800000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308
+ default 0x800000000 if TARGET_E2000Q || TARGET_FT2004 || TARGET_E2000D || TARGET_E2000S || TARGET_D2000 || TARGET_PHYTIUMPI || TARGET_PD2308 || TARGET_PS2316 || TARGET_QEMU_VIRT
# an invisible config to define common code of E2000 Q/D/S
diff --git a/third-party/letter-shell-3.1/port/cmd/cmd_md.c b/third-party/letter-shell-3.1/port/cmd/cmd_md.c
index fd5da7a085a66efd95881d30e7fd05533f9642d4..71deae7abb9e76efd613dc27e6010ee987f82da1 100644
--- a/third-party/letter-shell-3.1/port/cmd/cmd_md.c
+++ b/third-party/letter-shell-3.1/port/cmd/cmd_md.c
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include "../src/shell.h"
#include "fio.h"
#include "ftypes.h"
diff --git a/third-party/letter-shell-3.1/src/shell.c b/third-party/letter-shell-3.1/src/shell.c
index f262069d5446fb645612c22b774ebe94cac3adea..c2ea02882493f6f640f613d04c33c0940a1b0748 100644
--- a/third-party/letter-shell-3.1/src/shell.c
+++ b/third-party/letter-shell-3.1/src/shell.c
@@ -98,6 +98,8 @@ enum
#define SHELL_PLATFORM "PHYTIUMPI "
#elif defined(CONFIG_TARGET_PD2308)
#define SHELL_PLATFORM "PD2308 "
+#elif defined(CONFIG_TARGET_PS2316)
+#define SHELL_PLATFORM "PS2316 "
#else
#define SHELL_PLATFORM "Unkonwn "
#endif
diff --git a/third-party/lwip-2.1.2/include.mk b/third-party/lwip-2.1.2/include.mk
index 5f3c6792ac821f1d82a19463e41a392c89a3ad1f..936c4e590d90ff0962805b04b0c12f53a6e592ed 100644
--- a/third-party/lwip-2.1.2/include.mk
+++ b/third-party/lwip-2.1.2/include.mk
@@ -37,6 +37,10 @@ ifdef CONFIG_USE_BAREMETAL
ifdef CONFIG_LWIP_FXMAC
BUILD_INC_PATH_DIR += $(SDK_DIR)/third-party/lwip-2.1.2/ports/fxmac
endif
+
+ ifdef CONFIG_LWIP_E1000E
+ BUILD_INC_PATH_DIR += $(SDK_DIR)/third-party/lwip-2.1.2/ports/e1000e
+ endif
else
diff --git a/third-party/lwip-2.1.2/ports/Kconfig b/third-party/lwip-2.1.2/ports/Kconfig
index a1512a1084882e0a5f1eaf884cf60aa0c5e536a8..2fd7648abab0252cb752827ec0cdec24ffb293bc 100644
--- a/third-party/lwip-2.1.2/ports/Kconfig
+++ b/third-party/lwip-2.1.2/ports/Kconfig
@@ -1,21 +1,18 @@
menu "LWIP Port Configuration"
- choice LWIP_GMAC_CTRL_TYPE
- prompt "Gmac Drivers"
- default LWIP_FGMAC
- help
- Select Gmac Driver for Lwip
+ config LWIP_FXMAC
+ select FREERTOS_USE_XMAC
+ bool "FXMAC"
+
+ config LWIP_FGMAC
+ select FREERTOS_USE_GMAC
+ bool "FGMAC"
- config LWIP_FXMAC
- select FREERTOS_USE_XMAC
- bool "FXMAC"
-
- config LWIP_FGMAC
- select FREERTOS_USE_GMAC
- bool "FGMAC"
+ config LWIP_E1000E
+ select FREERTOS_USE_E1000E
+ bool "E1000E"
- config LWIP_FSDIF
- bool "FSDIF"
+ config LWIP_FSDIF
+ bool "FSDIF"
- endchoice # LWIP_GMAC_CTRL_TYPE
endmenu
diff --git a/third-party/lwip-2.1.2/ports/e1000e/e1000e_ethernetif.c b/third-party/lwip-2.1.2/ports/e1000e/e1000e_ethernetif.c
new file mode 100644
index 0000000000000000000000000000000000000000..96d087fd0dd3eaabe839fcc834d14e88fc469537
--- /dev/null
+++ b/third-party/lwip-2.1.2/ports/e1000e/e1000e_ethernetif.c
@@ -0,0 +1,426 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_ethernetif.c
+ * Date: 2025-01-06 19:18:46
+ * LastEditTime: 2025-01-06 19:18:46
+ * Description: This file is the function file of the e1000e adaptation to lwip stack.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/06 first release
+ */
+
+
+#include
+#include
+
+#include "lwipopts.h"
+#include "lwip/opt.h"
+#include "lwip/def.h"
+#include "lwip/mem.h"
+#include "lwip/pbuf.h"
+#include "lwip/sys.h"
+#include "lwip/stats.h"
+#include "lwip/igmp.h"
+#include "netif/etharp.h"
+#include "lwip_port.h"
+#include "e1000e_lwip_port.h"
+#include "fdebug.h"
+
+
+#define FE1000E_LWIP_NET_DEBUG_TAG "E1000E_LWIP_NET"
+#define FE1000E_LWIP_NET_PRINT_E(format, ...) FT_DEBUG_PRINT_E(FE1000E_LWIP_NET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_NET_PRINT_I(format, ...) FT_DEBUG_PRINT_I(FE1000E_LWIP_NET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_NET_PRINT_D(format, ...) FT_DEBUG_PRINT_D(FE1000E_LWIP_NET_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_NET_PRINT_W(format, ...) FT_DEBUG_PRINT_W(FE1000E_LWIP_NET_DEBUG_TAG, format, ##__VA_ARGS__)
+
+
+#if LWIP_IPV6
+#include "lwip/ethip6.h"
+#endif
+
+static void e1000e_ethernetif_input(struct netif *netif);
+
+enum lwip_port_link_status e1000e_ethernetif_link_detect(struct netif *netif)
+{
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ FE1000ELwipPort *instance_p;
+ if(lwip_port == NULL)
+ {
+ return ETH_LINK_UNDEFINED;
+ }
+ instance_p = (FE1000ELwipPort *)lwip_port->state;
+ if (instance_p->instance.is_ready != FT_COMPONENT_IS_READY)
+ {
+ return ETH_LINK_UNDEFINED;
+ }
+
+ return ETH_LINK_UP; /* 暂时 */
+ // return FE1000EPhyStatus(lwip_port);
+}
+
+void e1000e_ethernetif_debug(struct netif *netif)
+{
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ FE1000ELwipPort *instance_p;
+ if(lwip_port == NULL)
+ {
+ FE1000E_LWIP_NET_PRINT_E("lwip_port is an NULL pointer");
+ return;
+ }
+ instance_p = (FE1000ELwipPort *)lwip_port->state;
+ if (instance_p->instance.is_ready != FT_COMPONENT_IS_READY)
+ {
+ FE1000E_LWIP_NET_PRINT_E("The drive is not ready");
+ return ;
+ }
+
+ FE1000EDebugPrint(&instance_p->instance);
+}
+
+static void e1000e_ethernetif_start(struct netif *netif)
+{
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ if(lwip_port == NULL)
+ {
+ FE1000E_LWIP_NET_PRINT_E("%s,lwip_port is NULL\n", __FUNCTION__);
+ return;
+ }
+ FE1000ELwipPort *instance_p = (FE1000ELwipPort *)(lwip_port->state);
+ FE1000ELwipPortStart(instance_p);
+}
+
+static void e1000e_ethernetif_deinit(struct netif *netif)
+{
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ if(lwip_port == NULL)
+ {
+ FE1000E_LWIP_NET_PRINT_E("%s,lwip_port is NULL\n", __FUNCTION__);
+ return;
+ }
+
+ FE1000ELwipPort *instance_p = (FE1000ELwipPort *)(lwip_port->state);
+
+ FE1000ELwipPortStop(instance_p);
+}
+
+/*
+ * low_level_output():
+ *
+ * Should do the actual transmission of the packet. The packet is
+ * contained in the pbuf that is passed to the function. This pbuf
+ * might be chained.
+ *
+ */
+static err_t low_level_output(struct netif *netif, struct pbuf *p)
+{
+ FError ret ;
+ FE1000ELwipPort *instance_p = NULL;
+ FASSERT(netif != NULL);
+ FASSERT(netif->state != NULL);
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ FASSERT(lwip_port != NULL);
+
+ instance_p = (FE1000ELwipPort *)(lwip_port->state) ;
+
+#if ETH_PAD_SIZE
+ pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */
+#endif
+
+ ret = FE1000ELwipPortTx(instance_p, p);
+
+#if ETH_PAD_SIZE
+ pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */
+#endif
+
+ if (ret != FT_SUCCESS)
+ {
+ return ERR_MEM;
+ }
+ else
+ {
+ FE1000E_LWIP_NET_PRINT_D("FE1000ELwipPortTx is ok!!!");
+ }
+
+
+ return ERR_OK;
+}
+
+/*
+ * low_level_input():
+ *
+ * Should allocate a pbuf and transfer the bytes of the incoming
+ * packet from the interface into the pbuf.
+ *
+ */
+static struct pbuf *low_level_input(struct netif *netif)
+{
+ FE1000ELwipPort *instance_p = NULL;
+ FASSERT(netif != NULL);
+ FASSERT(netif->state != NULL);
+ struct LwipPort *lwip_port = (struct LwipPort *)(netif->state);
+ FASSERT(lwip_port != NULL);
+ instance_p = (FE1000ELwipPort *)(lwip_port->state) ;
+
+ return FE1000ELwipPortRx(instance_p);
+}
+
+
+static void e1000e_ethernetif_input(struct netif *netif)
+{
+ struct eth_hdr *ethhdr;
+ struct pbuf *p;
+ struct LwipPort *e1000e_netif_p = (struct LwipPort *)(netif->state);
+ FASSERT(e1000e_netif_p != NULL);
+ FE1000ELwipPort *instance_p = NULL;
+ instance_p = (FE1000ELwipPort *)(e1000e_netif_p->state) ;
+
+
+ if(FE1000ELwipPortRxComplete(instance_p))
+ {
+ while (1)
+ {
+ /* move received packet into a new pbuf */
+ p = low_level_input(netif);
+
+ /* no packet could be read, silently ignore this */
+ if (p == NULL)
+ {
+ return;
+ }
+
+ /* points to packet payload, which starts with an Ethernet header */
+ ethhdr = p->payload;
+
+ #if LINK_STATS
+ lwip_stats.link.recv++;
+ #endif /* LINK_STATS */
+ switch (htons(ethhdr->type))
+ {
+ /* IP or ARP packet? */
+ case ETHTYPE_IP:
+ case ETHTYPE_ARP:
+ #if LWIP_IPV6
+ /*IPv6 Packet?*/
+ case ETHTYPE_IPV6:
+ #endif
+ #if PPPOE_SUPPORT
+ /* PPPoE packet? */
+ case ETHTYPE_PPPOEDISC:
+ case ETHTYPE_PPPOE:
+ #endif /* PPPOE_SUPPORT */
+
+ /* 处理数据包,调用网络接口的input函数将数据包交给lwip协议栈内核 */
+ if (netif->input(p, netif) != ERR_OK)
+ {
+ LWIP_DEBUGF(NETIF_DEBUG, ("e1000e_ethernetif_input: IP input error\r\n"));
+ pbuf_free(p);
+ p = NULL;
+ }
+ break;
+
+ default:
+ LWIP_DEBUGF(NETIF_DEBUG, ("e1000e_ethernetif_input: default\r\n"));
+ pbuf_free(p);
+ p = NULL;
+ break;
+ }
+ }
+ }
+
+ return;
+}
+
+static void UserConfigConvert(FE1000ELwipPort * instance_p, UserConfig * config_p)
+{
+ FASSERT(config_p != NULL);
+ FASSERT_MSG(config_p->autonegotiation <= 1, "config_p->autonegotiation %d is over 1", config_p->autonegotiation);
+ FASSERT_MSG(config_p->phy_speed <= FE1000E_PHY_SPEED_10G, "config_p->phy_speed %d is over 1000", config_p->phy_speed);
+ FASSERT_MSG(config_p->phy_duplex <= FE1000E_PHY_FULL_DUPLEX, "config_p->phy_duplex %d is over FE1000E_PHY_FULL_DUPLEX", config_p->phy_duplex);
+
+ FE1000ELwipPortConfig mac_lwip_port_config;
+
+ switch (config_p->mii_interface)
+ {
+ case LWIP_PORT_INTERFACE_RGMII:
+ mac_lwip_port_config.interface = FE1000E_LWIP_PORT_INTERFACE_RGMII;
+ break;
+ case LWIP_PORT_INTERFACE_SGMII:
+ mac_lwip_port_config.interface = FE1000E_LWIP_PORT_INTERFACE_SGMII;
+ break;
+ case LWIP_PORT_INTERFACE_USX:
+ mac_lwip_port_config.interface = FE1000E_LWIP_PORT_INTERFACE_USXGMII;
+ break;
+ default:
+ mac_lwip_port_config.interface = FE1000E_LWIP_PORT_INTERFACE_RGMII;
+ break;
+ }
+
+ mac_lwip_port_config.instance_id = config_p->mac_instance;
+ mac_lwip_port_config.autonegotiation = config_p->autonegotiation; /* 1 is autonegotiation ,0 is manually set */
+ mac_lwip_port_config.phy_speed = config_p->phy_speed; /* FE1000E_PHY_SPEED_XXX */
+ mac_lwip_port_config.phy_duplex = config_p->phy_duplex; /* FE1000E_PHY_XXX_DUPLEX */
+
+ instance_p->e1000e_port_config= mac_lwip_port_config;
+ instance_p->feature = config_p->capability;
+}
+
+static err_t low_level_init(struct netif *netif)
+{
+ struct LwipPort *lwip_port;
+ FE1000ELwipPort *instance_p;
+ FError ret;
+ UserConfig * user_config;
+
+ FASSERT(netif != NULL);
+ FASSERT(netif->state != NULL);
+ /* step 1:malloc lwip port object */
+ lwip_port = mem_malloc(sizeof *lwip_port);
+ if (lwip_port == NULL)
+ {
+ LWIP_DEBUGF(NETIF_DEBUG, ("lwip_port init: out of memory\r\n"));
+ return ERR_MEM;
+ }
+
+ /* obtain config of this emac */
+ FE1000E_LWIP_NET_PRINT_I("netif->state is %p \r\n", netif->state);
+
+ user_config = (UserConfig *)netif->state;
+ if(user_config == NULL)
+ {
+ FE1000E_LWIP_NET_PRINT_E("UserConfig is NULL");
+ mem_free(lwip_port);
+ return ERR_MEM;
+ }
+
+ instance_p = FE1000ELwipPortGetInstancePointer(user_config->mac_instance);
+ if(instance_p == NULL)
+ {
+ FE1000E_LWIP_NET_PRINT_E("FE1000ELwipPortGetInstancePointer is error\r\n");
+ mem_free(lwip_port);
+ return ERR_ARG;
+ }
+
+ UserConfigConvert(instance_p, user_config);
+
+ for (int i = 0; i < FE1000E_MAX_HARDWARE_ADDRESS_LENGTH; i++)
+ {
+ instance_p->hwaddr[i] = netif->hwaddr[i];
+ }
+
+ ret = FE1000ELwipPortInit(instance_p);
+ if (ret != FT_SUCCESS)
+ {
+ FE1000E_LWIP_NET_PRINT_E("FE1000ELwipPortInit is error\r\n");
+ mem_free(lwip_port);
+ return ERR_ARG;
+ }
+ FE1000E_LWIP_NET_PRINT_D("FE1000ELwipPortInit is success\r\n");
+
+ lwip_port->state = (void *)instance_p;
+ netif->state = (void *)lwip_port; /* update state */
+ instance_p->stack_pointer = lwip_port;
+
+ /* maximum transfer unit */
+ if(instance_p->feature & FE1000E_LWIP_PORT_CONFIG_JUMBO)
+ {
+ netif->mtu = FE1000E_MTU_JUMBO;
+ }
+ else
+ {
+ netif->mtu = FE1000E_MTU;
+ }
+
+ netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
+
+ #if LWIP_IPV6 && LWIP_IPV6_MLD
+ netif->flags |= NETIF_FLAG_MLD6;
+ #endif
+
+ #if LWIP_IGMP
+ netif->flags |= NETIF_FLAG_IGMP;
+ #endif
+
+ lwip_port->ops.eth_detect = e1000e_ethernetif_link_detect;
+ lwip_port->ops.eth_input = e1000e_ethernetif_input;
+ lwip_port->ops.eth_deinit = e1000e_ethernetif_deinit;
+ lwip_port->ops.eth_start = e1000e_ethernetif_start;
+ lwip_port->ops.eth_debug = e1000e_ethernetif_debug;
+ FE1000E_LWIP_NET_PRINT_I("ready to leave netif \r\n");
+ return ERR_OK;
+}
+
+#if !LWIP_ARP
+/**
+ * This function has to be completed by user in case of ARP OFF.
+ *
+ * @param netif the lwip network interface structure for this ethernetif
+ * @return ERR_OK if ...
+ */
+static err_t low_level_output_arp_off(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr)
+{
+ err_t errval;
+ errval = ERR_OK;
+
+
+ return errval;
+
+}
+#endif /* LWIP_ARP */
+
+/*
+ * ethernetif_e1000e_init():
+ *
+ * Should be called at the beginning of the program to set up the
+ * network interface. It calls the function low_level_init() to do the
+ * actual setup of the hardware.
+ *
+ */
+
+err_t ethernetif_e1000e_init(struct netif *netif)
+{
+ LWIP_DEBUGF(NETIF_DEBUG, ("*******start init e1000e eth\n"));
+
+#if LWIP_NETIF_HOSTNAME
+ /* Initialize interface hostname */
+ netif->hostname = "lwip";
+#endif /* LWIP_NETIF_HOSTNAME */
+
+#if LWIP_IPV4
+#if LWIP_ARP || LWIP_ETHERNET
+#if LWIP_ARP
+ netif->output = etharp_output;
+#else
+ /* The user should write ist own code in low_level_output_arp_off function */
+ netif->output = low_level_output_arp_off;
+#endif /* LWIP_ARP */
+#endif /* LWIP_ARP || LWIP_ETHERNET */
+
+#if LWIP_IGMP
+ printf("netif_set_igmp_mac_filter !!!!\r\n");
+ netif_set_igmp_mac_filter(netif, xmac_filter_update);
+#endif
+
+#endif /* LWIP_IPV4 */
+
+ netif->linkoutput = low_level_output;
+#if LWIP_IPV6
+ netif->output_ip6 = ethip6_output;
+#endif
+
+ low_level_init(netif);
+
+ return ERR_OK;
+}
diff --git a/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.c b/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.c
new file mode 100644
index 0000000000000000000000000000000000000000..4430e1511cc314bb9cc0a83c986ed6e4ba6b6415
--- /dev/null
+++ b/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.c
@@ -0,0 +1,369 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_lwip_port.c
+ * Date: 2025-01-06 14:59:22
+ * LastEditTime: 2025-01-06 14:59:22
+ * Description: This file is e1000e portable code for lwip port input,output,status check.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/06 first release
+ */
+#include "fparameters.h"
+#include "fassert.h"
+#include "e1000e_lwip_port.h"
+#include "e1000e.h"
+#include "e1000e_hw.h"
+#include "fcache.h"
+#include "lwip_port.h"
+#include "fcpu_info.h"
+#include "sys_arch.h"
+#include "faarch.h"
+#include "finterrupt.h"
+#include "fdebug.h"
+#include "../include/lwip/sys.h"
+
+#define FE1000E_LWIP_PORT_E1000E_DEBUG_TAG "FE1000E_LWIP_PORT_E1000E"
+#define FE1000E_LWIP_PORT_E1000E_PRINT_E(format, ...) FT_DEBUG_PRINT_E(FE1000E_LWIP_PORT_E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_PORT_E1000E_PRINT_I(format, ...) FT_DEBUG_PRINT_I(FE1000E_LWIP_PORT_E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_PORT_E1000E_PRINT_D(format, ...) FT_DEBUG_PRINT_D(FE1000E_LWIP_PORT_E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FE1000E_LWIP_PORT_E1000E_PRINT_W(format, ...) FT_DEBUG_PRINT_W(FE1000E_LWIP_PORT_E1000E_DEBUG_TAG, format, ##__VA_ARGS__)
+
+static FE1000ELwipPort fe1000e_lwip_port_instance[FE1000E_NUM] =
+{
+ [FE1000E0_ID] = {{{0}}},
+};
+
+
+/* queue */
+void FE1000EQueueInit(PqQueue *q)
+{
+ FASSERT(q != NULL);
+ q->head = q->tail = q->len = 0;
+}
+
+int FE1000EPqEnqueue(PqQueue *q, void *p)
+{
+ if (q->len == PQ_QUEUE_SIZE)
+ return -1;
+
+ q->data[q->head] = (uintptr)p;
+ q->head = (q->head + 1) % PQ_QUEUE_SIZE;
+ q->len++;
+
+ return 0;
+}
+
+void *FE1000EPqDequeue(PqQueue *q)
+{
+ int ptail;
+
+ if (q->len == 0)
+ return NULL;
+
+ ptail = q->tail;
+ q->tail = (q->tail + 1) % PQ_QUEUE_SIZE;
+ q->len--;
+
+ return (void *)q->data[ptail];
+}
+
+int FE1000EPqQlength(PqQueue *q)
+{
+ return q->len;
+}
+
+int FE1000ELwipPortRxComplete(FE1000ELwipPort *instance_p)
+{
+ FE1000ECtrl *e1000e_p = &instance_p->instance;
+ u32 temp = 0;
+ u32 rx_idx = e1000e_p->rx_ring.desc_idx;
+
+ SYS_ARCH_DECL_PROTECT(lev);
+ SYS_ARCH_PROTECT(lev);
+
+ /* 判断是否成功接收 */
+ if (e1000e_p->rx[rx_idx].sta & RDESC_STA_DD)
+ {
+ temp = 1;
+ }
+ else
+ {
+ temp = 0;
+ }
+
+
+ SYS_ARCH_UNPROTECT(lev);
+ return temp;
+}
+
+static FError FE1000ELwipPortConfigConvert(FE1000ELwipPort *instance_p, FE1000EConfig* e1000e_config_p)
+{
+ FE1000EConfig *mac_config_p;
+ FE1000EPhyInterface interface = FE1000E_PHY_INTERFACE_MODE_SGMII;
+
+ mac_config_p = FE1000ELookupConfig(instance_p->e1000e_port_config.instance_id);
+ if (mac_config_p == NULL)
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("FE1000ELookupConfig is error , instance_id is %d", instance_p->e1000e_port_config.instance_id);
+ return FREERTOS_E1000E_INIT_ERROR;
+ }
+
+ memcpy(e1000e_config_p, mac_config_p, sizeof (FE1000EConfig));
+
+ switch (instance_p->e1000e_port_config.interface)
+ {
+ case FE1000E_LWIP_PORT_INTERFACE_SGMII:
+ interface = FE1000E_PHY_INTERFACE_MODE_SGMII;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("SGMII select");
+ break;
+ case FE1000E_LWIP_PORT_INTERFACE_RMII:
+ interface = FE1000E_PHY_INTERFACE_MODE_RMII;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("RMII select");
+ break;
+ case FE1000E_LWIP_PORT_INTERFACE_RGMII:
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("RGMII select");
+ interface = FE1000E_PHY_INTERFACE_MODE_RGMII;
+ break;
+ case FE1000E_LWIP_PORT_INTERFACE_USXGMII:
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("USXGMII select");
+ instance_p->e1000e_port_config.phy_speed = FE1000E_PHY_SPEED_10G ;
+ interface = FE1000E_PHY_INTERFACE_MODE_USXGMII;
+ break;
+ default:
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("update interface is error , interface is %d", instance_p->e1000e_port_config.instance_id);
+ return FREERTOS_E1000E_INIT_ERROR;
+ }
+ e1000e_config_p->interface = interface;
+
+ if (instance_p->e1000e_port_config.autonegotiation)
+ {
+ e1000e_config_p->auto_neg = 1;
+ }
+ else
+ {
+ e1000e_config_p->auto_neg = 0;
+ }
+
+ switch (instance_p->e1000e_port_config.phy_speed)
+ {
+ case FE1000E_PHY_SPEED_10M:
+ e1000e_config_p->speed = FE1000E_SPEED_10;
+ break;
+ case FE1000E_PHY_SPEED_100M:
+ e1000e_config_p->speed = FE1000E_SPEED_100;
+ break;
+ case FE1000E_PHY_SPEED_1000M:
+ e1000e_config_p->speed = FE1000E_SPEED_1000;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("select FE1000E_PHY_SPEED_1000M");
+ break;
+ case FE1000E_PHY_SPEED_10G:
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("select FE1000E_PHY_SPEED_10G");
+ e1000e_config_p->speed = FE1000E_SPEED_10000;
+ break;
+ default:
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("setting speed is not valid , speed is %d", instance_p->e1000e_port_config.phy_speed);
+ return FREERTOS_E1000E_INIT_ERROR;
+ }
+
+ switch (instance_p->e1000e_port_config.phy_duplex)
+ {
+ case FE1000E_PHY_HALF_DUPLEX:
+ e1000e_config_p->duplex = 0;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("select Half Duplex");
+ break;
+ case FE1000E_PHY_FULL_DUPLEX:
+ e1000e_config_p->duplex = 1;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("select Full Duplex");
+ break;
+ }
+
+ return FT_SUCCESS;
+}
+
+FError FE1000ELwipPortInit(FE1000ELwipPort *instance_p)
+{
+ FE1000EConfig mac_config;
+ FE1000ECtrl *e1000e_p;
+ FError status;
+ FASSERT(instance_p != NULL);
+ FASSERT(instance_p->e1000e_port_config.instance_id < FE1000E_NUM);
+
+ e1000e_p = &instance_p->instance;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("instance_id IS %d \r\n", instance_p->e1000e_port_config.instance_id);
+
+
+ status = FE1000ELwipPortConfigConvert(instance_p, &mac_config);
+ if (status != FT_SUCCESS)
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("In %s: FE1000ELwipPortControl Convert to FE1000EConfig Failed....\r\n", __func__);
+ }
+
+ status = FE1000ECfgInitialize(e1000e_p, &mac_config);
+ if (status != FT_SUCCESS)
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("In %s:E1000E Configuration Failed....\r\n", __func__);
+ }
+
+ /* Initialize Rx Description list : ring Mode */
+ status = FE1000ESetupRxDescRing(e1000e_p);
+ if (FT_SUCCESS != status)
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("e1000e setup rx return err code %d\r\n", status);
+ FASSERT(FT_SUCCESS == status);
+ }
+
+ /* Initialize Tx Description list : ring Mode */
+ status = FE1000ESetupTxDescRing(e1000e_p);
+ if (FT_SUCCESS != status)
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("e1000e setup tx return err code %d\r\n", status);
+ FASSERT(FT_SUCCESS == status);
+ }
+
+ /* 打印寄存器的值 */
+ FE1000EDebugPrint(e1000e_p);
+
+ return FT_SUCCESS;
+}
+
+
+void *FE1000ELwipPortRx(FE1000ELwipPort *instance_p)
+{
+ struct pbuf *p = NULL;
+ u16 length = 0;
+ u8 *buffer;
+ FE1000ECtrl *e1000e_p = &instance_p->instance;
+ u32 rx_idx = e1000e_p->rx_ring.desc_idx;
+
+ /* get received frame */
+ if (FE1000ERecvFrame(e1000e_p) != FT_SUCCESS)
+ {
+ return NULL;
+ }
+ else
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_D("FE1000ERecvFrame is ok!");
+ }
+
+ length = e1000e_p->rx[rx_idx].len;
+ buffer = (u8 *)(intptr)(e1000e_p->rx[rx_idx].addr);
+
+#if ETH_PAD_SIZE
+ length += ETH_PAD_SIZE; /* allow room for Ethernet padding */
+#endif
+
+ if (length > 0)
+ {
+ p = pbuf_alloc(PBUF_RAW, length, PBUF_RAM);
+ }
+
+#ifdef RAW_DATA_PRINT
+ dump_hex(Buffer, (u32)length);
+#endif
+ if (p != NULL)
+ {
+ #if ETH_PAD_SIZE
+ pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */
+ #endif
+
+ memcpy((u8 *)((u8 *)p->payload), (u8 *)buffer, length);
+
+ #if ETH_PAD_SIZE
+ pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */
+ #endif
+ }
+ else
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_E("error: pbuf alloc failed the alloc length is %d",length);
+ }
+
+ return p;
+}
+
+FError FE1000ELwipPortTx(FE1000ELwipPort *instance_p, void *tx_buf)
+{
+ FASSERT(instance_p != NULL);
+ FASSERT(tx_buf != NULL);
+ err_t errval = ERR_OK;
+ struct pbuf *q;
+ struct pbuf *p = tx_buf;
+ FError ret;
+ u32 bytes_left_to_copy = 0;
+ FE1000ECtrl *e1000e_p = &instance_p->instance;
+
+#if ETH_PAD_SIZE
+ pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */
+#endif
+
+ for (q = p; q != NULL; q = q->next)
+ {
+ /* Get bytes in current lwIP buffer */
+ bytes_left_to_copy = q->len;
+ FE1000E_LWIP_PORT_E1000E_PRINT_D("bytes_left_to_copy = %d", bytes_left_to_copy);
+
+ /* Copy the remaining bytes */
+ memcpy(&e1000e_p->txb[e1000e_p->tx_ring.desc_idx], q->payload, bytes_left_to_copy);
+ FE1000E_LWIP_PORT_E1000E_PRINT_D("memcpy is ok!!!");
+ }
+
+#if ETH_PAD_SIZE
+ pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */
+#endif
+
+ ret = FE1000ESendFrame(e1000e_p, bytes_left_to_copy);
+
+ if (ret != FE1000E_SUCCESS)
+ {
+ errval = ERR_USE;
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("error errval = ERR_USE; FE1000ESendFrame");
+ goto error;
+ }
+ else
+ {
+ FE1000E_LWIP_PORT_E1000E_PRINT_I("FE1000ESendFrame is ok!!!");
+ }
+
+
+error:
+ return errval;
+}
+
+FE1000ELwipPort * FE1000ELwipPortGetInstancePointer(u32 FE1000ELwipPortInstanceID)
+{
+ FASSERT(FE1000ELwipPortInstanceID < FE1000E_NUM);
+
+ FE1000ELwipPort *instance_p;
+ instance_p = &fe1000e_lwip_port_instance[FE1000ELwipPortInstanceID];
+ return instance_p;
+}
+
+
+void FE1000ELwipPortStop(FE1000ELwipPort *instance_p)
+{
+ FASSERT(instance_p != NULL);
+
+ /* close mac controler */
+ FE1000EStop(&instance_p->instance);
+}
+
+void FE1000ELwipPortStart(FE1000ELwipPort *instance_p)
+{
+ FASSERT(instance_p != NULL);
+
+ /* start mac */
+ FE1000EStart(&instance_p->instance);
+}
+
diff --git a/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.h b/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.h
new file mode 100644
index 0000000000000000000000000000000000000000..0686a195f10ecbe508be52e1567f4f508fd15242
--- /dev/null
+++ b/third-party/lwip-2.1.2/ports/e1000e/e1000e_lwip_port.h
@@ -0,0 +1,149 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: e1000e_lwip_port.h
+ * Date: 2025-01-06 14:59:30
+ * LastEditTime: 2025-01-06 14:59:30
+ * Description: This file is e1000e portable code for lwip port input,output,status check.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2025/01/06 first release
+ */
+#ifndef FE1000E_LWIP_PORT_H
+#define FE1000E_LWIP_PORT_H
+
+#include "e1000e.h"
+#include "fkernel.h"
+#include "ferror_code.h"
+
+#define FREERTOS_E1000E_INIT_ERROR FT_CODE_ERR(ErrModPort, 0, 0x1)
+#define FREERTOS_E1000E_PARAM_ERROR FT_CODE_ERR(ErrModPort, 0, 0x2)
+#define FREERTOS_E1000E_NO_VALID_SPACE FT_CODE_ERR(ErrModPort, 0, 0x3)
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FE1000E_RX_BDSPACE_LENGTH 0x20000 /* default set 64KB*/
+#define FE1000E_TX_BDSPACE_LENGTH 0x20000 /* default set 64KB*/
+
+#define FE1000E_RX_PBUFS_LENGTH 128
+#define FE1000E_TX_PBUFS_LENGTH 128
+
+#define FE1000E_RX_DESCRIPTORS 8
+#define FE1000E_TX_DESCRIPTORS 8
+
+#define FE1000E_RX_BUFFER_SIZE 2048
+#define FE1000E_TX_BUFFER_SIZE 2048
+
+
+#define FE1000E_MAX_HARDWARE_ADDRESS_LENGTH 6
+
+/* configuration */
+#define FE1000E_LWIP_PORT_CONFIG_JUMBO BIT(0)
+#define FE1000E_LWIP_PORT_CONFIG_MULTICAST_ADDRESS_FILITER BIT(1) /* Allow multicast address filtering */
+#define FE1000E_LWIP_PORT_CONFIG_COPY_ALL_FRAMES BIT(2) /* enable copy all frames */
+#define FE1000E_LWIP_PORT_CONFIG_CLOSE_FCS_CHECK BIT(3) /* close fcs check */
+#define FE1000E_LWIP_PORT_CONFIG_UNICAST_ADDRESS_FILITER BIT(5) /* Allow unicast address filtering */
+
+/* Phy */
+#define FE1000E_PHY_SPEED_10M 10
+#define FE1000E_PHY_SPEED_100M 100
+#define FE1000E_PHY_SPEED_1000M 1000
+#define FE1000E_PHY_SPEED_10G 10000
+
+
+#define FE1000E_PHY_HALF_DUPLEX 0
+#define FE1000E_PHY_FULL_DUPLEX 1
+
+#define FE1000E_RECV_MAX_COUNT 10
+
+/* Byte alignment of BDs */
+#define BD_ALIGNMENT (FE1000E_DMABD_MINIMUM_ALIGNMENT*2)
+
+/* frame queue */
+#define PQ_QUEUE_SIZE 4096
+
+typedef struct
+{
+ uintptr data[PQ_QUEUE_SIZE];
+ int head, tail, len;
+} PqQueue;
+
+typedef enum
+{
+ FE1000E_LWIP_PORT_INTERFACE_SGMII = 0 ,
+ FE1000E_LWIP_PORT_INTERFACE_RMII ,
+ FE1000E_LWIP_PORT_INTERFACE_RGMII ,
+ FE1000E_LWIP_PORT_INTERFACE_USXGMII ,
+ FE1000E_LWIP_PORT_INTERFACE_LENGTH
+}FE1000ELwipPortInterface;
+
+typedef struct
+{
+ volatile struct FE1000ETxDesc tx[FE1000E_TX_DESCRIPTORS] __aligned(16);
+ volatile struct FE1000ERxDesc rx[FE1000E_RX_DESCRIPTORS] __aligned(16);
+
+ uint8_t txb[FE1000E_TX_DESCRIPTORS * FE1000E_TX_BUFFER_SIZE];
+ uint8_t rxb[FE1000E_RX_DESCRIPTORS * FE1000E_RX_BUFFER_SIZE];
+} FE1000ENetifBuffer;
+
+typedef struct
+{
+ u32 instance_id;
+ FE1000ELwipPortInterface interface;
+ u32 autonegotiation; /* 1 is autonegotiation ,0 is manually set */
+ u32 phy_speed; /* FE1000E_PHY_SPEED_XXX */
+ u32 phy_duplex; /* FE1000E_PHY_XXX_DUPLEX */
+} FE1000ELwipPortConfig;
+
+typedef struct
+{
+ FE1000ECtrl instance;
+ FE1000ELwipPortConfig e1000e_port_config;
+
+ FE1000ENetifBuffer buffer;
+
+ /* queue to store overflow packets */
+ PqQueue recv_q;
+ PqQueue send_q;
+
+ /* configuration */
+ u32 feature;
+
+ struct LwipPort *stack_pointer; /* Docking data stack data structure */
+ u8 hwaddr[FE1000E_MAX_HARDWARE_ADDRESS_LENGTH];
+ u32 recv_flg; /* Indicating how many receive interrupts have been triggered */
+ volatile u8 ri_is_call; /* Indicates that frame reception is complete, and the receive interrupt function is called */
+}FE1000ELwipPort;
+
+FE1000ELwipPort * FE1000ELwipPortGetInstancePointer(u32 FE1000ELwipPortInstanceID);
+FError FE1000ELwipPortInit(FE1000ELwipPort *instance_p);
+void *FE1000ELwipPortRx(FE1000ELwipPort *instance_p);
+FError FE1000ELwipPortTx(FE1000ELwipPort *instance_p,void *tx_buf);
+void FE1000ELwipPortStop(FE1000ELwipPort *instance_p);
+void FE1000ELwipPortStart(FE1000ELwipPort *instance_p);
+void ResetDma(FE1000ELwipPort *instance_p);
+enum lwip_port_link_status FE1000EPhyReconnect(struct LwipPort *xmac_netif_p);
+enum lwip_port_link_status FE1000EPhyStatus(struct LwipPort *e1000e_netif_p);
+void FE1000ERecvHandler(void *arg);
+
+int FE1000ELwipPortRxComplete(FE1000ELwipPort *instance_p);
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
diff --git a/third-party/lwip-2.1.2/ports/lwip_port.c b/third-party/lwip-2.1.2/ports/lwip_port.c
index bdd61bb89944a628be9b7da7d80f5573ee6268cb..f92c3ebd3d8c7457e60c7324e5b1de5cda8f4bfa 100644
--- a/third-party/lwip-2.1.2/ports/lwip_port.c
+++ b/third-party/lwip-2.1.2/ports/lwip_port.c
@@ -13,7 +13,7 @@
*
* FilePath: lwip_port.c
* Date: 2022-10-25 02:18:08
- * LastEditTime: 2022-10-25 02:18:09
+ * LastEditTime: 2025-01-06 02:18:09
* Description: This file is part of lwip port. This file comtains the functions to Initialize,input,stop,dhcp lwip stack.
*
* Modify History:
@@ -21,6 +21,7 @@
* ----- ------ -------- --------------------------------------
* 1.0 huanghe 2022/10/20 first release
* 1.1 liuzhihong 2022/11/7 function and variable naming adjustment
+ * 1.2 huangjin 2025/01/06 add e1000e
*/
#include
@@ -93,6 +94,10 @@ extern err_t ethernetif_xmac_init(struct netif *netif);
#define SEMAPHORE_INITIALCOUNT 0
#endif
+#if defined(CONFIG_LWIP_E1000E)
+extern err_t ethernetif_e1000e_init(struct netif *netif);
+#endif
+
#ifndef SEMAPHORE_MAXCOUNT
#define SEMAPHORE_MAXCOUNT 1
#endif
@@ -142,6 +147,15 @@ struct netif *LwipPortAdd(struct netif *netif,
#else
LWIP_PORT_ERROR("LWIP_PORT_TYPE_GMAC is not activated ");
return NULL;
+#endif
+ }
+ else if(user_config->driver_type == LWIP_PORT_TYPE_E1000E)
+ {
+#if defined(CONFIG_LWIP_E1000E)
+ fun = ethernetif_e1000e_init;
+#else
+ LWIP_PORT_ERROR("LWIP_PORT_TYPE_E1000E is not activated ");
+ return NULL;
#endif
}
else
diff --git a/third-party/lwip-2.1.2/ports/lwip_port.h b/third-party/lwip-2.1.2/ports/lwip_port.h
index 956ea9013cf905b7ae5d134e7933977eb7feef1a..2685b330f1b5e98ba0d90ba81063648ee0e025a5 100644
--- a/third-party/lwip-2.1.2/ports/lwip_port.h
+++ b/third-party/lwip-2.1.2/ports/lwip_port.h
@@ -13,7 +13,7 @@
*
* FilePath: lwip_port.h
* Date: 2022-10-25 02:18:02
- * LastEditTime: 2022-10-25 02:18:03
+ * LastEditTime: 2025-01-06 02:18:03
* Description: This file is part of lwip port. This file comtains the functions to Initialize,input,stop,dhcp lwip stack.
*
* Modify History:
@@ -21,6 +21,7 @@
* ----- ------ -------- --------------------------------------
* 1.0 huanghe 2022/10/20 first release
* 1.1 liuzhihong 2022/11/7 function and variable naming adjustment
+ * 1.2 huangjin 2025/01/06 add e1000e
*/
#ifndef __LWIP_PORT_H_
@@ -58,6 +59,7 @@ enum lwip_port_link_status {
/* driver type */
#define LWIP_PORT_TYPE_XMAC 0
#define LWIP_PORT_TYPE_GMAC 1
+#define LWIP_PORT_TYPE_E1000E 2
/* Mii interface */
#define LWIP_PORT_INTERFACE_RGMII 0
diff --git a/third-party/lwip-2.1.2/src.mk b/third-party/lwip-2.1.2/src.mk
index c9c708933ad8578ec09fec7dd0bde4da3e68ee01..6a037378c1a284a112f49bfe8aa7ca8fe85205d3 100644
--- a/third-party/lwip-2.1.2/src.mk
+++ b/third-party/lwip-2.1.2/src.mk
@@ -44,6 +44,10 @@ ifdef CONFIG_USE_BAREMETAL
ifdef CONFIG_LWIP_FXMAC
LWIP_FILES += $(wildcard ports/fxmac/*.c)
endif
+
+ ifdef CONFIG_LWIP_E1000E
+ LWIP_FILES += $(wildcard ports/e1000e/*.c)
+ endif
else
LWIP_FILES += $(wildcard ports/*.c)
endif
diff --git a/third-party/openamp/ports/phytium_rproc.c b/third-party/openamp/ports/phytium_rproc.c
index 32f8bf5d2290173a2d0756bc15530b671f4e6293..18df47e188144b437ba8d321b93f6d394d0a3a5f 100644
--- a/third-party/openamp/ports/phytium_rproc.c
+++ b/third-party/openamp/ports/phytium_rproc.c
@@ -185,7 +185,7 @@ PhytiumProcMmap(struct remoteproc *rproc, metal_phys_addr_t *pa,
lda = lpa;
if (!attribute)
- attribute = (MT_NORMAL|MT_P_RW_U_RW);
+ attribute = (MT_NORMAL|MT_P_RW_U_NA);/* default attribute */
mem = metal_allocate_memory(sizeof(*mem));
if (!mem)