diff --git a/boards/renesas/mck_ra8t1/doc/index.rst b/boards/renesas/mck_ra8t1/doc/index.rst index 19ed6eb1330..f223004c969 100644 --- a/boards/renesas/mck_ra8t1/doc/index.rst +++ b/boards/renesas/mck_ra8t1/doc/index.rst @@ -100,6 +100,8 @@ The below features are currently supported on Zephyr OS for MCB-RA8T1 board: +--------------+------------+----------------------+ | SPI | on-chip | spi | +--------------+------------+----------------------+ +| FLASH | on-chip | flash | ++--------------+------------+----------------------+ Other hardware features are currently not supported by the port. diff --git a/boards/renesas/mck_ra8t1/mck_ra8t1.dts b/boards/renesas/mck_ra8t1/mck_ra8t1.dts index 0b35da08dba..e51821df8ea 100644 --- a/boards/renesas/mck_ra8t1/mck_ra8t1.dts +++ b/boards/renesas/mck_ra8t1/mck_ra8t1.dts @@ -20,6 +20,7 @@ zephyr,console = &uart3; zephyr,shell-uart = &uart3; zephyr,entropy = &trng; + zephyr,flash-controller = &flash1; }; leds { @@ -104,3 +105,16 @@ pinctrl-names = "default"; status = "okay"; }; + +&flash1 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + storage_partition: partition@0 { + label = "storage"; + reg = <0X0 DT_SIZE_K(12)>; + }; + }; +}; diff --git a/boards/renesas/mck_ra8t1/mck_ra8t1_defconfig b/boards/renesas/mck_ra8t1/mck_ra8t1_defconfig index 5cd13d146bf..29889ab9ae6 100644 --- a/boards/renesas/mck_ra8t1/mck_ra8t1_defconfig +++ b/boards/renesas/mck_ra8t1/mck_ra8t1_defconfig @@ -17,3 +17,5 @@ CONFIG_CLOCK_CONTROL=y CONFIG_BUILD_OUTPUT_HEX=y CONFIG_BUILD_NO_GAP_FILL=y + +CONFIG_FLASH=y diff --git a/drivers/flash/Kconfig.renesas_ra b/drivers/flash/Kconfig.renesas_ra index defae5609e8..a3e2c712b78 100644 --- a/drivers/flash/Kconfig.renesas_ra +++ b/drivers/flash/Kconfig.renesas_ra @@ -11,7 +11,7 @@ config RA_FLASH_HP select FLASH_PAGE_LAYOUT select FLASH_HAS_PAGE_LAYOUT select FLASH_HAS_EXPLICIT_ERASE - select FLASH_HAS_EX_OP if(SOC_SERIES_RA8M1 || SOC_SERIES_RA8D1) + select FLASH_HAS_EX_OP if(SOC_SERIES_RA8M1 || SOC_SERIES_RA8D1 || SOC_SERIES_RA8T1) select USE_RA_FSP_FLASH_HP help Enable flash driver for RA series diff --git a/drivers/flash/flash_hp_ra.h b/drivers/flash/flash_hp_ra.h index 7e55d477a83..968c74c4904 100644 --- a/drivers/flash/flash_hp_ra.h +++ b/drivers/flash/flash_hp_ra.h @@ -33,7 +33,8 @@ #define FLASH_HP_CF_BLOCK_32KB_DUAL_LOW_START (8) #define FLASH_HP_CF_BLOCK_32KB_DUAL_HIGH_START (78) -#if defined(CONFIG_SOC_R7FA8M1AHECBD) || defined(CONFIG_SOC_R7FA8D1BHECBD) +#if defined(CONFIG_SOC_R7FA8M1AHECBD) || defined(CONFIG_SOC_R7FA8D1BHECBD) || \ + defined(CONFIG_SOC_R7FA8T1AHECBD) #define FLASH_RESERVED_AREA_NUM (33) #define FLASH_HP_CF_BLOCK_32KB_LINEAR_END (68) #define FLASH_HP_CF_BLOCK_32KB_DUAL_LOW_END (36) diff --git a/dts/arm/renesas/ra/ra8/r7fa8t1ahecbd.dtsi b/dts/arm/renesas/ra/ra8/r7fa8t1ahecbd.dtsi index d593493aa30..1a0d803fc30 100644 --- a/dts/arm/renesas/ra/ra8/r7fa8t1ahecbd.dtsi +++ b/dts/arm/renesas/ra/ra8/r7fa8t1ahecbd.dtsi @@ -8,10 +8,21 @@ / { soc { - flash-controller@407fe000 { + flash-controller@40100000 { flash0: flash@2000000 { - compatible = "soc-nv-flash"; - reg = <0x02000000 DT_SIZE_M(2)>; + compatible = "renesas,ra-nv-flash"; + reg = <0x02000000 DT_SIZE_K(2016)>; + write-block-size = <128>; + erase-block-size = <8192>; + renesas,programming-enable; + }; + + flash1: flash@27000000 { + compatible = "renesas,ra-nv-flash"; + reg = <0x27000000 DT_SIZE_K(12)>; + write-block-size = <4>; + erase-block-size = <64>; + renesas,programming-enable; }; }; }; diff --git a/soc/renesas/ra/ra8t1/Kconfig.defconfig b/soc/renesas/ra/ra8t1/Kconfig.defconfig index 4fbedc9a4b9..1cd1578e621 100644 --- a/soc/renesas/ra/ra8t1/Kconfig.defconfig +++ b/soc/renesas/ra/ra8t1/Kconfig.defconfig @@ -9,4 +9,8 @@ config NUM_IRQS config PINCTRL default y +# Set to the minimal size of data which can be written. +config FLASH_FILL_BUFFER_SIZE + default 128 + endif # SOC_SERIES_RA8T1 diff --git a/soc/renesas/ra/ra8t1/Kconfig.soc b/soc/renesas/ra/ra8t1/Kconfig.soc index a3a616a72f2..5311c10ffe5 100644 --- a/soc/renesas/ra/ra8t1/Kconfig.soc +++ b/soc/renesas/ra/ra8t1/Kconfig.soc @@ -19,3 +19,9 @@ config SOC_R7FA8T1AHECBD config SOC default "r7fa8t1ahecbd" if SOC_R7FA8T1AHECBD + +config DUAL_BANK_MODE + bool "Dual bank mode" + default n + help + Enable dual bank mode diff --git a/tests/drivers/flash/common/boards/mck_ra8t1.overlay b/tests/drivers/flash/common/boards/mck_ra8t1.overlay new file mode 100644 index 00000000000..8e42c66387c --- /dev/null +++ b/tests/drivers/flash/common/boards/mck_ra8t1.overlay @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +/delete-node/ &storage_partition; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* Set the 2 last block of storage. */ + storage_partition: partition@1E8000 { + label = "storage"; + reg = <0x1E8000 DT_SIZE_K(64)>; + }; + }; +};