Skip to content
Open
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/st/stm32h750b_dk/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,11 @@ config MEMC

endif # DISPLAY

if MCUBOOT

config STM32_MEMMAP
default y

endif # MCUBOOT

endif # BOARD_STM32H750B_DK
14 changes: 14 additions & 0 deletions boards/st/stm32h750b_dk/Kconfig.sysbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
# SPDX-License-Identifier: Apache-2.0

choice BOOTLOADER
default BOOTLOADER_MCUBOOT
endchoice

choice BOOT_SIGNATURE_TYPE
default BOOT_SIGNATURE_TYPE_NONE
endchoice

choice MCUBOOT_MODE
default MCUBOOT_MODE_DIRECT_XIP
endchoice
3 changes: 2 additions & 1 deletion boards/st/stm32h750b_dk/board.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
# SPDX-License-Identifier: Apache-2.0

# keep first
if(CONFIG_STM32_MEMMAP)
if(CONFIG_STM32_MEMMAP OR CONFIG_BOOTLOADER_MCUBOOT)
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw")
board_runner_args(stm32cubeprogrammer "--extload=MT25TL01G_STM32H750B-DISCO.stldr")
else()
Expand Down
2 changes: 2 additions & 0 deletions boards/st/stm32h750b_dk/board.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ board:
vendor: st
socs:
- name: stm32h750xx
variants:
- name: ext_flash_app
255 changes: 255 additions & 0 deletions boards/st/stm32h750b_dk/stm32h750b_dk-common.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,255 @@
/*
* Copyright (c) 2023-2024 STMicroelectronics
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <st/h7/stm32h750Xb.dtsi>
#include <st/h7/stm32h750xbhx-pinctrl.dtsi>
#include "arduino_r3_connector.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
chosen {
zephyr,console = &usart3;
zephyr,shell-uart = &usart3;
zephyr,sram = &sram0;
zephyr,display = &ltdc;
};

sdram2: sdram@d0000000 {
compatible = "zephyr,memory-region", "mmio-sram";
device_type = "memory";
reg = <0xd0000000 DT_SIZE_M(16)>; /* 128Mbit */
zephyr,memory-region = "SDRAM2";
zephyr,memory-attr = <DT_MEM_ARM(ATTR_MPU_RAM)>;
};

ext_flash: memory@90000000 {
compatible = "zephyr,memory-region";
reg = <0x90000000 DT_SIZE_M(128)>; /* 128MB */
zephyr,memory-region = "EXT_FLASH";
zephyr,memory-attr = <DT_MEM_ARM_MPU_FLASH>;
};

leds {
compatible = "gpio-leds";

red_led: led_1 {
gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
label = "USER1 LD6";
};

green_led: led_2 {
gpios = <&gpioj 2 GPIO_ACTIVE_LOW>;
label = "USER2 LD7";
};
};

gpio_keys {
compatible = "gpio-keys";

user_button: button {
label = "User";
gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
zephyr,code = <INPUT_KEY_0>;
};
};

aliases {
led0 = &green_led;
led1 = &red_led;
sw0 = &user_button;
die-temp0 = &die_temp;
};
};

&clk_hse {
clock-frequency = <DT_FREQ_M(25)>;
hse-bypass;
status = "okay";
};

&clk_lse {
status = "okay";
};

&flash0 {
status = "okay";
};

&ltdc {
pinctrl-0 = <&ltdc_r0_pi15 &ltdc_r1_pj0 &ltdc_r2_pj1 &ltdc_r3_ph9
&ltdc_r4_pj3 &ltdc_r5_pj4 &ltdc_r6_pj5 &ltdc_r7_pj6
&ltdc_g0_pj7 &ltdc_g1_pj8 &ltdc_g2_pj9 &ltdc_g3_pj10
&ltdc_g4_pj11 &ltdc_g5_pi0 &ltdc_g6_pi1 &ltdc_g7_pk2
&ltdc_b0_pj12 &ltdc_b1_pj13 &ltdc_b2_pj14 &ltdc_b3_pj15
&ltdc_b4_pk3 &ltdc_b5_pk4 &ltdc_b6_pk5 &ltdc_b7_pk6
&ltdc_de_pk7 &ltdc_clk_pi14 &ltdc_hsync_pi12 &ltdc_vsync_pi9>;
pinctrl-names = "default";

disp-on-gpios = <&gpiod 7 GPIO_ACTIVE_HIGH>;

ext-sdram = <&sdram2>;
status = "okay";

clocks = <&rcc STM32_CLOCK(APB3, 3)>,
<&rcc STM32_SRC_PLL3_R NO_SEL>;

width = <480>;
height = <272>;
pixel-format = <PANEL_PIXEL_FORMAT_RGB_565>;

display-timings {
compatible = "zephyr,panel-timing";
de-active = <1>;
pixelclk-active = <0>;
hsync-active = <0>;
vsync-active = <0>;
hsync-len = <1>;
vsync-len = <10>;
hback-porch = <43>;
vback-porch = <12>;
hfront-porch = <8>;
vfront-porch = <4>;
};

def-back-color-red = <0xFF>;
def-back-color-green = <0xFF>;
def-back-color-blue = <0xFF>;
};

