# rdkcentral/meta-cmf-bananapi architecture

> Architecture diagram of the GitHub repository rdkcentral/meta-cmf-bananapi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rdkcentral/meta-cmf-bananapi
- Repository: https://github.com/rdkcentral/meta-cmf-bananapi

## Overview

This repository is a Yocto meta-layer carrying Banana Pi R4-specific changes for RDK broadband and AP-extender targets. The user-facing workflow is to select a machine/distro configuration and build a target image; the layer supplies board settings and recipe customizations for that image. Its major branches cover CCSP management, Wi-Fi/connectivity, and platform/kernel support. The README is brief and sampled source is limited, so the graph shows documented configuration selection and groups of provisions, not assumed runtime call chains.

Main entry points: [`conf/distro`](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/conf/distro) (Distro Settings), [`conf/layer.conf`](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/layer.conf) (Layer Configuration), [`conf/machine/bananapi4-rdk-broadband.conf`](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband.conf) (Broadband Target), [`conf/machine/bananapi4-rdk-broadband-ap-extender.conf`](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband-ap-extender.conf) (AP Extender Target)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_target["Board Targets"]
  node_broadband["Broadband Target"]
  node_extender["AP Extender Target"]
  node_distro["Distro Settings"]
end

subgraph group_management["Gateway Management"]
  node_ccsp["CCSP Customizations"]
  node_ccsp_hal["CCSP HAL"]
  node_webcfg["Web Configuration"]
end

subgraph group_connectivity["Connectivity"]
  node_wifi["Wi-Fi Stack"]
  node_hostap["Hostap Customizations"]
  node_connectivity["Connectivity Services"]
end

subgraph group_platform["Platform Support"]
  node_kernel["Kernel Support"]
  node_boot["Boot Firmware"]
  node_matter["Matter Provider"]
  node_system["System Integration"]
  node_layer["Layer Configuration<br/>[layer.conf]"]
end

node_builder(("Image Builder"))

node_builder -->|"selects target"| node_broadband
node_builder -->|"selects target"| node_extender
node_builder -->|"selects distro"| node_distro
node_layer -->|"provides settings"| node_distro

click node_broadband "https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband.conf"
click node_extender "https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband-ap-extender.conf"
click node_distro "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/conf/distro"
click node_ccsp "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/ccsp"
click node_ccsp_hal "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/hal"
click node_webcfg "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-support/webcfg"
click node_wifi "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-wifi"
click node_hostap "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/rdk-wifi-libhostap"
click node_connectivity "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-connectivity"
click node_kernel "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-kernel"
click node_boot "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-bsp/trusted-firmware-a"
click node_matter "https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/meta-rdk-mtk-bpir4/recipes-core/barton-core/files/matter/ExampleTestDACProvider.cpp"
click node_system "https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-rdkb"
click node_layer "https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/layer.conf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_broadband,node_extender,node_distro toneBlue
class node_ccsp,node_ccsp_hal,node_webcfg toneAmber
class node_wifi,node_hostap,node_connectivity toneMint
class node_kernel,node_boot,node_matter,node_system,node_layer toneRose
class node_builder toneIndigo
```

## Components

### Board Targets

- [Broadband Target](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband.conf): `conf/machine/bananapi4-rdk-broadband.conf`
- [AP Extender Target](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/machine/bananapi4-rdk-broadband-ap-extender.conf): `conf/machine/bananapi4-rdk-broadband-ap-extender.conf`
- [Distro Settings](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/conf/distro): `conf/distro`

### Gateway Management

- [CCSP Customizations](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/ccsp): `meta-rdk-mtk-bpir4/recipes-ccsp/ccsp`
- [CCSP HAL](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/hal): `meta-rdk-mtk-bpir4/recipes-ccsp/hal`
- [Web Configuration](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-support/webcfg): `meta-rdk-mtk-bpir4/recipes-support/webcfg`

### Connectivity

- [Wi-Fi Stack](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-wifi): `meta-rdk-mtk-bpir4/recipes-wifi`
- [Hostap Customizations](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-ccsp/rdk-wifi-libhostap): `meta-rdk-mtk-bpir4/recipes-ccsp/rdk-wifi-libhostap`
- [Connectivity Services](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-connectivity): `meta-rdk-mtk-bpir4/recipes-connectivity`

### Platform Support

- [Kernel Support](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-kernel): `meta-rdk-mtk-bpir4/recipes-kernel`
- [Boot Firmware](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-bsp/trusted-firmware-a): `meta-rdk-mtk-bpir4/recipes-bsp/trusted-firmware-a`
- [Matter Provider](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/meta-rdk-mtk-bpir4/recipes-core/barton-core/files/matter/ExampleTestDACProvider.cpp): `meta-rdk-mtk-bpir4/recipes-core/barton-core/files/matter/ExampleTestDACProvider.cpp`
- [System Integration](https://github.com/rdkcentral/meta-cmf-bananapi/tree/develop/meta-rdk-mtk-bpir4/recipes-rdkb): `meta-rdk-mtk-bpir4/recipes-rdkb`
- [Layer Configuration](https://github.com/rdkcentral/meta-cmf-bananapi/blob/develop/conf/layer.conf): `conf/layer.conf`

### Other components

- **Image Builder**

## Connections

- Image Builder → Broadband Target: selects target
- Image Builder → AP Extender Target: selects target
- Image Builder → Distro Settings: selects distro
- Layer Configuration → Distro Settings: provides settings
