lupyuen opened a new pull request, #15921: URL: https://github.com/apache/nuttx/pull/15921
## Summary This PR adds support for the ESWIN EIC7700X RISC-V SoC. This will be used by the upcoming port of NuttX for PINE64 StarPro64 SBC. Most of the code was derived from NuttX for SOPHGO SG2000 SoC. [The modified code is explained here](https://lupyuen.github.io/articles/starpro64#appendix-port-nuttx-to-starpro64) ### Modified Files in arch/risc-v `Kconfig`: Added ARCH_CHIP_EIC7700X for EIC7700X SoC ### New Files in arch/risc-v `include/eic7700x/chip.h`: EIC7700X Definitions `include/eic7700x/irq.h`: External Interrupts `src/eic7700x/chip.h`: Interrupt Stack Macro `src/eic7700x/eic7700x_allocateheap.c`: Kernel Heap `src/eic7700x/eic7700x_head.S`: Linux Header and Boot Code `src/eic7700x/eic7700x_irq.c`: Configure Interrupts `src/eic7700x/eic7700x_irq_dispatch.c`: Dispatch Interrupts `src/eic7700x/eic7700x_memorymap.h`: Memory Map `src/eic7700x/eic7700x_mm_init.c`, `eic7700x_mm_init.h`: Memory Mgmt `src/eic7700x/eic7700x_pgalloc.c`: Page Allocator `src/eic7700x/eic7700x_start.c`: Startup Code `src/eic7700x/eic7700x_timerisr.c`: Timer Interrupt `src/eic7700x/hardware/eic7700x_memorymap.h`: PLIC and UART Base Address `src/eic7700x/hardware/eic7700x_plic.h`: PLIC Register Addresses `src/eic7700x/Kconfig`: EIC7700X Config `src/eic7700x/Make.defs`: Makefile ## Documentation `platforms/risc-v/eic7700x/index.rst`: Added EIC7700X SoC ## Impact This PR is needed for the upcoming port of NuttX for PINE64 StarPro64 SBC. No impact on existing code, since the EIC7700X source files are not used by existing code. ## Testing We tested the EIC7700X source files on PINE64 StarPro64 SBC. NuttX boots correctly to NSH Shell and passes OSTest: - [Board Source Code for StarPro64](https://github.com/lupyuen2/wip-nuttx/pull/94/files) - [NuttX Log for StarPro64](https://gist.github.com/lupyuen/9bfa9f0d023b92f5f20a61d07c2c1c15) - [Build Log for StarPro64](https://gist.github.com/lupyuen/91d74fc9e6641edf69adc56a9386b0ca) ```text NuttShell (NSH) NuttX-12.4.0 nsh> uname -a NuttX 12.4.0 14a291013c Mar 2 2025 08:34:00 risc-v starpro64 nsh> free total used free maxused maxfree nused nfree name 2057216 11632 2045584 33320 2042800 38 6 Kmem 20971520 720896 20250624 20250624 Page nsh> ls -l /dev /dev: crw-rw-rw- 0 console crw-rw-rw- 0 null brw-rw-rw- 16777216 ram0 crw-rw-rw- 0 ttyS0 crw-rw-rw- 0 zero nsh> ps PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND 0 0 0 FIFO Kthread - Ready 0000000000000000 0003056 0000808 26.4% Idle_Task 1 0 100 RR Kthread - Waiting Semaphore 0000000000000000 0001968 0000720 36.5% lpwork 0x80400100 0x80400148 3 3 100 RR Task - Running 0000000000000000 0003008 0001872 62.2% /system/bin/init nsh> hello Hello, World!! nsh> getprime Set thread priority to 10 Set thread policy to SCHED_RR Start thread #0 thread #0 started, looking for primes < 10000, doing 10 run(s) thread #0 finished, found 1230 primes, last one was 9973 Done getprime took 134 msec nsh> ostest ... Final memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 81000 81000 ordblks 2 3 mxordblk 7cff8 78ff8 uordblks 2660 4570 fordblks 7e9a0 7ca90 user_main: Exiting ostest_main: Exiting with status 0 nsh> ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org