spl: mmc: Skip RAW mode ARGS sectors if not defined
[oweals/u-boot.git] / common / spl / Kconfig
index 1a905884927e1570fbb22e58acbca1899bd10ef5..99c9053ab8302353681834a17720808bb885d9cd 100644 (file)
@@ -16,12 +16,20 @@ config SPL
        help
          If you want to build SPL as well as the normal image, say Y.
 
+config SPL_FRAMEWORK
+       bool "Support SPL based upon the common SPL framework"
+       depends on SPL
+       default y
+       help
+         Enable the SPL framework under common/spl/.  This framework
+         supports MMC, NAND and YMODEM and other methods loading of U-Boot
+         and the Linux Kernel.  If unsure, say Y.
+
 if SPL
 
 config SPL_LDSCRIPT
        string "Linker script for the SPL stage"
        default "arch/$(ARCH)/cpu/u-boot-spl.lds"
-       depends on SPL
        help
          The SPL stage will usually require a different linker-script
          (as it runs from a different memory region) than the regular
@@ -46,6 +54,15 @@ config SPL_BOOTROM_SUPPORT
          BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
          boot device list, if not implemented for a given board)
 
+config SPL_BOOTCOUNT_LIMIT
+       bool "Support bootcount in SPL"
+       depends on SPL_ENV_SUPPORT
+       help
+         On some boards, which use 'falcon' mode, it is necessary to check
+         and increment the number of boot attempts. Such boards do not
+         use proper U-Boot for normal boot flow and hence needs those
+         adjustments to be done in the SPL.
+
 config SPL_RAW_IMAGE_SUPPORT
        bool "Support SPL loading and booting of RAW images"
        default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT))
@@ -94,6 +111,7 @@ config SPL_STACK_R
 config SPL_STACK_R_ADDR
        depends on SPL_STACK_R
        hex "SDRAM location for SPL stack"
+       default 0x82000000 if ARCH_OMAP2PLUS
        help
          Specify the address in SDRAM for the SPL stack. This will be set up
          before board_init_r() is called.
@@ -117,6 +135,13 @@ config SPL_SEPARATE_BSS
          location is used. Normally we put the device tree at the end of BSS
          but with this option enabled, it goes at _image_binary_end.
 
+config SPL_DISABLE_BANNER_PRINT
+       bool "Disable output of the SPL banner 'U-Boot SPL ...'"
+       help
+         If this option is enabled, SPL will not print the banner with version
+         info. Selecting this option could be useful to reduce SPL boot time
+         (e.g. approx. 6 ms slower, when output on i.MX6 with 115200 baud).
+
 config SPL_DISPLAY_PRINT
        bool "Display a board-specific message in SPL"
        help
@@ -127,7 +152,8 @@ config SPL_DISPLAY_PRINT
 
 config SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
        bool "MMC raw mode: by sector"
-       default y if ARCH_SUNXI || ARCH_DAVINCI || ARCH_UNIPHIER ||ARCH_MX6 || \
+       default y if ARCH_SUNXI || ARCH_DAVINCI || ARCH_UNIPHIER || \
+                    ARCH_MX6 || ARCH_MX7 || \
                     ARCH_ROCKCHIP || ARCH_MVEBU ||  ARCH_SOCFPGA || \
                     ARCH_AT91 || ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || \
                     OMAP44XX || OMAP54XX || AM33XX || AM43XX
@@ -140,12 +166,13 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
        depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
        default 0x50 if ARCH_SUNXI
        default 0x75 if ARCH_DAVINCI
-       default 0x8a if ARCH_MX6
-       default 0x100 if ARCH_ROCKCHIP || ARCH_UNIPHIER
+       default 0x8a if ARCH_MX6 || ARCH_MX7
+       default 0x100 if ARCH_UNIPHIER
        default 0x140 if ARCH_MVEBU
        default 0x200 if ARCH_SOCFPGA || ARCH_AT91
        default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \
                         OMAP54XX || AM33XX || AM43XX
+       default 0x4000 if ARCH_ROCKCHIP
        help
          Address on the MMC to load U-Boot from, when the MMC is being used
          in raw mode. Units: MMC sectors (1 sector = 512 bytes).
@@ -226,6 +253,21 @@ config SPL_SHA256_SUPPORT
          SHA256 variant is supported: SHA512 and others are not currently
          supported in U-Boot.
 
+config SPL_FIT_IMAGE_TINY
+       bool "Remove functionality from SPL FIT loading to reduce size"
+       depends on SPL_FIT
+       default y if MACH_SUN50I || MACH_SUN50I_H5
+       help
+         Enable this to reduce the size of the FIT image loading code
+         in SPL, if space for the SPL binary is very tight.
+
+         This removes the detection of image types (which forces the
+         first image to be treated as having a U-Boot style calling
+         convention) and skips the recording of each loaded payload
+         (i.e. loadable) into the FDT (modifying the loaded FDT to
+         ensure this information is available to the next image
+         invoked).
+
 config SPL_CPU_SUPPORT
        bool "Support CPU drivers"
        help
