1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright 2015 Freescale Semiconductor, Inc. 4 */ 5 6#ifndef __CONFIG_FSL_CHAIN_TRUST_H 7#define __CONFIG_FSL_CHAIN_TRUST_H 8 9#include <linux/stringify.h> 10 11#ifdef CONFIG_CHAIN_OF_TRUST 12 13/* 14 * Control should not reach back to uboot after validation of images 15 * for secure boot flow and therefore bootscript should have 16 * the bootm command. If control reaches back to uboot anyhow 17 * after validating images, core should just spin. 18 */ 19 20#ifdef CONFIG_USE_BOOTARGS 21#define SET_BOOTARGS "setenv bootargs \'" CONFIG_BOOTARGS" \';" 22#else 23#define SET_BOOTARGS "setenv bootargs \'root=/dev/ram " \ 24 "rw console=ttyS0,115200 ramdisk_size=600000\';" 25#endif 26 27#define SECBOOT \ 28 "setenv bs_hdraddr " __stringify(CONFIG_BOOTSCRIPT_HDR_ADDR)";" \ 29 SET_BOOTARGS \ 30 "esbc_validate $bs_hdraddr;" \ 31 "source $img_addr;" \ 32 "esbc_halt\0" 33 34#ifdef CONFIG_BOOTSCRIPT_COPY_RAM 35#define BS_COPY_ENV \ 36 "setenv bs_hdr_ram " __stringify(CONFIG_BS_HDR_ADDR_RAM)";" \ 37 "setenv bs_hdr_device " __stringify(CONFIG_BS_HDR_ADDR_DEVICE)";" \ 38 "setenv bs_hdr_size " __stringify(CONFIG_BS_HDR_SIZE)";" \ 39 "setenv bs_ram " __stringify(CONFIG_BS_ADDR_RAM)";" \ 40 "setenv bs_device " __stringify(CONFIG_BS_ADDR_DEVICE)";" \ 41 "setenv bs_size " __stringify(CONFIG_BS_SIZE)";" 42 43/* For secure boot flow, default environment used will be used */ 44#if defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_NAND_BOOT) || \ 45 defined(CONFIG_SD_BOOT) 46#if defined(CONFIG_NAND_BOOT) 47#define BS_COPY_CMD \ 48 "nand read $bs_hdr_ram $bs_hdr_device $bs_hdr_size ;" \ 49 "nand read $bs_ram $bs_device $bs_size ;" 50#elif defined(CONFIG_SD_BOOT) 51#define BS_COPY_CMD \ 52 "mmc read $bs_hdr_ram $bs_hdr_device $bs_hdr_size ;" \ 53 "mmc read $bs_ram $bs_device $bs_size ;" 54#endif 55#else 56#define BS_COPY_CMD \ 57 "cp.b $bs_hdr_device $bs_hdr_ram $bs_hdr_size ;" \ 58 "cp.b $bs_device $bs_ram $bs_size ;" 59#endif 60#else /* !CONFIG_BOOTSCRIPT_COPY_RAM */ 61#define BS_COPY_ENV 62#define BS_COPY_CMD 63#endif /* CONFIG_BOOTSCRIPT_COPY_RAM */ 64 65#define CHAIN_BOOT_CMD BS_COPY_ENV \ 66 BS_COPY_CMD \ 67 SECBOOT 68 69#endif 70#endif 71