dcgong2917 opened a new pull request, #20202:
URL: https://github.com/apache/nuttx/pull/20202
## Summary
Add initial NuttX support for the Realtek RTL8730E, a tri-core SoC
(dual Cortex-A32 "CA32" + Cortex-M33 KM4 + Cortex-M23 KM0) targeting
Wi-Fi 6 / Bluetooth 5.0 applications. NuttX runs on the CA32 application
processor; KM4 and KM0 remain as vendor firmware, with KM4 acting as
the Wi-Fi network processor over the WHC IPC bus.
- arch/arm/src/rtl8730e/: CA32 boot / exception vectors / MMU + page
allocator / heap; LOGUART console with RX delivered via KM0-owned IPC
interrupt (GIC SPI 24) and shared SRAM ring; IRQ controller, system
timer, and serial driver.
- arch/arm/src/rtl8730e/rtl8730e_flash_stubs.c: copies flash_init_para
from KM4 before any SPI NOR access; without it lib_rom.a hangs waiting
for SPIC. SPI NOR MTD wired to littlefs at /data.
- arch/arm/src/rtl8730e/rtl8730e_wifi_stubs.c,
arch/arm/src/common/ameba/ameba_wifi_init.c: WHC-host Wi-Fi netdev
(STA + SoftAP). The NP pushes its real efuse MAC to the host at
wifi-on time; the driver caches it so the netdev MAC and the NP 802.11
RX filter agree (fixes DHCP OFFER loss caused by MAC divergence).
- arch/arm/src/rtl8730e/rtl8730e_smp.c: Core1 HSYS power-on sequence
before PSCI CPU_ON; CONFIG_MM_DEFAULT_ALIGNMENT=64 to satisfy WHC skb
cache-line requirement (without it SMP DDR sharing corrupts skb buf
pointers under concurrent load).
- arch/arm/src/rtl8730e/CMakeLists.txt: full SDK build machinery with
per-toolchain version guard; libameba_fwlib.a / libameba_wifi.a
compiled with isolated flags to avoid NuttX header conflicts.
- boards/arm/rtl8730e/rtl8730e_evb: board Kconfig, nsh defconfig
(dual-core SMP, Wi-Fi STA + SoftAP, DHCP client + server, littlefs
/data, iperf2), board.h pin table, boot and bringup hooks.
- tools/nxstyle.c: whitelist RTL8730E SDK mixed-case symbol prefixes
(CPU_, Diag, TRNG_, System_, vPort) that cannot be renamed without
breaking linkage against the vendor blob; extends the existing Ameba
SDK comment block.
- Documentation/platforms/arm/rtl8730e/: SoC overview (ATF boot chain,
memory map, vendor SDK info, build/flash procedure) and EVB board page.
## Impact
- New platform: arch/arm/src/rtl8730e/ and boards/arm/rtl8730e/ are
entirely new directories; no existing platform is modified.
- arch/arm/src/common/ameba/: three files extended with RTL8730E-specific
guards (CONFIG_AMEBASMART); no behavioural change for RTL8721Dx,
RTL8720F, or RTL8721F builds.
- tools/nxstyle.c: five new SDK prefixes added to the whitelist inside
the existing Ameba comment block; no behavioural change for any other
platform.
- arch/arm/Kconfig and boards/Kconfig: new ARCH_CHIP_RTL8730E and
ARCH_BOARD_RTL8730E_EVB entries appended; no existing entries changed.
## Testing
Built for `rtl8730e_evb:nsh` with both make and cmake, verified on
hardware (RTL8730E EVB):
- NSH boots to prompt over LOG-UART.
- Both CA32 cores online: /proc/cpuinfo shows processor 0 and processor 1;
getprime 2 runs two threads in parallel (~573 ms).
- Wi-Fi STA: scan → connect → DHCP → ping pass end-to-end; ifconfig
shows real Realtek OUI MAC (00:e0:4c:..).
- renew wlan0 stable with SMP enabled (skb alignment fix verified).
- littlefs /data mounts and persists across reboot.
- tools/checkpatch.sh clean on all new/changed sources (0 error: lines);
full build produces nuttx.bin with no new warnings.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]