mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-28 18:32:08 +00:00
a1bc4f1937
Add lockdown U-Boot env support so that only certain U-Boot environment variables are allowed to be modified. Signed-off-by: Eduard Strehlau <eduard@lionizers.com> Signed-off-by: Fabio Estevam <festevam@denx.de>
115 lines
3.3 KiB
C
115 lines
3.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2016 NXP Semiconductors
|
|
* Copyright (C) 2021 Fabio Estevam <festevam@denx.de>
|
|
*
|
|
* Configuration settings for the smegw01 board.
|
|
*/
|
|
|
|
#ifndef __SMEGW01_CONFIG_H
|
|
#define __SMEGW01_CONFIG_H
|
|
|
|
#include "mx7_common.h"
|
|
#include <imximage.h>
|
|
|
|
#define PHYS_SDRAM_SIZE SZ_512M
|
|
|
|
/* MMC Config*/
|
|
#define CFG_SYS_FSL_ESDHC_ADDR 0
|
|
|
|
/* default to no extra bootparams, we need an empty define for stringification*/
|
|
#ifndef EXTRA_BOOTPARAMS
|
|
#define EXTRA_BOOTPARAMS
|
|
#endif
|
|
|
|
#ifdef CONFIG_SYS_BOOT_LOCKED
|
|
#define EXTRA_ENV_FLAGS
|
|
#define SETUP_BOOT_MENU "setup_boot_menu=setenv bootmenu_0 eMMC=run bootcmd\0"
|
|
#else
|
|
#define EXTRA_ENV_FLAGS "mmcdev:dw,"
|
|
#define SETUP_BOOT_MENU "setup_boot_menu=" \
|
|
"if test \"${mmcdev}\" = 1; then " \
|
|
"setenv emmc_priority 0;" \
|
|
"setenv sd_priority 1;" \
|
|
"else " \
|
|
"setenv emmc_priority 1;" \
|
|
"setenv sd_priority 0;" \
|
|
"fi;" \
|
|
"setenv bootmenu_${emmc_priority} eMMC=run boot_emmc;" \
|
|
"setenv bootmenu_${sd_priority} SD=run boot_sd;\0"
|
|
#endif
|
|
|
|
#define CFG_ENV_FLAGS_LIST_STATIC \
|
|
"mmcpart:dw," \
|
|
"mmcpart_committed:dw," \
|
|
"ustate:dw," \
|
|
"bootcount:dw," \
|
|
"bootlimit:dw," \
|
|
"upgrade_available:dw," \
|
|
EXTRA_ENV_FLAGS
|
|
|
|
#define CFG_EXTRA_ENV_SETTINGS \
|
|
"image=fitImage\0" \
|
|
"console=ttymxc0\0" \
|
|
"fdtfile=imx7d-smegw01.dtb\0" \
|
|
"fdt_addr=0x83000000\0" \
|
|
"bootm_size=0x10000000\0" \
|
|
"mmcdev=1\0" \
|
|
"mmcpart=1\0" \
|
|
"mmcpart_committed=1\0" \
|
|
"mmcargs=setenv bootargs console=${console},${baudrate} " \
|
|
"root=/dev/mmcblk${mmcdev}p${gpt_partition_entry} rootwait rw " \
|
|
__stringify(EXTRA_BOOTPARAMS) " SM_ROOT_DEV=${mmcdev} SM_ROOT_PART=${gpt_partition_entry} SM_BOOT_PART=${boot_part}\0" \
|
|
"commit_mmc=if test \"${ustate}\" = 1 -a \"${mmcpart}\" != \"${mmcpart_committed}\"; then " \
|
|
"setenv mmcpart_committed ${mmcpart};" \
|
|
"saveenv;" \
|
|
"fi;\0" \
|
|
"bootlimit=3\0" \
|
|
"fit_addr=0x88000000\0" \
|
|
"loadimage=load mmc ${mmcdev}:${gpt_partition_entry} ${fit_addr} boot/${image}\0" \
|
|
"loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \
|
|
"loadbootpart=mmc partconf 1 boot_part\0" \
|
|
"boot_sd=setenv mmcdev_wanted 0; run persist_mmcdev; run bootcmd;\0" \
|
|
"boot_emmc=setenv mmcdev_wanted 1; run persist_mmcdev; run bootcmd;\0" \
|
|
"persist_mmcdev=" \
|
|
"if test \"${mmcdev}\" != \"${mmcdev_wanted}\"; then " \
|
|
"setenv mmcdev \"${mmcdev_wanted}\";" \
|
|
"saveenv;" \
|
|
"fi;\0" \
|
|
"mmcboot=echo Booting...; " \
|
|
"echo mmcdev: ${mmcdev}; " \
|
|
"run commit_mmc; " \
|
|
"echo mmcpart: ${mmcpart_committed}; " \
|
|
"run loadpart; " \
|
|
"echo gptpart: ${gpt_partition_entry}; " \
|
|
"run loadbootpart; " \
|
|
"if run loadimage; then " \
|
|
"; " \
|
|
"else " \
|
|
"run altbootcmd; " \
|
|
"fi; " \
|
|
"run mmcargs; " \
|
|
"if bootm ${fit_addr}; then " \
|
|
"; " \
|
|
"else " \
|
|
"run altbootcmd; " \
|
|
"fi;\0" \
|
|
"altbootcmd=echo Performing rollback...; " \
|
|
"if test \"${mmcpart_committed}\" = 1; then " \
|
|
"setenv mmcpart 2; " \
|
|
"setenv mmcpart_committed 2;" \
|
|
"else " \
|
|
"setenv mmcpart 1; " \
|
|
"setenv mmcpart_committed 1;" \
|
|
"fi; setenv bootcount 0; setenv upgrade_available; setenv ustate 3; saveenv; " \
|
|
"run bootcmd;\0" \
|
|
SETUP_BOOT_MENU
|
|
|
|
/* Physical Memory Map */
|
|
#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
|
|
|
|
#define CFG_SYS_SDRAM_BASE PHYS_SDRAM
|
|
#define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
|
|
#define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE
|
|
|
|
#endif
|