Skip to content

Commit e0ab439

Browse files
committed
boards: arm: stm32f746g_disco: add support for FMC SDRAM
Add support for FMC SDRAM in board DTS Update board doc and yaml Signed-off-by: Tomislav Milkovic <[email protected]>
1 parent 30a681d commit e0ab439

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

boards/arm/stm32f746g_disco/doc/index.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ The Zephyr stm32f746g_disco board configuration supports the following hardware
116116
+-----------+------------+-------------------------------------+
117117
| QSPI NOR | on-chip | off-chip flash |
118118
+-----------+------------+-------------------------------------+
119+
| FMC | on-chip | memc (SDRAM) |
120+
+-----------+------------+-------------------------------------+
119121

120122
Other hardware features are not yet supported on Zephyr porting.
121123

@@ -147,6 +149,15 @@ configured as follows
147149
- LD1 : PI1
148150
- USB DM : PA11
149151
- USB DP : PA12
152+
- FMC SDRAM :
153+
154+
- D0-D15 : PD14/PD15/PD0/PD1/PE7/PE8/PE9/PE10/PE11/PE12/PE13/PE14/PE15/PD8/PD9/PD10
155+
- A0-A11 : PF0/PF1/PF2/PF3/PF4/PF5/PF12/PF13/PF14/PF15/PG0/PG1
156+
- A14/A15 : PG4/PG5
157+
- SDNRAS/SDNCAS : PF11/PG15
158+
- NBL0/NBL1 : PE0/PE1
159+
- SDCLK/SDNWE/SDCKE0/SDNE0 : PG8/PH5/PC3/PH3
160+
150161

151162
System Clock
152163
============

boards/arm/stm32f746g_disco/stm32f746g_disco.dts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@
3838
};
3939
};
4040

41+
sdram1: sdram@c0000000 {
42+
compatible = "zephyr,memory-region", "mmio-sram";
43+
device_type = "memory";
44+
reg = <0xc0000000 DT_SIZE_M(16)>;
45+
zephyr,memory-region = "SDRAM1";
46+
};
47+
4148
aliases {
4249
led0 = &green_led_1;
4350
sw0 = &user_button;
@@ -185,3 +192,44 @@ zephyr_udc0: &usbotg_fs {
185192
};
186193
};
187194
};
195+
196+
&fmc {
197+
pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1
198+
&fmc_sdclk_pg8 &fmc_sdnwe_ph5 &fmc_sdcke0_pc3
199+
&fmc_sdne0_ph3 &fmc_sdnras_pf11 &fmc_sdncas_pg15
200+
&fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3 &fmc_a4_pf4
201+
&fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13 &fmc_a8_pf14
202+
&fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1
203+
&fmc_a14_pg4 &fmc_a15_pg5 &fmc_d0_pd14 &fmc_d1_pd15
204+
&fmc_d2_pd0 &fmc_d3_pd1 &fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9
205+
&fmc_d7_pe10 &fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13
206+
&fmc_d11_pe14 &fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9
207+
&fmc_d15_pd10>;
208+
pinctrl-names = "default";
209+
status = "okay";
210+
211+
sdram {
212+
status = "okay";
213+
power-up-delay = <100>;
214+
num-auto-refresh = <8>;
215+
mode-register = <0x220>;
216+
/*
217+
* Auto refresh command shall be issued every 15.625 us
218+
* and is calculated as ((15.625 * SDRAM_CLK_MHZ) - 20)
219+
* Note: SDRAM_CLK_MHZ = HCLK_MHZ / 2 (108 MHz)
220+
*/
221+
refresh-rate = <1667>;
222+
bank@0 {
223+
reg = <0>;
224+
st,sdram-control = <STM32_FMC_SDRAM_NC_8
225+
STM32_FMC_SDRAM_NR_12
226+
STM32_FMC_SDRAM_MWID_16
227+
STM32_FMC_SDRAM_NB_4
228+
STM32_FMC_SDRAM_CAS_2
229+
STM32_FMC_SDRAM_SDCLK_PERIOD_2
230+
STM32_FMC_SDRAM_RBURST_ENABLE
231+
STM32_FMC_SDRAM_RPIPE_0>;
232+
st,sdram-timing = <2 6 4 6 2 2 2>;
233+
};
234+
};
235+
};

boards/arm/stm32f746g_disco/stm32f746g_disco.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ supported:
1919
- sdhc
2020
- usb_device
2121
- kscan:touch
22+
- memc

0 commit comments

Comments
 (0)