Merge branch '2019-08-26-master-imports'
[oweals/u-boot.git] / common / spl / Kconfig
index 52b04976635449a15cb9bb0f73a0bd0dab3aadac..f467eca2be729874b385ac04896272718b87a6d9 100644 (file)
@@ -62,6 +62,45 @@ config SPL_SIZE_LIMIT_PROVIDE_STACK
          of SRAM available for SPL when the stack required before reolcation
          uses this SRAM, too.
 
+config SPL_SYS_STACK_F_CHECK_BYTE
+       hex
+       default 0xaa
+       help
+         Constant used to check the stack
+
+config SPL_SYS_REPORT_STACK_F_USAGE
+       depends on SPL_SIZE_LIMIT_PROVIDE_STACK != 0
+       bool "Check and report stack usage in SPL before relocation"
+       help
+         If this option is enabled, the initial SPL stack is filled with 0xaa
+         very early, up to the size configured with
+         SPL_SIZE_LIMIT_PROVIDE_STACK.
+         Later when SPL is done using this initial stack and switches to a
+         stack in DRAM, the actually used size of this initial stack is
+         reported by examining the memory and searching for the lowest
+         occurrence of non 0xaa bytes.
+         This default implementation works for stacks growing down only.
+
+menu "PowerPC SPL Boot options"
+       depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK)
+
+config SPL_NAND_BOOT
+       bool "Load SPL from NAND flash"
+
+config SPL_MMC_BOOT
+       bool "Load SPL from SD Card / eMMC"
+
+config SPL_SPI_BOOT
+       bool "Load SPL from SPI flash"
+
+config SPL_FSL_PBL
+       bool "Create SPL in Freescale PBI format"
+       help
+         Create boot binary having SPL binary in PBI format concatenated with
+         u-boot binary.
+
+endmenu
+
 config HANDOFF
        bool "Pass hand-off information from SPL to U-Boot proper"
        depends on BLOBLIST
@@ -96,6 +135,9 @@ config SPL_LDSCRIPT
 config SPL_TEXT_BASE
        hex "SPL Text Base"
        default ISW_ENTRY_ADDR if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
+       default 0x10060 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN9I
+       default 0x20060 if MACH_SUN50I_H6
+       default 0x00060 if ARCH_SUNXI
        default 0x0
        help
          The address in memory that SPL will be running from.
@@ -138,7 +180,7 @@ config SPL_RAW_IMAGE_SUPPORT
 
 config SPL_LEGACY_IMAGE_SUPPORT
        bool "Support SPL loading and booting of Legacy images"
-       default y if !TI_SECURE_DEVICE
+       default y if !TI_SECURE_DEVICE && !SPL_LOAD_FIT
        help
          SPL will support loading and booting Legacy images when this option
          is y. If this is not set, SPL will move on to other available
@@ -166,6 +208,7 @@ config SPL_SYS_MALLOC_SIMPLE
 config TPL_SYS_MALLOC_SIMPLE
        bool
        prompt "Only use malloc_simple functions in the TPL"
+       depends on TPL
        help
          Say Y here to only use the *_simple malloc functions from
          malloc_simple.c, rather then using the versions from dlmalloc.c;
@@ -219,12 +262,23 @@ config SPL_BANNER_PRINT
 
 config TPL_BANNER_PRINT
        bool "Enable output of the TPL banner 'U-Boot TPL ...'"
+       depends on TPL
        default y
        help
          If this option is enabled, SPL will not print the banner with version
          info. Disabling this option could be useful to reduce SPL boot time
          (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud).
 
+config SPL_EARLY_BSS
+       depends on ARM && !ARM64
+       bool "Allows initializing BSS early before entering board_init_f"
+       help
+         On some platform we have sufficient memory available early on to
+         allow setting up and using a basic BSS prior to entering
+         board_init_f. Activating this option will also de-activate the
+         clearing of BSS during the SPL relocation process, thus allowing
+         to carry state from board_init_f to board_init_r by way of BSS.
+
 config SPL_DISPLAY_PRINT
        bool "Display a board-specific message in SPL"
        help
@@ -381,6 +435,7 @@ config SPL_HASH_SUPPORT
 
 config TPL_HASH_SUPPORT
        bool "Support hashing drivers in TPL"
+       depends on TPL
        select SHA1
        select SHA256
        help
@@ -552,6 +607,23 @@ config SPL_MMC_SUPPORT
          this option to build the drivers in drivers/mmc as part of an SPL
          build.
 
+config SPL_MMC_TINY
+       bool "Tiny MMC framework in SPL"
+       depends on SPL_MMC_SUPPORT
+       default n
+       help
+         Enable MMC framework tinification support. This option is useful if
+         if your SPL is extremely size constrained. Heed the warning, enable
+         this option if and only if you know exactly what you are doing, if
+         you are reading this help text, you most likely have no idea :-)
+
+         The MMC framework is reduced to bare minimum to be useful. No malloc
+         support is needed for the MMC framework operation with this option
+         enabled. The framework supports exactly one MMC device and exactly
+         one MMC driver. The MMC driver can be adjusted to avoid any malloc
+         operations too, which can remove the need for malloc support in SPL
+         and thus further reduce footprint.
+
 config SPL_MMC_WRITE
        bool "MMC/SD/SDIO card support for write operations in SPL"
        depends on SPL_MMC_SUPPORT
@@ -593,6 +665,104 @@ config SPL_NAND_SUPPORT
          This enables the drivers in drivers/mtd/nand/raw as part of an SPL
          build.
 
+config SPL_UBI
+       bool "Support UBI"
+       help
+         Enable support for loading payloads from UBI. See
+         README.ubispl for more info.
+
+if SPL_UBI
+config SPL_UBI_LOAD_BY_VOLNAME
+       bool "Support loading volumes by name"
+       help
+         This enables support for loading UBI volumes by name. When this
+         is set, CONFIG_SPL_UBI_LOAD_MONITOR_VOLNAME can be used to
+         configure the volume name from which to load U-Boot.
+
+config SPL_UBI_MAX_VOL_LEBS
+       int "Maximum number of LEBs per volume"
+       depends on SPL_UBI
+       help
+         The maximum number of logical eraseblocks which a static volume
+         to load can contain. Used for sizing the scan data structure.
+
+config SPL_UBI_MAX_PEB_SIZE
+       int "Maximum PEB size"
+       depends on SPL_UBI
+       help
+         The maximum physical erase block size.
+
+config SPL_UBI_MAX_PEBS
+       int "Maximum number of PEBs"
+       depends on SPL_UBI
+       help
+         The maximum physical erase block size. If not overridden by
+         board code, this value will be used as the actual number of PEBs.
+
+config SPL_UBI_PEB_OFFSET
+       int "Offset to first UBI PEB"
+       depends on SPL_UBI
+       help
+         The offset in number of PEBs from the start of flash to the first
+         PEB part of the UBI image.
+
+config SPL_UBI_VID_OFFSET
+       int "Offset to VID header"
+       depends on SPL_UBI
+
+config SPL_UBI_LEB_START
+       int "Offset to LEB in PEB"
+       depends on SPL_UBI
+       help
+         The offset in bytes to the LEB within a PEB.
+
+config SPL_UBI_INFO_ADDR
+       hex "Address to place UBI scan info"
+       depends on SPL_UBI
+       help
+         Address for ubispl to place the scan info. Read README.ubispl to
+         determine the required size
+
+config SPL_UBI_VOL_IDS
+       int "Maximum volume id"
+       depends on SPL_UBI
+       help
+         The maximum volume id which can be loaded. Used for sizing the
+         scan data structure.
+
+config SPL_UBI_LOAD_MONITOR_ID
+       int "id of U-Boot volume"
+       depends on SPL_UBI
+       help
+         The UBI volume id from which to load U-Boot
+
+config SPL_UBI_LOAD_MONITOR_VOLNAME
+       string "volume name of U-Boot volume"
+       depends on SPL_UBI_LOAD_BY_VOLNAME
+       help
+         The UBI volume name from which to load U-Boot
+
+config SPL_UBI_LOAD_KERNEL_ID
+       int "id of kernel volume"
+       depends on SPL_OS_BOOT && SPL_UBI
+       help
+         The UBI volume id from which to load the kernel
+
+config SPL_UBI_LOAD_ARGS_ID
+       int "id of kernel args volume"
+       depends on SPL_OS_BOOT && SPL_UBI
+       help
+         The UBI volume id from which to load the device tree
+
+config UBI_SPL_SILENCE_MSG
+       bool "silence UBI SPL messages"
+       default n
+       help
+         Disable messages from UBI SPL. This leaves warnings
+         and errors enabled.
+
+endif   # if SPL_UBI
+
 config SPL_NET_SUPPORT
        bool "Support networking"
        help
