This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 080e3b3539db6fec2724409545279c2281cb0e09 Author: dechao_gong <[email protected]> AuthorDate: Sun Sep 20 14:37:17 2026 +0800 Documentation/platforms/arm/rtl8730e: add RTL8730E documentation Add SoC-level and board-level RST documentation for RTL8730E: - SoC doc: highlights, ATF boot chain, memory map, vendor SDK info, build/flash commands, and supported features - Board doc: rtl8730e_evb features, nsh configuration guide, Wi-Fi STA/AP commands, SMP verification, and license exceptions Signed-off-by: dechao_gong <[email protected]> Assisted-by: Claude Sonnet 4.6 <[email protected]> --- .../boards/rtl8730e_evb/img/rtl8730e_evb.png | Bin 0 -> 1236479 bytes .../arm/rtl8730e/boards/rtl8730e_evb/index.rst | 84 ++++++++++++ Documentation/platforms/arm/rtl8730e/index.rst | 150 +++++++++++++++++++++ 3 files changed, 234 insertions(+) diff --git a/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/img/rtl8730e_evb.png b/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/img/rtl8730e_evb.png new file mode 100644 index 00000000000..8da70d8a79c Binary files /dev/null and b/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/img/rtl8730e_evb.png differ diff --git a/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst b/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst new file mode 100644 index 00000000000..d49982ba22f --- /dev/null +++ b/Documentation/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst @@ -0,0 +1,84 @@ +======== +RTL8730E_EVB +======== + +.. tags:: chip:rtl8730e, arch:arm, vendor:realtek + +.. image:: img/rtl8730e_evb.png + :align: center + :alt: PKE8730EAH-VD3-F32 evaluation board + +The RTL8730E_EVB is a Realtek RTL8730E evaluation board built around the +RTL8730EH (DDR2 64 MB, 16 MB NOR flash). NuttX runs on the dual-core Arm +Cortex-A32 application processor at up to 1.2 GHz as BL33 in the ATF boot +chain. See the :doc:`RTL8730E chip documentation <../../index>` for the full +SoC specifications and vendor-SDK dependency. + +Features +======== + +* RTL8730EH: dual-core Arm Cortex-A32 up to 1.2 GHz, 64 MB DDR2, 16 MB NOR + flash +* Symmetric Multi-Processing (SMP) on both Cortex-A32 cores +* Wi-Fi 6 (802.11ax) dual-band (2.4 / 5 GHz) station and SoftAP +* Bluetooth 5 dual-mode (BR/EDR + LE) +* SPI NOR flash with littlefs at ``/data`` +* LOG-UART console at 1500000 8N1 + +Supported in this NuttX port: + +* NSH shell over the LOG-UART console +* SMP on both Cortex-A32 cores; tasks are dispatched across CPU0 and CPU1 + by the NuttX SMP scheduler +* littlefs persistent storage mounted at ``/data`` (a dedicated SPI NOR flash + partition), backing the Wi-Fi key-value store +* Wi-Fi station and SoftAP through the ``wapi`` tool +* DHCP client (STA) and DHCP server (SoftAP) +* ``/etc`` read-only ROMFS populated from the board's ``src/etc/`` tree + +Configurations +============== + +Build and flash any of these per the :doc:`RTL8730E build instructions +<../../index>`. + +.. code:: console + + $ ./tools/configure.sh rtl8730e_evb:<config-name> + +nsh +--- + +Networking-enabled NSH with SMP, littlefs at ``/data``, and the ``wapi`` +Wi-Fi tool. The console is the LOG-UART at 1500000 8N1. + +Wi-Fi +===== + +Station (connect to an AP):: + + nsh> wapi mode wlan0 2 + nsh> wapi psk wlan0 <password> 3 + nsh> wapi essid wlan0 <ssid> 1 + nsh> renew wlan0 + +SoftAP (become an access point, with a DHCP server for clients):: + + nsh> wapi mode wlan0 3 + nsh> wapi psk wlan0 <password> 3 + nsh> wapi essid wlan0 <ssid> 1 + nsh> dhcpd_start wlan0 + +Stop the SoftAP with ``wapi essid wlan0 <ssid> 0``. + +License Exceptions +================== + +This board depends on Realtek vendor code that is not part of NuttX and is +subject to its own license: + +* The prebuilt Wi-Fi / Bluetooth firmware image and the Realtek ``ameba-rtos`` + SDK libraries/headers linked into the image. See the SDK's own license; the + SDK is auto-fetched and is not redistributed in the NuttX tree. +* The prebuilt ATF BL2 and BL32 binaries under ``prebuilt/`` are provided by + Realtek and are subject to the Realtek binary license included in the SDK. diff --git a/Documentation/platforms/arm/rtl8730e/index.rst b/Documentation/platforms/arm/rtl8730e/index.rst new file mode 100644 index 00000000000..26ca5382ec1 --- /dev/null +++ b/Documentation/platforms/arm/rtl8730e/index.rst @@ -0,0 +1,150 @@ +================ +Realtek RTL8730E +================ + +The Realtek RTL8730E is a high-performance, multi-core IoT SoC from the +Realtek Ameba family, targeting smart-display panels, automotive HMI, +video doorbells, industrial tablets and edge-AI gateways. + +NuttX runs on the **dual-core Arm Cortex-A32 application processor** at up to +**1.2 GHz**. The KM4 network core and the KM0 low-power core continue to run +the vendor wireless firmware independently; NuttX interacts with them through +the WHC (Wireless Host Controller) IPC interface. + +Highlights +========== + +- **CPU:** Dual-core Arm Cortex-A32 (Armv8-A ISA, AArch32), up to 1.2 GHz, + with NEON/FPU and hardware virtualisation extensions. +- **Co-processors:** Real-M300 (KM4, Cortex-M55-compatible, 333 MHz) for + networking; Real-M200 (KM0, Cortex-M23-compatible, 40 MHz) for power + management. +- **Memory:** 256 KB on-chip SRAM; up to 256 MB DDR3L or 64 MB DDR2 external + DRAM; 8/16/32 MB SPI NOR flash (varies by part). +- **Wireless:** Wi-Fi 6 (802.11ax), dual-band 2.4 GHz / 5 GHz, 1T1R; Bluetooth + 5 dual-mode (BR/EDR + LE) with LE Audio / Auracast support. +- **Peripherals:** UART ×4, SPI ×2, I2C ×3, I2S ×2, PDM, USB 2.0, MIPI-DSI, + SD/eMMC, PWM, ADC, RTC, watchdogs, GDMA, and 38–59 GPIO (package-dependent). +- **Security:** Secure Boot, Arm TrustZone-A, AES/SHA/RSA/ECDSA hardware + crypto, OTF flash decryption, TRNG, OTP, PSA Level 3 / FIPS 140-3. +- **Packages:** QFN100 (10×10 mm), DR-QFN144 (11×11 mm). +- **Temperature:** −40 °C to 105 °C. + +Boot Chain +========== + +The RTL8730E uses Arm Trusted Firmware (ATF). NuttX is packaged as BL33 +inside a Firmware Image Package (FIP) alongside the vendor BL2 and BL32 +(SP_MIN). The flash layout is:: + + boot.bin @ 0x08000000 — KM4 bootloader + app.bin @ 0x0803FC00 — KM0+KM4 firmware + ATF FIP (BL2+BL32+BL33=NuttX) + +The ``make flash`` target assembles the FIP and app.bin automatically; there +is nothing to prepare by hand (see `Building and Flashing`_ below). + +Memory +====== + +============ ============= ========= +Block Start Address Length +============ ============= ========= +DDR 0x6000\_0000 64 MB +============ ============= ========= + +NuttX executes entirely from DDR (loaded by ATF from NOR flash at boot). +The exact DDR size depends on the part; the RTL8730EH has 64 MB DDR2. +NuttX is loaded at 0x60300000 with the heap starting at 0x60400000. The +256 KB on-chip SRAM is partitioned among the KM4 and KM0 co-processors and +is not directly used by the CA32 NuttX image. + +Vendor SDK and Toolchain +======================== + +The build depends on Realtek's open ``ameba-rtos`` SDK (Wi-Fi / BT firmware +and low-level chip libraries) and the matching ``arm-none-eabi`` asdk +toolchain. Neither is part of the NuttX tree; both are fetched automatically: + +- **make** fetches them on the first ``make`` invocation (from its ``PREBUILD`` + step). +- **CMake** fetches them when you source ``. tools/ameba/env.sh <board>`` + before running ``cmake``. + +The SDK is a shallow ``git clone`` of the pinned revision of +``https://github.com/Ameba-AIoT/ameba-rtos.git`` into +``arch/arm/src/common/ameba/ameba-rtos`` (git-ignored) and is built +unmodified. Export ``AMEBA_SDK`` to use a local checkout instead. + +Building and Flashing +===================== + +Replace ``<board>`` with an actual board (e.g. ``rtl8730e_evb``) and ``<config>`` +with one of its configurations. The first build fetches the SDK and toolchain. + +With make +--------- + +.. code:: console + + $ ./tools/configure.sh <board>:<config> + $ make + +With CMake +---------- + +Source the Ameba environment once first so the correct asdk is on ``PATH``: + +.. code:: console + + $ . tools/ameba/env.sh <board> + $ cmake -B build -DBOARD_CONFIG=<board>:<config> -GNinja + $ cmake --build build + +Flashing +-------- + +Connect a USB-UART adapter and use the built-in flash target (baud defaults +to 1500000; override with ``AMEBA_BAUD``):: + + $ make flash AMEBA_PORT=/dev/ttyUSB0 # make build + $ AMEBA_PORT=/dev/ttyUSB0 cmake --build build --target flash # CMake build + +The flash target automatically: + +1. Packages ``nuttx.bin`` as BL33 into a FIP together with the prebuilt + ``bl2.bin`` and ``bl32.bin``. +2. Prepends the vendor KM0/KM4 firmware prefix to produce ``app.bin``. +3. Writes ``boot.bin`` and ``app.bin`` to the NOR flash via + ``AmebaFlash.py`` using the ``RTL8730E_NOR.rdev`` profile. + +**Serial console** — after flashing, connect to the LOG-UART at 1500000 8N1:: + + $ picocom -b 1500000 /dev/ttyUSB0 + +Configuration +============= + +.. code:: console + + $ make menuconfig # make build + $ cmake --build build -t menuconfig # CMake build + +Supported Features +================== + +- NSH over the LOG-UART console +- Symmetric Multi-Processing (SMP) on both Cortex-A32 cores +- littlefs persistent storage at ``/data`` on the SPI NOR flash, backing the + Wi-Fi key-value store +- Wi-Fi station (scan / connect) and SoftAP via the ``wapi`` tool +- Networking on NuttX's own TCP/IP stack, with DHCP client and DHCP server +- ``/etc`` read-only ROMFS populated from the board's ``src/etc/`` tree + +Boards +====== + +.. toctree:: + :glob: + :maxdepth: 1 + + boards/*/*
