-
Notifications
You must be signed in to change notification settings - Fork 7.6k
drivers: clock control: ironside dvfs hsfll #92239
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
base: main
Are you sure you want to change the base?
drivers: clock control: ironside dvfs hsfll #92239
Conversation
788a48f
to
3593ca6
Compare
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.
Nice!
1658b0d
to
0d68f26
Compare
0d68f26
to
0a5831b
Compare
Switch which board is the remote in the test case for mbox communication between nrf54h20dk/nrf54h20/cpuapp and nrf54h20dk/nrf54h20/cpurad, making cpurad the remote instead. This is done to prepare the sample for executing with IronSide SE, where using cpurad as the main board doesn't make as much sense, since cpuapp has to start cpurad. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Update this multi-core test to always run the `main` and `remote` images on cpuapp and cpurad respectively. This is to prepare the test for running with IronSide SE, in which case keeping cpurad as the main board target wouldn't make as much sense, because cpurad would have to be started by cpuapp. Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
This replaces the legacy SDFW compatible board configuration with the IronSide SE compatible one, thus removing support for running samples and tests on nRF54H20 devices with the old firmware. All applications are expected to work on `nrf54h20dk/nrf54h20/cpuapp` out of the box. For other board targets, all applications are expected to boot, but may require additional peripheral configuration in UICR. Build system support for the new UICR format is to be added separately. Co-authored-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no> Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no> Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
CONFIG_USE_DT_CODE_PARTITION had to be disabled to add MCUboot support. As a result, CONFIG_FLASH_LOAD_SIZE was left at zero, which means that the linker would claim all available MRAM for the app core. For now, we can't allow that, because the default nRF54H20 DK memory map divides MRAM between multiple cores in order to support various samples. Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
nrf-regtool will not be used as part of IronSide SE compatible builds. It will remain in use for the nRF92 series, until that too undergoes a switch from SDFW to IronSide SE. Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
Update memory map to be compatible with latest IronSide. 180kB MRAM is reserved. Co-authored-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no> Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no> Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Refactor the default RAM memory map on nrf54h20dk: Removes use of "nordic,owned-memory" which is no longer needed on nrf54h20. Reserved memory nodes that were under "nordic,owned-memory" have been moved directly under reserved-memory. The memory shared between cpuapp-cpusec and cpurad-cpusec in RAM0x is no longer used with IronSide, since IPC buffers toward the secure domain are at new fixed locations. The cpuapp_data region has been expanded to fill the available space in RAM0x when removing these shared memory regions. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
With IronSide SE there is only one defined UICR which is at the location of the APPLICATION UICR. Update the devicetree definition accordingly, and use the "nordic,nrf-uicr" compatible on the node since the domain distinction added by the v2 compatible is no longer relevant. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Add support for generating UICR and associated artifacts in a format compatible with IronSide SE, to be used for Nordic SoCs in the Haltium family. The main feature added with this is the ability to configure certain global domain peripherals that are managed by the secure domain through setting UICR.PERIPHCONF. This register points at a blob of (register address, register value) pairs which are loaded into the peripherals by IronSide SE ahead of the application boot. The added helper macros in uicr.h can be used to add register configurations to the PERIPHCONF. Entries added through these macros are then extracted by a script, post-processed and placed in a blob located at specific part of MRAM. A default PERIPHCONF configuration has been added for the nrf54h20 soc to support the standard BLE use case (matching the configuration in the soc devicetree). Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Program the new UICR and PERIPHCONF artifacts if they are generated. These are required for the application to operate properly if they are in use. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Update the recover mechanism for nrf54h to only call recover once. Using nrfutil device recover with both --core Network and --core Application is redundant with IronSide SE as both of these map to the same operation which does a full erase of the device MRAM. Additionally, recovering twice in a row specifically in a nrfutil batch file (which is used by this runner implementation) triggers some odd behavior with the current latest version of nrfutil device + IronSide SE, which can cause the device to enter a reset loop and appear unresponsive and preventing 'west flash --recover' from working properly. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Booting the radio core when it is not programmed will typically cause a reset loop. This can happen when programming multiple images to a device, and the app core image is programmed before the radio core. With this change we avoid the reset loop in that case. Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
Add the conf file for the stm32n6570_dk in its FSBL variant Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Demonstrate the crop/compose API by introducing 4 new CONFIG options in order to define the crop area. Moreover, if the selection API is available and if the targetted size is different from the current crop size, then try to apply a compose in order to reach the targetted format size. Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Add condition to do the test pattern fixture test only if the test pattern control was successfully set. Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
Immediate log mode may use a lot of stack and hence may cause some stack overflow on some boards. Enable deferred log mode to have the least impact on the application. Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
The new raw TX handling relies on these APIs, so, implement them for Zephyr shim. Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Fixes the issue of leave the packets in the pending queue till a new TX comes. Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Write operations are not constant time on nRF54Lx SoCs and depend on the previous value present versus new value to be written. Hence, perform no more than one iteration. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix peripheral role assertion during connection update and simultaneous flash operations. prepare_cb: Actual EVENT_OVERHEAD_START_US = 6149 This happens due to instant latency at connection update where the ticks_at_expire was in the past. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
When WDT_OPT_PAUSE_IN_SLEEP option is passed in set enableWait flag in addition to the enableStop. Fixes zephyrproject-rtos#86437 Signed-off-by: David Leach <david.leach@nxp.com>
Channel tx_queue purging on disconnect was inconsistently handled by the different channels: iso, l2cap, l2cap_br. iso channels handled purging in the tx_data_pull hook. l2cap and l2cap_br did the purging in channel delete functions and did not expect tx_data_pull to be called for a disconnected channel. Their data_pull functions could return a ptr to a net_buf that was still on the tx_queue, which is problematic when the conn tx_processor unrefs the returned buffer resulting in multiple calls to the buf destroy function. To make things consistent and correct, remove the code that tries to purge tx_queues in the tx_processor and only do purging in the channels themselves when they are deleted/disconnected. Also refactor and clarify referencing of the net_buf returned by tx_data_pull. It was confusing who had a reference and when, which could vary depending on the length of the original buffer. There are three cases: the buffer length is less than the tx.mps, greater the mps but less than the mtu so requiring segementation but not fragmentation, or greater than both mps and mtu so requiring both segmentation and fragmentation. The conn layer would increase the refcnt if the length was greater than the mtu, but not have any awareness of whether the net_buf was still on the tx_queue or not. Now it is the tx_data_pull callbacks responsibitity to increment the reference count if it is returning a pointer to a net_buf that it is still keeping on the tx_queue for segmentation purposes. The conn layer will now always transfer that reference into a fragment view and not conditional it on the length relative to the mtu, and always decrement the reference to the parent when the fragment is destroyed. So there is no risk of decrementing a reference to a net buf that might still be on a tx_queue, which simplifies error handling in particular. Also add error handling paths for when asserts are not enabled. Signed-off-by: Mike J. Chen <mjchen@google.com>
Add early_disconnect test cases for iso/cis and l2cap/stress to test the bluetooth stack handling of disconnects while transmit is still in progress. Signed-off-by: Mike J. Chen <mjchen@google.com>
Log the PR link and labels, may come in handy for troubleshooting down the road. Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
No point spreading the logic around, the python file already has the data, check it there. Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Seems like github relabel rerun is susceptible to race conditions and may not rerun the label check script if the manifest workflow runs at the same time. Delay the check to explicitly wait until the currently checked sha had a successful manifest run. Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Makes it easier to debug since there's stuff handling race conditions now. Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
- add whd_bus_spi_protocol Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
Extended clock control driver to support new DVFS service from IronSide secure domain. Added new compatible nrf-iron-hsfll-local which can be used to enable new DVFS service support in local domain. Signed-off-by: Łukasz Stępnicki <lukasz.stepnicki@nordicsemi.no>
0a5831b
to
62bb93a
Compare
The following west manifest projects have changed revision in this Pull Request:
✅ All manifest checks OK Note: This message is automatically posted and updated by the Manifest GitHub Action. |
|
Extended clock control driver to support new DVFS service from IronSide secure domain. Added new compatible nrf-iron-hsfll-local which can be used to enable new DVFS service support in local domain.