&pll {
div-m = <5>;
mul-n = <192>;
div-p = <2>;
div-q = <4>;
div-r = <4>;
clocks = <&clk_hse>;
status = "okay";
};

&pll3 {
div-m = <5>;
mul-n = <192>;
div-p = <2>;
div-q = <20>;
div-r = <99>;
clocks = <&clk_hse>;
status = "okay";
};

&rcc {
clocks = <&pll>;
clock-frequency = <DT_FREQ_M(480)>;
d1cpre = <1>;
hpre = <2>;
d1ppre = <2>;
d2ppre1 = <2>;
d2ppre2 = <2>;
d3ppre = <2>;
};

&usart3 {
pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>;
pinctrl-names = "default";
current-speed = <115200>;
status = "okay";
};

&quadspi {
pinctrl-names = "default";
pinctrl-0 = <&quadspi_clk_pf10 &quadspi_bk1_ncs_pg6
&quadspi_bk1_io0_pd11 &quadspi_bk1_io1_pf9
&quadspi_bk1_io2_pf7 &quadspi_bk1_io3_pf6
&quadspi_bk2_io0_ph2 &quadspi_bk2_io1_ph3
&quadspi_bk2_io2_pg9 &quadspi_bk2_io3_pg14>;
dual-flash;
status = "okay";

/* Sector erase 64KB uniform granularity for each Flash */
/* Subsector erase 4KB, 32KB granularity for each Flash */
mt25ql512ab1: qspi-nor-flash-1@0 {
compatible = "st,stm32-qspi-nor";
reg = <0>;
size = <DT_SIZE_M(512)>; /* 64MB for each Flash */
write-block-size = <1>; /* 1byte=4bits*2 in dual-flash mode */
erase-block-size = <DT_SIZE_K(128)>; /* 64KB*2 in dual-flash mode */
qspi-max-frequency = <72000000>;
cs-high-time = <4>; /* >= 50 ns */
spi-bus-width = <4>;
reset-cmd;
status = "okay";
};

mt25ql512ab2: qspi-nor-flash-2@0 {
compatible = "st,stm32-qspi-nor";
reg = <0>;
size = <DT_SIZE_M(512)>; /* 64MB */
qspi-max-frequency = <72000000>;
status = "okay";
};
};

&fmc {
pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1
&fmc_sdclk_pg8 &fmc_sdnwe_ph5 &fmc_sdcke1_ph7
&fmc_sdne1_ph6 &fmc_sdnras_pf11 &fmc_sdncas_pg15
&fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3 &fmc_a4_pf4
&fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13 &fmc_a8_pf14
&fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1
&fmc_a14_pg4 &fmc_a15_pg5 &fmc_d0_pd14 &fmc_d1_pd15
&fmc_d2_pd0 &fmc_d3_pd1 &fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9
&fmc_d7_pe10 &fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13
&fmc_d11_pe14 &fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9
&fmc_d15_pd10>;
pinctrl-names = "default";
status = "okay";

sdram {
status = "okay";
power-up-delay = <100>;
num-auto-refresh = <8>;
mode-register = <0x230>;
refresh-rate = <0x603>;

bank@1 {
reg = <1>;
st,sdram-control = <STM32_FMC_SDRAM_NC_8
STM32_FMC_SDRAM_NR_12
STM32_FMC_SDRAM_MWID_16
STM32_FMC_SDRAM_NB_4
STM32_FMC_SDRAM_CAS_3
STM32_FMC_SDRAM_SDCLK_PERIOD_2
STM32_FMC_SDRAM_RBURST_ENABLE
STM32_FMC_SDRAM_RPIPE_1>;
st,sdram-timing = <2 7 4 7 2 2 2>;
};
};
};

&rtc {
clocks = <&rcc STM32_CLOCK(APB4, 16)>,
<&rcc STM32_SRC_LSE RTC_SEL(1)>;
status = "okay";
};

&die_temp {
status = "okay";
};

&adc3 {
st,adc-clock-source = "SYNC";
st,adc-prescaler = <4>;
status = "okay";
};

/* Arduino Header pins: Tx:D1, Rx:D0 */
/* LPUART1 can also be used with this pins */
&usart1 {
dma-names = "tx", "rx";
pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
pinctrl-names = "default";
current-speed = <115200>;
status = "okay";
};
Loading
Loading