-
Notifications
You must be signed in to change notification settings - Fork 8.4k
Bluetooth: Controller: Add NRF_CCM support in nRF54L15 SoC #83394
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
Bluetooth: Controller: Add NRF_CCM support in nRF54L15 SoC #83394
Conversation
e0b2f53 to
0545bdc
Compare
0545bdc to
5813874
Compare
5813874 to
0e2e8d1
Compare
f25db55 to
b66e86e
Compare
This commit addresses two bugs in use of single timer s/w switch implementation, incorrect aux_offset in subsequent ADV_EXT_IND and ISO receiver failing to receive second or greater BIS subevents. Fix radio_tmr_start_now implementation to consider the initial latency in starting the event timer in single timer use mode. This fixes the incorrect aux_offset in ADV_EXT_IND PDUs. Fix radio_tmr_start_us implementation for single timer use, as the timer is reset on every radio end, and hence the requested start_us has to be adjusted for the accumulated last_end_pdu_us value. This fixes the BIS subevent receptions. Also, fix the maximum radio ISR latency value used in radio_tmr_start_us to consider the maximum Rx chain delay and maximum radio ramp up delays. 80 us + ~30 us + ~40 us should be able to meet the 150 us tIFS duration. Relates to commit bcd28e0 ("Bluetooth: Controller: Fix sw switch single timer for spurious TXEN/RXEN"). Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix single timer s/w switch when using DPPI on nRF53/54L where the previous compare register index is incorrect when the base index is a odd numbered DPPI used. The issue is discovered as failing ISO Receiver sample with Coded PHY and single timer use, where the compare base is configured to use the DPPI 3 (instead of 4). Upstream samples do not use single timer for s/w switch, the issue is discovered when adding support for nRF54L which has to use single timer due to the radio only having a single timer. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix single timer s/w switch base indices from overlapping with sample index. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add radio_sim_nrf54l.h file, which for now a copy of the SoC radio_nrf54lx.h file. This is added for having separate simulation model dependent timing values and specific implementation details. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix nRF5 radio and event timer abstractions for some that where hard coded compared to use of the ones defined in the resources header file. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Restrict the jitter considered in the PDU reception in the subevents of ISO Sync Receiver. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
…timer" This reverts commit a7fff74. The next commit will re-add back the fix to primary advertising channel plus auxiliary advertising channel too. This will help keep the fix together regarding use of single timer for software tIFS switching implementation. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
…upport Update Extended Advertising for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, add implementation to accumulate the last_pdu_end_us. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update Extended Scanning for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, use the radio_tmr_hcto_configure_abs() function to set the header complete timeout correctly when using single timer for s/w switching. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update advanced non-overlapping Central Connection Creation scheduling for single timer use support required for nRF54L Series SoCs. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update Periodic Advertising Sync implementation for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, use the radio_tmr_hcto_configure_abs() function to set the header complete timeout correctly when using single timer for s/w switching. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update ISO Sync Receiver for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, use the radio_tmr_hcto_configure_abs() function to set the header complete timeout correctly when using single timer for s/w switching. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update ISO Central for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, use the radio_tmr_hcto_configure_abs() function to set the header complete timeout correctly when using single timer for s/w switching. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update ISO Peripheral for single timer use support required for nRF54L Series SoCs. As the timer is reset on every radio end, use the radio_tmr_hcto_configure_abs() function to set the header complete timeout correctly when using single timer for s/w switching. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Replace use of HAL_RADIO_RECV_TIMEOUT_CANCEL_PPI with HAL_TRIGGER_CRYPT_PPI; they have same value but use the correctly named HAL_TRIGGER_CRYPT_PPI define now. Fix conditional compile to correctly exclude reference of NRF_CCM when CONFIG_BT_CTLR_PRIVACY=n. Fix missing reference to CCM_TASKS_CRYPT_DELAY_BITS when CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER=y. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Align DDPI usage with nRF54L series power domains and available DDPI configurations. Use indices below 4 when needing to bridge with GPIO, use indices below 8 when needing to bridge with MCU domain like CCM and AAR; and use indices above 7 to bridge with Peripheral domain. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add NRF_CCM h/w based encryption support in nRF54L15 SoCs. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added BUILD_ASSERT to ensure ticker node count does not exceed UINT8_MAX. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Enable throughput and multiple_id testing on nRF5340bsim and nrf54l15bsim. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Workaround by using `-start_offset` to ensure that the ACL established does not overlap the sink being established. The behavior between nrf52_bsim and nrf54l15bsim is different where in the two device are starting to advertising at the same time in nrf54l15bsim where as there is an offset already in nrf52_bsim test. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
b66e86e to
5e48633
Compare
aescolar
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would not be required in this PR as this was already the case, but this timings are off for simulation as the simulated radio has the exact same timings for all SOCs so far,
If you want you can pick this commit already into this PR to correct the values
aescolar@ed78e93
Otherwise I can send a follow up PR with it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Follow up PR is good. Should your RNG PR go in first or this one? I am ok with either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im fine either way. You are welcome to +1 the RNG PR if you think it is good :)
Add NRF_CCM h/w based encryption support in nRF54L15 SoCs.