diff --git a/doc/nrf/app_dev/device_guides/nrf54l/building_nrf54l.rst b/doc/nrf/app_dev/device_guides/nrf54l/building_nrf54l.rst new file mode 100644 index 000000000000..89e8fc862b91 --- /dev/null +++ b/doc/nrf/app_dev/device_guides/nrf54l/building_nrf54l.rst @@ -0,0 +1,104 @@ +.. _building_nrf54l: + +Building and programming with nRF54L15 DK +######################################### + +This guide provides instructions on how to build and program the nRF54L15 development kit. +Whether you are working with single or multi-image builds, the following sections will guide you through the necessary steps. + +Depending on the sample, you must program only the application core or both the FLPR and the application core. +Additionally, the process will differ based on whether you are working with a single-image or multi-image build. + +Building for the application core +********************************* + +For instructions on building for the application core only, see how to :ref:`program an application `. + +Building for the application and FLPR core +****************************************** + +This section outlines how to build and program for both the application and FLPR cores, covering separate builds and sysbuild configurations. + +Separate images +--------------- + +To build and program the application sample and the VPR sample as separate images, follow these steps: + +.. tabs:: + + .. group-tab:: west + + 1. |open_terminal_window_with_environment| + #. For the VPR core, erase the flash memory and program the VPR sample: + + .. Commands TBD + + .. code-block:: console + + west flash --erase + + #. For the application core, navigate to the build folder of the application sample and repeat the flash erase command: + + .. code-block:: console + + west flash --erase + + .. group-tab:: nRF Util + + 1. |open_terminal_window_with_environment| + #. For the VPR core, run the following command to erase the flash memory of the VPR core and program the sample: + + .. Commands TBD + + .. code-block:: console + + nrfutil device program --firmware zephyr.hex --options chip_erase_mode=ERASE_ALL --core Network + + .. note:: + + If you cannot locate the build folder of the VPR sample, look for a folder with one of these names inside the build folder of the application sample: + + * :file:`rpc_host` + * :file:`hci_rpsmg` + * :file:`802154_rpmsg` + * :file:`multiprotocol_rpmsg` + + #. For the application core, navigate to its build folder and run: + + .. code-block:: console + + nrfutil device program --firmware zephyr.hex --options chip_erase_mode=ERASE_ALL + + .. note:: + The application build folder will be in a sub-directory which is the name of the folder of the application + + #. Reset the development kit: + + .. code-block:: console + + nrfutil device reset --reset-kind=RESET_PIN + + See :ref:`readback_protection_error` if you encounter an error. + +With sysbuild +------------- + +To build and program with sysbuild, complete the following steps: + +.. tabs:: + + .. group-tab:: Using VPR Launcher + + Instructions TBA + + .. code-block:: console + + # Example command TBD + + .. group-tab:: Using application that aupports multi-image builds + + Instructions TBA + + .. code-block:: console + + # Example command TBD diff --git a/doc/nrf/app_dev/device_guides/nrf54l/index.rst b/doc/nrf/app_dev/device_guides/nrf54l/index.rst index 4d419876b208..2dc02276d0ad 100644 --- a/doc/nrf/app_dev/device_guides/nrf54l/index.rst +++ b/doc/nrf/app_dev/device_guides/nrf54l/index.rst @@ -36,4 +36,6 @@ Zephyr and the |NCS| provide support and contain board definitions for developin features testing_dfu + vpr_flpr + building_nrf54l peripheral_sensor_node_shield diff --git a/doc/nrf/app_dev/device_guides/nrf54l/vpr_flpr.rst b/doc/nrf/app_dev/device_guides/nrf54l/vpr_flpr.rst new file mode 100644 index 000000000000..4b6a6b3736ed --- /dev/null +++ b/doc/nrf/app_dev/device_guides/nrf54l/vpr_flpr.rst @@ -0,0 +1,35 @@ +.. _vpr_flpr_nrf54l: + +Working with the FLPR core +########################## + +The nRF54L15 SoC has a dedicated RISC-V CPU (VPR), a fast lightweight peripheral processor (FLPR) optimized for software-defined peripherals (SDP). +This CPU currently supports the following peripherals: + +* GPIO +* GPIOTE +* GRTC +* TWIM +* UARTE +* VPR + +Running FLPR +************ + +FLPR can function as a generic core, operating under the full Zephyr kernel. +In this configuration, building the FLPR target is similar the application core. +However, the application core build must incorporate an overlay that enables the FLPR coprocessor. +This ensures that the necessary code to initiate FLPR is integrated. + +Software Defined Peripherals +---------------------------- + +VPR is optimized for implementing SDP. +For more information, see documentation page. + +Memory allocation +***************** + +If a VPR CPU is running, it can lead to increased latency when accessing ``RAM_01``. +Because of this, when FLPR is used in a project, you should utilize ``RAM_01`` to store only the VPR code, VPR data, and the application CPU's non-time-sensitive information. +Conversely, you should use ``RAM_00`` to store data with strict access time requirements such as DMA buffers, and the application CPU data used in low-latency ISRs.