-
Notifications
You must be signed in to change notification settings - Fork 735
Riscv direct isr multithreading #3107
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
Open
lstnl
wants to merge
634
commits into
nrfconnect:main
Choose a base branch
from
lstnl:riscv-direct-isr-multithreading
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8ea1dd5 to
a7d8120
Compare
Rearrange code to prepare for upcoming extension that adds special receive mode. Upstream PR #: 92767 Signed-off-by: Krzysztof Chruściński <[email protected]> (cherry picked from commit e5003ae)
…counting Add mode to be used on UARTE with frame timeout which is using a bounce buffers and TIMER to count bytes. This mode shall be used to reliably receive data without HWFC as frame timeout approach is not 100% reliable because it can loose or corrupt a byte when new byte arrives after frame timeout is detected but before it is fully handled. This mode is similar to the one enabled with CONFIG_UART_x_NRF_HW_ASYNC but additional bounce buffers are used and UARTE is receiving data to internal buffers and copies data to the user buffer. Legacy apporach cannot be used because in new SoC DMA attempts to copy data in words so when byte is received it stays in the DMA internal buffer until 4 bytes are received or end of transfer happens then internal DMA buffer is flushed. Upstream PR #: 92767 Signed-off-by: Krzysztof Chruściński <[email protected]> (cherry picked from commit a07f73b)
…/O mode Test external MSPI flash in single I/O mode Signed-off-by: Bartosz Miller <[email protected]> (cherry picked from commit b78be6b)
…t for nrf54l15dk Add a testcase for nrf54l15dk with sense edge to gpio_basic_api test. Upstream PR #: 93717 Signed-off-by: Michał Bainczyk <[email protected]> (cherry picked from commit b5b58e3)
Fixes the NVM size going beyond what the chip supports Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 0f0c80e)
…titioning file Adds a common vendor dts file specifying the default partition layout for nRF54L10-based cpuapp board targets and updates boards to use this common file. This also drops the secure/non-secure split in the partitioning as this was reducing NVM storage that is not used by this board target and fixes the wrong flash field in twister yaml files Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 9dc6040)
… partitions Adds a workaround for partitions on nrf54l10 non-secure devices to prevent build issues, this needs to be fixed properly when a TF-M update is done which sets the partition sizes properly Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 002838a)
…titioning file Adds a common vendor dts file specifying the default partition layout for nRF54L15-based cpuapp board targets and updates boards to use this common file. This also drops the secure/non-secure split in the partitioning as this was reducing NVM storage that is not used by this board target and fixes the wrong flash field in twister yaml files Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 124a803)
…partitioning file Adds a common vendor dts file specifying the default partition layout for nRF54L15-based cpuapp_ns board targets and updates boards to use this common file. Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit e542188)
…titioning file Adds a common vendor dts file specifying the default partition layout for nRF54L05-based cpuapp board targets and updates boards to use this common file. This also drops the secure/non-secure split in the partitioning as this was reducing NVM storage that is not used by this board target and fixes the wrong flash field in twister yaml files Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 5bc71e6)
Fixes these files to no lonegr delete non-secure partitions as these no longer exist Signed-off-by: Jamie McCrae <[email protected]> (cherry picked from commit 97e5d33)
Add an nPM1304 EK shield, update samples/shields/npm1300_ek to support both shields, improve the sample description. Signed-off-by: Sergei Ovchinnikov <[email protected]> (cherry picked from commit f0f2b94)
… variant Direct variant of this test disables intermediate buffer in the nRF SPI driver and verifies whether devices like nRF54H20, which can peform DMA transcations only from specific memory regions, are handled properly. Upstream PR #: 93487 Signed-off-by: Nikodem Kastelik <[email protected]> (cherry picked from commit bd191d8)
Bounce buffers should be freed rather than user buffers. Upstream PR #: 93487 Signed-off-by: Nikodem Kastelik <[email protected]> (cherry picked from commit 5769fca)
Improve corss-channel test by setting different duty cycle on channels. This modification will enable detection of inter-channel effects like crosstalk. Upstream PR #: 93776 Signed-off-by: Piotr Krzyzanowski <[email protected]> (cherry picked from commit 0878bed)
Add more channels testing nrf platforms. Upstream PR #: 93776 Signed-off-by: Piotr Krzyzanowski <[email protected]> (cherry picked from commit 99cbbba)
…e data Stop processing microphone data on error or when streaming ends. This avoids I2S read timeouts due to audio data not being available while streaming. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit 943fc6f)
This commit resolves a bug where the USB Endpoint provided by the HID driver was incorrect when in High Speed mode. Signed-off-by: Victor Brzeski <[email protected]> (cherry picked from commit c0e1268) Signed-off-by: Tomasz Moń <[email protected]>
Change the macros to have only one plus operator per term. This is purely stylistic change, no functional changes. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit 673f324)
…ndpoints Enable double buffering on data OUT endpoints to allow USB stack to enqueue next transfer as soon as possible. This is especially useful when operating at High-Speed where there is significantly less time between subsequent SOF packets. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit 2f343bf)
…nqueue Release receive buffer on failed endpoint enqueue. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit f9ac318)
…ndpoint Enable double buffering on isochronous feedback endpoint to avoid sending ZLP instead of feedback information. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit 223d23a)
…ing incompisoout Rearm isochronous endpoints when handling incomplete iso out interrupt to make it possible to rearm the endpoint in time (before SOF), especially when operating at High-Speed. Signed-off-by: Tomasz Moń <[email protected]> (cherry picked from commit 6eb2fa8)
Incomplete iso IN/OUT is just informative and its occurrence does not
prevent the endpoint from actually transmitting/receiving data. Such
"late" isochronous transfers, which are perfectly fine according to USB
specification, were observed on Windows host with nRF54H20 running
explicit feedback sample operating at High-Speed.
The incorrect handling manifested itself with "ISO RX buffer too small"
error message. The faulty scenario was:
* incompISOIN handler does not find any matching endpoint
* incompISOOUT handler disables endpoint, discards buffer and sets
rearm flag
* next DWC2 interrupt handler iteration after reading GINTSTS
* XferCompl interrupt on iso IN endpoint
* XferCompl interrupt on iso OUT endpoint
- transfer was actually happening to the buffer discarded in
incompISOOUT handler
- XferCompl handler modified the next buffer
* GOUTNakEff interrupt, iso OUT endpoint EPDIS bit is set
* EPDisbld interrupt, rearm flag set
- the buffer modified by XferCompl is used and fails because it is
not large enough
Modify the sequence so it accounts for host actions and the above faulty
scenario no longer causes any problems.
Signed-off-by: Tomasz Moń <[email protected]>
(cherry picked from commit 8d1f7b3)
Allow user to specify which network interfaces to bind the server to when reconfiguring the DNS system. Signed-off-by: Jukka Rissanen <[email protected]> (cherry picked from commit 2af5dba) Signed-off-by: Robert Lubos <[email protected]>
Bind the network interface to the network interface we have received the DNS servers from. This is now the default. The previous behavior can be restored by disabling the CONFIG_NET_DHCPV4_DNS_SERVER_VIA_INTERFACE option. Signed-off-by: Jukka Rissanen <[email protected]> (cherry picked from commit 1224c5a) Signed-off-by: Robert Lubos <[email protected]>
Bind the network interface to the network interface we have received the DNS servers from. This is now the default. The previous behavior can be restored by disabling the CONFIG_NET_DHCPV6_DNS_SERVER_VIA_INTERFACE option. Signed-off-by: Jukka Rissanen <[email protected]> (cherry picked from commit 248cb3d) Signed-off-by: Robert Lubos <[email protected]>
…d Public Key Core Specification 6.1 clarified exptected erro code in case peer sending invalid Public Key. In case pairing is aborted during or immediately after Public Key Exchange phase has completed (which is the case here) expected reason code is set to "DHKey Check Failed". This was affecting SM/CEN/KDU/BI-04-C and SM/PER/KDU/BI-04-C qualification test cases. Signed-off-by: Szymon Janc <[email protected]> (cherry picked from commit 9b27a47) Signed-off-by: Håvard Reierstad <[email protected]>
…de-svc userdata - Issue: There is a bus-fault while accessing empty userdata structure pointer if application does not include any include service userdata instance (which consist of UUID list of included service) but service array has defined dummy entry for it assumed to be overridden by app during initial flow. - For example, the issue has happened in case of tmap-central sample without "CONFIG_BT_OTS" support. there are some MCS attributes dependent on OTS service because of that "BT_GATT_INCLUDE_SERVICE(NULL)" entry is added as part of service definition. The given entry does not have userdata handler defined and is expecting to be overriden by the app if it will be included. During "bt_mcs_init()" call, "mcs.attrs[i].user_data" is not populated with any attr-instance pointer. This makes CPU to access null-address during reading local-database include-service attribute which was not provided by the app but the include-service entry was added to the db. - Fix: Adding condition to check if user-data has null address, and returning back to avoid any hard-faults. Signed-off-by: Nirav Agrawal <[email protected]> (cherry picked from commit 5a8189b) Signed-off-by: Håvard Reierstad <[email protected]>
The implementation used BT_L2CAP_ECRED_MIN_MTU to check the lower limits of both MTU and MPS, instead of BT_L2CAP_ECRED_MIN_MPS for MPS. While these are the same here, confusion may arise. This commit fixes the confusion. Signed-off-by: Håvard Reierstad <[email protected]> (cherry picked from commit d989188) Signed-off-by: Håvard Reierstad <[email protected]>
Adds a missing requirement from Core Spec V6.0 Vol 3.A chapters 10.1 and 10.2 to ignore L2CAP_FLOW_CONTROL_CREDIT_IND packets with the credit value set to 0. Matches existing credit-related functions by checking that the CID is in the dynamic range (you can't add credits to fixed channels). Signed-off-by: Håvard Reierstad <[email protected]> (cherry picked from commit 2b42a1d) Signed-off-by: Håvard Reierstad <[email protected]>
Check whether the connection response parameters both with and without ECRED are within the valid ranges from the Bluetooth Core Specification (part 3.A.4 v6.0). Changes validation checks in requests to match the same pattern. Signed-off-by: Håvard Reierstad <[email protected]> (cherry picked from commit 7debc8a) Signed-off-by: Håvard Reierstad <[email protected]>
The many_conn l2cap test used a MTU lower than the minimum permitted value. This commit bumps it to the minimum (23). Signed-off-by: Håvard Reierstad <[email protected]> (cherry picked from commit b799d18) Signed-off-by: Håvard Reierstad <[email protected]>
…uicr.py Upstream PR #: 94064 Set the VERSION field to 2.0 in gen_uicr.py to indicate the version of the format the script produces blobs for. This is required for forwards compatibility with newer versions of IronSide SE. Signed-off-by: Jonathan Nilsen <[email protected]>
… width Allowed use of counter bit width lower than hardware 24. In that case, PPI connection is established to trigger clear task once maximum value is reached. Upstream PR #: 92025 Signed-off-by: Michał Stasiak <[email protected]>
…52832 Added overlay for the board. Upstream PR #: 92025 Signed-off-by: Michał Stasiak <[email protected]>
Release instead of requesting constant latency mode on SPI suspend. Upstream PR #: 94153 Signed-off-by: Michał Stasiak <[email protected]>
… dependencies Update Kconfig dependencies in mbedTLS and logging backend to use OPENTHREAD instead of NET_L2_OPENTHREAD. Upstream PR #: 94054 Signed-off-by: Łukasz Duda <[email protected]>
… default External flash memory is typically not used, so it should be disabled by default. The GPIO6 port used by this device should also be disabled. Upstream PR #: 94180 Signed-off-by: Adam Kondraciuk <[email protected]>
Fix soc_mramc_nrf_mram space indentation Signed-off-by: Travis Lam <[email protected]> (cherry picked from commit 6413185)
Remove cache invalidation after flash write, cpu should automatically invalidate cache but for HW erase invalidation needed due to erase from different bus. Signed-off-by: Travis Lam <[email protected]> (cherry picked from commit 5274d66)
Utilize a code spell-checking tool to scan for and correct spelling errors in `Kconfig` files within the `soc` and `subsys` directory. Additionally, incorporates a fix recommended by the reviewer. Signed-off-by: Pisit Sawangvonganan <[email protected]> (cherry picked from commit 0ec49fa) Signed-off-by: Sean Madigan <[email protected]>
…n and feature events Previously, the version complete event had to come after the remote feature complete event for the notify_remote_info function to be called. This becomes less practical when adding the read all remote features complete event, as this can take some time. Meaning the order of events is not predictable. Signed-off-by: Sean Madigan <[email protected]> (cherry picked from commit cddea43) Signed-off-by: Sean Madigan <[email protected]>
…feature This commit adds support for the extended feature set feature. This includes: - hci boilerplate - kconfigs, including one for a max local feature page - reading remote features is done by a command and callback - this is not linked into the auto feature request on connection as this procedure can take quite a few connection events, and we do not want to delay the user - added the commands to the bt shell Signed-off-by: Sean Madigan <[email protected]> (cherry picked from commit 3adae8b) Signed-off-by: Sean Madigan <[email protected]>
Commit removes unused host hci custom functionality that was moved to mesh by misinterpretation of it. Signed-off-by: Aleksandr Khromykh <[email protected]> (cherry picked from commit b6a0f4e) Signed-off-by: Sean Madigan <[email protected]>
add `role_changed` to `struct bt_conn_cb` to notify the HCI_Role_Change event to application. Signed-off-by: Mark Wang <[email protected]> (cherry picked from commit 31fba83) Signed-off-by: Sean Madigan <[email protected]>
add bt_conn_br_switch_role and bt_conn_br_set_role_switchable to control the role switch, add DEFAULT_ROLE_SWITCHABLE Kconfig to control the default role switch state. Signed-off-by: Mark Wang <[email protected]> (cherry picked from commit e71b512) Signed-off-by: Sean Madigan <[email protected]>
…CONN_CB_DEFINE This commit registers the connection callbacks using BT_CONN_CB_DEFINE, which ensures they are set up at link time rather than runtime. Signed-off-by: Yago Fontoura do Rosario <[email protected]> (cherry picked from commit b1eaf02) Signed-off-by: Sean Madigan <[email protected]>
…ONN_CB_DEFINE This commit registers the connection callbacks using BT_CONN_CB_DEFINE, which ensures they are set up at link time rather than runtime. Signed-off-by: Yago Fontoura do Rosario <[email protected]> (cherry picked from commit e0d22a3) Signed-off-by: Sean Madigan <[email protected]>
…nnection callbacks
This commit allows to the user to control the use or not of dynamic
connection callbacks.
The stack is not using the dynamic connection callbacks so they are
only needed if the applications want to use it.
Setting it to true for backwards compatibility.
With dynamic connection callbacks
FLASH: 176600 B 512 KB 33.68%
RAM: 27428 B 64 KB 41.85%
IDT_LIST: 0 GB 32 KB 0.00%
Without dynamic connection callbacks
FLASH: 176376 B 512 KB 33.64%
RAM: 27428 B 64 KB 41.85%
IDT_LIST: 0 GB 32 KB 0.00%
Signed-off-by: Yago Fontoura do Rosario <[email protected]>
(cherry picked from commit ca06a1d)
Signed-off-by: Sean Madigan <[email protected]>
…ZE define Fix BT_LE_LOCAL_SUPPORTED_FEATURES_SIZE define, as this was not working correctly without brackets around CONFIG_BT_LE_MAX_LOCAL_SUPPORTED_FEATURE_PAGE. Also fix CONFIG_BT_LE_MAX_LOCAL_SUPPORTED_FEATURE_PAGE help, as this was talking about remote featues, where this only applies for local features. Also update for new CONFIG_BT_CONN_DYNAMIC_CALLBACKS kconfig Signed-off-by: Sean Madigan <[email protected]> (cherry picked from commit 9bbc906) Signed-off-by: Sean Madigan <[email protected]>
This commit adds support for the frame space update feature to the bluetooth host. This is mainly just a wrapper around the frame space update HCI command and event. Signed-off-by: Sean Madigan <[email protected]> (cherry picked from commit 1b7b6af) Signed-off-by: Sean Madigan <[email protected]>
L2CAP channels will now, along with the ident, store the opcode of the pending request. This commit expands the ident lookup function to also compare received response types to this opcode, and will ignore unsolicited responses. Setting of idents for channels are moved after verification of buffer allocation for the request to be sent. A TODO is added for improving this functionality at a later time. Upstream PR #: 94080 Signed-off-by: Håvard Reierstad <[email protected]>
Added helper Kcoinfig option USE_ISR_WRAPPER which can be used to include isr_wrapper even if GEN_SW_ISR_TABLE is not enabled. This is needed to enable configurations where only IRQ vector table is used with multithreading (only direct isr used). This change is backward compatibible with previous config. Signed-off-by: Łukasz Stępnicki <[email protected]>
Added support for Direct ISRs in the multithreaded enviroment Signed-off-by: Rafal Dyla <[email protected]>
a7d8120 to
fa39722
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.