summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2024-02-29bloblist: refactor of bloblist_reloc()Raymond Mao
The current bloblist pointer and size can be retrieved from global data, so we don't need to pass them from the function arguments. This change also help to remove all external access of gd->bloblist outside of bloblist module. Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29bloblist: check bloblist with specified buffer sizeRaymond Mao
Instead of expecting the bloblist total size to be the same as the pre-allocated buffer size, practically we are more interested in whether the pre-allocated buffer size is bigger than the bloblist total size. Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-02-29bloblist: add API to check the register conventionsRaymond Mao
Add bloblist_check_reg_conv() to check whether the bloblist is compliant to the register conventions defined in Firmware Handoff specification. This API can be used for all Arm platforms. Signed-off-by: Raymond Mao <[email protected]>
2024-02-02smbios: correctly name Structure Table Maximum Size fieldHeinrich Schuchardt
In the SMBIOS 3 entry point the Structure Table Maximum Size field was incorrectly named max_struct_size. A Maximum Structure Size field only exists in the SMBIOS 2.1 entry point and has a different meaning. Call the Structure Table Length field table_maximum_size. Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-01-31riscv: sophgo: milkv_duo: initial support addedKongyang Liu
Add support for Sophgo's Milk-V Duo board, only minimal device tree and serial console are enabled, and it can boot via vendor first stage bootloader. Signed-off-by: Kongyang Liu <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-01-31riscv: qemu: enable booting on a second virtio deviceAurelien Jarno
QEMU RISC-V supports multiple virtio devices, but only tries to boot to the first one. Enable support for a second virtio device, that is useful for instance to boot on a disk image + an installer. Ideally that should be made dynamic, but that's a first step. Signed-off-by: Aurelien Jarno <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-01-29clk: Document clk_ops return codes and behaviorSean Anderson
Currently, clock consumers cannot take any programmatic action based on the return code of a clock function. This is because there is no standardization, and generally no way of separating e.g. "there was a major problem setting the rate for this clock" which usually should not be recovered from, from "this clock doesn't support setting its rate" or "this clock doesn't support *this* rate" which could be absolutely fine depending on the driver. This commit aims to standardize the acceptable codes which may be returned from clock operations. In general, - ENOSYS should be returned when an operation is not supported for a particular clock. - ENOENT may be returned if the clock ID is invalid. However, it is encouraged to move any checks to request() to reduce code duplication. - EINVAL should be returned for logical errors only (such as requesting an invalid rate). Each function has had specific guidance added for when to return each error code. This is just guidance for now; most of the clock subsystem does not yet conform to this standard. However, it is expected that new clock drivers return these error codes. Additionally, this commit adds expected behavior for each of the clock operations. I believe these should be mostly straightforward and correspond to existing behavior. I remember not understanding what the expected invariants were for several clock functions, so hopefully this should help out new driver authors. In the future, some of these invariants could be checked via an optional config option. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2024-01-29treewide: Remove clk_freeSean Anderson
This function is a no-op. Remove it. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2024-01-29clk: Remove rfreeSean Anderson
Nothing uses this function. Remove it. Since clk_free no longer does anything, just stub it out. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2024-01-29Merge tag 'efi-2024-04-rc1-4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2024-04-rc1-4 Documentation: * uefi: remove ".py" suffix for pytest.py command * correct date in migration plan for CONFIG_DM UEFI: * fix conflicting SPDX license in RISC-V EFI linker scripts * page align EFI binary section in RISC-V EFI binaries * separate .data and .text sections of RISC-V EFI binaries * use common function to get EFI configuration table
2024-01-29Merge patch series "Move framebuffer reservation for SPL to RAM end"Tom Rini
Devarsh Thakkar <[email protected]> says: Move video memory reservation for SPL at end of RAM so that it does not interefere with reservations for next stage so that the next stage need not have holes in between for passed regions and instead it can maintain continuity in reservations. Also catch the bloblist before starting reservations to avoid the same problem. While at it, also fill missing fields in video handoff struct before passing it to next stage. This is as per discussions at : For moving SPL framebuffer reservation at end of RAM: https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/ For filling missing video handoff fields : https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/
2024-01-29spl: Enforce framebuffer reservation from end of RAMDevarsh Thakkar
Add an API which enforces framebuffer reservation from end of RAM. This is done so that next stage can directly skip this region before carrying out further reservations. Signed-off-by: Devarsh Thakkar <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-01-29Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-spiTom Rini
- Support Infineon S28HS02GT (Takahiro)
2024-01-29mtd: spi-nor-core: Rework spi_nor_cypress_octal_dtr_enable()Takahiro Kuwano
Enabling Octal DTR mode in multi-die package parts requires reister setup for each die. That can be done by simple for-loop. write_enable() takes effect to all die at once so we can call it before the loop. Besides we can replace spi_mem_exec_op() calls with spansion_read/write_any_reg(). And finally, we must mask CFR2V[7:4] when changing dummy cycles, as CFR2V[7] indicates current addressing mode and that should be 1 (4-byte address mode) for multi-die package parts. Signed-off-by: Takahiro Kuwano <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2024-01-29mtd: spi-nor-core: Use CLPEF(0x82) as alternative to CLSR(0x30) for S25 and S28Takahiro Kuwano
Infineon(Cypress) S28Hx-T family does not support legacy CLSR(0x30) opcode. Instead, it supports CLPEF(0x82) which has the same functionality as CLSR. spansion_sr_ready() is for multi-die package parts including S28HS02GT, so we need to use CLPEF instead of CLSR. This change does not affect to S25x02GT which uses spansion_sr_ready() as S25Hx-T family also supports CLPEF(0x82) as well as CLSR(0x30). Signed-off-by: Takahiro Kuwano <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2024-01-29mtd: spi-nor-core: Consolidate non-uniform erase helpers for S25 and S28Takahiro Kuwano
s25_erase_non_uniform() and s28hx_t_erase_uniform() support hybrid sector layout (32 x 4KB sectors overlaid at bottom address) and doing same thing. Consolidate them into single helper named s25_s28_erase_non_uniform(). Signed-off-by: Takahiro Kuwano <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2024-01-29mtd: spi-nor-core: Clean up macros for Infineon(Cypress) S25 and S28Takahiro Kuwano
Some macro definitions used in Infineon(Cypress) S25 and S28 series are redundant and some have inconsistent prefix. This patch removes redundant ones and renames some to have same prefix as others. Signed-off-by: Takahiro Kuwano <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2024-01-29efi_loader: export efi_get_configuration_tableHeinrich Schuchardt
In multiple places we need a function to find an EFI configuration table. Rename get_config_table() to efi_get_configuration_table() and export it. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-01-29sunxi: cleanup sunxi-common.hAndre Przywara
The sunxi-common.h configs header used to contain a lot of random Allwinner platform related constants, but over the years we moved a lot of those definitions out there. Clean up the file to remove outdated comments which are leftovers from the olden days. Also remove the definition of LOW_LEVEL_SRAM_STACK, which is actually used nowhere in the whole source tree. This also uses the opportunity to add some section comments that helps structuring the header file and improving readability. Signed-off-by: Andre Przywara <[email protected]>
2024-01-26efi_loader: migrate SMBIOS 3.0 entry point structure for measurementMasahisa Kojima
Current U-Boot only supports the SMBIOS 3.0 entry point structure. TCG2 measurement code should migrate to SMBIOS 3.0 entry point structure. efi_selftest tcg2 test also needs to be updated, and expected PCR[1] result is changed since guid for SMBIOS EFI system table uses different guid SMBIOS3_TABLE_GUID instead of SMBIOS_TABLE_GUID. Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-01-26smbios: type2: contained object handlesHeinrich Schuchardt
The type 2 structure must include information about the contained objects. It is fine to set the number of contained object handles to 0. Add the missing field. Fixes: 721e992a8af5 ("x86: Add SMBIOS table support") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-01-24headers: don't depend on errno.h being availableMax Krummenacher
These headers follow the pattern: | #if CONFIG_IS_ENABLED(FANCY_FEATURE) | void foo(void); | #else | static inline void foo(void) { return -ENOSYS; } | #endif In the #else path ENOSYS is used, however linux/errno.h is not included. If errno.h has not been included already the compiler errors out even if the inline function is not referenced. Make those headers self contained. Signed-off-by: Max Krummenacher <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-01-21part: correct documentation of part_get_bootable()Heinrich Schuchardt
We have to use 'Return:' to render the description of the return value in the HTML documentation. Fixes: f55aa4454ac3 ("part: Add a fallback for part_get_bootable()") Fixes: dcffa4428d03 ("part: Add a function to find the first bootable partition") Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-01-19Merge tag 'u-boot-stm32-20240119' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm Add CMDLINE dependecy for CMD_STM32KEY STM32MP1: --------- Set stdio to serial on DH STM32MP15xx DHSOM Fix reset for usart1 in scmi configuration STM32MP2: --------- Add BSEC and OTP support for STM32MP25 Fix CONFIG_STM32MP25X flag usage
2024-01-19ARM: stm32: Set stdio to serial on DH STM32MP15xx DHSOMMarek Vasut
In case CONSOLE_MUX and SYS_CONSOLE_IS_IN_ENV are enabled, the console stdin, stdout, stderr must be defined in environment. Define the default settings to fix the following warning on boot: " In: No input devices available! Out: No output devices available! Err: No error devices available! " Sort the default environment as well. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2024-01-19Merge branch '2024-01-18-assorted-fixes'Tom Rini
- A number of OS boot related cleanups, a number of TI platform fixes/cleanups, SMBIOS fixes, tweak get_maintainers.pl to report me for more places, fix the "clean the build" pytest and add a bootstage pytest, fix PKCS11 URI being omitted in some valid cases, make an iommu problem easier to debug on new platforms, nvme and pci improvements, refactor image-host code a bit, fix a typo in env setting, add a missing dependency for CMD_LICENSE, and correct how we call getchar() in some places.
2024-01-19env: allow to copy value from default environment into a bufferQuentin Schulz
env_get_default suffers from a particular issue int that it can only return a value truncated to gd->env_buf (32) characters. This may be enough for most variables but it isn't for others, so let's allow users to provide a preallocated buffer to copy the value into instead, allowing for more control, though it'll still be truncated if the value size is bigger than the preallocated buffer. Cc: Quentin Schulz <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Kever Yang <[email protected]> Signed-off-by: Quentin Schulz <[email protected]>
2024-01-19board: rockchip: Add the Turing RK1 SoMJoshua Riek
The Turing RK1 is a Rockchip RK3588 based SoM from Turing Machines. Specifications: Rockchip RK3588 SoC 4x ARM Cortex-A76, 4x ARM Cortex-A55 8/16/32GB memory LPDDR4x Mali G610MC4 GPU 32GB eMMC HS400 2x USB 2.0, 2x USB 3.0 2x MIPI CSI 4x lanes 1x MIPI-DSI DPHY 2x lanes PCIe 2.0 x1, PCIe 3.0 x4 1x HDMI 2.1 output, 1x DP 1.4 output Gigabit Ethernet Size: 69.6mm x 45mm (260-pin SO-DIMM connector) Kernel commit: 2806a69f3fef ("arm64: dts: rockchip: Add Turing RK1 SoM support") Signed-off-by: Joshua Riek <[email protected]> Tested-by: Sam Edwards <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2024-01-19rockchip: rk35xx: expand space for decompressed kernelHugh Cole-Baker
An uncompressed 6.7.0-rc1 Linux kernel Image built with the arm64 defconfig is about 40MB. This does not fit in to the space between kernel_comp_addr_r and fdt_addr_r, so when uncompressing an Image.gz to this size, the FDT will be overwritten. Rearrange addresses to have 128MiB for the kernel and its decompression buffer, then devicetree, overlay and ramdisk at the end. Signed-off-by: Hugh Cole-Baker <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2024-01-18drivers: pci: Fix dm_pci_map_bar() to support 64b BARsMoritz Fischer
This enables 64b BARs if CONFIG_SYS_PCI_64BIT is enabled. Reviewed-by: Philip Oberfichtner <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Moritz Fischer <[email protected]>
2024-01-18include: env: ti: add default for do_main_cpsw0_qsgmii_phyinitManorit Chawdhry
By default this variable is unset and this causes the test condition to fail on devices that don't have this defined. Set a default value for this. => boot ## Error: "main_cpsw0_qsgmii_phyinit" not defined [...] Fixes: 0d72b0f2f83b ("include: env: ti: ti_common: Run main_cpsw0_qsgmii_phyinit conditionally") Signed-off-by: Manorit Chawdhry <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-01-18include: env: ti: ti_common: Fix a missing semicolonManorit Chawdhry
Fix a missing semicolon that leads to syntax error while booting j721s2. Importing environment from mmc1 ... syntax error at 'run'HUSH died! Fixes: 0d72b0f2f83b ("include: env: ti: ti_common: Run main_cpsw0_qsgmii_phyinit conditionally") Signed-off-by: Manorit Chawdhry <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-01-17Merge tag 'efi-2024-04-rc1-2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Documentation: * add generated index to table of contents * create index entries for commands * update Python packages used to build the documentation * fix typos in dfu documentation UEFI: * split unrelated code from efi_bootmgr.c * rename CONFIG_BOOTEFI_BOOTMGR to CONFIG_EFI_BOOTMGR * net: tftp: remove explicit EFI configuration dependency * fs: remove explicit EFI configuration dependency Other: * Add Goldfish RTC driver and make it available on RISC-V QEMU
2024-01-17efi_loader: split unrelated code from efi_bootmgr.cAKASHI Takahiro
Some code moved from cmd/bootefi.c is actually necessary only for "bootefi <addr>" command (starting an image manually loaded by a user using U-Boot load commands or other methods (like JTAG debugger). The code will never been opted out as unused code by a compiler which doesn't know how EFI boot manager is implemented. So introduce a new configuration, CONFIG_EFI_BINARY_EXEC, to enforce them opted out explicitly. Signed-off-by: AKASHI Takahiro <[email protected]>
2024-01-16cmd/command.c: constify "arg" argument of cmd_get_data_size()Rasmus Villemoes
This function obviously does not and must not modify "arg". Change the prototype to allow passing an argument of type "const char*" without requiring a cast. Signed-off-by: Rasmus Villemoes <[email protected]>
2024-01-16ARM add initial support for the Phytium Pe2201 Board.TracyMg_Li
Add pe2201 platform code and the device tree of pe2201 platform board. The initial support comprises the UART and PCIe. Signed-off-by: TracyMg_Li <[email protected]> Changes since v1: fix space corrupt. Changes since v2: switch to bootstd and text environment. Changes since v3: add environment variables.
2024-01-16board: phytec: am62x: Add PHYTEC phyCORE-AM62x SoMWadim Egorov
Add basic support for PHYTEC phyCORE-AM62x SoM. Supported features: - 2GB DDR4 RAM - eMMC Flash - OSPI NOR Flash - external uSD - Ethernet - debug UART Product page SoM: https://www.phytec.com/product/phycore-am62x Device trees were taken from Linux v6.7-rc3. Signed-off-by: Wadim Egorov <[email protected]> Reviewed-by: Dhruva Gole <[email protected]>
2024-01-16Merge tag 'qcom-2024.04-rc1' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-snapdragon Qualcomm architecture changes: * Move clock and pinctrl drivers out of mach-snapdragon * Various clock driver improvements * Convert PMIC power/reset key driver to use the button API * Preparetory work for migrating to upstream DT
2024-01-16Merge tag 'u-boot-imx-20240115' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx
2024-01-16clk/qcom: use function pointers for enable and set_rateCaleb Connolly
Currently, it isn't possible to build clock drivers for more than one platform due to how the msm_enable() and msm_set_rate() callbacks are implemented. Extend qcom_clk_data to include function pointers for these and convert all platforms to use them. Previously, clock drivers relied on include/configs/<board.h> to include the board specific sysmap header, however as most of the header contents are clock driver related, import the contents directly into each clock driver and remove the header. The only exception here is the dragonboard820c board file which includes some pinctrl macros, those are also inlined. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]> [caleb: remove additional sysmap-sdm845.h mention]
2024-01-16clk/qcom: handle resets and clocks in one deviceKonrad Dybcio
Qualcomm's clock controller blocks actually do much more than it says on the tin.. They provide clocks, resets and power domains. Currently, U-Boot requires one to spawn 2 separate devices for controlling clocks and resets, both spanning the same register space. Refactor the code to make it work with just a single DT node, making it compatible with upstream Linux bindings and dropping the dedicated reset driver in favour of including it in the clock driver. Heavily inspired by Renesas code for a similar hw block. [caleb: moved drivers to clk/qcom, added reset driver and adjusted bind logic. Imported qcom,gcc-ipq4019.h from Linux] Signed-off-by: Konrad Dybcio <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-01-15arm: xea: Move XEA's environment variables from xea.h to xea.envLukasz Majewski
The default set of environment variables from CFG_EXTRA_ENV_SETTINGS has been moved to a separate file - board/liebherr/xea/xea.env Adjustments done: - fitImage support - SPI-NOR layout re-organization Signed-off-by: Lukasz Majewski <[email protected]>
2024-01-13ARM: imx: Set stdio to serial on Data Modul i.MX8M Mini/Plus eDM SBCMarek Vasut
In case CONSOLE_MUX and SYS_CONSOLE_IS_IN_ENV are enabled, the console stdin, stdout, stderr must be defined in environment. Define the default settings to fix the following warning on boot: " In: No input devices available! Out: No output devices available! Err: No error devices available! " Sort the default environment as well. Signed-off-by: Marek Vasut <[email protected]>
2024-01-13ARM: imx: Set stdio to serial on DH i.MX8M Plus DHCOMMarek Vasut
In case CONSOLE_MUX and SYS_CONSOLE_IS_IN_ENV are enabled, the console stdin, stdout, stderr must be defined in environment. Define the default settings to fix the following warning on boot: " In: No input devices available! Out: No output devices available! Err: No error devices available! " Sort the default environment as well. Signed-off-by: Marek Vasut <[email protected]>
2024-01-13fwu: fix fwu_get_image_index interfaceMasahisa Kojima
The capsule update uses the DFU framework for updating storage. fwu_get_image_index() currently returns the image_index calculated by (dfu_alt_num + 1), but this is different from the image_index in UEFI terminology. Since capsule update implementation calls dfu_write_by_alt function, it is better that FWU returns the dfu_alt_num. Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-01-13efi_loader: Clean up efi_dp_append and efi_dp_concatIlias Apalodimas
Looking back at the initrd storing functionality, we introduced three functions, efi_dp_append_or_concatenate(), efi_dp_append/concat(). In hindsight we could have simplified that by a lot. First of all none of the functions append anything. They all allocate a new device path and concatenate the contents of two device paths in one. A boolean parameter controls the final device path -- if that's true an end node is injected between the two device paths. So let's rewrite this and make it a bit easier to read. Get rid of efi_dp_append(), efi_dp_concat() and rename efi_dp_append_or_concatenate() to efi_dp_concat(). This is far more intuitive and the only adjustment that is needed is an extra boolean argument on all callsites. Signed-off-by: Ilias Apalodimas <[email protected]>
2024-01-11tools: fix build without LIBCRYPTO supportPaul-Erwan Rio
Commit cb9faa6f98ae ("tools: Use a single target-independent config to enable OpenSSL") introduced a target-independent configuration to build crypto features in host tools. But since commit 2c21256b27d7 ("hash: Use Kconfig to enable hashing in host tools and SPL") the build without OpenSSL is broken, due to FIT signature/encryption features. Add missing conditional compilation tokens to fix this. Signed-off-by: Paul-Erwan Rio <[email protected]> Tested-by: Alexander Dahl <[email protected]> Cc: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-01-11Merge patch series "net fixes prior lwip"Tom Rini
Maxim Uvarov <[email protected]> says: Add small net fixes prior lwip patches.
2024-01-11bcm_ns3: use device specific naming for variablesMaxim Uvarov
Use device specific naming for variables so as to not overlap with common function names. Signed-off-by: Maxim Uvarov <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Peter Robinson <[email protected]>
2024-01-11Merge tag 'u-boot-dfu-20240111' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-20240111 - Implement fastboot multi-response. This allows multi-line response and most importantly, finally adds support for fastboot getvar all command. - New 'fastboot oem console' command. Useful for debugging to send data the u-boot shell via fastboot - Console recording fixes