summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2020-09-30firmware: add SCMI agent uclassEtienne Carriere
This change introduces SCMI agent uclass to interact with a firmware using the SCMI protocols [1]. SCMI agent uclass currently supports a single method to request processing of the SCMI message by an identified server. A SCMI message is made of a byte payload associated to a protocol ID and a message ID, all defined by the SCMI specification [1]. On return from process_msg() method, the caller gets the service response. SCMI agent uclass defines a post bind generic sequence for all devices. The sequence binds all the SCMI protocols listed in the FDT for that SCMI agent device. Currently none, but later change will introduce protocols. This change implements a simple sandbox device for the SCMI agent uclass. The sandbox nicely answers SCMI_NOT_SUPPORTED to SCMI messages. To prepare for further test support, the sandbox exposes a architecture function for test application to read the sandbox emulated devices state. Currently supports 2 SCMI agents, identified by an ID in the FDT device name. The simplistic DM test does nothing yet. SCMI agent uclass is designed for platforms that embed a SCMI server in a firmware hosted somewhere, for example in a companion co-processor or in the secure world of the executing processor. SCMI protocols allow an SCMI agent to discover and access external resources as clock, reset controllers and more. SCMI agent and server communicate following the SCMI specification [1]. This SCMI agent implementation complies with the DT bindings defined in the Linux kernel source tree regarding SCMI agent description since v5.8. Links: [1] https://developer.arm.com/architectures/system-architectures/software-standards/scmi Signed-off-by: Etienne Carriere <[email protected]> Cc: Simon Glass <[email protected]> Cc: Peng Fan <[email protected]> Cc: Sudeep Holla <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30regmap: Add support for regmap fieldsJean-Jacques Hiblot
A regmap field is an abstraction available in Linux. It provides to access bitfields in a regmap without having to worry about shifts and masks. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Pratyush Yadav <[email protected]>
2020-09-30regmap: Allow devices to specify regmap range start and size in configPratyush Yadav
Some devices need to calculate the regmap base address at runtime. This makes it impossible to use device tree to get the regmap base. Instead, allow devices to specify it in the regmap config. This will create a regmap with a single range that corresponds to the start and size given by the driver. Signed-off-by: Pratyush Yadav <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30regmap: Add regmap_init_mem_range()Pratyush Yadav
Right now, the base of a regmap can only be obtained from the device tree. This makes it impossible for devices which calculate the base at runtime to use a regmap. An example of such a device is the Cadence Sierra PHY. Allow creating a regmap with one range whose start and size can be specified by the driver based on calculations at runtime. Signed-off-by: Pratyush Yadav <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30regmap: Allow left shifting register offset before accessPratyush Yadav
Drivers can configure it to adjust the final read/write location. Signed-off-by: Pratyush Yadav <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30regmap: Allow specifying read/write widthPratyush Yadav
Right now, regmap_read() and regmap_write() read/write a 32-bit value only. To write other lengths, regmap_raw_read() and regmap_raw_write() need to be used. This means that any driver ported from Linux that relies on regmap_{read,write}() to know the size already has to be updated at each callsite. This makes the port harder to maintain. So, allow specifying the read/write width to make it easier to port the drivers, since now the only change needed is when initializing the regmap. Signed-off-by: Pratyush Yadav <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-09-30regmap: Add devm_regmap_init()Jean-Jacques Hiblot
Most of new linux drivers are using managed-API to allocate resources. To ease porting drivers from linux to U-Boot, introduce devm_regmap_init() as a managed API to get a regmap from the device tree. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Pratyush Yadav <[email protected]>
2020-09-30drivers: gpio: Add a managed API to get a GPIO from the device-treeJean-Jacques Hiblot
Add managed functions to get a gpio from the devce-tree, based on a property name (minus the '-gpios' suffix) and optionally an index. When the device is unbound, the GPIO is automatically released and the data structure is freed. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Pratyush Yadav <[email protected]>
2020-09-30drivers: reset: Add a managed API to get reset controllers from the DTJean-Jacques Hiblot
Add managed functions to get a reset_ctl from the device-tree, based on a name or an index. Also add a managed functions to get a reset_ctl_bulk (array of reset_ctl) from the device-tree. When the device is unbound, the reset controllers are automatically released and the data structure is freed. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Pratyush Yadav <[email protected]>
2020-09-30Merge branch 'next' of https://gitlab.denx.de/u-boot/custodians/u-boot-riscv ↵Tom Rini
into next - Disable CMD_IRQ for RISC-V. - Update sipeed/maix doc - Obtain reg of SiFive RAM via dev_read_addr_index() instead of regmap API. - Cleans up RISC-V timer drivers and converts them to DM. - Correctly handle IPIs already pending upon prior stage bootloader (on the K210)
2020-09-30dm: Print device name in dev_xxx like LinuxSean Anderson
This adorns messages generated by dev_xxx with the device and driver names. It also redirects dev_xxx to log when it is available. The names of these functions very roughly take inspiration from Linux, but there is no deeper correlation. Both struct udevice and struct device are supported when logging, though logging with struct device is no better than using log_xxx. The latter is supported because of the large amount of existing code which logs with struct device. Signed-off-by: Sean Anderson <[email protected]> Tested-by: Patrick Delaunay <[email protected]>
2020-09-30dm: Use symbolic constants for log levels in dev_xxxSean Anderson
This substitutes literal log levels with their symbolic constants. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Patrick Delaunay <[email protected]>
2020-09-30remoteproc: Remove unused function rproc_elf_sanity_checkSean Anderson
This function is never used anywhere, and it also tries to log with a nonexistant device. Signed-off-by: Sean Anderson <[email protected]> Tested-by: Patrick Delaunay <[email protected]>
2020-09-30linux/compat.h: Remove netdev_xxx functionsSean Anderson
No drivers in U-Boot use these functions. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Patrick Delaunay <[email protected]>
2020-09-30mmc: Add mmc_dev()Sean Anderson
This macro is necessary for arasan_zynqmp_dll_reset to compile. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Patrick Delaunay <[email protected]>
2020-09-30riscv: clk: Add CLINT clock to kendryte clock driverSean Anderson
Another "virtual" clock (in the sense that it isn't configurable). This could possibly be done as a clock in the device tree, but I think this is a bit cleaner. Signed-off-by: Sean Anderson <[email protected]>
2020-09-30timer: Add helper for drivers using timebase fallbackSean Anderson
This function is designed to be used when a timer used to be initialized by the cpu (e.g. RISC-V timers), but now is initialized by dm_timer_init. In such a case, the timer may prefer to use the clocks and clock-frequency properties, but should be able to fall back on using the cpu's timebase-frequency. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[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-25x86: video: Show information about each video deviceSimon Glass
At present the 'bdinfo' command shows the framebuffer address, but not the address of the copy framebuffer, if present. Add support for this. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25acpi: Use I2cSerialBusV2() instead of I2cSerialBus()Simon Glass
Use the correct name of the ACPI structure being created. Signed-off-by: Simon Glass <[email protected]>
2020-09-25acpi: Add more documentation for struct acpi_gpioSimon Glass
Add some documentation provided by Andy Shevchenko to describe how to use struct acpi_gpio. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: Move include of bitops out of ACPI regionSimon Glass
At present linux/bitops.h is included in ACPI code. This is not needed and can cause a problem in fls64.h since BITS_PER_LONG is not defined. Move the #include into the part not used by ACPI. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-09-25acpi: Use defines for field lengthsSimon Glass
A few fields have an open-coded length. Use the defines for this purpose instead. 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: 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-25p2sb: Add some definitions used for ACPISimon Glass
Allow this header to be included in ASL files by adding a header guard and a few definitions that are needed. 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-25acpi: Add more support for generating processor tablesSimon Glass
This adds tables relating to P-States and C-States. Signed-off-by: Simon Glass <[email protected]>
2020-09-25acpi: Add support for generating processor tablesSimon Glass
ACPI has a number of CPU-related tables. Add utility functions to write out the basic packages. 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: 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: apl: Support writing the IntelGraphicsMem tableSimon Glass
This table is needed by the Linux graphics driver to handle graphics correctly. Write it to ACPI. Signed-off-by: Simon Glass <[email protected]>
2020-09-25i2c: Add a generic driver to generate ACPI infoSimon Glass
Many I2C devices produce roughly the same ACPI data with just things like the GPIO/interrupt information being different. This can be handled by a generic driver along with some information in the device tree. Add a generic i2c driver for this purpose. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2020-09-25dm: acpi: Use correct GPIO polarity type in acpi_dp_add_gpio()Simon Glass
This function currently accepts the IRQ-polarity type. Fix it to use the GPIO type instead. Signed-off-by: Simon Glass <[email protected]>
2020-09-25acpi: Support generating a multi-function _DSM for devicesSimon Glass
Add a function to generate ACPI code for a _DSM method for a device. This includes functions for starting and ending each part of the _DSM. Signed-off-by: Simon Glass <[email protected]> [bmeng: fix the "new blank line at EOF" git warning] Signed-off-by: Bin Meng <[email protected]>
2020-09-25acpi: Add support for conditions and return valuesSimon Glass
Add functions to support generating ACPI code for condition checks and return values. Signed-off-by: Simon Glass <[email protected]>
2020-09-25acpi: Add support for writing a _PRWSimon Glass
A 'Power Resource for Wake' list the resources a device depends on for wake. Add a function to generate this. Signed-off-by: Simon Glass <[email protected]>
2020-09-25x86: coral: Add ACPI tables for coralSimon Glass
This device has a large set of ACPI tables. Bring these in from coreboot so that full functionality is available (apart from SMI). Signed-off-by: Simon Glass <[email protected]>
2020-09-24Merge tag 'xilinx-for-v2021.01' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze into next Xilinx changes for v2021.01 arm64: - Support for bigger U-Boot images compiled with PIE microblaze: - Extend support for LE/BE systems zynqmp: - Refactor silicon ID detection code with using firmware interface - Add support for saving variables based on bootmode zynqmp-r5: - Fix MPU mapping and defconfig setting. xilinx: - Minor driver changes: names alignment - Enable UBIFS - Minor DT and macros fixes - Fix boot with appended DT - Fix distro boot cmd: - pxe: Add fixing for platforms with manual relocation support clk: - fixed_rate: Add DM flag to support early boot on r5 fpga: - zynqmppl: Use only firmware interface and enable SPL build serial: - uartlite: Enable for ARM systems and support endians mmc: - zynq: Fix indentation net: - gem: Support for multiple phys - emac: Fix 64bit support and enable it for arm64 kconfig: - Setup default values for Xilinx platforms - Fix dependecies for Xilinx drivers - Source board Kconfig only when platform is enabled - Fix FPGA Kconfig entry with SPL - Change some defconfig values bindings: - Add binding doc for vsc8531
2020-09-24board/freescale: Remove P5020DS board supportPriyanka Jain
Remove NXP powerpc P5020DS board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove P1024RDB board supportPriyanka Jain
Remove NXP powerpc P1024RDB board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove P1021RDB board supportPriyanka Jain
Remove NXP powerpc P1021RDB board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove P1020MBG board supportPriyanka Jain
Remove NXP powerpc P1020MBG board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove P1020UTM board supportPriyanka Jain
Remove NXP powerpc P1020UTM board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove P1025RDB board supportPriyanka Jain
Remove NXP powerpc P1025RDB board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24board/freescale: Remove p1023rdb board supportPriyanka Jain
Remove NXP powerpc p1023rdb board support as it is no longer maintained. Signed-off-by: Priyanka Jain <[email protected]>
2020-09-24configs: p1_p2_rdb: Add the default address of vsc7385 firmwareHou Zhiqiang
Add the environment 'vscfw_addr' to assign a default address for vsc7385 firmware uploading. Signed-off-by: Hou Zhiqiang <[email protected]> Reviewed-by: Priyanka Jain <[email protected]>