Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,13 @@ slot3_partition: &cpurad_slot1_partition {
30 b0 30 b0 f4 bd d5 5c 00 00 00 ff 10 10 00 20
00 00 00 00 00 00 7c 23 48 00 00 00 00 00 88 88
];
sfdp-ff05 = [
00 ee c0 69 72 72 71 71 00 d8 f7 f6 00 0a 00 00
14 45 98 80
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6th DWORD is missing? Even if all zeros it would be nice to explicitly specify.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the future - it would be nice to avoid repetition of jedec tables for identical devices. Perhaps a separate compatible for each chip that would set defaults?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps a separate compatible for each chip that would set defaults?

Or a set of .dtsi files with flash node definitions? Such file could be included by the board DTS and the node modified or complemented as needed.

];
sfdp-ff84 = [
43 06 0f 00 21 dc ff ff
];
size = <67108864>;
has-dpd;
t-enter-dpd = <10000>;
Expand Down
7 changes: 7 additions & 0 deletions boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280_cpuapp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,13 @@ ipc0: &cpuapp_cpurad_ipc {
30 b0 30 b0 f4 bd d5 5c 00 00 00 ff 10 10 00 20
00 00 00 00 00 00 7c 23 48 00 00 00 00 00 88 88
];
sfdp-ff05 = [
00 ee c0 69 72 72 71 71 00 d8 f7 f6 00 0a 00 00
14 45 98 80
];
sfdp-ff84 = [
43 06 0f 00 21 dc ff ff
];
size = <67108864>;
has-dpd;
t-enter-dpd = <10000>;
Expand Down
21 changes: 20 additions & 1 deletion drivers/flash/Kconfig.mspi
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,29 @@ menuconfig FLASH_MSPI_NOR
select FLASH_MSPI
select FLASH_HAS_EXPLICIT_ERASE
select FLASH_JESD216
select GPIO if $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),reset-gpios)
select GPIO if $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),reset-gpios) \
|| $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),supply-gpios)

if FLASH_MSPI_NOR

config FLASH_MSPI_NOR_USE_SFDP
bool "Use Serial Flash Discoverable Parameters (SFDP)"
default $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),sfdp-bfp)
help
Use information from SFDP for setting up flash command transfers
and for configuring the flash chip.

Currently, only build time processing of SFDP structures is supported,
based on dts arrays provided as flash node properties like `sfdp-bfp`,
`sfdp-ff05`, and `sfdp-ff84`. Depending on the IO mode used, some or
all of these properties are required for building the flash driver.
Data for these properties can be obtained with the `drivers/jesd216`
sample. If a given SFDP table is not available in a flash chip,
the related property can be defined as an empty array - this will
prevent a related build assertion from failing and default values
will be assigned to parameters that would otherwise be read from
that SFDP table.

config FLASH_MSPI_NOR_LAYOUT_PAGE_SIZE
int "Page size to use for FLASH_LAYOUT feature"
depends on FLASH_PAGE_LAYOUT
Expand Down
Loading