@@ -278,12 +320,13 @@ config SPL_ENV_SUPPORT
          needed in SPL as it has a much simpler task with less
          configuration. But some boards use this to support 'Falcon' boot
          on EXT2 and FAT, where SPL boots directly into Linux without
-         starting U-Boot first. Enabling this option will make getenv()
-         and setenv() available in SPL.
+         starting U-Boot first. Enabling this option will make env_get()
+         and env_set() available in SPL.
 
 config SPL_SAVEENV
        bool "Support save environment"
        depends on SPL_ENV_SUPPORT
+       select SPL_MMC_WRITE if ENV_IS_IN_MMC
        help
          Enable save environment support in SPL after setenv. By default
          the saveenv option is not provided in SPL, but some boards need
@@ -292,7 +335,7 @@ config SPL_SAVEENV
          example OS may set "reboot_image" environment variable to
          "recovery" inorder to boot recovery image by SPL. The SPL read
          "reboot_image" and act accordingly and change the reboot_image
-         to default mode using setenv and save the environemnt.
+         to default mode using setenv and save the environment.
 
 config SPL_ETH_SUPPORT
        bool "Support Ethernet"
@@ -398,6 +441,14 @@ config SPL_MMC_SUPPORT
          this option to build the drivers in drivers/mmc as part of an SPL
          build.
 
+config SPL_MMC_WRITE
+       bool "MMC/SD/SDIO card support for write operations in SPL"
+       depends on SPL_MMC_SUPPORT
+       default n
+       help
+         Enable write access to MMC and SD Cards in SPL
+
+
 config SPL_MPC8XXX_INIT_DDR_SUPPORT
        bool "Support MPC8XXX DDR init"
        help
@@ -527,6 +578,15 @@ config SPL_POST_MEM_SUPPORT
          performed before booting. This enables the drivers in post/drivers
          as part of an SPL build.
 
+config SPL_DM_RESET
+       bool "Support reset drivers"
+       depends on SPL
+       help
+         Enable support for reset control in SPL.
+         That can be useful in SPL to handle IP reset in driver, as in U-Boot,
+         by using the generic reset API provided by driver model.
+         This enables the drivers in drivers/reset as part of an SPL build.
+
 config SPL_POWER_SUPPORT
        bool "Support power drivers"
        help
@@ -576,6 +636,8 @@ config SPL_SATA_SUPPORT
 
 config SPL_SERIAL_SUPPORT
        bool "Support serial"
+       select SPL_PRINTF
+       select SPL_STRTO
        help
          Enable support for serial in SPL. This allows use of a serial UART
          for displaying messages while SPL is running. It also brings in
@@ -593,6 +655,13 @@ config SPL_SPI_FLASH_SUPPORT
          lines). This enables the drivers in drivers/mtd/spi as part of an
          SPL build. This normally requires SPL_SPI_SUPPORT.
 
+config SPL_SPI_LOAD
+       bool "Support loading from SPI flash"
+       depends on SPL_SPI_FLASH_SUPPORT
+       help
+         Enable support for loading next stage, U-Boot or otherwise, from
+         SPI NOR in U-Boot SPL.
+
 config SPL_SPI_SUPPORT
        bool "Support SPI drivers"
        help
@@ -603,13 +672,13 @@ config SPL_SPI_SUPPORT
          enable SPI drivers that are needed for other purposes also, such
          as a SPI PMIC.
 
-config SPL_TIMER_SUPPORT
-       bool "Support timer drivers"
+config SPL_THERMAL
+       bool "Driver support for thermal devices"
        help
-         Enable support for timer drivers in SPL. These can be used to get
-         a timer value when in SPL, or perhaps for implementing a delay
-         function. This enables the drivers in drivers/timer as part of an
-         SPL build.
+         Enable support for temperature-sensing devices. Some SoCs have on-chip
+         temperature sensors to permit warnings, speed throttling or even
+         automatic power-off when the temperature gets too high or low. Other
+         devices may be discrete but connected on a suitable bus.
 
 config SPL_USB_HOST_SUPPORT
        bool "Support USB host drivers"
@@ -639,7 +708,7 @@ config SPL_USB_GADGET_SUPPORT
 
 if SPL_USB_GADGET_SUPPORT
 
-config SPL_USBETH_SUPPORT
+config SPL_USB_ETHER
        bool "Support USB Ethernet drivers"
        help
          Enable access to the USB network subsystem and associated
@@ -676,6 +745,12 @@ config SPL_DFU_RAM
 
 endchoice
 
