SECURE_BOOT: Enable SD as a source for bootscript
Add support for reading bootscript and bootscript header from SD. Also renamed macros *_FLASH to *_DEVICE to represent SD alongwith NAND and NOR flash. Reviewed-by: Aneesh Bansal <aneesh.bansal@nxp.com> Signed-off-by: Sumit Garg <sumit.garg@nxp.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
028ac8c733
commit
69d4b48c84
@ -78,37 +78,52 @@
|
||||
"setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';"
|
||||
#else
|
||||
#define CONFIG_EXTRA_ENV \
|
||||
"setenv fdt_high 0xcfffffff;" \
|
||||
"setenv initrd_high 0xcfffffff;" \
|
||||
"setenv fdt_high 0xffffffff;" \
|
||||
"setenv initrd_high 0xffffffff;" \
|
||||
"setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';"
|
||||
#endif
|
||||
|
||||
/* Copying Bootscript and Header to DDR from NOR for LS2 and for rest, from
|
||||
* Non-XIP Memory (Nand/SD)*/
|
||||
#if defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_LS2080A)
|
||||
#if defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_LS2080A) || \
|
||||
defined(CONFIG_SD_BOOT)
|
||||
#define CONFIG_BOOTSCRIPT_COPY_RAM
|
||||
#endif
|
||||
/* The address needs to be modified according to NOR and DDR memory map */
|
||||
/* The address needs to be modified according to NOR, NAND, SD and
|
||||
* DDR memory map
|
||||
*/
|
||||
#ifdef CONFIG_LS2080A
|
||||
#define CONFIG_BS_HDR_ADDR_FLASH 0x583920000
|
||||
#define CONFIG_BS_ADDR_FLASH 0x583900000
|
||||
#define CONFIG_BS_HDR_ADDR_DEVICE 0x583920000
|
||||
#define CONFIG_BS_ADDR_DEVICE 0x583900000
|
||||
#define CONFIG_BS_HDR_ADDR_RAM 0xa3920000
|
||||
#define CONFIG_BS_ADDR_RAM 0xa3900000
|
||||
#define CONFIG_BS_HDR_SIZE 0x00002000
|
||||
#define CONFIG_BS_SIZE 0x00001000
|
||||
#else
|
||||
#define CONFIG_BS_HDR_ADDR_FLASH 0x600a0000
|
||||
#define CONFIG_BS_ADDR_FLASH 0x60060000
|
||||
#define CONFIG_BS_HDR_ADDR_RAM 0xa0060000
|
||||
#define CONFIG_BS_ADDR_RAM 0xa0060000
|
||||
#ifdef CONFIG_SD_BOOT
|
||||
/* For SD boot address and size are assigned in terms of sector
|
||||
* offset and no. of sectors respectively.
|
||||
*/
|
||||
#define CONFIG_BS_HDR_ADDR_DEVICE 0x00000800
|
||||
#define CONFIG_BS_ADDR_DEVICE 0x00000840
|
||||
#define CONFIG_BS_HDR_SIZE 0x00000010
|
||||
#define CONFIG_BS_SIZE 0x00000008
|
||||
#else
|
||||
#define CONFIG_BS_HDR_ADDR_DEVICE 0x600a0000
|
||||
#define CONFIG_BS_ADDR_DEVICE 0x60060000
|
||||
#define CONFIG_BS_HDR_SIZE 0x00002000
|
||||
#define CONFIG_BS_SIZE 0x00001000
|
||||
#endif /* #ifdef CONFIG_SD_BOOT */
|
||||
#define CONFIG_BS_HDR_ADDR_RAM 0x81000000
|
||||
#define CONFIG_BS_ADDR_RAM 0x81020000
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOTSCRIPT_COPY_RAM
|
||||
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_RAM
|
||||
#define CONFIG_BS_HDR_SIZE 0x00002000
|
||||
#define CONFIG_BOOTSCRIPT_ADDR CONFIG_BS_ADDR_RAM
|
||||
#define CONFIG_BS_SIZE 0x00001000
|
||||
#else
|
||||
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_FLASH
|
||||
/* BS_HDR_SIZE, BOOTSCRIPT_ADDR and BS_SIZE are not required */
|
||||
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_DEVICE
|
||||
/* BOOTSCRIPT_ADDR is not required */
|
||||
#endif
|
||||
|
||||
#include <config_fsl_chain_trust.h>
|
||||
|
@ -128,10 +128,10 @@
|
||||
/* If Boot Script is not on NOR and is required to be copied on RAM */
|
||||
#ifdef CONFIG_BOOTSCRIPT_COPY_RAM
|
||||
#define CONFIG_BS_HDR_ADDR_RAM 0x00010000
|
||||
#define CONFIG_BS_HDR_ADDR_FLASH 0x00800000
|
||||
#define CONFIG_BS_HDR_ADDR_DEVICE 0x00800000
|
||||
#define CONFIG_BS_HDR_SIZE 0x00002000
|
||||
#define CONFIG_BS_ADDR_RAM 0x00012000
|
||||
#define CONFIG_BS_ADDR_FLASH 0x00802000
|
||||
#define CONFIG_BS_ADDR_DEVICE 0x00802000
|
||||
#define CONFIG_BS_SIZE 0x00001000
|
||||
|
||||
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_RAM
|
||||
|
@ -74,23 +74,27 @@
|
||||
#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_device " __stringify(CONFIG_BS_HDR_ADDR_DEVICE)";" \
|
||||
"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_device " __stringify(CONFIG_BS_ADDR_DEVICE)";" \
|
||||
"setenv bs_size " __stringify(CONFIG_BS_SIZE)";"
|
||||
|
||||
/* For secure boot flow, default environment used will be used */
|
||||
#if defined(CONFIG_SYS_RAMBOOT)
|
||||
#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 ;"
|
||||
"nand read $bs_hdr_ram $bs_hdr_device $bs_hdr_size ;" \
|
||||
"nand read $bs_ram $bs_device $bs_size ;"
|
||||
#endif /* CONFIG_RAMBOOT_NAND */
|
||||
#else
|
||||
#elif defined(CONFIG_SD_BOOT)
|
||||
#define CONFIG_BS_COPY_CMD \
|
||||
"cp.b $bs_hdr_flash $bs_hdr_ram $bs_hdr_size ;" \
|
||||
"cp.b $bs_flash $bs_ram $bs_size ;"
|
||||
"mmc read $bs_hdr_ram $bs_hdr_device $bs_hdr_size ;" \
|
||||
"mmc read $bs_ram $bs_device $bs_size ;"
|
||||
#else /* CONFIG_SD_BOOT */
|
||||
#define CONFIG_BS_COPY_CMD \
|
||||
"cp.b $bs_hdr_device $bs_hdr_ram $bs_hdr_size ;" \
|
||||
"cp.b $bs_device $bs_ram $bs_size ;"
|
||||
#endif
|
||||
#endif /* CONFIG_BOOTSCRIPT_COPY_RAM */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user