summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-29arm: qemu: override flash accessors to use virtualizable instructionsArd Biesheuvel
Some instructions in the ARM ISA have multiple output registers, such as ldrd/ldp (load pair), where two registers are loaded from memory, but also ldr with indexing, where the memory base register is incremented as well when the value is loaded to the destination register. MMIO emulation under KVM is based on using the architecturally defined syndrome information that is provided when an exception is taken to the hypervisor. This syndrome information describes whether the instruction that triggered the exception is a load or a store, what the faulting address was, and which register was the destination register. This syndrome information can only describe one destination register, and when the trapping instruction is one with multiple outputs, KVM throws an error like kvm [615929]: Data abort outside memslots with no valid syndrome info on the host and kills the QEMU process with the following error: U-Boot 2020.07-rc3-00208-g88bd5b179360-dirty (Jun 06 2020 - 11:59:22 +0200) DRAM: 1 GiB Flash: error: kvm run failed Function not implemented R00=00000001 R01=00000040 R02=7ee0ce20 R03=00000000 R04=7ffd9eec R05=00000004 R06=7ffda3f8 R07=00000055 R08=7ffd9eec R09=7ef0ded0 R10=7ee0ce20 R11=00000000 R12=00000004 R13=7ee0cdf8 R14=00000000 R15=7ff72d08 PSR=200001d3 --C- A svc32 QEMU: Terminated This means that, in order to run U-Boot in QEMU under KVM, we need to avoid such instructions when accessing emulated devices. For the flash in particular, which is a hybrid between a ROM (backed by a read-only KVM memslot) when in array mode, and an emulated MMIO device (when in write mode), we need to take care to only use instructions that KVM can deal with when they trap. So override the flash read accessors that are used when running on QEMU under KVM. Note that the the 64-bit wide read and write accessors have been omitted: they are never used when running under QEMU given that it does not emulate CFI flash that supports it. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2020-07-29arm: qemu: disable the EFI workaround for older GRUBArd Biesheuvel
The QEMU/mach-virt targeted port of u-boot currently only runs on QEMU under TCG emulation, which does not model the caches at all, and so no users can exist that are relying on the GRUB hack for EFI boot. We will shortly enable support for running under KVM, but the GRUB hack (which disables all caches without doing cache cleaning by VA during ExitBootServices()) is likely to cause more problems than it solves, given that KVM hosts require correct maintenance if they incorporate non-architected system caches. So let's disable the GRUB hack by default on the QEMU/mach-virt port. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2020-07-29arm: qemu: implement enable_caches()Ard Biesheuvel
Add an override for enable_caches to enable the I and D caches, along with the cached 1:1 mapping of all of DRAM. This is needed for running U-Boot under virtualization with QEMU/kvm. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2020-07-29arm: qemu: enable LPAE on 32-bitArd Biesheuvel
QEMU's mach-virt machine only supports selecting CPU models that implement the virtualization extensions, and are therefore guaranteed to support LPAE as well. Initially, QEMU would not allow emulating these CPUs running in HYP mode (or EL2, for AArch64), but today, it also contains a complete implementation of the virtualization extensions themselves. This means we could be running U-Boot in HYP mode, in which case the LPAE long descriptor page table format is the only format that is supported. If we are not running in HYP mode, we can use either. So let's enable CONFIG_ARMV7_LPAE for qemu_arm_defconfig so that we get the best support for running with the MMU and caches enabled at any privilege level. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2020-07-29arm: enable allocate-on-read for LPAE's DCACHE_WRITEBACK/_WRITETHROUGHArd Biesheuvel
The LPAE versions of DCACHE_WRITEBACK and DCACHE_WRITETHROUGH are currently defined as no-allocate for both reads and writes, which deviates from the non-LPAE definition, and mostly defeats the purpose of enabling the caches in the first place. So align LPAE with !LPAE, and enable allocate-on-read for both. And while at it, add some clarification about the meaning of the chosen values. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2020-07-29msm_gpio: Add support for Qualcomm IPQ40xxRobert Marko
Snapdragon SoCs and IPQ40xx use common TLMM IP, so existing driver supports IPQ40xx as well. So lets simply add a compatible for IPQ40xx. Signed-off-by: Robert Marko <robert.marko@sartura.hr> Reviewed-By: Ramon Fried <rfried.dev@gmail.com>
2020-07-29msm_serial: Read bit rate register value from DTRobert Marko
IPQ40xx and currently supported Snapdragon boards don't use the same one so enable reading it from DT, if no DT property is found default value is the same as the previous define. Signed-off-by: Robert Marko <robert.marko@sartura.hr> Reviewed-By: Ramon Fried <rfried.dev@gmail.com>
2020-07-29arm: Add support for Qualcomm IPQ40xx familyRobert Marko
This introduces initial support for the popular Qualcomm IPQ40x8 and IPQ40x9 WiSoC series. IPQ40xx series have 4x Cortex A7 ARM-v7A cores. Supported are: IPQ4018, IPQ4019, IPQ4028 and IPQ4029. IPQ40x8 and IPQ40x9 use the same cores, but differ in addressable RAM size (1GB for IPQ40x9 and 256MB for IPQ40x8) and supported peripherals (IPQ40x8 lacks RGMII, LCD controller and EMMC/SDHCI controllers). IQP4028/IPQ4029 models differ from IPQ4018/IPQ4019 only by their rated temperatures rates with IPQ402X models being rated for wider temperature ranges. Initially this supports: * Simple clock driver (Only for UART1 now, will be extended) * Pinctrl driver (Supports UARTX and GPIO now, will be extended) * GPIOs already supported by msm_gpio driver with updates * UARTs already supported by serial_msm driver with updates Further peripherals will come in later patches. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-07-29pinctrl: mediatek: add PUPD/R0/R1 support for MT7623David Woodhouse
The pins for the MMC controller weren't being set up correctly because the pinctrl driver only sets the GPIO pullup/pulldown config and doesn't handle the special cases with PUPD/R0/R1 control. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Tested-by: Frank Wunderlich <frank-w@public-files.de>
2020-07-28arm: dts: mediatek: enable sgmii mode and mt7531 switch for mt7629MarkLee
This patch enable sgmii mode and mt7531 switch support in mt7629 ethernet dts node Signed-off-by: MarkLee <Mark-MC.Lee@mediatek.com>
2020-07-28eth: mtk-eth: enable mt7629 sgmii mode support in mediatek eth driverMarkLee
The sgmii mode init flow is almost the same for all mediatek SoC, the only difference is the register offset(SGMSYS_GEN2_SPEED) is 0x2028 in the old chip(mt7622) but changed to 0x128 for the newer chip(mt7629 and the following chips). Signed-off-by: MarkLee <Mark-MC.Lee@mediatek.com>
2020-07-28Merge branch '2020-07-28-Kconfig-migrations'Tom Rini
- Migration of more symbols to Kconfig
2020-07-28configs: migrate CONFIG_SPL_LOAD_FIT_ADDRESS to defconfigsPeng Fan
Done with: ./tools/moveconfig.py -S SPL_LOAD_FIT_ADDRESS ./tools/moveconfig.py -S SPL_LOAD_FIT_ADDRESS -H Signed-off-by: Peng Fan <peng.fan@nxp.com> [trini: A few more migrations] Signed-off-by: Tom Rini <trini@konsulko.com>
2020-07-28Kconfig: add SPL_LOAD_FIT_ADDRESSPeng Fan
Add SPL_LOAD_FIT_ADDRESS to make user could add it in defconfig Signed-off-by: Peng Fan <peng.fan@nxp.com>
2020-07-28Convert CONFIG_SYS_MMCSD_FS_BOOT_PARTITION to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_SYS_MMCSD_FS_BOOT_PARTITION Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28configs: Remove dead CONFIG optionsAdam Ford
BOOTP_DEFAULT is defined in several boards, but this config option is never checked or used. This patch removes this config option from config files and the whitelist.txt Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28Convert CONFIG_BOOTP_SEND_HOSTNAME to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_BOOTP_SEND_HOSTNAME Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28Convert CONFIG_DRIVER_TI_EMAC_USE_RMII to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_DRIVER_TI_EMAC_USE_RMII Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28Convert CONFIG_SPL_NAND_BASE et al to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_SPL_NAND_BASE CONFIG_SPL_NAND_IDENT Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28Convert CONFIG_SPL_NAND_DRIVERS et al to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_SPL_NAND_DRIVERS CONFIG_SPL_NAND_ECC CONFIG_SPL_NAND_SIMPLE Signed-off-by: Adam Ford <aford173@gmail.com>
2020-07-28Convert CONFIG_ENV_OVERWRITE to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_ENV_OVERWRITE Signed-off-by: Adam Ford <aford173@gmail.com> [trini: Rerun migration, remove some comments] Signed-off-by: Tom Rini <trini@konsulko.com>
2020-07-28Merge branch '2020-07-28-update-azure-tests'Tom Rini
- Update Azure to fix some recent issues with Windows host tool builds
2020-07-28configs: Resync with savedefconfigTom Rini
Rsync all defconfig files using moveconfig.py Signed-off-by: Tom Rini <trini@konsulko.com>
2020-07-28azure: Switch to use the MSYS2 official installer as the CI baseBin Meng
Recent CI failures were seen [1] when building MSYS2 Windows host tools. The error messages are something like: downloading mingw32.db... downloading mingw32.db.sig... error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown error: mingw32: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust error: failed to update mingw32 (invalid or corrupted database (PGP signature)) Per the MSYS2 official news [2], this was caused by a packager switch and several solutions were suggested, e.g.: a new package of msys2-keyring and a new msys2 installer that includes them are released. However right now we have been using the MSYS2 github CI base repo [3] for the MSYS2 build in U-Boot, but per the project information on the github webpage, it says: "This repository is unused/deprecated and will be remove after 2021-01-01". Since it is unmaintained it's unlikely the new PGP keys will be included in the git repo, and the only choice is to switch to use the MSYS2 official installer as the CI base instead. [1] https://dev.azure.com/u-boot/u-boot/_build/results?buildId=975 [2] https://www.msys2.org/news/#2020-06-29-new-packagers [3] https://github.com/msys2/msys2-ci-base Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2020-07-28azure: Add the missing build dependency for MSYS2 buildBin Meng
Package 'flex' is needed when building the U-Boot host tool, but is currently missing in the build dependency in the CI pipeline. This is to prepare switching to an installer based CI build. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2020-07-28azure: Drop 32-bit MSYS2 buildBin Meng
As of 2020-05-17, 32-bit MSYS2 is no longer actively supported by the upstream [1]. Let's drop the 32-bit Windows host tool build. [1] https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2020-07-28azure: Use a login shell everywhere for MSYS2 buildBin Meng
This simplifies things a bit to just use a login shell everywhere. This keeps in sync with MSYS2 upstream commit: 9d11b7f0aa93 ("azure-pipelines: simplify things a bit"). Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2020-07-27Prepare v2020.10-rc1Tom Rini
Signed-off-by: Tom Rini <trini@konsulko.com>
2020-07-27Merge tag 'u-boot-amlogic-20200727' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-amlogic - Handle errors in Meson serial driver - Enable HDMI, keyboard and ADC for Odroid-C2
2020-07-27Merge https://gitlab.denx.de/u-boot/custodians/u-boot-fsl-qoriqTom Rini
- Bug fixes and updates on ls2088a,ls1028a, ls1046a, ls1043a, ls1012a - lx2-watchdog support - layerscape: pci-endpoint support, spin table relocation fixes and cleanups - fsl-crypto: RNG support and bug fixes
2020-07-27travis: Install pyelftools via pipTom Rini
With the migration to python3 for all of our tests, we need to install pyelftools via pip now rather than the system tools as they will otherwise not be present in our virtualenv. Signed-off-by: Tom Rini <trini@konsulko.com> --- Changes in v2: Switch to pip
2020-07-27Merge tag 'dm-pull-20jul20-take2a' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-dm binman support for FIT new UCLASS_SOC patman switch 'test' command minor fdt fixes patman usability improvements
2020-07-27configs: odroid-c2: update for HDMI output, ADC & USB keyboardAnand Moon
Enable options to permit HDMI output on Odroid-C2 GXBB boards. Enable VPU Power Domain. Enable ADC and USB_KERBOARD. Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Anand Moon <linux.amoon@gmail.com>
2020-07-27serial: meson: handle RX errorsNeil Armstrong
This checks and handles RX errors on the Amlogic UART controller after experiencing errors on the Khadas VIM3 & VIM3L when UART AO A lines are not connected. When the RX line is not connected, the first byte is erroneous and breaks the U-Boot autoboot, breaking automatic boot. This checks and drops any erroneous RX byte on pending and getc callbacks to avoid returning true to pending when an error byte is in the FIFO. Fixes: bfcef28ae4 ("arm: add initial support for Amlogic Meson and ODROID-C2") Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Tested-by: Guillaume La Roque <glaroque@baylibre.com>
2020-07-27Merge https://gitlab.denx.de/u-boot/custodians/u-boot-shTom Rini
- R8A774A1 / Beacon EmbeddedWorks RZG2M Dev Kit support
2020-07-27Merge branch 'net' of https://gitlab.denx.de/u-boot/custodians/u-boot-shTom Rini
- Convert dc2114x driver to DM.
2020-07-27Merge branch '2020-07-27-misc-env-improvements'Tom Rini
- Assorted environment fixes. - Enhance environment in MMC and controlled via OF_CONTROL - Allow for environment in FAT to use the same device we boot from rather than be hard-coded.
2020-07-27configs: ls2088a: Restore CONFIG_ENV_ADDR to IFC-NORKuldeep Singh
Restore CONFIG_ENV_ADDR value to fix boot hang with IFC-NOR which is default boot source. Signed-off-by: Ashish Kumar <ashish.kumar@nxp.com> Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27arm: dts: ls1028a: Add dspi flash device node to qdsZhao Qiang
Add dspi flash device node to fsl-ls1028a-qds.dtsi Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27configs: lx2160a: Enable Watchdog supportZhao Qiang
Enable support to compile SBSA driver. Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27arm64: lx2160a: dts: Add watchdog nodeZhao Qiang
Add watchdog node which is sbsa into lx2160a dtsi Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27Watchdog: introduce ARM SBSA watchdog driverZhao Qiang
According to Server Base System Architecture (SBSA) specification, the SBSA Generic Watchdog has two stage timeouts: the first signal (WS0) is for alerting the system by interrupt, the second one (WS1) is a real hardware reset. More details about the hardware specification of this device: ARM DEN0029B - Server Base System Architecture (SBSA) This driver can operate ARM SBSA Generic Watchdog as a single stage In the single stage mode, when the timeout is reached, your system will be reset by WS1. The first signal (WS0) is ignored. Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> Signed-off-by: Biwen Li <biwen.li@nxp.com> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci: layerscape: Add specific config entry for RC and EP mode driverHou Zhiqiang
Add Root Complex and Endpoint mode specific config entries, such that it's feasible to enable the RC and/or EP mode driver indepently. Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci_ep: layerscape: Add the PCIe EP mode support for lx2160a-v2Xiaowei Bao
Add the PCIe EP mode support for lx2160a-v2 platform. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci: layerscape: Modify the ls_pcie_dump_atu functionXiaowei Bao
Modify the ls_pcie_dump_atu function, make it can print the INBOUND windows registers. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci_ep: layerscape: Add the SRIOV VFs of PF supportXiaowei Bao
Add the INBOUND configuration for VFs of PF. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci_ep: layerscape: Add Support for ls2085a and ls2080a EP modeXiaowei Bao
Due to the ls2085a and ls2080a use different way to set the BAR size, so add the BAR size init code here. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pci_ep: layerscape: Add the workaround for errata A-009460Xiaowei Bao
The VF_BARn_REG register's Prefetchable and Type bit fields are overwritten by a write to VF's BAR Mask register. workaround: Before writing to the VF_BARn_MASK_REG register, write 0b to the PCIE_MISC_CONTROL_1_OFF register. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27pcie_ep: layerscape: Add the multiple function supportXiaowei Bao
Add the multiple function support for Layerscape platform, some PEXs of Layerscaple platform have more than one PF. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-07-27armv8: dts: ls1046a: Add the PCIe EP nodeXiaowei Bao
Add the PCIe EP node for ls1046a. Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>