+config SPL_USB_SDP_SUPPORT
+       bool "Support SDP (Serial Download Protocol)"
+       help
+         Enable Serial Download Protocol (SDP) device support in SPL. This
+         allows to download images into memory and execute (jump to) them
+         using the same protocol as implemented by the i.MX family's boot ROM.
 endif
 
 config SPL_WATCHDOG_SUPPORT
@@ -688,25 +763,41 @@ config SPL_WATCHDOG_SUPPORT
 
 config SPL_YMODEM_SUPPORT
        bool "Support loading using Ymodem"
+       depends on SPL_SERIAL_SUPPORT
        help
          While loading from serial is slow it can be a useful backup when
          there is no other option. The Ymodem protocol provides a reliable
          means of transmitting U-Boot over a serial line for using in SPL,
          with a checksum to ensure correctness.
 
-config SPL_ATF_SUPPORT
+config SPL_ATF
        bool "Support ARM Trusted Firmware"
        depends on ARM64
        help
-         ATF(ARM Trusted Firmware) is a component for ARM arch64 which which
-         is loaded by SPL(which is considered as BL2 in ATF terminology).
+         ATF(ARM Trusted Firmware) is a component for ARM AArch64 which
+         is loaded by SPL (which is considered as BL2 in ATF terminology).
          More detail at: https://github.com/ARM-software/arm-trusted-firmware
 
-config SPL_ATF_TEXT_BASE
-       depends on SPL_ATF_SUPPORT
-       hex "ATF BL31 base address"
+config SPL_ATF_NO_PLATFORM_PARAM
+        bool "Pass no platform parameter"
+       depends on SPL_ATF
+       help
+         While we expect to call a pointer to a valid FDT (or NULL)
+         as the platform parameter to an ATF, some ATF versions are
+         not U-Boot aware and have an insufficiently robust parameter
+         validation to gracefully reject a FDT being passed.
+
+         If this option is enabled, the spl_atf os-type handler will
+         always pass NULL for the platform parameter.
+
+         If your ATF is affected, say Y.
+
+config SPL_AM33XX_ENABLE_RTC32K_OSC
+       bool "Enable the RTC32K OSC on AM33xx based platforms"
+       default y if AM33XX
        help
-         This is the base address in memory for ATF BL31 text and entry point.
+         Enable access to the AM33xx RTC and select the external 32kHz clock
+         source.
 
 config TPL
        bool
@@ -717,6 +808,13 @@ config TPL
 
 if TPL
 
+config TPL_BOARD_INIT
+       bool "Call board-specific initialization in TPL"
+       help
+         If this option is enabled, U-Boot will call the function
+         spl_board_init() from board_init_r(). This function should be
+         provided by the board.
+
 config TPL_LDSCRIPT
         string "Linker script for the TPL stage"
        depends on TPL
@@ -754,6 +852,7 @@ config TPL_TEXT_BASE
 
 config TPL_MAX_SIZE
         int "Maximum size (in bytes) for the TPL stage"
+       default 0
        depends on TPL
        help
          The maximum size (in bytes) of the TPL stage.
@@ -824,8 +923,24 @@ config TPL_NAND_SUPPORT
        help
          Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details.
 
+config TPL_RAM_SUPPORT
+       bool "Support booting from RAM"
+       help
+         Enable booting of an image in RAM. The image can be preloaded or
+         it can be loaded by TPL directly into RAM (e.g. using USB).
+
+config TPL_RAM_DEVICE
+       bool "Support booting from preloaded image in RAM"
+       depends on TPL_RAM_SUPPORT
+       help
+         Enable booting of an image already loaded in RAM. The image has to
+         be already in memory when TPL takes over, e.g. loaded by the boot
+         ROM.
+
 config TPL_SERIAL_SUPPORT
        bool "Support serial"
+       select TPL_PRINTF
+       select TPL_STRTO
        help
          Enable support for serial in TPL. See SPL_SERIAL_SUPPORT for
          details.
@@ -836,12 +951,28 @@ config TPL_SPI_FLASH_SUPPORT
          Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT
          for details.
 
+config TPL_SPI_LOAD
+       bool "Support loading from SPI flash"
+       depends on TPL_SPI_FLASH_SUPPORT
+       help
+         Enable support for loading next stage, U-Boot or otherwise, from
+         SPI NOR in U-Boot TPL.
+
 config TPL_SPI_SUPPORT
        bool "Support SPI drivers"
        help
          Enable support for using SPI in TPL. See SPL_SPI_SUPPORT for
          details.
 
+config TPL_YMODEM_SUPPORT
+       bool "Support loading using Ymodem"
+       depends on TPL_SERIAL_SUPPORT
+       help
+         While loading from serial is slow it can be a useful backup when
+         there is no other option. The Ymodem protocol provides a reliable
+         means of transmitting U-Boot over a serial line for using in TPL,
+         with a checksum to ensure correctness.
+
 endif # TPL
 
 endif # SPL