@@ -770,6 +940,20 @@ config SPL_SATA_SUPPORT
          expense and power consumption. This enables loading from SATA
          using a configured device.
 
+config SPL_SATA_RAW_U_BOOT_USE_SECTOR
+       bool "SATA raw mode: by sector"
+       depends on SPL_SATA_SUPPORT
+       help
+         Use sector number for specifying U-Boot location on SATA disk in
+         raw mode.
+
+config SPL_SATA_RAW_U_BOOT_SECTOR
+       hex "Sector on the SATA disk to load U-Boot from"
+       depends on SPL_SATA_RAW_U_BOOT_USE_SECTOR
+       help
+         Sector on the SATA disk to load U-Boot from, when the SATA disk is being
+         used in raw mode. Units: SATA disk sectors (1 sector = 512 bytes).
+
 config SPL_SERIAL_SUPPORT
        bool "Support serial"
        select SPL_PRINTF
@@ -819,6 +1003,14 @@ config SPL_SPI_LOAD
 
 endif # SPL_SPI_FLASH_SUPPORT
 
+config SYS_SPI_U_BOOT_OFFS
+       hex "address of u-boot payload in SPI flash"
+       default 0x0
+       depends on SPL_SPI_LOAD || SPL_SPI_SUNXI
+       help
+        Address within SPI-Flash from where the u-boot payload is fetched
+        from.
+
 config SPL_SPI_SUPPORT
        bool "Support SPI drivers"
        help
@@ -913,6 +1105,7 @@ endif
 
 config SPL_WATCHDOG_SUPPORT
        bool "Support watchdog drivers"
+       imply SPL_WDT if !HW_WATCHDOG
        help
          Enable support for watchdog drivers in SPL. A watchdog is
          typically a hardware peripheral which can reset the system when it
@@ -964,6 +1157,23 @@ config SPL_OPTEE
          OP-TEE is an open source Trusted OS  which is loaded by SPL.
          More detail at: https://github.com/OP-TEE/optee_os
 
+config SPL_OPENSBI
+       bool "Support RISC-V OpenSBI"
+       depends on RISCV && SPL_RISCV_MMODE && RISCV_SMODE
+       help
+         OpenSBI is an open-source implementation of the RISC-V Supervisor Binary
+         Interface (SBI) specification. U-Boot supports the OpenSBI FW_DYNAMIC
+         firmware. It is loaded and started by U-Boot SPL.
+
+         More details are available at https://github.com/riscv/opensbi and
+         https://github.com/riscv/riscv-sbi-doc
+
+config SPL_OPENSBI_LOAD_ADDR
+       hex "OpenSBI load address"
+       depends on SPL_OPENSBI
+       help
+         Load address of the OpenSBI binary.
+
 config TPL
        bool
        depends on SUPPORT_TPL