RCP Mode (Controller Only on NWP)#

In RCP (Radio Co-Processor) mode, only the Bluetooth Low Energy (BLE) Controller runs on the Network Processor (NWP), and the BLE Host stack runs on the external host processor (typically an MPU running Linux or similar OS).

Note: RCP mode for BLE uses a Linux driver and is documented separately from WiSeConnect SDK. While WiSeConnect SDK does not support RCP mode for Wi-Fi, RCP mode for BLE is supported through the SiWT917 Linux driver.

Initialization in RCP Mode#

The BLE controller is brought up by loading the SiWT917 Linux driver; controller initialization is through HCI once the driver is loaded. Opermode and interface configuration (for example, SDIO, BLE/Wi‑Fi operating mode) are done when loading the driver (for example, through insmod parameters). For driver installation, bring-up steps, and BLE configuration, see Getting Started with SiWT917 in RCP Mode and the BLE Configuration and Linux Driver Setup subsections below.

RCP Mode Architecture#

RCP Architecture:

Figure: SoC Mode DiagramFigure: SoC Mode Diagram

Stack Location:

  • BLE Controller: Runs on NWP (Link Layer, Physical Layer)

  • BLE Host: Runs on external host (GAP, GATT, L2CAP, etc.)

  • Host Interface: HCI (Host Controller Interface). On Si917, RCP mode supports SDIO only (not SPI or UART).

Host Responsibilities:

  • BLE Host stack implementation

  • Application logic

  • HCI command/event handling

NWP Responsibilities:

  • BLE Controller functionality

  • Radio management

  • Link Layer operations

RCP Mode Characteristics#

Advantages:

  • Host Control: Full control over host stack implementation

  • Standard Interface: Uses standard HCI interface

  • Flexibility: Host can implement custom host stack features

  • Integration: Easier integration with existing host stack implementations

Considerations:

  • Host Stack Required: Host must implement BLE host stack

  • Complexity: More complex than NCP mode

  • Host Requirements: Requires capable host processor (MPU)

BLE Operations in RCP Mode#

Linux Driver Setup:

  • RCP mode requires the SiWT917 Linux driver (Open Source Driver - OSD)

  • Driver must be compiled and installed on the Linux host system

  • Driver handles HCI communication between Linux host stack and SiWx917 NWP controller

  • See Getting Started with SiWT917 in RCP Mode for driver installation and setup

HCI Interface:

  • Communication through standard Bluetooth HCI commands and events

  • On Si917 RCP, HCI runs over SDIO only

  • Linux Bluetooth stack (BlueZ) implements HCI command/event handling

  • Driver translates between Linux Bluetooth subsystem and SiWx917 controller

BLE Configuration: RCP mode BLE configuration is performed through Linux driver module parameters and kernel configuration:

  1. Enable Bluetooth Stack (Enable Bluetooth Stack):

    • Configure Linux kernel to include Bluetooth subsystem support

    • Enable required Bluetooth modules (RFCOMM, BNEP, CMTP, HIDP)

    • Compile and load Bluetooth kernel modules

  2. Common BLE Parameters (Common BLE Parameters):

    • Configure BLE RF type (internal/external)

    • Set BLE transmit power index (ble_tx_pwr_inx)

    • Configure BLE features through driver module parameters (insmod)

  3. BLE Gain Table (BLE Gain Table):

    • Program region-based maximum power values for BLE

    • Configure power levels for different regions/countries

  4. BLE Country Region (BLE Country Region):

    • Set BLE region independently from Wi-Fi region

    • Configure region-specific power and channel restrictions

  5. Power save mode: Vendor HCI commands are available to configure BLE power save (for example, enable/disable, ULP/LP mode, sleep duration). See Power Save Modes and Configuration in the RCP developer documentation.

Event Handling:

  • Controller events received through HCI from SiWx917 NWP

  • Linux Bluetooth stack (BlueZ) processes HCI events

  • Application receives processed events through Linux Bluetooth APIs (DBus, BlueZ APIs)

Reference: See RCP Mode BLE Configuration Overview for complete BLE configuration guidance in RCP mode.


APIs Used in This Section#

Topic

APIs / symbols

Reference

Driver load and module parameters

insmod, ble_tx_pwr_inx

Getting Started with SiWT917 in RCP Mode, Common BLE Parameters

Linux Bluetooth stack

Bluetooth subsystem in kernel; protocol and profile support as required by the application

Enable Bluetooth Stack

HCI

Standard Bluetooth HCI commands and events; vendor HCI commands for BLE power save (ULP/LP mode, sleep duration)

Power Save Modes and Configuration