NetHubQuickBringup

来自Bouffalo Lab Docs
张良留言 | 贡献2026年4月24日 (五) 13:48的版本 (Sync NetHub docs from local Markdown (2026-04-24))
跳转到导航 跳转到搜索

NetHub Quick Start

This document is for customers using NetHub for the first time. The goal is to get you to the currently supported bring-up path as quickly as possible.

NetHub SDIO Quick Start Demo

1. Start with the Current Support Matrix

Item Current status
Recommended end-to-end reference path SDIO
USB profile device-side backend implemented with USB ECM + USB ACM
SPI profile not implemented
USER virtual channel current in-tree end-to-end path is SDIO
Optional AT control solution available, but not required for data-only use cases
Low power currently BL618DG only

Read this table literally:

  • if you want the shortest successful path today, choose SDIO
  • if you are evaluating the new USB device-side backend, focus on the device profile and USB descriptors first
  • do not plan on SPI bring-up yet

2. Decide Whether You Need Only Data or Data Plus Control

NetHub core always focuses on the data plane first.

  • data-only products
    • keep nethub
    • do not depend on ATModule
    • host users simply use the exposed netdev path
  • data plus AT-style control products
    • optionally enable the example composition built around ATModule + bflbwifid + bflbwifictrl

The important boundary is:

  • nethub core does not directly depend on ATModule
  • ATModule is an optional example control consumer of the NetHub control-path facade

3. Choose the Host-Link Profile

The profile is selected at build time through exactly one CONFIG_NETHUB_PROFILE_* option.

3.1 SDIO

Recommended today.

What you get:

  • current in-tree reference data path
  • current in-tree host Linux stack
  • current in-tree USER virtual-channel path

3.2 USB

Use this when you specifically want the device-side USB backend.

Current device-side behavior:

  • data path through USB CDC ECM
  • control transport plumbing through USB CDC ACM

Current limitation:

  • the in-tree host Linux docs and nethub_vchan wrapper are still centered on the SDIO reference path

3.3 SPI

Not implemented yet.

4. Choose the Wi-Fi Backend

Default configuration:

  • CONFIG_WL80211 disabled
  • fhost selected

If you want wl80211, enable this in examples/wifi/nethub/defconfig:

CONFIG_WL80211=y

Notes:

  • fhost and wl80211 are mutually exclusive
  • current NetHub supports both device-side Wi-Fi backends

5. Device Build and Flash

Build:

cd examples/wifi/nethub

# BL616
make CHIP=bl616 BOARD=bl616dk

# BL616CL
make CHIP=bl616cl BOARD=bl616cldk

# BL618DG
make CHIP=bl618dg BOARD=bl618dgdk CPU_ID=ap

Flash example:

cd examples/wifi/nethub
make flash CHIP=bl618dg COMX=/dev/ttyUSB0

6. Important Configuration Switches

Main configuration file:

  • examples/wifi/nethub/defconfig

Important switches:

  • CONFIG_NETHUB=y
  • CONFIG_NETHUB_PROFILE_SDIO=y
  • CONFIG_NETHUB_PROFILE_USB=y
  • CONFIG_NETHUB_PROFILE_SPI=y
    • choose exactly one profile per build
  • CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=y
    • enable the optional example AT control solution
  • CONFIG_MR_VIRTUALCHAN=y
    • required for the current in-tree SDIO virtual-channel path
  • CONFIG_NETHUB_LOWPOWER_ENABLE=y
    • currently meaningful only on BL618DG

About CONFIG_NETHUB_AT_USE_VCHAN:

  • it still exists in the example configuration
  • it is best treated as an example or legacy SDIO control-path switch
  • do not document it as the core selector for all NetHub interfaces

Current default example facts:

  • CONFIG_NETHUB_PROFILE_SDIO=y
  • CONFIG_NETHUB_PROFILE_USB=n
  • CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=y
  • CONFIG_MR_VIRTUALCHAN=y
  • CONFIG_NETHUB_AT_USE_VCHAN=n
  • CONFIG_MR_TTY=n

7. Hardware Interface Pins

The pin tables below are the current default mappings used by the in-tree BSP board helpers.

Reference sources in the repository:

  • SDIO/USB pins
    • bsp/board/bl616dk/board_gpio.c
    • bsp/board/bl616cldk/board_gpio.c
    • bsp/board/bl618dgdk/board_gpio.c

7.1 Default SDIO Pins

These are the current board_sdh_gpio_init() mappings used by the BSP.

Pin Function BL616 / BL618 (bl616dk) BL618DG (bl618dgdk) BL616CL (bl616cldk)
SDIO_DAT2 GPIO10 GPIO43 GPIO6
SDIO_DAT3 GPIO11 GPIO44 GPIO7
SDIO_CMD GPIO12 GPIO45 GPIO8
SDIO_CLK GPIO13 GPIO46 GPIO9
SDIO_DAT0 GPIO14 GPIO47 GPIO10
SDIO_DAT1 GPIO15 GPIO48 GPIO11

Notes:

  • this is the current 4-bit SDIO reference wiring used by the NetHub SDIO path
  • the BSP configures these pins with `GPIO_FUNC_SDH | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1`
  • if you are doing first bring-up, use this exact mapping first before trying a custom board layout

7.2 Default USB Pins

The current USB profile uses the board's default USB differential pair.

Chip / Board family Default USB pins in current BSP Current BSP behavior Notes
BL616 / BL618 (bl616dk) board default USB port path current BSP enables USB clock in board.c, but does not expose a dedicated board_usb_gpio_init() helper treat this as the board's fixed default USB routing in the current example
BL616CL (bl616cldk) GPIO32, GPIO33 board_usb_gpio_init() configures the pair as analog pins current BSP documents the pair, not separate DP / DM labels
BL618DG (bl618dgdk) GPIO40, GPIO41 board_usb_gpio_init() configures the pair as analog pins current BSP documents the pair, not separate DP / DM labels

Notes:

  • for BL616CL and BL618DG, the BSP helper only tells us the USB pair used by the board, not which pin is D+ and which pin is D-
  • if you are wiring a custom board and need explicit DP / DM polarity, confirm it from the board schematic or chip/package documentation
  • for the current in-tree NetHub reference flow, USB is device-side bring-up work, while the full host reference stack is still centered on SDIO

8. Host Bring-Up Guidance

For the current in-tree host Linux reference stack, use:

  • bsp/common/msg_router/linux_host/userspace/nethub/README.md

Today that host stack is primarily the SDIO reference flow.

For USB projects, keep expectations aligned with current code status:

  • device-side ECM + ACM backend exists
  • host-side transport flattening into the same nethub_vchan behavior as SDIO is not fully documented or aligned in-tree yet

9. USER Virtual Channel Guidance

If you need private application messages between host and device:

  • device API: components/net/nethub/include/nethub_vchan.h
  • host API: bsp/common/msg_router/linux_host/userspace/nethub/virtualchan/nethub_vchan.h

Current reality:

  • end-to-end in-tree USER virtual channel is the SDIO path
  • the public device API is transport-neutral by design
  • the in-tree implementation behind it is still SDIO-backed today

10. Low-Power Note

CONFIG_NETHUB_LOWPOWER_ENABLE is currently supported only on BL618DG. The example configuration automatically disables it on other chips.

11. Where to Go Next