Skip to content
Snippets Groups Projects
Commit 69d4b48c authored by Sumit Garg's avatar Sumit Garg Committed by York Sun
Browse files

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: default avatarAneesh Bansal <aneesh.bansal@nxp.com>
Signed-off-by: default avatarSumit Garg <sumit.garg@nxp.com>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
Reviewed-by: default avatarYork Sun <york.sun@nxp.com>
parent 028ac8c7
No related branches found
No related tags found
No related merge requests found
...@@ -78,37 +78,52 @@ ...@@ -78,37 +78,52 @@
"setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';" "setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';"
#else #else
#define CONFIG_EXTRA_ENV \ #define CONFIG_EXTRA_ENV \
"setenv fdt_high 0xcfffffff;" \ "setenv fdt_high 0xffffffff;" \
"setenv initrd_high 0xcfffffff;" \ "setenv initrd_high 0xffffffff;" \
"setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';" "setenv hwconfig \'fsl_ddr:ctlr_intlv=null,bank_intlv=null\';"
#endif #endif
/* Copying Bootscript and Header to DDR from NOR for LS2 and for rest, from /* Copying Bootscript and Header to DDR from NOR for LS2 and for rest, from
* Non-XIP Memory (Nand/SD)*/ * 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 #define CONFIG_BOOTSCRIPT_COPY_RAM
#endif #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 #ifdef CONFIG_LS2080A
#define CONFIG_BS_HDR_ADDR_FLASH 0x583920000 #define CONFIG_BS_HDR_ADDR_DEVICE 0x583920000
#define CONFIG_BS_ADDR_FLASH 0x583900000 #define CONFIG_BS_ADDR_DEVICE 0x583900000
#define CONFIG_BS_HDR_ADDR_RAM 0xa3920000 #define CONFIG_BS_HDR_ADDR_RAM 0xa3920000
#define CONFIG_BS_ADDR_RAM 0xa3900000 #define CONFIG_BS_ADDR_RAM 0xa3900000
#define CONFIG_BS_HDR_SIZE 0x00002000
#define CONFIG_BS_SIZE 0x00001000
#else
#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 #else
#define CONFIG_BS_HDR_ADDR_FLASH 0x600a0000 #define CONFIG_BS_HDR_ADDR_DEVICE 0x600a0000
#define CONFIG_BS_ADDR_FLASH 0x60060000 #define CONFIG_BS_ADDR_DEVICE 0x60060000
#define CONFIG_BS_HDR_ADDR_RAM 0xa0060000 #define CONFIG_BS_HDR_SIZE 0x00002000
#define CONFIG_BS_ADDR_RAM 0xa0060000 #define CONFIG_BS_SIZE 0x00001000
#endif /* #ifdef CONFIG_SD_BOOT */
#define CONFIG_BS_HDR_ADDR_RAM 0x81000000
#define CONFIG_BS_ADDR_RAM 0x81020000
#endif #endif
#ifdef CONFIG_BOOTSCRIPT_COPY_RAM #ifdef CONFIG_BOOTSCRIPT_COPY_RAM
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_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_BOOTSCRIPT_ADDR CONFIG_BS_ADDR_RAM
#define CONFIG_BS_SIZE 0x00001000
#else #else
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_FLASH #define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_DEVICE
/* BS_HDR_SIZE, BOOTSCRIPT_ADDR and BS_SIZE are not required */ /* BOOTSCRIPT_ADDR is not required */
#endif #endif
#include <config_fsl_chain_trust.h> #include <config_fsl_chain_trust.h>
......
...@@ -128,10 +128,10 @@ ...@@ -128,10 +128,10 @@
/* If Boot Script is not on NOR and is required to be copied on RAM */ /* If Boot Script is not on NOR and is required to be copied on RAM */
#ifdef CONFIG_BOOTSCRIPT_COPY_RAM #ifdef CONFIG_BOOTSCRIPT_COPY_RAM
#define CONFIG_BS_HDR_ADDR_RAM 0x00010000 #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_HDR_SIZE 0x00002000
#define CONFIG_BS_ADDR_RAM 0x00012000 #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_BS_SIZE 0x00001000
#define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_RAM #define CONFIG_BOOTSCRIPT_HDR_ADDR CONFIG_BS_HDR_ADDR_RAM
......
...@@ -74,23 +74,27 @@ ...@@ -74,23 +74,27 @@
#ifdef CONFIG_BOOTSCRIPT_COPY_RAM #ifdef CONFIG_BOOTSCRIPT_COPY_RAM
#define CONFIG_BS_COPY_ENV \ #define CONFIG_BS_COPY_ENV \
"setenv bs_hdr_ram " __stringify(CONFIG_BS_HDR_ADDR_RAM)";" \ "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_hdr_size " __stringify(CONFIG_BS_HDR_SIZE)";" \
"setenv bs_ram " __stringify(CONFIG_BS_ADDR_RAM)";" \ "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)";" "setenv bs_size " __stringify(CONFIG_BS_SIZE)";"
/* For secure boot flow, default environment used will be used */ /* For secure boot flow, default environment used will be used */
#if defined(CONFIG_SYS_RAMBOOT) #if defined(CONFIG_SYS_RAMBOOT)
#if defined(CONFIG_RAMBOOT_NAND) #if defined(CONFIG_RAMBOOT_NAND)
#define CONFIG_BS_COPY_CMD \ #define CONFIG_BS_COPY_CMD \
"nand read $bs_hdr_ram $bs_hdr_flash $bs_hdr_size ;" \ "nand read $bs_hdr_ram $bs_hdr_device $bs_hdr_size ;" \
"nand read $bs_ram $bs_flash $bs_size ;" "nand read $bs_ram $bs_device $bs_size ;"
#endif /* CONFIG_RAMBOOT_NAND */ #endif /* CONFIG_RAMBOOT_NAND */
#else #elif defined(CONFIG_SD_BOOT)
#define CONFIG_BS_COPY_CMD \
"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 \ #define CONFIG_BS_COPY_CMD \
"cp.b $bs_hdr_flash $bs_hdr_ram $bs_hdr_size ;" \ "cp.b $bs_hdr_device $bs_hdr_ram $bs_hdr_size ;" \
"cp.b $bs_flash $bs_ram $bs_size ;" "cp.b $bs_device $bs_ram $bs_size ;"
#endif #endif
#endif /* CONFIG_BOOTSCRIPT_COPY_RAM */ #endif /* CONFIG_BOOTSCRIPT_COPY_RAM */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment