summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2020-09-30riscv: Rework Andes PLMT as a UCLASS_TIMER driverSean Anderson
This converts the PLMT driver from the riscv-specific timer interface to be a DM-based UCLASS_TIMER driver. The clock-frequency/clocks properties are preferred over timebase-frequency for two reasons. First, properties which affect a device should be located near its binding in the device tree. Using timebase-frequency only really makes sense when the cpu itself is the timer device. This is the case when we read the time from a CSR, but not when there is a separate device. Second, it lets the device use the clock subsystem which adds flexibility. If the device is configured for a different clock speed, the timer can adjust itself. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2020-09-30timer: Add a test for timer_timebase_fallbackSean Anderson
To test this function, sandbox CPU must set cpu_platdata.timebase_freq on bind. It also needs to expose a method to set the current cpu. I also make some most members of cpu_sandbox_ops static. On the timer side, the device tree property sandbox,timebase-frequency-fallback controls whether sandbox_timer_probe falls back to time_timebase_fallback or to SANDBOX_TIMER_RATE. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30riscv: Rework riscv timer driver to only support S-modeSean Anderson
The riscv-timer driver currently serves as a shim for several riscv timer drivers. This is not too desirable because it bypasses the usual timer selection via the driver model. There is no easy way to specify an alternate timing driver, or have the tick rate depend on the cpu's configured frequency. The timer drivers also do not have device structs, and so have to rely on storing parameters in gd_t. Lastly, there is no initialization call, so driver init is done in the same function which reads the time. This can result in confusing error messages. To a user, it looks like the driver failed when trying to read the time, whereas it may have failed while initializing. This patch removes the shim functionality from the riscv-timer driver, and has it instead implement the former rdtime.c timer driver. This is because existing u-boot users who pass in a device tree (e.g. qemu) do not create a timer device for S-mode u-boot. The existing behavior of creating the riscv-timer device in the riscv cpu driver must be kept. The actual reading of the CSRs has been redone in the style of Linux's get_cycles64. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2020-09-28Merge tag 'efi-2020-10-rc6' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-efi Pull request for UEFI sub-system for efi-2020-10-rc6 The following UEFI related issues are fixed: * restore the global data pointer in the RISC-V trap handler * install EFI_RNG_PROTOCOL only if we have a random number generator * display human readable string for EFI_RNG_PROTOCOL in efidebug command
2020-09-28riscv: restore global data pointer in trap handlerHeinrich Schuchardt
The gp register is used to store U-Boot's global data pointer. We should not assume that an UEFI application leaves the gp register unchanged as the UEFI specifications does not define who is the owner of the gp and tp registers. So the following sequence should be followed in the trap handler: * save the caller's gp register * restore the global data pointer * serve interrupts or print crash dump and reset * restore the caller's gp register Cc: Abner Chang <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2020-09-26arm: rmobile: Use imply for BOARD_EARLY_INIT_FBiju Das
Use "imply" instead of "select" for BOARD_EARLY_INIT_F config option, and then disable it on boards which don't need it. Updated grpeach_defconfig to disable CONFIG_BOARD_EARLY_INIT_F option for RZA1. Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26arm: mach-rmobile: Mark the default s_init function as weakBiju Das
Mark the default s_init function as weak, so that SoC's can override it if needed, and it will still be discarded if unused. Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26arm: dts: r8a774e1: Import DTS from Linux 5.9-rc4Biju Das
Import R8A774E1 (RZ/G2H) SoC DTSI and headers from upstream Linux kernel 5.9-rc4 commit f4d51dffc6c0 ("Linux 5.9-rc4") Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26arm: dts: r8a774b1: Import DTS from Linux 5.9-rc4Biju Das
Import R8A774B1 (RZ/G2N) SoC DTSI and headers from upstream Linux kernel 5.9-rc4 commit f4d51dffc6c0 ("Linux 5.9-rc4") Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26arm: dts: r8a774a1: Import DTS from Linux 5.9-rc4Biju Das
Synchronize RZ/G2M SoC DTs with mainline Linux 5.9-rc4 commit f4d51dffc6c0 ("Linux 5.9-rc4") Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26arm: rmobile: Identify R8A7796 r1.3 SoCBiju Das
Add support to identify R8A7796 r1.3 SoC. Signed-off-by: Biju Das <[email protected]> Reviewed-by: Lad Prabhakar <[email protected]>
2020-09-26ARM: rmobile: Enable RPC on Salvator-X, ULCB, EbisuMarek Vasut
Enable the RPC Hyperflash driver on R8A7795,R8A7796,R8A77965 Salvator-X,ULCB and R8A77990 Ebisu. Note that to make the HF accessible, mainline ATF is mandatory and must be built with RCAR_RPC_HYPERFLASH_LOCKED=0 . Note that this is intended for development and testing convenience only and must be disabled in deployment for platform security reasons. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]>
2020-09-25Merge branch 'next' of https://gitlab.denx.de/u-boot/custodians/u-boot-x86 ↵Tom Rini
into next - Enhance the 'zboot' command to be more like 'bootm' with sub-commands - The last series of ACPI core changes for programmatic generation of ACPI tables - Add all required ACPI tables for ApolloLake and enable ACPIGEN on Chromebook Coral - A feature minor enhancements to the 'hob' command - Intel edison: Support for writing an xFSTK image via binman
2020-09-25ARM: mach-at91: add support for new SoC sama7g5Eugen Hristev
Add support for new SoC sama7g5 Signed-off-by: Eugen Hristev <[email protected]>
2020-09-25x86: edison: Generate an image suitable for xFSTKSimon Glass
It is useful to be able to flash Edison directly without relying on the installed U-Boot being functional. Add a binman image for this. It includes a 'OSIP' header (which happens to look like an MBR / (Master-Boot Record), U-Boot binary and an environment. I am not able to find a specification for OSIP. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]>
2020-09-25x86: Use multiple imagesSimon Glass
We already use binman's 'multiple-images' feature with Chrome OS and we want to use it for Edison. There is no real down-side. Adjust x86 to always use multiple-images. Signed-off-by: Simon Glass <[email protected]> Acked-by: Andy Shevchenko <[email protected]>
2020-09-25x86: Add support for more than 8 MTRRsSimon Glass
At present the mtrr command only support 8 MTRRs. Some SoCs have more than that. Update the implementation to support up to 10. Read the number of MTRRs dynamically instead. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: hob: Try to show a name instead of a GUIDSimon Glass
GUIDs are one of the seven evils of the computer world. They obfuscate the meaning and require people to look up long hex strings to decode it. Luckily only a miniscule fraction of the 10^38 possible GUIDs are in use. Add a way to decode the GUIDs known to U-Boot. Add a few more to the list for good measure. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: coral: Update config and device tree for ACPISimon Glass
Enable new features and provide require device-tree config so that U-Boot produces the correct ACPI tables on Coral. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Add a way to add to the e820 memory tableSimon Glass
Some boards want to reserve extra regions of memory. Add a 'chosen' property to support this. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: fsp: Show FSP-S or FSP-M address in fsp_get_header()Simon Glass
At present this function only supports FSP-M but it is also used to read FSP-S, in which case FSP-M may be zero. Add support for showing whichever address is present in the FSP binary. Also change the debug() statements to log_debug() while here. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: fsp: Add more debugging for silicon initSimon Glass
If locating the FSP header hangs for whatever reason it is useful to see where it got stuck. Add a debug print. Also show the address of the FSP-S entry point as a sanity check. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: apl: Check low-level init in FSP-S pre-initSimon Glass
If U-Boot is not running FSP-S it should not do the pre-init either. Add a condition to handle this. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Set the log category for x86 table generationSimon Glass
This file doesn't currently have a log category. Add one so that items are logged correctly. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25acpi: tpm: Add a TPM1 tableSimon Glass
This provides information about a v1 TPM in the system. Generate this table if the TPM is present. Add a required new bloblist type and correct the header order of one header file. Signed-off-by: Simon Glass <[email protected]>
2020-09-25acpi: tpm: Add a TPM2 tableSimon Glass
This provides information about a v2 TPM in the system. Generate this table if the TPM is present. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Correct handling of MADT table CPUsSimon Glass
At present if hyperthreading is disabled the CPU numbering is not sequential. Fix this. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Add a header guard to asm/acpi_table.hSimon Glass
This file cannot currently be included in ASL files. Add a header guard to permit this. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: Correct the assembly guard in e820.hSimon Glass
This is currently in the wrong place, so including the file in the device tree fails. Fix it. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: Notify the FSP of the 'end firmware' eventSimon Glass
Send this notification when U-Boot is about to boot into Linux, as requested by the FSP. Currently this causes a crash with the APL FSP, so leave it disabled for now. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Sort the MTRR tableSimon Glass
At present the MTRR registers are programmed with the list the U-Boot builds up in the same order. In some cases this list may be out of order. It looks better in Linux to have the registers in order, so sort them, Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: cpu: Report address width from cpu_get_info()Simon Glass
Add support for this new field in the common code used by most x86 CPU drivers. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: fsp: Update the FSP API with the end-firmware methodSimon Glass
This new method is intended to be called when UEFI shuts down the 'boot services', i.e. any lingering code in the boot loader that might be used by the OS. Add a definition for this new method and update the comments a little. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25x86: apl: Drop unnecessary code in PMC driverSimon Glass
We don't have CONFIG_PCI in TPL but it is present in SPL, etc. So this code is not needed. Drop it, and fix a code-style nit just above. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Generate ACPI table for LPCSimon Glass
Add an ACPI table for the LPC on Apollo Lake. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Generate CPU tablesSimon Glass
Add ACPI generation to the APL CPU driver. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Add support for hostbridge ACPI generationSimon Glass
Support generating a DMAR table and add a few helper routines as well. Also set up NHLT so that audio works. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Generate required ACPI tablesSimon Glass
Add support for generating various ACPI tables for Apollo Lake. Add a few S3 definitions that are needed. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Allow reading hostbridge base addressesSimon Glass
Add a few functions to permit reading of various useful base addresses provided by the hostbridge. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Add support for additional Intel tablesSimon Glass
Apollo Lake needs to generate a few more table types used on Intel SoCs. Add support for these into the x86 ACPI code. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Support Atom SoCs using SWSMISCI rather than the SWSCISimon Glass
Some Atom SoCs use SWSMISCI for SMI control. Add a Kconfig to select this. It is used on Apollo Lake. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Add common Intel ACPI tablesSimon Glass
Add various tables that are common to Intel CPUs. These functions can be used by arch-specific CPU code. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Add PCT and PTC tablesSimon Glass
These are needed for the CPU tables. Add them into an x86-specific file since we do not support them on sandbox, or include tests. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Support generation of the DBG2 tableSimon Glass
Add an implementation of the DBG2 (Debug Port Table 2) ACPI table. Adjust one of the header includes to be in the correct order, before adding more. Note that the DBG2 table is generic but the PCI UART is x86-specific at present since it assumes an ns16550 UART. It can be generalised later if necessary. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Support generation of the HPET tableSimon Glass
Add an implementation of the HPET (High Precision Event Timer) ACPI table. Since this is x86-specific, put it in an x86-specific file Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Add a few common Intel CPU functionsSimon Glass
Add functions to query CPU information, needed for ACPI. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Update iomap for ACPISimon Glass
Add some more definitions to the iomap. These will be used by ACPI-generation code as well as the device tree. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: apl: Add power-management definitionsSimon Glass
Add SCI and power-state definitions required by ACPI tables. Fix the license to match the original source file. Als update the guard on acpi_pmc.h to avoid an error when buiding ASL. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Add some definitions for SMMSimon Glass
U-Boot does not support SMM (System Management Mode) at present, but needs a few definitions to correctly set up the ACPI table. Add these. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: acpi: Add a common routine to write WiFi infoSimon Glass
Intel WiFi chips can use a common routine to write the information needed by linux. Add an implementation of this. Enable it for coral. Signed-off-by: Simon Glass <[email protected]>