PebbleOS v4.44.0-199-g465b7d28c
Loading...
Searching...
No Matches
SF32LB52 LCPU

SiFli SF32LB52 low-power CPU. More...

Data Structures

struct  pbl_rproc_sf32lb52
 SF32LB52 LCPU. More...
 

Macros

#define PBL_RPROC_SF32LB52_DEFINE(sym, _name, _tx_chan, _rx_chan, _mem)
 Define and register the LCPU.
 

Detailed Description

SiFli SF32LB52 low-power CPU.

The LCPU runs the Bluetooth controller from ROM, which the driver configures, patches and calibrates on start. The controller exchanges HCI with the HCPU over byte rings signalled with a pair of doorbells; the LCPU to HCPU ring sits in LPSYS RAM, the HCPU to LCPU one in HCPU RAM reserved for it, whose address the driver hands to the ROM. The HCI transport takes the doorbells and the region from here:

PBL_RPROC_SF32LB52_DEFINE(s_lcpu, "lcpu", PBL_MBOX_CHAN(&s_mailbox1.ctrl, 0),
PBL_MBOX_CHAN(&s_mailbox2.ctrl, 0),
PBL_MEM_REGION(SF32LB52_HPSYS_MBOX_BUF_BASE, SF32LB52_MBOX_BUF_SIZE));
#define PBL_MEM_REGION(_base, _size)
Initializer of a struct pbl_mem_region.
Definition device.h:119
#define PBL_MBOX_CHAN(_ctrl,...)
Initializer of a struct pbl_mbox_chan.
Definition mbox.h:63
#define PBL_RPROC_SF32LB52_DEFINE(sym, _name, _tx_chan, _rx_chan, _mem)
Define and register the LCPU.
Definition sf32lb52.h:55

Data Structure Documentation

◆ pbl_rproc_sf32lb52

struct pbl_rproc_sf32lb52

SF32LB52 LCPU.

Data Fields
struct pbl_mem_region mem HCPU RAM reserved for the HCPU to LCPU ring (memory-region).
struct pbl_rproc rproc Remote processor.
struct pbl_mbox_chan rx_chan Doorbell from the LCPU (mboxes entry rx).
struct pbl_mbox_chan tx_chan Doorbell to the LCPU (mboxes entry tx).

Macro Definition Documentation

◆ PBL_RPROC_SF32LB52_DEFINE

#define PBL_RPROC_SF32LB52_DEFINE (   sym,
  _name,
  _tx_chan,
  _rx_chan,
  _mem 
)
Value:
const struct pbl_rproc_sf32lb52 sym = { \
.rproc = \
PBL_RPROC_INIT(sym, _name, pbl_rproc_sf32lb52_init, nullptr, &pbl_rproc_sf32lb52_ops), \
.tx_chan = _tx_chan, \
.rx_chan = _rx_chan, \
.mem = _mem, \
}; \
PBL_DEVICE_REGISTER(sym, &sym.rproc.dev)
struct pbl_rproc rproc
Remote processor.
Definition sf32lb52.h:32
SF32LB52 LCPU.
Definition sf32lb52.h:30
struct pbl_device dev
Device.
Definition remoteproc.h:55
#define PBL_RPROC_STATE_DEFINE(sym)
Define the state of a remote processor, for providers.
Definition remoteproc.h:67

Define and register the LCPU.

Parameters
symSymbol.
_nameDevice name.
_tx_chanDoorbell to the LCPU, a PBL_MBOX_CHAN().
_rx_chanDoorbell from the LCPU, a PBL_MBOX_CHAN().
_memHCPU RAM reserved for the HCPU to LCPU ring, a PBL_MEM_REGION().