summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-05-17x86: acpi: Fix Windows S3 resume failureBin Meng
U-Boot sets up the real mode interrupt handler stubs starting from address 0x1000. In most cases, the first 640K (0x00000 - 0x9ffff) system memory is reported as system RAM in E820 table to the OS. (see install_e820_map() implementation for each platform). So OS can use these memories whatever it wants. If U-Boot is in an S3 resume path, care must be taken not to corrupt these memorie otherwise OS data gets lost. Testing shows that, on Microsoft Windows 10 on Intel Baytrail its wake up vector happens to be installed at the same address 0x1000. While on Linux its wake up vector does not overlap this memory range, but after resume kernel checks low memory range per config option CONFIG_X86_RESERVE_LOW which is 64K by default to see whether a memory corruption occurs during the suspend/resume (it's harmless, but warnings are shown in the kernel dmesg logs). We cannot simply mark the these memory as reserved in E820 table because such configuration makes GRUB complain: unable to allocate real mode page. Hence we choose to back up these memories to the place where we reserved on our stack for our S3 resume work. Before jumping to OS wake up vector, we need restore the original content there. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: pci: Allow conditionally run VGA rom in S3Bin Meng
Introduce a new CONFIG_S3_VGA_ROM_RUN option so that U-Boot can bypass executing VGA roms in S3. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Turn on ACPI mode for S3Bin Meng
Before jumping to OS waking up vector, we need turn on ACPI mode for S3, just like what we do for a normal boot. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Refactor acpi_resume()Bin Meng
To do something more in acpi_resume() like turning on ACPI mode, we need locate ACPI FADT table pointer first. But currently this is done in acpi_find_wakeup_vector(). This changes acpi_resume() signature to accept ACPI FADT pointer as the parameter. A new API acpi_find_fadt() is introduced, and acpi_find_wakeup_vector() is updated to use FADT pointer as the parameter as well. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Make enter_acpi_mode() publicBin Meng
enter_acpi_mode() is useful on other boot path like S3 resume, so make it public. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: apci: Change PM1_CNT register access to RMWBin Meng
In enter_acpi_mode() PM1_CNT register is changed to PM1_CNT_SCI_EN directly without preserving its previous value. Update to change the register access to read-modify-write (RMW). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: Adjust board_final_cleanup() orderBin Meng
Call board_final_cleanup() before write_tables(), so that anything done in board_final_cleanup() on a normal boot path is also done on an S3 resume path. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: Do not clear high table area for S3Bin Meng
When SeaBIOS is being used, U-Boot reserves a memory area to be used for configuration tables like ACPI. But it should not be cleared otherwise ACPI table will be missing. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: fsp: Save stack address to CMOS for next S3 bootBin Meng
At the end of pre-relocation phase, save the new stack address to CMOS and use it as the stack on next S3 boot for fsp_init() continuation function. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: Add an early CMOS access libraryBin Meng
This adds a library that provides CMOS (inside RTC SRAM) access at a very early stage when driver model is not available yet. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Resume OS if resume vector is foundBin Meng
In an S3 resume path, U-Boot does everything like a cold boot except in the last_stage_init() it jumps to the OS resume vector. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Add one API to find OS wakeup vectorBin Meng
This adds one API acpi_find_wakeup_vector() to locate OS wakeup vector from the ACPI FACS table, to be used in the S3 boot path. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Add wake up assembly stubBin Meng
This adds a wake up stub before jumping to OS wake up vector. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: fsp: Mark memory used by U-Boot as reserved in the E820 table for S3Bin Meng
U-Boot itself as well as everything that is consumed by U-Boot (like heap, stack, dtb, etc) needs to be reserved and reported in the E820 table when S3 resume is on. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: baytrail: Conditionally report S3 in the ACPI tableBin Meng
When U-Boot is built without ACPI S3 support, it should not report S3 in the ACPI table otherwise when kernel does STR it won't work. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: Store and display previous sleep stateBin Meng
Add one member in the global data to store previous sleep state, and display the state during boot in print_cpuinfo(). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: fsp: acpi: Pass different boot mode to FSP initBin Meng
When ACPI S3 resume is turned on, we should pass different boot mode to FSP init instead of default BOOT_FULL_CONFIG. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: Add post codes for OS resumeBin Meng
This adds OS_RESUME (0x40) and RESUME_FAILURE (0xed) post codes. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: baytrail: acpi: Add APIs for determining/clearing sleep stateBin Meng
This adds APIs for determining previous sleep state from ACPI I/O registers, as well as clearing sleep state on BayTrail SoC. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-17x86: acpi: Add Kconfig option and header file for ACPI resumeBin Meng
This introduces a Kconfig option for ACPI S3 resume, as well as a header file to include anything related to ACPI S3 resume. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stefan Roese <sr@denx.de>
2017-05-16Merge branch 'master' of git://git.denx.de/u-boot-mmcTom Rini
- Add #undef CONFIG_DM_MMC_OPS to omap3_logic in the SPL build case, to match other TI platforms in the same situation. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15Merge branch 'master' of git://git.denx.de/u-boot-videoTom Rini
2017-05-16mmc: atmel_sdhci: Enable the quirk SDHCI_QUIRK_WAIT_SEND_CMDWenyou Yang
To fix the timeout of sending the write command, enable the quirk SDHCI_QUIRK_WAIT_SEND_CMD. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15sunxi: Add clock support for TV encoderJernej Skrabec
This patch adds support for TV encoder clocks which will be used later. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
2017-05-15sunxi: video: Split out TVE codeJernej Skrabec
Newer SoCs use same TV encoder unit. Split it out so it can be reused with new DM video driver. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15video: bmp: rename CONFIG_BMP_24BMP to CONFIG_BMP_24BPPPhilipp Tomsich
Due to a typo, the 24 bit-per-pixel configuration ends in 24BMP instead of 24BPP. This change renames it throughout the source tree for consistency and to make moving these options into Kconfig easier and less error-prone. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
2017-05-15rockchip: video: introduce VIDEO_DW_HDMI and select for Rockchip HDMIPhilipp Tomsich
Instead of having drivers/video/rockchip/Kconfig point outside of its hierarchy for dw_hdmi.o, we should use a configuration-option to include the Designware HDMI support. This change introduces a new config option (not to be selected via menuconfig, but to be selected from a dependent video driver's configuration option) that enables dw_hdmi.o and selects it whenever the HDMI support for Rockchip SoCs is selected. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15video: dw_hdmi: Select HDMI mode only if monitor supports itJernej Skrabec
Some DVI monitors don't work in HDMI mode. Set it only if edid data explicitly states that it is supported. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15edid: Add HDMI flag to timing infoJernej Skrabec
Some DVI monitors don't show anything in HDMI mode since audio stream confuses them. To solve this situation, this commit adds HDMI flag in timing data and sets it accordingly during edid parsing. First existence of extension block is checked. If it exists and it is CEA861 extension, then data blocks are checked for presence of HDMI vendor specific data block. If it is present, HDMI flag is set. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15edid: Set timings flags according to edidJernej Skrabec
Timing flags are never set, so they may contain garbage. Since some drivers check them, video output may be broken on those drivers. Initialize them to 0 and check for few common flags. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-05-15Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini
2017-05-15kbuild: update DTC warning settings for bus and node/property name checksMasahiro Yamada
Recent commits of DTC introduced new warnings checking PCI and simple buses, unit address formatting, and stricter node and property name checking. Disable the new DTC warnings by default. As before, warnings are enabled with W=*. The strict node and property name checks are a bit subjective, so they are only enabled for W=2. (This policy reflects the commit 8654cb8d0371 of Linux.) Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-05-15omap3: omap3_logic: switch to using TI_COMMON_CMD_OPTIONAdam Ford
Enable TI_COMMON_CMD_OPTIONS and remove similar options from the defconfig. Updated with savedefconfig CMD_USB isn't enabled yet. I have some testing to do with musb. Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-15power: twl4030: Add imply CMD_POWEROFF when TWL4030 is enabledAdam Ford
Now that CMD_POWEROFF can turn off the twl4030, let's imply that just incase someone wants to disable it. Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-05-15Kconfig: OMAP: USB: Migrate CONFIG_USB_EHCI_OMAP to KconfigTom Rini
Follow the exiting logic for the i.MX options when migrating this option. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2017-05-15Kconfig: USB: Migrate existing USB_EHCI_xxx optionsTom Rini
The following options are migrated over fully now: - USB_EHCI_ATMEL - USB_EHCI_MARVELL - USB_EHCI_MX6 - USB_EHCI_MX7 - USB_EHCI_MSM - USB_EHCI_ZYNQ - USB_EHCI_GENERIC This also requires fixing the depends on USB_EHCI_MARVELL as it's used by Orion5X and Kirkwood as well. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2017-05-15Kconfig: USB: Migrate CONFIG_USB_EHCI_HCD users to KconfigTom Rini
Migrate the rest of the users of CONFIG_USB_EHCI_HCD over to Kconfig. For a few SoCs, imply or default y this if USB is enabled. In some cases we had not already migrated to CONFIG_USB so do that as well. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2017-05-15Kconfig: USB: Migrate CONFIG_USB_EHCI to CONFIG_USB_EHCI_HCDTom Rini
In order to be able to migrate the various SoC EHCI CONFIG options we first need to finish the switch from CONFIG_USB_EHCI to CONFIG_USB_EHCI_HCD. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2017-05-15whitelist: Drop more unused OMAP symbolsTom Rini
The symbol CONFIG_OMAP3_LOGIC_USE_NEW_PRODUCT_ID was recently dropped from usage and CONFIG_OMAP3_MICRON_DDR is unused in code. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap: Drop CONFIG_OMAP_VC_I2C_HS_MCODETom Rini
The symbol CONFIG_OMAP_VC_I2C_HS_MCODE always uses the default value. Restructure the comment and code such that if a need arises later to use another value we can address this then. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15watchdog: Migrate OMAP_WATCHDOG to KconfigTom Rini
Move this entry to Kconfig. As it is a hardware watchdog, select HW_WATCHDOG. While we could default to enabling this for all platforms, it is currently only enabled by default on AM33XX, so keep that logic today. Cc: Roger Meier <r.meier@siemens.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap: spi: Drop CONFIG_OMAP3_SPI_D0_D1_SWAPPED supportTom Rini
This particular quirk is not enabled in any config files today. It does however exist and is handled correctly in device trees and via CONFIG_DM_SPI. So we drop the symbol now and add a comment to indicate that any (new) boards that require this quirk need to enable DM_SPI instead. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap3: Migrate CONFIG_OMAP3_GPIO_X to KconfigTom Rini
The symbols CONFIG_OMAP3_GPIO_X control if we enable the clocks for a given GPIO bank in U-Boot. select the required banks for each target. In some cases we need to also migrate from CONFIG_USB_EHCI (deprecated, in include/configs/) to CONFIG_USB_EHCI_HCD as we only require the GPIO bank to be enabled if USB is also enabled. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15gpio: Move OMAP_GPIO to KconfigTom Rini
This driver is used often enough such that we want to have this enabled by default on any ARCH_OMAP2PLUS board, and this only compiles on ARCH_OMAP2PLUS due to required defines, so mark that as the depends. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap3: Drop unused CONFIG_OMAP3_xxx board definesTom Rini
We no longer have a need for a per-board CONFIG_OMAP3_xxx define (we have CONFIG_TARGET_xxx when this is required), so drop these unused references. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap4: Drop redundant CONFIG_OMAP4430 symbolTom Rini
While there are a few different OMAP4 SoCs, today we always set CONFIG_OMAP4430 and CONFIG_OMAP44XX. Convert the few test of CONFIG_OMAP4430 to CONFIG_OMAP44XX. Cc: Marek Vasut <marex@denx.de> Cc: Paul Kocialkowski <contact@paulk.fr> Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap3: Drop CONFIG_OMAP3_EVM, switch to CONFIG_TARGET_OMAP3_EVM when neededTom Rini
We make use of CONFIG_OMAP3_EVM today to know when to do a specific tweak in MUSB. This can be tested on via CONFIG_TARGET_OMAP3_EVM instead, so switch there so we can drop the now unused symbol CONFIG_OMAP3_EVM. In investigating what to do about the symbol usage we see that the cairo board defines the same function, but never called it (as it does not define CONFIG_OMAP3_EVM) and was just returning anyhow, so drop that function from that board. Cc: "Albert ARIBAUD (3ADEV)" <albert.aribaud@3adev.fr> Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap5: Migrate CONFIG_OMAP_PLATFORM_RESET_TIME_MAX_USEC to KconfigTom Rini
While in theory this value could be used in places outside of "omap5" (such as OMAP4), we only make use of it today in OMAP5, so place the Kconfig entry there. Given that Kconfig lets us provide a default, we drop CONFIG_DEFAULT_OMAP_RESET_TIME_MAX_USEC entirely. The contents of doc/README.omap-reset-time make a good help entry, so adjust them slightly and delete the file. Move the comment about range to where we use the value now, and have Kconfig enforce the upper bound. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15TI: Drop 'CONFIG_OMAP'Tom Rini
In the two cases in the code where we use CONFIG_OMAP as a useful test currently we can make use of CONFIG_ARCH_OMAP2PLUS instead. With that changed we can drop all defines of CONFIG_OMAP. While in here, CONFIG_OMAP3430 is only defined and then never used, so drop. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-05-15omap24xx_i2c.c: Drop references to CONFIG_OMAP243XTom Rini
We have nothing defining CONFIG_OMAP243X since we dropped the omap243x platforms, drop these tests. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Heiko Schocher <hs@denx.de>