Skip to content

nrf5x: add nRF54L support#2215

Open
nemethhh wants to merge 2 commits intoapache:masterfrom
nemethhh:feat/add-nrf54l-support
Open

nrf5x: add nRF54L support#2215
nemethhh wants to merge 2 commits intoapache:masterfrom
nemethhh:feat/add-nrf54l-support

Conversation

@nemethhh
Copy link
Copy Markdown

Add PHY support for nRF54L15, nRF54L10, and nRF54L05.

Based on PR #1949 by mkasenberg

This change adds:

  • nrf54l/phy.c: CCM SG-DMA encrypt/decrypt (FastDecryption mode), AAR SG-DMA address resolution, PPIB routing init, DPPI channel layout
  • nrf54l/phy_hw.h: peripheral aliases, inline hardware functions, CCM/AAR/ECB attribute constants
  • nrf54l/phy_ppi.h: DPPI channel definitions and subscribe/publish helpers
  • nrf52/phy_hw.h: extracted nRF52 inline hardware functions (pure lift-and-shift from ble_phy.c; no logic change)
  • src/phy_hw.h, src/phy_ppi.h: MCU dispatcher headers (route to nrf54l/, nrf53/, or nrf52/ based on MYNEWT_VAL_CHOICE(MCU_TARGET))
  • ble_phy.c: four nRF54L conditional blocks; nRF52/53 behavior unchanged
  • ble_hw.c: ECB SG-DMA path guarded by NRF_ECB_HAS_ECBDATAPTR
  • pkg.yml: nRF54L MCU_TARGET conditions for source_files and include_dirs
  • .github/targets/nordic_pca10156_{blehci,btshell}/: CI targets

BLE features enabled: 2M PHY, Coded PHY, LE encryption, LL privacy, extended advertising, periodic advertising, DLE, DTM. nRF52/53 behaviour is unchanged.

Tested on

Assisted-by: Claude:claude-4.7-opus

Add PHY support for nRF54L15, nRF54L10, and nRF54L05 (PCA10156 DK tested).

The nRF54L uses a fundamentally different peripheral architecture from
nRF52/53:
- DPPI cross-domain routing via PPIB bridges instead of PPI
- Scatter/gather DMA job lists for CCM, AAR, and ECB instead of flat
  memory pointers (INPTR/OUTPTR)
- TIMER10 as the PHY timer instead of RTC0
- CCM KEY and NONCE registers use reversed byte order

This change adds:
- nrf54l/phy.c: CCM SG-DMA encrypt/decrypt (FastDecryption mode),
  AAR SG-DMA address resolution, PPIB routing init, DPPI channel layout
- nrf54l/phy_hw.h: peripheral aliases, inline hardware functions,
  CCM/AAR/ECB attribute constants
- nrf54l/phy_ppi.h: DPPI channel definitions and subscribe/publish helpers
- nrf52/phy_hw.h: extracted nRF52 inline hardware functions (pure
  lift-and-shift from ble_phy.c; no logic change)
- src/phy_hw.h, src/phy_ppi.h: MCU dispatcher headers (route to
  nrf54l/, nrf53/, or nrf52/ based on MYNEWT_VAL_CHOICE(MCU_TARGET))
- ble_phy.c: four nRF54L conditional blocks; nRF52/53 behavior unchanged
- ble_hw.c: ECB SG-DMA path guarded by NRF_ECB_HAS_ECBDATAPTR
- pkg.yml: nRF54L MCU_TARGET conditions for source_files and include_dirs
- .github/targets/nordic_pca10156_{blehci,btshell}/: CI targets

BLE features enabled: 2M PHY, Coded PHY, LE encryption, LL privacy,
extended advertising, periodic advertising, DLE, DTM.
nRF52/53 behaviour is unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL Extra large PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants