Skip to content

[wip] Add support for nRF54H20 #1901

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions nimble/controller/src/ble_ll.c
Original file line number Diff line number Diff line change
Expand Up @@ -2006,7 +2006,9 @@ void
ble_transport_ll_init(void)
{
/* Tell the host that we are ready to receive packets */
#if MYNEWT_VAL(BLE_LL_HCI_NOOP_AFTER_INIT)
ble_ll_hci_send_noop();
#endif
}

int
Expand Down
8 changes: 8 additions & 0 deletions nimble/controller/syscfg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,11 @@ syscfg.defs:
Enables LLCP tracing using HCI vendor-specific events.
value: '0'

BLE_LL_HCI_NOOP_AFTER_INIT:
description: >
Enables sending the NO-OP opcode HCI event after LL init.
value: '1'

# Configuration for LL supported features.
#
# There are a total 8 features that the LL can support. These can be found
Expand Down Expand Up @@ -643,6 +648,9 @@ syscfg.vals.BLE_LL_ISO_BROADCASTER:
syscfg.vals.'!BLE_HOST && !BABBLESIM':
BLE_LL_HCI_VS_EVENT_ON_ASSERT: 1

syscfg.vals.'BLE_TRANSPORT_HS=="ipc"':
BLE_LL_HCI_NOOP_AFTER_INIT: 0

syscfg.restrictions:
- BLE_TRANSPORT_LL == "native"
- BLE_LL_PUBLIC_DEV_ADDR <= 0xffffffffffff
Expand Down
61 changes: 61 additions & 0 deletions nimble/drivers/nrf54h20/include/ble/xcvr.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

#ifndef H_BLE_XCVR_
#define H_BLE_XCVR_

#ifdef __cplusplus
extern "C" {
#endif

#include <syscfg/syscfg.h>

#define XCVR_RX_RADIO_RAMPUP_USECS (40)
#define XCVR_TX_RADIO_RAMPUP_USECS (40)

/* We need to account for the RTC compare issue, we want it to be 5 ticks.
* In case FEM turn on time is more than radio enable (i.e. 2 ticks) we want
* to add 1 more tick to compensate for additional delay.
*
* TODO this file should be refactored...
*/
#if (MYNEWT_VAL(BLE_FEM_PA) && (MYNEWT_VAL(BLE_FEM_PA_TURN_ON_US) > 60)) || \
(MYNEWT_VAL(BLE_FEM_LNA) && (MYNEWT_VAL(BLE_FEM_LNA_TURN_ON_US) > 60))
#define XCVR_PROC_DELAY_USECS (183)
#else
#define XCVR_PROC_DELAY_USECS (153)
#endif
#define XCVR_RX_START_DELAY_USECS (XCVR_RX_RADIO_RAMPUP_USECS)
#define XCVR_TX_START_DELAY_USECS (XCVR_TX_RADIO_RAMPUP_USECS)
#define XCVR_TX_SCHED_DELAY_USECS \
(XCVR_TX_START_DELAY_USECS + XCVR_PROC_DELAY_USECS)
#define XCVR_RX_SCHED_DELAY_USECS \
(XCVR_RX_START_DELAY_USECS + XCVR_PROC_DELAY_USECS)

/*
* Define HW whitelist size. This is the total possible whitelist size;
* not necessarily the size that will be used (may be smaller)
*/
#define BLE_HW_WHITE_LIST_SIZE (8)

#ifdef __cplusplus
}
#endif

#endif /* H_BLE_XCVR_ */
31 changes: 31 additions & 0 deletions nimble/drivers/nrf54h20/pkg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

pkg.name: nimble/drivers/nrf54h20
pkg.description: PHY for nRF54h20
pkg.author: "Apache Mynewt <dev@mynewt.apache.org>"
pkg.homepage: "https://mynewt.apache.org/"
pkg.keywords:
- ble
- bluetooth

pkg.apis: ble_driver
pkg.deps:
- nimble
- nimble/controller
Loading
Loading