board: st: stm32mp2: change bootcmd for ST boards

For nor0 boot for the STMicroelectronics boards, the bootfs
is found in SD-Card = mmc0 for nor0 boot.

Introduce a new file configuration file stm32mp25_st_common.h
to manage this specific behavior for the STMicroelectronics
boards; change the boot order for nor0 boot and don't use
the default DISTRO order define in BOOT_TARGET_DEVICES:
mmc1, ubifs, mmc0, mmc2.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Patrice CHOTARD <patrice.chotard@foss.st.com>
This commit is contained in:
Patrick Delaunay
2022-10-21 17:37:28 +02:00
committed by Patrice Chotard
parent 17f3cdd253
commit a7f00c8ada
3 changed files with 53 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ config SYS_VENDOR
default "st"
config SYS_CONFIG_NAME
default "stm32mp25_common"
default "stm32mp25_st_common"
source "board/st/common/Kconfig"
endif

View File

@@ -7,3 +7,4 @@ F: arch/arm/dts/stm32mp25*
F: board/st/stm32mp2/
F: configs/stm32mp25_defconfig
F: include/configs/stm32mp25_common.h
F: include/configs/stm32mp25_st_common.h

View File

@@ -0,0 +1,51 @@
/* SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause */
/*
* Copyright (C) 2022, STMicroelectronics - All Rights Reserved
*
* Configuration settings for the STMicroelectonics STM32MP25x boards
*/
#ifndef __CONFIG_STM32MP25_ST_COMMON_H__
#define __CONFIG_STM32MP25_ST_COMMON_H__
#define STM32MP_BOARD_EXTRA_ENV \
"usb_pgood_delay=2000\0" \
"console=ttySTM0\0"
#include <configs/stm32mp25_common.h>
#ifdef CFG_EXTRA_ENV_SETTINGS
/*
* default bootcmd for stm32mp25 STMicroelectronics boards:
* for serial/usb: execute the stm32prog command
* for mmc boot (eMMC, SD card), distro boot on the same mmc device
* for nand or spi-nand boot, distro boot with ubifs on UBI partition or
* sdcard
* for nor boot, distro boot on SD card = mmc0 ONLY !
*/
#define ST_STM32MP25_BOOTCMD "bootcmd_stm32mp=" \
"echo \"Boot over ${boot_device}${boot_instance}!\";" \
"if test ${boot_device} = serial || test ${boot_device} = usb;" \
"then stm32prog ${boot_device} ${boot_instance}; " \
"else " \
"run env_check;" \
"if test ${boot_device} = mmc;" \
"then env set boot_targets \"mmc${boot_instance}\"; fi;" \
"if test ${boot_device} = nand ||" \
" test ${boot_device} = spi-nand ;" \
"then env set boot_targets ubifs0 mmc0; fi;" \
"if test ${boot_device} = nor;" \
"then env set boot_targets mmc0; fi;" \
"run distro_bootcmd;" \
"fi;\0"
#undef CFG_EXTRA_ENV_SETTINGS
#define CFG_EXTRA_ENV_SETTINGS \
STM32MP_MEM_LAYOUT \
ST_STM32MP25_BOOTCMD \
BOOTENV \
STM32MP_EXTRA \
STM32MP_BOARD_EXTRA_ENV
#endif
#endif