117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * Copyright 2015 Freescale Semiconductor, Inc.
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #ifndef __CONFIG_FSL_SECBOOT_H
 | |
| #define __CONFIG_FSL_SECBOOT_H
 | |
| 
 | |
| #ifdef CONFIG_SECURE_BOOT
 | |
| 
 | |
| #ifndef CONFIG_CMD_ESBC_VALIDATE
 | |
| #define CONFIG_CMD_ESBC_VALIDATE
 | |
| #endif
 | |
| 
 | |
| #ifndef CONFIG_EXTRA_ENV
 | |
| #define CONFIG_EXTRA_ENV	""
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Control should not reach back to uboot after validation of images
 | |
|  * for secure boot flow and therefore bootscript should have
 | |
|  * the bootm command. If control reaches back to uboot anyhow
 | |
|  * after validating images, core should just spin.
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Define the key hash for boot script here if public/private key pair used to
 | |
|  * sign bootscript are different from the SRK hash put in the fuse
 | |
|  * Example of defining KEY_HASH is
 | |
|  * #define CONFIG_BOOTSCRIPT_KEY_HASH \
 | |
|  *	 "41066b564c6ffcef40ccbc1e0a5d0d519604000c785d97bbefd25e4d288d1c8b"
 | |
|  */
 | |
| 
 | |
| #ifdef CONFIG_BOOTSCRIPT_KEY_HASH
 | |
| #define CONFIG_SECBOOT \
 | |
| 	"setenv bs_hdraddr " __stringify(CONFIG_BOOTSCRIPT_HDR_ADDR)";" \
 | |
| 	"setenv bootargs \'root=/dev/ram rw console=ttyS0,115200 "	\
 | |
| 	"ramdisk_size=600000\';"	\
 | |
| 	CONFIG_EXTRA_ENV	\
 | |
| 	"esbc_validate $bs_hdraddr " \
 | |
| 	  __stringify(CONFIG_BOOTSCRIPT_KEY_HASH)";" \
 | |
| 	"source $img_addr;"	\
 | |
| 	"esbc_halt\0"
 | |
| #else
 | |
| #define CONFIG_SECBOOT \
 | |
| 	"setenv bs_hdraddr " __stringify(CONFIG_BOOTSCRIPT_HDR_ADDR)";" \
 | |
| 	"setenv bootargs \'root=/dev/ram rw console=ttyS0,115200 "	\
 | |
| 	"ramdisk_size=600000\';"	\
 | |
| 	CONFIG_EXTRA_ENV	\
 | |
| 	"esbc_validate $bs_hdraddr;" \
 | |
| 	"source $img_addr;"	\
 | |
| 	"esbc_halt\0"
 | |
| #endif
 | |
| 
 | |
| /* For secure boot flow, default environment used will be used */
 | |
| #if defined(CONFIG_SYS_RAMBOOT)
 | |
| #ifdef CONFIG_BOOTSCRIPT_COPY_RAM
 | |
| #define CONFIG_BS_COPY_ENV \
 | |
| 	"setenv bs_hdr_ram " __stringify(CONFIG_BS_HDR_ADDR_RAM)";" \
 | |
| 	"setenv bs_hdr_flash " __stringify(CONFIG_BS_HDR_ADDR_FLASH)";" \
 | |
| 	"setenv bs_hdr_size " __stringify(CONFIG_BS_HDR_SIZE)";" \
 | |
| 	"setenv bs_ram " __stringify(CONFIG_BS_ADDR_RAM)";" \
 | |
| 	"setenv bs_flash " __stringify(CONFIG_BS_ADDR_FLASH)";" \
 | |
| 	"setenv bs_size " __stringify(CONFIG_BS_SIZE)";"
 | |
| 
 | |
| #if defined(CONFIG_RAMBOOT_NAND)
 | |
| #define CONFIG_BS_COPY_CMD \
 | |
| 	"nand read $bs_hdr_ram $bs_hdr_flash $bs_hdr_size ;" \
 | |
| 	"nand read $bs_ram $bs_flash $bs_size ;"
 | |
| #endif /* CONFIG_RAMBOOT_NAND */
 | |
| #endif /* CONFIG_BOOTSCRIPT_COPY_RAM */
 | |
| 
 | |
| #if defined(CONFIG_RAMBOOT_SPIFLASH)
 | |
| #undef CONFIG_ENV_IS_IN_SPI_FLASH
 | |
| #elif defined(CONFIG_RAMBOOT_NAND)
 | |
| #undef CONFIG_ENV_IS_IN_NAND
 | |
| #elif defined(CONFIG_RAMBOOT_SDCARD)
 | |
| #undef CONFIG_ENV_IS_IN_MMC
 | |
| #endif
 | |
| #else /*CONFIG_SYS_RAMBOOT*/
 | |
| #undef CONFIG_ENV_IS_IN_FLASH
 | |
| #endif
 | |
| 
 | |
| #define CONFIG_ENV_IS_NOWHERE
 | |
| 
 | |
| #ifndef CONFIG_BS_COPY_ENV
 | |
| #define CONFIG_BS_COPY_ENV
 | |
| #endif
 | |
| 
 | |
| #ifndef CONFIG_BS_COPY_CMD
 | |
| #define CONFIG_BS_COPY_CMD
 | |
| #endif
 | |
| 
 | |
| #define CONFIG_SECBOOT_CMD	CONFIG_BS_COPY_ENV \
 | |
| 				CONFIG_BS_COPY_CMD \
 | |
| 				CONFIG_SECBOOT
 | |
| /*
 | |
|  * We don't want boot delay for secure boot flow
 | |
|  * before autoboot starts
 | |
|  */
 | |
| #undef CONFIG_BOOTDELAY
 | |
| #define CONFIG_BOOTDELAY	0
 | |
| #undef CONFIG_BOOTCOMMAND
 | |
| #define CONFIG_BOOTCOMMAND		CONFIG_SECBOOT_CMD
 | |
| 
 | |
| /*
 | |
|  * CONFIG_ZERO_BOOTDELAY_CHECK should not be defined for
 | |
|  * secure boot flow as defining this would enable a user to
 | |
|  * reach uboot prompt by pressing some key before start of
 | |
|  * autoboot
 | |
|  */
 | |
| #undef CONFIG_ZERO_BOOTDELAY_CHECK
 | |
| 
 | |
| #endif
 | |
| #endif
 |