From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0D72CC433F5 for ; Tue, 31 May 2022 16:17:58 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7F0B38431B; Tue, 31 May 2022 18:17:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=konsulko.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id F2DDB842B2; Tue, 31 May 2022 18:17:31 +0200 (CEST) Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7E4AE8426E for ; Tue, 31 May 2022 18:17:20 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=konsulko.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=tom.rini@gmail.com Received: by mail-qk1-f178.google.com with SMTP id l82so13552054qke.3 for ; Tue, 31 May 2022 09:17:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z4aHqAtrh/913/XxxLeTcLBuc79izC0wPOCN6KRm2x4=; b=tKc8txWxqUpKvwpebw39Yd7hEnZR2DaPKqMX/B78pSsbDMxC1Oq3nhuCDLcLGWzmJj KAQErtGJsUIZqqI4297uv24TC/TpN7/r56mcgsT7mGfQ119mfU+Z1t0fK3hA19cUVI6k /46BJctbr8SVgooHlJSjyFLF7zOE6SrCjgmU3F4PdZ7ULsJtqA8QJ1bJU0JEvyUWVOEL 0kDaE8UsOMmzDsx1FyntgEIoZeMuDCZtI//5aEskpvcCZXX4v8nzntWRRAFLuexaVAZA nySBHJu1Z6Cf2Ye6IUFzoEYKlwQ7JiCkJNT/SEIUJ1bhwWzVgYXDoiwQfJ1HrU77ERVC ecVQ== X-Gm-Message-State: AOAM530mzfhG/511HUJWTAWdrVRSvM2L23zHcltNzuuxwTIXVghDI077 qL7veKAc6SKveNMkp+qO0dHDfBjm0A== X-Google-Smtp-Source: ABdhPJzSTQbE37vqgnA069Yocf7H05HJnd5aYbEi+JpxwMPGV5jhv8ySEQtcnaymlV7Wm8AivNfFPw== X-Received: by 2002:a05:620a:240a:b0:6a5:3b28:d752 with SMTP id d10-20020a05620a240a00b006a53b28d752mr27285124qkn.68.1654013837886; Tue, 31 May 2022 09:17:17 -0700 (PDT) Received: from localhost.localdomain (2603-6081-7b00-25fd-0000-0000-0000-1003.res6.spectrum.com. [2603:6081:7b00:25fd::1003]) by smtp.gmail.com with ESMTPSA id a85-20020ae9e858000000b0069fc13ce257sm9501847qkg.136.2022.05.31.09.17.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 May 2022 09:17:16 -0700 (PDT) From: Tom Rini To: u-boot@lists.denx.de Subject: [PATCH 1/3] spl: Move all VPL, TPL and PowerPC specific CONFIG options to separate files Date: Tue, 31 May 2022 12:17:03 -0400 Message-Id: <20220531161705.717658-2-trini@konsulko.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220531161705.717658-1-trini@konsulko.com> References: <20220531161705.717658-1-trini@konsulko.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean - Move all PowerPC (and some shared with Layerscape) options to common/spl/Kconfig.nxp - Move all other TPL related options to common/spl/Kconfig.tpl - Move all VPL related options to common/spl/Kconfig.vpl This makes the whole of common/spl/Kconfig slightly more readable. Signed-off-by: Tom Rini --- common/spl/Kconfig | 661 +---------------------------------------- common/spl/Kconfig.nxp | 124 ++++++++ common/spl/Kconfig.tpl | 322 ++++++++++++++++++++ common/spl/Kconfig.vpl | 201 +++++++++++++ 4 files changed, 650 insertions(+), 658 deletions(-) create mode 100644 common/spl/Kconfig.nxp create mode 100644 common/spl/Kconfig.tpl create mode 100644 common/spl/Kconfig.vpl diff --git a/common/spl/Kconfig b/common/spl/Kconfig index d4f02b527d9d..25078432a7ed 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -199,117 +199,7 @@ config SPL_BINMAN_SYMBOLS For this to work, you must have a U-Boot image in the binman image, so binman can update SPL with the location of it. -menu "PowerPC and LayerScape SPL Boot options" - -config SPL_NAND_BOOT - bool "Load SPL from NAND flash" - depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) - -config SPL_MMC_BOOT - bool "Load SPL from SD Card / eMMC" - depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) - -config SPL_SPI_BOOT - bool "Load SPL from SPI flash" - depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) - -config SPL_FSL_PBL - bool "Create SPL in Freescale PBI format" - depends on (PPC || ARCH_LS1021A || ARCH_LS1043A || ARCH_LS1046A) && \ - SUPPORT_SPL - help - Create boot binary having SPL binary in PBI format concatenated with - u-boot binary. - -config SPL_SYS_CCSR_DO_NOT_RELOCATE - bool "Ensures that CCSR is not relocated" - depends on PPC - help - If this is defined, then CONFIG_SYS_CCSRBAR_PHYS will be forced to a - value that ensures that CCSR is not relocated. - -config TPL_SYS_CCSR_DO_NOT_RELOCATE - def_bool y - depends on SPL_SYS_CCSR_DO_NOT_RELOCATE - -endmenu - -menu "PowerPC SPL / TPL specific options" - depends on PPC && (SPL && !SPL_FRAMEWORK) - -config SPL_INIT_MINIMAL - bool "Arch init code will be built for a very small image" - -config SPL_FLUSH_IMAGE - bool "Clean dcache and invalidate icache after loading the image" - -config SPL_SKIP_RELOCATE - bool "Skip relocating SPL" - -config SPL_GD_ADDR - hex "Address to use for global data (gd) in SPL" - depends on !SPL_INIT_MINIMAL - -config SPL_RELOC_TEXT_BASE - hex "Address to relocate SPL to" - default SPL_TEXT_BASE - help - If unspecified, this is equal to CONFIG_SPL_TEXT_BASE (i.e. no - relocation is done). - -config SPL_RELOC_STACK - hex "Address of the start of the stack SPL will use after relocation." - help - If unspecified, this is equal to CONFIG_SYS_SPL_MALLOC_START. Starting - address of the malloc pool used in SPL. When this option is set the full - malloc is used in SPL and it is set up by spl_init() and before that, the - simple malloc() can be used if CONFIG_SYS_MALLOC_F is defined. - -config SPL_RELOC_MALLOC - bool "SPL has malloc pool after relocation" - -config SPL_RELOC_MALLOC_ADDR - hex "Address of malloc pool in SPL" - depends on SPL_RELOC_MALLOC - -config SPL_RELOC_MALLOC_SIZE - hex "Size of malloc pool in SPL" - depends on SPL_RELOC_MALLOC - -config TPL_GD_ADDR - hex "Address to use for global data (gd) in TPL" - depends on TPL - -config TPL_RELOC_TEXT_BASE - hex "Address to relocate TPL to" - depends on TPL - default TPL_TEXT_BASE - help - If unspecified, this is equal to CONFIG_TPL_TEXT_BASE (i.e. no - relocation is done). - -config TPL_RELOC_STACK - hex "Address of the start of the stack TPL will use after relocation." - depends on TPL - help - If unspecified, this is equal to CONFIG_SYS_TPL_MALLOC_START. Starting - address of the malloc pool used in TPL. When this option is set the full - malloc is used in TPL and it is set up by spl_init() and before that, the - simple malloc() can be used if CONFIG_SYS_MALLOC_F is defined. - -config TPL_RELOC_MALLOC - bool "TPL has malloc pool after relocation" - depends on TPL - -config TPL_RELOC_MALLOC_ADDR - hex "Address of malloc pool in TPL" - depends on TPL_RELOC_MALLOC - -config TPL_RELOC_MALLOC_SIZE - hex "Size of malloc pool in TPL" - depends on TPL_RELOC_MALLOC - -endmenu +source "common/spl/Kconfig.nxp" config HANDOFF bool "Pass hand-off information from SPL to U-Boot proper" @@ -360,13 +250,6 @@ config SPL_BOARD_INIT spl_board_init() from board_init_r(). This function should be provided by the board. -config VPL_BOARD_INIT - bool "Call board-specific initialization in VPL" - 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 SPL_BOOTROM_SUPPORT bool "Support returning to the BOOTROM" help @@ -425,16 +308,6 @@ config SPL_SYS_MALLOC_SIMPLE this will make the SPL binary smaller at the cost of more heap usage as the *_simple malloc functions do not re-use free-ed mem. -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; - this will make the TPL binary smaller at the cost of more heap - usage as the *_simple malloc functions do not re-use free-ed mem. - config SPL_SHARES_INIT_SP_ADDR bool "SPL and U-Boot use the same initial stack pointer location" depends on (ARM || ARCH_JZ47XX || MICROBLAZE || RISCV) && SPL_FRAMEWORK @@ -523,16 +396,6 @@ config SPL_READ_ONLY writeable memory) of anything it wants to modify, such as device-private data. -config TPL_SEPARATE_BSS - bool "BSS section is in a different memory region from text" - default y if SPL_SEPARATE_BSS - help - Some platforms need a large BSS region in TPL and can provide this - because RAM is already set up. In this case BSS can be moved to RAM. - This option should then be enabled so that the correct device tree - 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_BANNER_PRINT bool "Enable output of the SPL banner 'U-Boot SPL ...'" default y @@ -541,15 +404,6 @@ config SPL_BANNER_PRINT 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 TPL_BANNER_PRINT - bool "Enable output of the TPL banner 'U-Boot TPL ...'" - depends on TPL - default y - help - If this option is enabled, TPL will print the banner with version - info. Disabling this option could be useful to reduce TPL 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" @@ -1625,314 +1479,7 @@ config TPL help If you want to build TPL as well as the normal image and SPL, say Y. -if TPL - -config TPL_SIZE_LIMIT - hex "Maximum size of TPL image" - depends on TPL - default 0x0 - help - Specifies the maximum length of the U-Boot TPL image. - If this value is zero, it is ignored. - -config TPL_BINMAN_SYMBOLS - bool "Declare binman symbols in TPL" - depends on SPL_FRAMEWORK && BINMAN - default y - help - This enables use of symbols in TPL which refer to U-Boot, enabling TPL - to obtain the location of U-Boot simply by calling spl_get_image_pos() - and spl_get_image_size(). - - For this to work, you must have a U-Boot image in the binman image, so - binman can update TPL with the location of it. - -config TPL_FRAMEWORK - bool "Support TPL based upon the common SPL framework" - default y if SPL_FRAMEWORK - help - Enable the SPL framework under common/spl/ for TPL builds. - This framework supports MMC, NAND and YMODEM and other methods - loading of U-Boot's SPL stage. If unsure, say Y. - -config TPL_HANDOFF - bool "Pass hand-off information from TPL to SPL and U-Boot proper" - depends on HANDOFF && TPL_BLOBLIST - default y - help - This option enables TPL to write handoff information. This can be - used to pass information like the size of SDRAM from TPL to U-Boot - proper. The information is also available to SPL if it is useful - there. - -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_BOOTCOUNT_LIMIT - bool "Support bootcount in TPL" - depends on TPL_ENV_SUPPORT - help - If this option is enabled, the TPL will support bootcount. - For example, it may be useful to choose the device to boot. - -config TPL_LDSCRIPT - string "Linker script for the TPL stage" - depends on TPL - default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 - default "arch/\$(ARCH)/cpu/u-boot-spl.lds" - help - The TPL stage will usually require a different linker-script - (as it runs from a different memory region) than the regular - U-Boot stage. Set this to the path of the linker-script to - be used for TPL. - - May be left empty to trigger the Makefile infrastructure to - fall back to the linker-script used for the SPL stage. - -config TPL_NEEDS_SEPARATE_STACK - bool "TPL needs a separate initial stack-pointer" - depends on TPL - help - Enable, if the TPL stage should not inherit its initial - stack-pointer from the settings for the SPL stage. - -config TPL_POWER - bool "Support power drivers" - help - Enable support for power control in TPL. This includes support - for PMICs (Power-management Integrated Circuits) and some of the - features provided by PMICs. In particular, voltage regulators can - be used to enable/disable power and vary its voltage. That can be - useful in TPL to turn on boot peripherals and adjust CPU voltage - so that the clock speed can be increased. This enables the drivers - in drivers/power, drivers/power/pmic and drivers/power/regulator - as part of an TPL build. - -config TPL_TEXT_BASE - hex "Base address for the .text section of the TPL stage" - default 0 - help - The base address for the .text section of the TPL stage. - -config TPL_MAX_SIZE - hex "Maximum size (in bytes) for the TPL stage" - default 0x2e000 if ROCKCHIP_RK3399 - default 0x8000 if ROCKCHIP_RK3288 - default 0x7000 if ROCKCHIP_RK322X || ROCKCHIP_RK3328 || ROCKCHIP_RK3368 - default 0x2800 if ROCKCHIP_PX30 - default 0x0 - help - The maximum size (in bytes) of the TPL stage. - -config TPL_PAD_TO - hex "Offset to which the TPL should be padded before appending the TPL payload" - depends on !TPL_FRAMEWORK && PPC - default TPL_MAX_SIZE - help - Image offset to which the TPL should be padded before appending the - TPL payload. By default, this is defined as CONFIG_TPL_MAX_SIZE, or 0 if - CONFIG_TPL_MAX_SIZE is undefined. CONFIG_TPL_PAD_TO must be either - 0, meaning to append the TPL payload without any padding, or >= - CONFIG_TPL_MAX_SIZE. - -config TPL_STACK - hex "Address of the initial stack-pointer for the TPL stage" - depends on TPL_NEEDS_SEPARATE_STACK - help - The address of the initial stack-pointer for the TPL stage. - Usually this will be the (aligned) top-of-stack. - -config TPL_READ_ONLY - bool - depends on TPL_OF_PLATDATA - select TPL_OF_PLATDATA_NO_BIND - select TPL_OF_PLATDATA_RT - help - Some platforms (e.g. x86 Apollo Lake) load SPL into a read-only - section of memory. This means that of-platdata must make a copy (in - writeable memory) of anything it wants to modify, such as - device-private data. - -config TPL_BOOTROM_SUPPORT - bool "Support returning to the BOOTROM (from TPL)" - help - Some platforms (e.g. the Rockchip RK3368) provide support in their - ROM for loading the next boot-stage after performing basic setup - from the TPL stage. - - Enable this option, to return to the BOOTROM through the - BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the - boot device list, if not implemented for a given board) - -config TPL_CRC32 - bool "Support CRC32 in TPL" - default y if TPL_ENV_SUPPORT || TPL_BLOBLIST - help - Enable this to support CRC32 in uImages or FIT images within SPL. - This is a 32-bit checksum value that can be used to verify images. - For FIT images, this is the least secure type of checksum, suitable - for detected accidental image corruption. For secure applications you - should consider SHA1 or SHA256. - -config TPL_DRIVERS_MISC - bool "Support misc drivers in TPL" - help - Enable miscellaneous drivers in TPL. These drivers perform various - tasks that don't fall nicely into other categories, Enable this - option to build the drivers in drivers/misc as part of an TPL - build, for those that support building in TPL (not all drivers do). - -config TPL_ENV_SUPPORT - bool "Support an environment" - help - Enable environment support in TPL. See SPL_ENV_SUPPORT for details. - -config TPL_GPIO - bool "Support GPIO in TPL" - help - Enable support for GPIOs (General-purpose Input/Output) in TPL. - GPIOs allow U-Boot to read the state of an input line (high or - low) and set the state of an output line. This can be used to - drive LEDs, control power to various system parts and read user - input. GPIOs can be useful in TPL to enable a 'sign-of-life' LED, - for example. Enable this option to build the drivers in - drivers/gpio as part of an TPL build. - -config TPL_I2C - bool "Support I2C" - help - Enable support for the I2C bus in TPL. See SPL_I2C for - details. - -config TPL_LIBCOMMON_SUPPORT - bool "Support common libraries" - help - Enable support for common U-Boot libraries within TPL. See - SPL_LIBCOMMON_SUPPORT for details. - -config TPL_LIBGENERIC_SUPPORT - bool "Support generic libraries" - help - Enable support for generic U-Boot libraries within TPL. See - SPL_LIBGENERIC_SUPPORT for details. - -config TPL_MPC8XXX_INIT_DDR - bool "Support MPC8XXX DDR init" - help - Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See - SPL_MPC8XXX_INIT_DDR for details. - -config TPL_MMC - bool "Support MMC" - depends on MMC - help - Enable support for MMC within TPL. See SPL_MMC for details. - -config TPL_NAND_SUPPORT - bool "Support NAND flash" - help - Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details. - -config TPL_PCI - bool "Support PCI drivers" - help - Enable support for PCI in TPL. For platforms that need PCI to boot, - or must perform some init using PCI in SPL, this provides the - necessary driver support. This enables the drivers in drivers/pci - as part of a TPL build. - -config TPL_PCH - bool "Support PCH drivers" - help - Enable support for PCH (Platform Controller Hub) devices in TPL. - These are used to set up GPIOs and the SPI peripheral early in - boot. This enables the drivers in drivers/pch as part of a TPL - build. - -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_RTC - bool "Support RTC drivers" - help - Enable RTC (Real-time Clock) support in TPL. This includes support - for reading and setting the time. Some RTC devices also have some - non-volatile (battery-backed) memory which is accessible if - needed. This enables the drivers in drivers/rtc as part of an TPL - build. - -config TPL_SERIAL - bool "Support serial" - select TPL_PRINTF - select TPL_STRTO - help - Enable support for serial in TPL. See SPL_SERIAL for - details. - -config TPL_SPI_FLASH_SUPPORT - bool "Support SPI flash drivers" - help - Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT - for details. - -config TPL_SPI_FLASH_TINY - bool "Enable low footprint TPL SPI Flash support" - depends on TPL_SPI_FLASH_SUPPORT && !SPI_FLASH_BAR - default y if SPI_FLASH - help - Enable lightweight TPL SPI Flash support that supports just reading - data/images from flash. No support to write/erase flash. Enable - this if you have TPL size limitations and don't need full-fledged - SPI flash support. - -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 - bool "Support SPI drivers" - help - Enable support for using SPI in TPL. See SPL_SPI for - details. - -config TPL_DM_SPI - bool "Support SPI DM drivers in TPL" - help - Enable support for SPI DM drivers in TPL. - -config TPL_DM_SPI_FLASH - bool "Support SPI DM FLASH drivers in TPL" - help - Enable support for SPI DM flash drivers in TPL. - -config TPL_YMODEM_SUPPORT - bool "Support loading using Ymodem" - depends on TPL_SERIAL - 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 +source "common/spl/Kconfig.tpl" config VPL bool @@ -1942,209 +1489,7 @@ config VPL If you want to build VPL as well as the normal image, TPL and SPL, say Y. -if VPL - -config VPL_BANNER_PRINT - bool "Enable output of the VPL banner 'U-Boot VPL ...'" - depends on VPL - default y - help - If this option is enabled, VPL will print the banner with version - info. Disabling this option could be useful to reduce VPL boot time - (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud). - -config VPL_BOARD_INIT - bool "Call board-specific initialization in VPL" - 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 VPL_CACHE - depends on CACHE - bool "Support cache drivers in VPL" - help - Enable support for cache drivers in VPL. - -config VPL_CRC32 - bool "Support CRC32 in VPL" - default y if VPL_ENV_SUPPORT || VPL_BLOBLIST - help - Enable this to support CRC32 in uImages or FIT images within VPL. - This is a 32-bit checksum value that can be used to verify images. - For FIT images, this is the least secure type of checksum, suitable - for detected accidental image corruption. For secure applications you - should consider SHA1 or SHA256. - -config VPL_DM_SPI - bool "Support SPI DM drivers in VPL" - help - Enable support for SPI DM drivers in VPL. - -config VPL_DM_SPI_FLASH - bool "Support SPI DM FLASH drivers in VPL" - help - Enable support for SPI DM flash drivers in VPL. - -config VPL_FRAMEWORK - bool "Support VPL based upon the common SPL framework" - default y - help - Enable the SPL framework under common/spl/ for VPL builds. - This framework supports MMC, NAND and YMODEM and other methods - loading of U-Boot's next stage. If unsure, say Y. - -config VPL_HANDOFF - bool "Pass hand-off information from VPL to SPL" - depends on HANDOFF && VPL_BLOBLIST - default y - help - This option enables VPL to write handoff information. This can be - used to pass information like the size of SDRAM from VPL to SPL. Also - VPL can receive information from TPL in the same place if that is - enabled. - -config VPL_LIBCOMMON_SUPPORT - bool "Support common libraries" - default y if SPL_LIBCOMMON_SUPPORT - help - Enable support for common U-Boot libraries within VPL. See - SPL_LIBCOMMON_SUPPORT for details. - -config VPL_LIBGENERIC_SUPPORT - bool "Support generic libraries" - default y if SPL_LIBGENERIC_SUPPORT - help - Enable support for generic U-Boot libraries within VPL. These - libraries include generic code to deal with device tree, hashing, - printf(), compression and the like. This option is enabled on many - boards. Enable this option to build the code in lib/ as part of a - VPL build. - -config VPL_DRIVERS_MISC - bool "Support misc drivers" - default y if TPL_DRIVERS_MISC - help - Enable miscellaneous drivers in VPL. These drivers perform various - tasks that don't fall nicely into other categories, Enable this - option to build the drivers in drivers/misc as part of a VPL - build, for those that support building in VPL (not all drivers do). - -config VPL_ENV_SUPPORT - bool "Support an environment" - help - Enable environment support in VPL. The U-Boot environment provides - a number of settings (essentially name/value pairs) which can - control many aspects of U-Boot's operation. Enabling this option will - make env_get() and env_set() available in VSPL. - -config VPL_GPIO - bool "Support GPIO in VPL" - default y if SPL_GPIO - help - Enable support for GPIOs (General-purpose Input/Output) in VPL. - GPIOs allow U-Boot to read the state of an input line (high or - low) and set the state of an output line. This can be used to - drive LEDs, control power to various system parts and read user - input. GPIOs can be useful in VPL to enable a 'sign-of-life' LED, - for example. Enable this option to build the drivers in - drivers/gpio as part of a VPL build. - -config VPL_HANDOFF - bool "Pass hand-off information from VPL to SPL and U-Boot proper" - depends on HANDOFF && VPL_BLOBLIST - default y - help - This option enables VPL to write handoff information. This can be - used to pass information like the size of SDRAM from VPL to U-Boot - proper. The information is also available to VPL if it is useful - there. - -config VPL_HASH - bool "Support hashing drivers in VPL" - depends on VPL - select SHA1 - select SHA256 - help - Enable hashing drivers in VPL. These drivers can be used to - accelerate secure boot processing in secure applications. Enable - this option to build system-specific drivers for hash acceleration - as part of a VPL build. - -config VPL_I2C_SUPPORT - bool "Support I2C in VPL" - default y if SPL_I2C_SUPPORT - help - Enable support for the I2C bus in VPL. Vee SPL_I2C_SUPPORT for - details. - -config VPL_PCH_SUPPORT - bool "Support PCH drivers" - default y if TPL_PCH_SUPPORT - help - Enable support for PCH (Platform Controller Hub) devices in VPL. - These are used to set up GPIOs and the SPI peripheral early in - boot. This enables the drivers in drivers/pch as part of a VPL - build. - -config VPL_PCI - bool "Support PCI drivers" - default y if SPL_PCI - help - Enable support for PCI in VPL. For platforms that need PCI to boot, - or must perform some init using PCI in VPL, this provides the - necessary driver support. This enables the drivers in drivers/pci - as part of a VPL build. - -config VPL_RTC - bool "Support RTC drivers" - help - Enable RTC (Real-time Clock) support in VPL. This includes support - for reading and setting the time. Some RTC devices also have some - non-volatile (battery-backed) memory which is accessible if - needed. This enables the drivers in drivers/rtc as part of a VPL - build. - -config VPL_SERIAL - bool "Support serial" - default y if TPL_SERIAL - select VPL_PRINTF - select VPL_STRTO - help - Enable support for serial in VPL. See SPL_SERIAL_SUPPORT for - details. - -config VPL_SIZE_LIMIT - hex "Maximum size of VPL image" - depends on VPL - default 0x0 - help - Specifies the maximum length of the U-Boot VPL image. - If this value is zero, it is ignored. - -config VPL_SPI - bool "Support SPI drivers" - help - Enable support for using SPI in VPL. See SPL_SPI_SUPPORT for - details. - -config VPL_SPI_FLASH_SUPPORT - bool "Support SPI flash drivers" - help - Enable support for using SPI flash in VPL, and loading U-Boot from - SPI flash. SPI flash (Serial Peripheral Bus flash) is named after - the SPI bus that is used to connect it to a system. It is a simple - but fast bidirectional 4-wire bus (clock, chip select and two data - lines). This enables the drivers in drivers/mtd/spi as part of a - VPL build. This normally requires VPL_SPI_SUPPORT. - -config VPL_TEXT_BASE - hex "VPL Text Base" - default 0x0 - help - The address in memory that VPL will be running from. - -endif # VPL +source "common/spl/Kconfig.vpl" config SPL_AT91_MCK_BYPASS bool "Use external clock signal as a source of main clock for AT91 platforms" diff --git a/common/spl/Kconfig.nxp b/common/spl/Kconfig.nxp new file mode 100644 index 000000000000..8da85539afd1 --- /dev/null +++ b/common/spl/Kconfig.nxp @@ -0,0 +1,124 @@ +menu "PowerPC and LayerScape SPL Boot options" + depends on (PPC && SUPPORT_SPL && !SPL_FRAMEWORK) || \ + ((ARCH_LS1021A || ARCH_LS1043A || ARCH_LS1046A) && SUPPORT_SPL) + +config SPL_NAND_BOOT + bool "Load SPL from NAND flash" + depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) + +config SPL_MMC_BOOT + bool "Load SPL from SD Card / eMMC" + depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) + +config SPL_SPI_BOOT + bool "Load SPL from SPI flash" + depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK) + +config SPL_FSL_PBL + bool "Create SPL in Freescale PBI format" + depends on (PPC || ARCH_LS1021A || ARCH_LS1043A || ARCH_LS1046A) && \ + SUPPORT_SPL + help + Create boot binary having SPL binary in PBI format concatenated with + u-boot binary. + +config SPL_SYS_CCSR_DO_NOT_RELOCATE + bool "Ensures that CCSR is not relocated" + depends on PPC + help + If this is defined, then CONFIG_SYS_CCSRBAR_PHYS will be forced to a + value that ensures that CCSR is not relocated. + +config TPL_SYS_CCSR_DO_NOT_RELOCATE + def_bool y + depends on SPL_SYS_CCSR_DO_NOT_RELOCATE + +menu "PowerPC SPL / TPL specific options" + depends on PPC && (SPL && !SPL_FRAMEWORK) + +config SPL_INIT_MINIMAL + bool "Arch init code will be built for a very small image" + +config SPL_FLUSH_IMAGE + bool "Clean dcache and invalidate icache after loading the image" + +config SPL_SKIP_RELOCATE + bool "Skip relocating SPL" + +config SPL_GD_ADDR + hex "Address to use for global data (gd) in SPL" + depends on !SPL_INIT_MINIMAL + +config SPL_RELOC_TEXT_BASE + hex "Address to relocate SPL to" + default SPL_TEXT_BASE + help + If unspecified, this is equal to CONFIG_SPL_TEXT_BASE (i.e. no + relocation is done). + +config SPL_RELOC_STACK + hex "Address of the start of the stack SPL will use after relocation." + help + If unspecified, this is equal to CONFIG_SYS_SPL_MALLOC_START. Starting + address of the malloc pool used in SPL. When this option is set the full + malloc is used in SPL and it is set up by spl_init() and before that, the + simple malloc() can be used if CONFIG_SYS_MALLOC_F is defined. + +config SPL_RELOC_MALLOC + bool "SPL has malloc pool after relocation" + +config SPL_RELOC_MALLOC_ADDR + hex "Address of malloc pool in SPL" + depends on SPL_RELOC_MALLOC + +config SPL_RELOC_MALLOC_SIZE + hex "Size of malloc pool in SPL" + depends on SPL_RELOC_MALLOC + +config TPL_GD_ADDR + hex "Address to use for global data (gd) in TPL" + depends on TPL + +config TPL_RELOC_TEXT_BASE + hex "Address to relocate TPL to" + depends on TPL + default TPL_TEXT_BASE + help + If unspecified, this is equal to CONFIG_TPL_TEXT_BASE (i.e. no + relocation is done). + +config TPL_RELOC_STACK + hex "Address of the start of the stack TPL will use after relocation." + depends on TPL + help + If unspecified, this is equal to CONFIG_SYS_TPL_MALLOC_START. Starting + address of the malloc pool used in TPL. When this option is set the full + malloc is used in TPL and it is set up by spl_init() and before that, the + simple malloc() can be used if CONFIG_SYS_MALLOC_F is defined. + +config TPL_RELOC_MALLOC + bool "TPL has malloc pool after relocation" + depends on TPL + +config TPL_RELOC_MALLOC_ADDR + hex "Address of malloc pool in TPL" + depends on TPL_RELOC_MALLOC + +config TPL_RELOC_MALLOC_SIZE + hex "Size of malloc pool in TPL" + depends on TPL_RELOC_MALLOC + +config TPL_PAD_TO + hex "Offset to which the TPL should be padded before appending the TPL payload" + depends on TPL && !TPL_FRAMEWORK + default TPL_MAX_SIZE + help + Image offset to which the TPL should be padded before appending the + TPL payload. By default, this is defined as CONFIG_TPL_MAX_SIZE, or 0 if + CONFIG_TPL_MAX_SIZE is undefined. CONFIG_TPL_PAD_TO must be either + 0, meaning to append the TPL payload without any padding, or >= + CONFIG_TPL_MAX_SIZE. +endmenu + +endmenu + diff --git a/common/spl/Kconfig.tpl b/common/spl/Kconfig.tpl new file mode 100644 index 000000000000..9a0e719cf949 --- /dev/null +++ b/common/spl/Kconfig.tpl @@ -0,0 +1,322 @@ +menu "TPL configuration options" + depends on TPL + +config TPL_SIZE_LIMIT + hex "Maximum size of TPL image" + default 0x0 + help + Specifies the maximum length of the U-Boot TPL image. + If this value is zero, it is ignored. + +config TPL_BINMAN_SYMBOLS + bool "Declare binman symbols in TPL" + depends on SPL_FRAMEWORK && BINMAN + default y + help + This enables use of symbols in TPL which refer to U-Boot, enabling TPL + to obtain the location of U-Boot simply by calling spl_get_image_pos() + and spl_get_image_size(). + + For this to work, you must have a U-Boot image in the binman image, so + binman can update TPL with the location of it. + +config TPL_FRAMEWORK + bool "Support TPL based upon the common SPL framework" + default y if SPL_FRAMEWORK + help + Enable the SPL framework under common/spl/ for TPL builds. + This framework supports MMC, NAND and YMODEM and other methods + loading of U-Boot's SPL stage. If unsure, say Y. + +config TPL_BANNER_PRINT + bool "Enable output of the TPL banner 'U-Boot TPL ...'" + default y + help + If this option is enabled, TPL will print the banner with version + info. Disabling this option could be useful to reduce TPL boot time + (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud). + +config TPL_HANDOFF + bool "Pass hand-off information from TPL to SPL and U-Boot proper" + depends on HANDOFF && TPL_BLOBLIST + default y + help + This option enables TPL to write handoff information. This can be + used to pass information like the size of SDRAM from TPL to U-Boot + proper. The information is also available to SPL if it is useful + there. + +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_BOOTCOUNT_LIMIT + bool "Support bootcount in TPL" + depends on TPL_ENV_SUPPORT + help + If this option is enabled, the TPL will support bootcount. + For example, it may be useful to choose the device to boot. + +config TPL_SYS_MALLOC_SIMPLE + bool + prompt "Only use malloc_simple functions in the TPL" + help + Say Y here to only use the *_simple malloc functions from + malloc_simple.c, rather then using the versions from dlmalloc.c; + this will make the TPL binary smaller at the cost of more heap + usage as the *_simple malloc functions do not re-use free-ed mem. + +config TPL_SEPARATE_BSS + bool "BSS section is in a different memory region from text" + default y if SPL_SEPARATE_BSS + help + Some platforms need a large BSS region in TPL and can provide this + because RAM is already set up. In this case BSS can be moved to RAM. + This option should then be enabled so that the correct device tree + 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 TPL_LDSCRIPT + string "Linker script for the TPL stage" + default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 + default "arch/\$(ARCH)/cpu/u-boot-spl.lds" + help + The TPL stage will usually require a different linker-script + (as it runs from a different memory region) than the regular + U-Boot stage. Set this to the path of the linker-script to + be used for TPL. + + May be left empty to trigger the Makefile infrastructure to + fall back to the linker-script used for the SPL stage. + +config TPL_NEEDS_SEPARATE_STACK + bool "TPL needs a separate initial stack-pointer" + help + Enable, if the TPL stage should not inherit its initial + stack-pointer from the settings for the SPL stage. + +config TPL_POWER + bool "Support power drivers" + help + Enable support for power control in TPL. This includes support + for PMICs (Power-management Integrated Circuits) and some of the + features provided by PMICs. In particular, voltage regulators can + be used to enable/disable power and vary its voltage. That can be + useful in TPL to turn on boot peripherals and adjust CPU voltage + so that the clock speed can be increased. This enables the drivers + in drivers/power, drivers/power/pmic and drivers/power/regulator + as part of an TPL build. + +config TPL_TEXT_BASE + hex "Base address for the .text section of the TPL stage" + default 0 + help + The base address for the .text section of the TPL stage. + +config TPL_MAX_SIZE + hex "Maximum size (in bytes) for the TPL stage" + default 0x2e000 if ROCKCHIP_RK3399 + default 0x8000 if ROCKCHIP_RK3288 + default 0x7000 if ROCKCHIP_RK322X || ROCKCHIP_RK3328 || ROCKCHIP_RK3368 + default 0x2800 if ROCKCHIP_PX30 + default 0x0 + help + The maximum size (in bytes) of the TPL stage. + +config TPL_STACK + hex "Address of the initial stack-pointer for the TPL stage" + depends on TPL_NEEDS_SEPARATE_STACK + help + The address of the initial stack-pointer for the TPL stage. + Usually this will be the (aligned) top-of-stack. + +config TPL_READ_ONLY + bool + depends on TPL_OF_PLATDATA + select TPL_OF_PLATDATA_NO_BIND + select TPL_OF_PLATDATA_RT + help + Some platforms (e.g. x86 Apollo Lake) load SPL into a read-only + section of memory. This means that of-platdata must make a copy (in + writeable memory) of anything it wants to modify, such as + device-private data. + +config TPL_BOOTROM_SUPPORT + bool "Support returning to the BOOTROM (from TPL)" + help + Some platforms (e.g. the Rockchip RK3368) provide support in their + ROM for loading the next boot-stage after performing basic setup + from the TPL stage. + + Enable this option, to return to the BOOTROM through the + BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the + boot device list, if not implemented for a given board) + +config TPL_CRC32 + bool "Support CRC32 in TPL" + default y if TPL_ENV_SUPPORT || TPL_BLOBLIST + help + Enable this to support CRC32 in uImages or FIT images within SPL. + This is a 32-bit checksum value that can be used to verify images. + For FIT images, this is the least secure type of checksum, suitable + for detected accidental image corruption. For secure applications you + should consider SHA1 or SHA256. + +config TPL_DRIVERS_MISC + bool "Support misc drivers in TPL" + help + Enable miscellaneous drivers in TPL. These drivers perform various + tasks that don't fall nicely into other categories, Enable this + option to build the drivers in drivers/misc as part of an TPL + build, for those that support building in TPL (not all drivers do). + +config TPL_ENV_SUPPORT + bool "Support an environment" + help + Enable environment support in TPL. See SPL_ENV_SUPPORT for details. + +config TPL_GPIO + bool "Support GPIO in TPL" + help + Enable support for GPIOs (General-purpose Input/Output) in TPL. + GPIOs allow U-Boot to read the state of an input line (high or + low) and set the state of an output line. This can be used to + drive LEDs, control power to various system parts and read user + input. GPIOs can be useful in TPL to enable a 'sign-of-life' LED, + for example. Enable this option to build the drivers in + drivers/gpio as part of an TPL build. + +config TPL_I2C + bool "Support I2C" + help + Enable support for the I2C bus in TPL. See SPL_I2C for + details. + +config TPL_LIBCOMMON_SUPPORT + bool "Support common libraries" + help + Enable support for common U-Boot libraries within TPL. See + SPL_LIBCOMMON_SUPPORT for details. + +config TPL_LIBGENERIC_SUPPORT + bool "Support generic libraries" + help + Enable support for generic U-Boot libraries within TPL. See + SPL_LIBGENERIC_SUPPORT for details. + +config TPL_MPC8XXX_INIT_DDR + bool "Support MPC8XXX DDR init" + help + Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See + SPL_MPC8XXX_INIT_DDR for details. + +config TPL_MMC + bool "Support MMC" + depends on MMC + help + Enable support for MMC within TPL. See SPL_MMC for details. + +config TPL_NAND_SUPPORT + bool "Support NAND flash" + help + Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details. + +config TPL_PCI + bool "Support PCI drivers" + help + Enable support for PCI in TPL. For platforms that need PCI to boot, + or must perform some init using PCI in SPL, this provides the + necessary driver support. This enables the drivers in drivers/pci + as part of a TPL build. + +config TPL_PCH + bool "Support PCH drivers" + help + Enable support for PCH (Platform Controller Hub) devices in TPL. + These are used to set up GPIOs and the SPI peripheral early in + boot. This enables the drivers in drivers/pch as part of a TPL + build. + +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_RTC + bool "Support RTC drivers" + help + Enable RTC (Real-time Clock) support in TPL. This includes support + for reading and setting the time. Some RTC devices also have some + non-volatile (battery-backed) memory which is accessible if + needed. This enables the drivers in drivers/rtc as part of an TPL + build. + +config TPL_SERIAL + bool "Support serial" + select TPL_PRINTF + select TPL_STRTO + help + Enable support for serial in TPL. See SPL_SERIAL for + details. + +config TPL_SPI_FLASH_SUPPORT + bool "Support SPI flash drivers" + help + Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT + for details. + +config TPL_SPI_FLASH_TINY + bool "Enable low footprint TPL SPI Flash support" + depends on TPL_SPI_FLASH_SUPPORT && !SPI_FLASH_BAR + default y if SPI_FLASH + help + Enable lightweight TPL SPI Flash support that supports just reading + data/images from flash. No support to write/erase flash. Enable + this if you have TPL size limitations and don't need full-fledged + SPI flash support. + +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 + bool "Support SPI drivers" + help + Enable support for using SPI in TPL. See SPL_SPI for + details. + +config TPL_DM_SPI + bool "Support SPI DM drivers in TPL" + help + Enable support for SPI DM drivers in TPL. + +config TPL_DM_SPI_FLASH + bool "Support SPI DM FLASH drivers in TPL" + help + Enable support for SPI DM flash drivers in TPL. + +config TPL_YMODEM_SUPPORT + bool "Support loading using Ymodem" + depends on TPL_SERIAL + 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. + +endmenu diff --git a/common/spl/Kconfig.vpl b/common/spl/Kconfig.vpl new file mode 100644 index 000000000000..ba1ea6075b94 --- /dev/null +++ b/common/spl/Kconfig.vpl @@ -0,0 +1,201 @@ +menu "VPL options" + depends on VPL + +config VPL_BANNER_PRINT + bool "Enable output of the VPL banner 'U-Boot VPL ...'" + default y + help + If this option is enabled, VPL will print the banner with version + info. Disabling this option could be useful to reduce VPL boot time + (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud). + +config VPL_BOARD_INIT + bool "Call board-specific initialization in VPL" + 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 VPL_CACHE + depends on CACHE + bool "Support cache drivers in VPL" + help + Enable support for cache drivers in VPL. + +config VPL_CRC32 + bool "Support CRC32 in VPL" + default y if VPL_ENV_SUPPORT || VPL_BLOBLIST + help + Enable this to support CRC32 in uImages or FIT images within VPL. + This is a 32-bit checksum value that can be used to verify images. + For FIT images, this is the least secure type of checksum, suitable + for detected accidental image corruption. For secure applications you + should consider SHA1 or SHA256. + +config VPL_DM_SPI + bool "Support SPI DM drivers in VPL" + help + Enable support for SPI DM drivers in VPL. + +config VPL_DM_SPI_FLASH + bool "Support SPI DM FLASH drivers in VPL" + help + Enable support for SPI DM flash drivers in VPL. + +config VPL_FRAMEWORK + bool "Support VPL based upon the common SPL framework" + default y + help + Enable the SPL framework under common/spl/ for VPL builds. + This framework supports MMC, NAND and YMODEM and other methods + loading of U-Boot's next stage. If unsure, say Y. + +config VPL_HANDOFF + bool "Pass hand-off information from VPL to SPL" + depends on HANDOFF && VPL_BLOBLIST + default y + help + This option enables VPL to write handoff information. This can be + used to pass information like the size of SDRAM from VPL to SPL. Also + VPL can receive information from TPL in the same place if that is + enabled. + +config VPL_LIBCOMMON_SUPPORT + bool "Support common libraries" + default y if SPL_LIBCOMMON_SUPPORT + help + Enable support for common U-Boot libraries within VPL. See + SPL_LIBCOMMON_SUPPORT for details. + +config VPL_LIBGENERIC_SUPPORT + bool "Support generic libraries" + default y if SPL_LIBGENERIC_SUPPORT + help + Enable support for generic U-Boot libraries within VPL. These + libraries include generic code to deal with device tree, hashing, + printf(), compression and the like. This option is enabled on many + boards. Enable this option to build the code in lib/ as part of a + VPL build. + +config VPL_DRIVERS_MISC + bool "Support misc drivers" + default y if TPL_DRIVERS_MISC + help + Enable miscellaneous drivers in VPL. These drivers perform various + tasks that don't fall nicely into other categories, Enable this + option to build the drivers in drivers/misc as part of a VPL + build, for those that support building in VPL (not all drivers do). + +config VPL_ENV_SUPPORT + bool "Support an environment" + help + Enable environment support in VPL. The U-Boot environment provides + a number of settings (essentially name/value pairs) which can + control many aspects of U-Boot's operation. Enabling this option will + make env_get() and env_set() available in VSPL. + +config VPL_GPIO + bool "Support GPIO in VPL" + default y if SPL_GPIO + help + Enable support for GPIOs (General-purpose Input/Output) in VPL. + GPIOs allow U-Boot to read the state of an input line (high or + low) and set the state of an output line. This can be used to + drive LEDs, control power to various system parts and read user + input. GPIOs can be useful in VPL to enable a 'sign-of-life' LED, + for example. Enable this option to build the drivers in + drivers/gpio as part of a VPL build. + +config VPL_HANDOFF + bool "Pass hand-off information from VPL to SPL and U-Boot proper" + depends on HANDOFF && VPL_BLOBLIST + default y + help + This option enables VPL to write handoff information. This can be + used to pass information like the size of SDRAM from VPL to U-Boot + proper. The information is also available to VPL if it is useful + there. + +config VPL_HASH + bool "Support hashing drivers in VPL" + select SHA1 + select SHA256 + help + Enable hashing drivers in VPL. These drivers can be used to + accelerate secure boot processing in secure applications. Enable + this option to build system-specific drivers for hash acceleration + as part of a VPL build. + +config VPL_I2C_SUPPORT + bool "Support I2C in VPL" + default y if SPL_I2C_SUPPORT + help + Enable support for the I2C bus in VPL. Vee SPL_I2C_SUPPORT for + details. + +config VPL_PCH_SUPPORT + bool "Support PCH drivers" + default y if TPL_PCH_SUPPORT + help + Enable support for PCH (Platform Controller Hub) devices in VPL. + These are used to set up GPIOs and the SPI peripheral early in + boot. This enables the drivers in drivers/pch as part of a VPL + build. + +config VPL_PCI + bool "Support PCI drivers" + default y if SPL_PCI + help + Enable support for PCI in VPL. For platforms that need PCI to boot, + or must perform some init using PCI in VPL, this provides the + necessary driver support. This enables the drivers in drivers/pci + as part of a VPL build. + +config VPL_RTC + bool "Support RTC drivers" + help + Enable RTC (Real-time Clock) support in VPL. This includes support + for reading and setting the time. Some RTC devices also have some + non-volatile (battery-backed) memory which is accessible if + needed. This enables the drivers in drivers/rtc as part of a VPL + build. + +config VPL_SERIAL + bool "Support serial" + default y if TPL_SERIAL + select VPL_PRINTF + select VPL_STRTO + help + Enable support for serial in VPL. See SPL_SERIAL_SUPPORT for + details. + +config VPL_SIZE_LIMIT + hex "Maximum size of VPL image" + default 0x0 + help + Specifies the maximum length of the U-Boot VPL image. + If this value is zero, it is ignored. + +config VPL_SPI + bool "Support SPI drivers" + help + Enable support for using SPI in VPL. See SPL_SPI_SUPPORT for + details. + +config VPL_SPI_FLASH_SUPPORT + bool "Support SPI flash drivers" + help + Enable support for using SPI flash in VPL, and loading U-Boot from + SPI flash. SPI flash (Serial Peripheral Bus flash) is named after + the SPI bus that is used to connect it to a system. It is a simple + but fast bidirectional 4-wire bus (clock, chip select and two data + lines). This enables the drivers in drivers/mtd/spi as part of a + VPL build. This normally requires VPL_SPI_SUPPORT. + +config VPL_TEXT_BASE + hex "VPL Text Base" + default 0x0 + help + The address in memory that VPL will be running from. + +endmenu -- 2.25.1