Skip to content

Commit c7780b3

Browse files
committed
softperipheral: rev 922980f4941061042813931931b4afa093cd03cc
See CHANGELOG for more details Signed-off-by: Luis David Lopez <[email protected]>
1 parent 994e3c6 commit c7780b3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+8188
-2853
lines changed

CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,4 @@ doc/* @b-gent
4747
/lc3/ @koffes @alexsven
4848
/nrf_fuel_gauge/ @nordic-auko
4949
/nrf_wifi/ @udaynordic @rajb9 @srkanordic
50-
/softperipheral/ @lopeztel
50+
/softperipheral/ @lopeztel @nordavid531 @ostenholkestad @bikleppe

softperipheral/CHANGELOG.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@ Changelog
99

1010
All the notable changes to this project are documented on this page.
1111

12+
nRF Connect SDK v3.2.0
13+
**********************
14+
15+
This version contains an initial release of the Soft Peripheral sEMMC.
16+
See the following list of changes:
17+
18+
19+
* Added:
20+
21+
* The first implementation of Soft Peripheral sEMMC for nRF54H Series and nRF54L Series SoCs.
22+
For details, see the :ref:`semmc_changelog` page.
23+
24+
* New virtual register for sQSPI. Updates sQSPI to version 1.2.0. Now supports the nRF54LM20 device.
25+
For details, see the :ref:`sqspi_changelog` page.
26+
1227
nRF Connect SDK v3.1.0
1328
**********************
1429

softperipheral/README.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ It covers setup, integration, and operational guidelines for using each soft per
1717

1818
doc/introduction.rst
1919
doc/sQSPI/README.rst
20+
doc/sEMMC/README.rst
2021
CHANGELOG.rst

softperipheral/doc/introduction.rst

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ It also allows to include additional instances of a peripheral in case the platf
1313

1414
In most cases, the features and performance of a soft peripheral are equivalent to those of a hardware peripheral.
1515
However, there may be some limitations.
16-
For more information, see the :ref:`sqspi_limitations` page.
16+
For more information, see the :ref:`sqspi_limitations` and :ref:`semmc_limitations` pages.
1717

1818
The operation of a soft peripheral is abstracted, and its control is facilitated through a user interface managed through the nrfx driver API.
1919
This user interface is a set of functions that the application can call to interact with the peripheral.
@@ -26,7 +26,9 @@ The following image shows the software stack of an application:
2626
.. note::
2727

2828
Note that in both the documentation and source files, soft peripherals are referred to by prefixing the letter *s* before the name of the peripheral.
29-
For example, ``sQSPI``.
29+
For example, ``sQSPI`` or ``sEMMC``.
30+
31+
.. _intro_soft_peripherals_platform_support:
3032

3133
Platform support
3234
****************
@@ -41,12 +43,25 @@ The following table shows which soft peripherals and their versions are supporte
4143
- Hardware platform
4244
- Version
4345
* - sQSPI
44-
- - nRF54L15 SoC
45-
- nRF54H20 SoC
46+
- - nRF54L Series SoCs
47+
- nRF54H Series SoCs
4648
- - nRF54L15 SoC:
4749
- v0.1.0 with NCS v3.0.0
4850
- v1.0.0 with NCS v3.1.0
4951
- v1.1.0 with NCS v3.1.0
52+
- v1.2.0 with NCS v3.2.0
53+
- nRF54LM20 SoC:
54+
- v1.2.0 with NCS v3.2.0
5055
- nRF54H20 SoC:
5156
- v0.1.0 with NCS v3.0.0
5257
- v1.1.0 with NCS v3.1.0
58+
- v1.2.0 with NCS v3.2.0
59+
* - sEMMC
60+
- - nRF54L Series SoCs
61+
- nRF54H Series SoCs
62+
- - nRF54L15 SoC:
63+
- v0.1.0 with NCS v3.2.0
64+
- nRF54LM20 SoC:
65+
- v0.1.0 with NCS v3.2.0
66+
- nRF54H20 SoC:
67+
- v0.1.0 with NCS v3.2.0
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.. _semmc_changelog:
2+
3+
sEMMC changelog
4+
###############
5+
6+
.. contents::
7+
:local:
8+
:depth: 2
9+
10+
All the notable changes to sEMMC are documented on this page. Refer to :ref:`intro_soft_peripherals_platform_support` for supported Nordic devices for each version.
11+
12+
v0.1.0
13+
******
14+
15+
This is an initial release.
16+
17+
* Added the following for the nRF54H Series and nRF54L Series devices:
18+
19+
* 1-lane and 4-lane data transmission support
20+
* Support for Class 0 commands - Basic
21+
* Support for Class 2 commands - Block read
22+
* Support for Class 4 commands - Block write
23+
* Support for Class 5 commands - Erase
24+
* Support for Class 6 commands - Write protection
25+
* Support for Class 7 commands - Lock device
26+
* Support for Class 11 commands - Command queuing
27+
* Support for all response types
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.. _sEMMC:
2+
3+
sEMMC
4+
#####
5+
6+
.. contents::
7+
:local:
8+
:depth: 2
9+
10+
This documentation outlines the soft peripheral sEMMC.
11+
It covers setup, integration, and operational guidelines for using sEMMC through the nrfx driver API, alongside detailed descriptions of limitations and performance considerations.
12+
13+
.. note::
14+
The current version of sEMMC is based on JEDEC Standard No. 84-B51A.
15+
16+
.. toctree::
17+
:maxdepth: 1
18+
:glob:
19+
:caption: Subpages:
20+
21+
features.rst
22+
semmc_nrf54L_series_porting_v0_1_0.rst
23+
semmc_nrf54H_series_porting_v0_1_0.rst
24+
timing.rst
25+
CHANGELOG.rst
26+
limitations.rst
27+
api_reference.rst
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
API Reference
2+
#############
3+
4+
.. doxygengroup:: nrf_semmc
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
.. _semmc_features:
2+
3+
sEMMC features
4+
##############
5+
6+
.. contents::
7+
:local:
8+
:depth: 2
9+
10+
This page provides an overview of the functionalities and configurations available for the soft peripheral sEMMC for the current state of development.
11+
See the following sections for more details.
12+
13+
.. _semmc_features_command_support:
14+
15+
Command support
16+
***************
17+
18+
sEMMC supports the following JEDEC Standard No. 84-B51A command groups:
19+
20+
* Class 0 - Basic
21+
* Class 2 - Block read
22+
* Class 4 - Block write
23+
* Class 5 - Erase
24+
* Class 6 - Write protection
25+
* Class 7 - Lock device
26+
* Class 11 - Command queuing
27+
28+
.. note::
29+
Refer to the :file:`nrf_semmc.h` header for a list of supported commands.
30+
31+
32+
.. _semmc_features_hs200_mode:
33+
34+
HS200 mode support
35+
******************
36+
37+
sEMMC supports the HS200 mode for high-speed transfers. This allows sEMMC to operate at frequencies up to 80MHz on the nRF54H20 device.
38+
39+
.. note::
40+
A tuning cycle using CMD21 might be necessary to find the optimal sampling point for reads. After doing a tuning cycle, apply the sampling value to :c:var:`nrf_semmc_config_t.read_delay`.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.. _semmc_limitations:
2+
3+
sEMMC limitations
4+
#################
5+
6+
When working with sEMMC, you should be aware of the following limitations.
7+
8+
.. contents::
9+
:local:
10+
:depth: 2
11+
12+
v0.1.0
13+
******
14+
15+
Refer to the following detailed descriptions of current limitations:
16+
17+
* sEMMC does not support octal-lane data transmissions.
18+
* sEMMC does not support dual data rate, and as such no support for HS400.
19+
* :c:var:`nrf_semmc_config_t.read_delay` can not be equal to or higher than the :c:var:`clkdiv` parameter in :ref:`semmc_timing`.
20+
* :c:var:`clkdiv` parameter in :ref:`semmc_timing` must be even.
21+
* Maximum frequency is limited to 80MHz on nRF54H Series (assuming a maximum device frequency of 320MHz, in HS200 mode) and 32MHz on nRF54L Series devices.
22+
* A tuning cycle using CMD21 might be needed to set the proper value of :c:var:`nrf_semmc_config_t.read_delay`.
23+
* Data buffers and response buffers needs to be pointers with a 32-bit aligned address.
24+
* :c:var:`nrf_emmc_data_t.block_size` needs to be minimum 4 bytes for quad-lane data transmissions.
25+
* Setting :c:var:`nrf_semmc_config_t.process_response` to `NRF_EMMC_RESPONSE_PROC_IGNORE` will only apply to any transaction in the read direction.
26+
* sEMMC is not able to process response and data at the same time. See for example :ref:`semmc_nrf54H_series_porting_guide_read_response` on how to mitigate this.
27+
* Any prepared transfer with :c:func:`nrf_semmc_cmd_prepare` will be discarded when using :c:func:`nrf_semmc_disable`.

0 commit comments

Comments
 (0)