summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* x86: kconfig: Let board select SPI flashBin Meng2017-08-0127-51/+22
| | | | | | | | | | Only a specific type of SPI flash exists on a board, having board Kconfig to select the SPI flash seems to make more sense. Other flash types are not necessary except coreboot, which implies all available flash drivers there. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: qemu: Remove SPI flash from defconfigsBin Meng2017-08-014-17/+0
| | | | | | | | QEMU does not support ICH SPI controller yet. It's meaningless to include SPI flash support. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: qemu: kconfig: Imply platform specific driversBin Meng2017-08-015-16/+4
| | | | | | | Imply Qemu-specific drivers in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: quark: kconfig: Imply platform specific driversBin Meng2017-08-012-9/+9
| | | | | | | Imply Quark-specific drivers in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tangier: kconfig: Imply platform specific driversBin Meng2017-08-012-7/+7
| | | | | | | | Imply Tangier-specific drivers in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: queensbay: kconfig: Imply platform specific driversBin Meng2017-08-012-11/+11
| | | | | | | Imply drivers that work with Intel Queensbay platform. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: coreboot: kconfig: Imply drivers that are usefulBin Meng2017-08-012-5/+10
| | | | | | | | U-Boot as coreboot payload can run on any x86 hardware ideally. Let's imply some common drivers that are useful. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: broadwell: kconfig: Imply platform specific driversBin Meng2017-08-012-6/+6
| | | | | | | Imply Broadwell-specific drivers in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: ivybridge: kconfig: Imply platform specific driversBin Meng2017-08-015-19/+6
| | | | | | | | Imply drivers that are working with Ivybridge platform in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: baytrail: kconfig: Imply platform specific driversBin Meng2017-08-018-56/+10
| | | | | | | | BayTrail integrates lots of peripherals that have U-Boot drivers. Imply those in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Imply DM uclass driversBin Meng2017-08-0122-81/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Now that all x86 boards have been converted to use DM, we can imply these uclass drivers (DM_ETH, DM_RTC, DM_USB, DM_VIDEO) from the top level. Previously DM_GPIO, DM_KEYBOARD, DM_SERIAL, DM_SPI, DM_SPI_FLASH are selected. Change to use 'imply' to allow them to be removed. Note with this change, chromebook_link64 build fails: common/built-in.o:(.data.env_htab+0xc): undefined reference to 'env_flags_validate' lib/built-in.o: In function `hsearch_r': lib/hashtable.c:380: undefined reference to 'env_callback_init' lib/hashtable.c:382: undefined reference to 'env_flags_init' make[1]: *** [spl/u-boot-spl] Error 1 CONFIG_SPL_ENV_SUPPORT is required for chromebook_link64 to build again. This is just a workaround as it is not needed at all. See commit bda40d5 "x86: qemu: Add a config for 64-bit U-Boot" for the same issue seen on QEMU 64-bit target. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select OF_CONTROLBin Meng2017-08-0122-21/+1
| | | | | | | | This is a must have for all x86 boards. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Imply ENABLE_MRC_CACHE in the platform KconfigBin Meng2017-08-0117-12/+5
| | | | | | | | Platform knows whether MRC cache is implemented, but using it can be a choice of a specific board. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select ARCH_EARLY_INIT_R in the platform KconfigBin Meng2017-08-0122-79/+21
| | | | | | | | | This is architecture-dependent early initialization hence should be put in the platform Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select ARCH_MISC_INIT in the platform KconfigBin Meng2017-08-0110-16/+2
| | | | | | | | arch_misc_init() is intended to do architecture-dependent stuff. This is required by each platform. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Let board select BOARD_EARLY_INIT_FBin Meng2017-08-0121-40/+5
| | | | | | | | | CONFIG_BOARD_EARLY_INIT_F literally indicates board-specific codes and should be not 'default y' for all x86 boards. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Imply HAVE_INTEL_ME in the platform KconfigBin Meng2017-08-0110-7/+3
| | | | | | | | | Intel Management Engine is required by the platform, however it's not a must have when building a U-Boot image. For example, during development normally programming ME firmware is a one-time effort. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select PCI and DM_PCIBin Meng2017-08-0123-22/+3
| | | | | | | | PCI is the de facto interconnect bus in an x86 system. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select USE_PRIVATE_LIBGCCBin Meng2017-08-0121-20/+1
| | | | | | | | | x86 is using the built-in libgcc implementation and this cannot be turned off. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: kconfig: Select TIMER and X86_TSC_TIMERBin Meng2017-08-0123-22/+2
| | | | | | | | | Without a timer, U-Boot just doesn't boot. This is not something we can turn off. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: Make table address selectableAndy Shevchenko2017-08-012-7/+15
| | | | | | | | | | Some firmwares might have another window for generated tables. So, introduce two configuration options to select start address and maximum length for the generated tables. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
* x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()Bin Meng2017-08-011-4/+9
| | | | | | | | | | | Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr(), as that better describes what the routine does. This keeps in sync with Linux kernel commit: 02c0cd2: x86/tsc_msr: Remove irqoff around MSR-based TSC enumeration Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tsc: Correct Silvermont reference clock valuesBin Meng2017-08-011-4/+4
| | | | | | | | | | | | | | | | | | | | Atom processors use a 19.2 MHz crystal oscillator. Early processors generate 100 MHz via 19.2 MHz * 26 / 5 = 99.84 MHz. Later processors generate 100 MHz via 19.2 MHz * 125 / 24 = 100 MHz. Update the Silvermont-based tables accordingly, matching the Software Developers Manual. Also, correct a 166 MHz entry that should have been 116 MHz, and add a missing 80 MHz entry for VLV2. This keeps in sync with Linux kernel commit: 05680e7: x86/tsc_msr: Correct Silvermont reference clock values Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tsc: Update comments and expand definitions in freq_desc_tables[]Bin Meng2017-08-011-15/+9
| | | | | | | | | | | | Some processor abbreviations in the comments of freq_desc_tables[] are obscure. This updates part of these to mention processors that are known to us. Also expand frequency definitions. This keeps in sync with Linux kernel commit: 9e0cae9: x86/tsc_msr: Update comments, expand definitions Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tsc: Remove the fail handling in try_msr_calibrate_tsc()Bin Meng2017-08-011-9/+0
| | | | | | | | | | | If either ratio or freq is zero, the return value is zero. There is no need to create a fail branch and return zero there. This keeps in sync with Linux kernel commit: 14bb4e3: x86/tsc_msr: Remove debugging messages Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tsc: Identify Intel-specific codeBin Meng2017-08-011-0/+4
| | | | | | | | | | | try_msr_calibrate_tsc() is currently Intel-specific, and should not execute on any other vendor's parts. This keeps in sync with Linux kernel commit: ba82683: x86/tsc_msr: Identify Intel-specific code Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: tsc: Read all ratio bits from MSR_PLATFORM_INFOBin Meng2017-08-011-1/+1
| | | | | | | | | | | | | | | | | Currently we read the tsc radio like this: ratio = (MSR_PLATFORM_INFO >> 8) & 0x1f; Thus we get bit 8-12 of MSR_PLATFORM_INFO, however according to the Intel manual, the ratio bits are bit 8-15. Fix this problem by masking 0xff instead. This keeps in sync with Linux kernel commit: 886123f: x86/tsc: Read all ratio bits from MSR_PLATFORM_INFO Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: Enforce toolchain to generate 64-bit codes for 64-bit U-BootBin Meng2017-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 64-bit U-Boot image is a combination of 32-bit U-Boot (SPL) plus 64-bit U-Boot (proper). For the U-Boot proper, it has be compiled to 64-bit object codes. Attempting to use a toolchain to compile 64-bit U-Boot for qemu-x86_64, like kernel.org 4.9 i386-linux-gcc, fails with the following errors: arch/x86/cpu/intel_common/microcode.c:79:2: error: PIC register clobbered by 'ebx' in 'asm' The issue is because toolchain is preconfigured to generate code for the 32-bit architecture (i386), and currently '-m64' is missing in the makefile fragment. Using kernel.org 4.9 x86_64-linux-gcc works out of the box, since it is preconfigured to generate 64-bit codes. When compiling U-Boot SPL, '-m32' is passed to the toolchain, no mater 32-bit (i386-linux-) or 64-bit (x86_64-linux) the toolchain is preconfigured to generate. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: Use default stack boundary alignmentBin Meng2017-08-011-2/+1
| | | | | | | | | | | | At present U-Boot x86 build is using -mpreferred-stack-boundary=2 which is 4 bytes stack boundary alignment. With 64-bit U-Boot, the minimal required stack boundary alignment is 16 bytes. If -mpreferred-stack-boundary is not specified, the default is 4 (16 bytes). Switch to use the default one. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* Prepare v2017.09-rc1v2017.09-rc1Tom Rini2017-07-311-2/+2
| | | | Signed-off-by: Tom Rini <trini@konsulko.com>
* configs: Resync with savedefconfigTom Rini2017-07-3127-67/+27
| | | | | | Rsync all defconfig files using moveconfig.py Signed-off-by: Tom Rini <trini@konsulko.com>
* configs: Migrate CMD_NAND*Tom Rini2017-07-31441-368/+371
| | | | | | | | | | Migrate all remaining instances of CMD_NAND, CMD_NAND_TRIMFFS CMD_NAND_LOCK_UNLOCK and CMD_NAND_TORTURE from the headers into the defconfig files. Tested-by: Adam Ford <aford173@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
* dm: console: Check for serial devices properlySimon Glass2017-07-313-2/+12
| | | | | | | | | With driver model the serial device is often not called "serial". Mark driver-model stdio devices so that they can be detected and we can look up the uclass. This is a more reliable way of finding out whether the console is connected to a serial device or not. Signed-off-by: Simon Glass <sjg@chromium.org>
* console: Unify the check for a serial consoleSimon Glass2017-07-311-2/+17
| | | | | | | Put the check for whether a console is a serial device in a function so that we can share the code in the two places that use it. Signed-off-by: Simon Glass <sjg@chromium.org>
* arm: mach-omap2: Align image address before cache operationsAndrew F. Davis2017-07-311-4/+4
| | | | | | | | The image address passed to secure_boot_verify_image() may not be cacheline aligned, round the address down to the nearest cacheline. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
* ti: Default to ENV_IS_IN_FAT if MMC_OMAP_HSTom Rini2017-07-3117-7/+10
| | | | | | | | When we have MMC available we assume that we want to put the env as a file on FAT. Cc: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Tom Rini <trini@konsulko.com>
* am335x_hs_evm: Disable CONFIG_SPL_ENV_SUPPORTTom Rini2017-07-311-0/+1
| | | | | | | | | | | The main uses of CONFIG_SPL_ENV_SUPPORT are for network support and for disabling "Falcon Mode" support at run-time. As this build enables neither, remove this feature. Cc: Andrew F. Davis <afd@ti.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* env: Migrate CONFIG_ENV_IS_IN_FAT options to KconfigTom Rini2017-07-3140-114/+66
| | | | | | | | We rename the various FAT_ENV_xxx options to CONFIG_ENV_FAT_xxx so that they can be modified via Kconfig. Migrate all existing users to the new values. Signed-off-by: Tom Rini <trini@konsulko.com>
* Remove unused CONFIG_TWL4030_PWMAdam Ford2017-07-312-2/+0
| | | | | | | | CONFIG_TWL4030_PWM is not being used by any source, so let's remove the #define and the whitelist entry Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
* serial: stm32x7: Convert CONFIG_STM32X7_SERIAL to KconfigPatrice Chotard2017-07-314-2/+8
| | | | | | | Add CONFIG_STM32X7_SERIAL as a Kconfig option. Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Vikas Manocha <vikas.manocha@st.com>
* dm: Kconfig: fix typo in help for SPL_PINCTRLPhilipp Tomsich2017-07-311-1/+1
| | | | | | | Changes 'controlloers' to 'controllers' in the help-text for SPL_PINCTRL. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* efi_loader: Fix warning in efi_gopAlexander Graf2017-07-311-1/+1
| | | | | | | | | | | Commit ca9193d2b16 ("efi_loader: gop: fixes for CONFIG_DM_VIDEO without CONFIG_LCD") dropped the explicit (void*) cast for fb_base in efi gop support for CONFIG_LCD without DM. This patch adds it back, eliminating the now occuring warning again Fixes: ca9193d2b16 ("efi_loader: gop: fixes for CONFIG_DM_VIDEO without CONFIG_LCD") Reported-by: Tom Rini <trini@konsulko.com> Signed-off-by: Alexander Graf <agraf@suse.de>
* Merge tag 'signed-efi-next' of git://github.com/agraf/u-bootTom Rini2017-07-3113-330/+1057
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch queue for efi - 2017-07-29 A lot of EFI greatness this time around. Thanks a lot to the two amazing new contributors Heinrich Schuchardt and Rob Clark we now gain - stable objects across multiple bootefi invocations - fixes for shim - fixes for ipxe - protocol installation - device path conversion to/from text - working "lsefi" support in grub - working notifiers - various bug fixes
| * efi_loader: indent entry/exit prints to show nesting levelRob Clark2017-07-292-4/+33
| | | | | | | | | | | | | | | | | | | | This should make it easier to see when a callback back to UEFI world calls back in to the u-boot world, and generally match up EFI_ENTRY() and EFI_EXIT() calls. Signed-off-by: Rob Clark <robdclark@gmail.com> [agraf: remove static from const var] Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: add checking for incorrect use of EFI_ENTRY/EXITRob Clark2017-07-292-21/+41
| | | | | | | | | | | | | | | | | | Missing an EFI_ENTRY() or doubling up EFI_EXIT() leads to non-obvious crashes. Let's add some error checking. Signed-off-by: Rob Clark <robdclark@gmail.com> [agraf: fix bogus assert() and fix app_gd breakage] Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: Add an EFI_CALL() macroRob Clark2017-07-282-3/+18
| | | | | | | | | | | | | | | | | | | | Rather than open-coding EFI_EXIT() + callback + EFI_ENTRY(), introduce an EFI_CALL() macro. This makes callbacks into UEFI world (of which there will be more in the future) more concise and easier to locate in the code. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: only evaluate EFI_EXIT()'s ret onceRob Clark2017-07-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | There are a couple spots doing things like: return EFI_EXIT(some_fxn(...)); which I handn't noticed before. With addition of printing return value in the EFI_EXIT() macro, now the fxn call was getting evaluated twice. Which we didn't really want. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: add some missing breaksRob Clark2017-07-281-0/+2
| | | | | | | | | | Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: fix bug in efi_get_memory_mapRob Clark2017-07-261-2/+2
| | | | | | | | | | | | | | | | | | | | When booting shim -> fallback -> shim -> grub -> linux the memory map is a bit larger than the size linux passes in on the first call. But in the EFI_BUFFER_TOO_SMALL case we were not passing back the updated size to linux so it would loop forever. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * efi_loader: Fix configuration table overrideAlexander Graf2017-07-261-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before commit 7cbc12415d ("efi_loader: initalize EFI object list only once") we recreated the world on every bootefi invocation. That included the object tree as well as the configuration tables. Now however we don't recreate them, which means we must not explicitly override the configuration tables, as otherwise we may lose our SMBIOS table from the configuration table list on second bootefi invocation. This patch makes bootefi call our normal configuration table modification APIs to add/remove the FDT instead of recreating all tables from scratch. That way the SMBIOS table gets preserved across multiple invocations. Signed-off-by: Alexander Graf <agraf@suse.de>