0.4.0
版本发布时间: 2023-01-06 10:36:50
Nuclei-Software/nuclei-sdk最新发布版本:0.6.0(2024-07-01 10:42:53)
This is release version 0.4.0
of Nuclei SDK.
-
Application
- Add
app_demo_pmp
application to demostrate pmp feature. - Add
app_demo_spmp
application to demostrate smode pmp feature, spmp is present when TEE feature is enabled. - Add
demo_smode_eclic
application to demonstrate ECLIC interrupt with TEE feature of Nuclei Processor. - Changed
test/core
test case due toEXC_Frame_Type
struct member name changes. - Fix XS bit set bug in demo_nice application.
- Add return value in smphello application.
- Add
-
NMSIS
- Add
__CTZ
count trailing zero API in core_compatiable.h - Add
__switch_mode
switch risc-v privilege mode API in core_feature_base.h - Add
__enable_irq_s
,__disable_irq_s
smode irq control(on/off) API in core_feature_base.h - Add
__set_medeleg
exception delegation API in core_feature_base.h - Update and add smode eclic related API in core_feature_eclic.h only present when TEE_PRESENT=1
- Optimize APIs of PMP and add
__set_PMPENTRYx
and__get_PMPENTRYx
API for easily PMP configuration in core_feature_pmp.h - Add spmp related APIs for smode pmp hardware feature when __SPMP_PRESENT=1
- Add per-hart related APIs for systimer such as
SysTimer_SetHartCompareValue
,SysTimer_SetHartSWIRQ
and etc in core_feature_timer.h, this is mainly needed when configure timer in smode per hart - Add TEE related csr macros in riscv_encoding.h
- Add iregion offset macros and N3/VP mask in riscv_encoding.h and use it in demosoc/evalsoc implementation.
- Add
ICachePresent/DCachePresent
API - Don't sub extra cost for BENCH_xxx API
- Update NMSIS Core/DSP/NN and prebuilt library to version 1.1.0
- Add
-
Build System
- Add
intexc_<Device>_s.S
asm file into compiling for evalsoc and demosoc - Show
ARCH_EXT
information when run make info - Don't specify elf filename when run gdb, only specify it when do load to avoid some gdb internal error
- Add
BOOT_HARTID
andJTAGSN
support, which need to be done in SoC support code and build system
- Add
-
SoC
-
Add smode interrupt and exception handling framework for evalsoc and demosoc, for details see code changes.
- A new section called
.vector_s
is added(required in linker script) to store smode vector table which is initialized insystem_<Device>.c
- A new
intexc_<Device>_s.S
asm source file is added to handle s-mode interrupt and exception - A default smode exception register and handling framework is added in
system_<Device>.c
-
API Changes:
Exception_DumpFrame
parameters changed to add mode passing insystem_<Device>.c/h
-
API Changes:
EXC_Frame_Type
struct member mcause/mepc changed to cause/epc insystem_<Device>.c/h
- A new section called
-
Print
\0
instead of\r
when do simulation exit for better integration in Nuclei Studio QEMU simulation. -
Add
clock
stub function for libncrt library in demosoc/evalsoc/gd32vf103 SoC support software. -
Add
sram
download mode for evalsoc/demosoc, for details directly check the linker script -
Change default
__ICACHE_PRESENT/__DCACHE_PRESENT
to 1 for evalsoc/demosoc, when evalsoc/demosoc startup, it will enable i/d cache if it really present. -
Update openocd configuration files to remove deprecated command which might not be support in future
-
Merge smp and single core openocd config into one configuration for evalsoc and demosoc
-
Add BOOT_HARTID support for evalsoc and demosoc, which is used to specify the boot hartid, used together with SMP can support SMP or AMP run mode
-
Add JTAGSN support to specify a unified hummingbird jtag debugger via
adapter serial
-
For AMP support, we can work together with Nuclei Linux SDK, see https://github.com/Nuclei-Software/nsdk_ampdemo
-
Add NPK support for SMP/AMP working mode, and sram download mode
-
-
CI
- Start to use Nuclei QEMU/Toolchain/OpenOCD 2022.12 in daily ci for gitlab runner
-
Tools
- Add
httpserver.py
tool to create a http server on selected folder, good to preview built documentation. - Fix many issues related to nsdk_cli scripts when integrated using fpga hardware ci flow.
- Support extra parsing benchmark python script for nsdk_cli tools, see 5f546fa0
- Add
nsdk_runcpu.py
tool to run fpga baremetal benchmark
- Add
-
Documentation
- Add
make preview
to preview build documentation.
- Add
Full Changelog: https://github.com/Nuclei-Software/nuclei-sdk/compare/0.3.9...0.4.0