aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-01-21Merge tag 'efi-2024-04-rc1-3' of ↵WIP/21Jan2024Tom Rini4-52/+147
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2024-04-rc1-3 Documentation: * correct documentation of part_get_bootable() * remove duplicate word "has" in UEFI documentation UEFI: * rename check_disk_has_default_file function * auto-generate boot option for each blkio device * auto-generate removable media boot option first * avoid pointer access after calling efi_delete_handle * create common function to free struct efi_disk_obj * return immediately in UCLASS_EFI_LOADER removal
2024-01-21efi_loader: return immediately in UCLASS_EFI_LOADER removalMasahisa Kojima1-6/+10
In case of UCLASS_EFI_LOADER, EFI handles are managed by EFI application/driver, we must not delete EFI handles. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-01-21efi_loader: create common function to free struct efi_disk_objMasahisa Kojima1-7/+19
Current error handling of creating raw disk/partition has following issues. - duplicate free for EFI handle, EFI handle is already freed in efi_delete_handle() - missing free for struct efi_device_path and struct efi_simple_file_system_protocol in some error paths To address those issues, this commit creates the common function to free the struct efi_disk_obj resources and calls it in case of error. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-01-21efi_loader: avoid pointer access after calling efi_delete_handleMasahisa Kojima1-6/+14
efi_delete_handle() calls efi_purge_handle(), then it finally frees the EFI handle. Both diskobj and handle variables in efi_disk_remove() have the same pointer, we can not access diskobj->dp after calling efi_delete_handle(). This commit saves the struct efi_device_path pointer before calling efi_delete_handle(). This commit also fixes the missing free for volume member in struct efi_disk_obj. This commit also removes the container_of() calls, and adds the TODO comment of missing efi_close_protocol() call for the parent EFI_BLOCK_IO_PROTOCOL. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-01-21efi_loader: auto-generate removable media boot option firstMasahisa Kojima1-7/+26
This commit auto-generates the boot option for removable block io devices followed by fixed block io devices. This is what EDK II reference implementation does. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-01-21efi_loader: auto-generate boot option for each blkio deviceMasahisa Kojima1-26/+75
Current efibootmgr auto-generates the boot option for all disks and partitions installing EFI_SIMPLE_FILE_SYSTEM_PROTOCOL, while EDK II reference implementation auto-generates the boot option for all devices installing EFI_BLOCK_IO_PROTOCOL with eliminating logical partitions. This commit modifies the efibootmgr to get aligned to EDK II. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-01-21efi_loader: rename check_disk_has_default_file functionMasahisa Kojima1-5/+8
check_disk_has_default_file() function checks if the architecture-specific default file exists on the block device, and fills the default file device path if it exists. Rename the function name to fill_default_file_path(). Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-01-21part: correct documentation of part_get_bootable()Heinrich Schuchardt1-2/+2
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 <heinrich.schuchardt@canonical.com>
2024-01-21doc: uefi: remove duplicate word "has"Wei Ming Chen1-1/+1
There should be only one "has" instead of "has has" Signed-off-by: Wei Ming Chen <jj251510319013@gmail.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-01-20Merge patch series "k3-j721e: beagleboneai: Fix USB"Tom Rini6-87/+38
Roger Quadros <rogerq@kernel.org> says: Hi, This series fixes USB operation on k3-j721e based boards.
2024-01-20configs/j721e_beagleboneai64_a72_defconfig: Enable Sierra PHYRoger Quadros1-0/+2
This is required for USB Super-Speed operation. Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-01-20arm: dts: k3-j721e-beagleboneai64: Fix USB operationRoger Quadros1-0/+2
Without correct SERDES MUX and Lane control settings USB0 will be broken. Set the MUX and Lane control devices to be auto probed so they are configured correctly. Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-01-20arm: dts: k3-j721e: Fix USB0 operationRoger Quadros2-0/+16
Without correct SERDES MUX and Lane control settings USB0 will be broken. Set the MUX and Lane control devices to be auto probed so they are configured correctly. Fixes: 69b19ca67bcb ("arm: dts: k3-j721e: Sync with v6.6-rc1") Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-01-20usb: cdns3: avoid error messages if phys don't existRoger Quadros1-10/+18
The phys property is optional so don't complain if it doesn't exist in device tree. Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-01-20board: ti: j721e: Drop SERDES PHY init from board fileRoger Quadros1-77/+0
Since commit 69b19ca67bcb ("arm: dts: k3-j721e: Sync with v6.6-rc1"), the following error message is seen at u-boot "Sierra init failed:-19" Probing and initializing the SERDES PHY from board file is not a clean solution so drop it. Proper use case should be via PHY_UCLASS APIs. Signed-off-by: Roger Quadros <rogerq@kernel.org>
2024-01-19Kconfig: boot: Imply BOOTSTD_DEFAULT when BOOTSTD_FULL=yWIP/19Jan2024Shantur Rathore1-0/+1
We need BOOTSTD_DEFAULT when BOOTSTD_FULL is selected. Signed-off-by: Shantur Rathore <i@shantur.com>
2024-01-19Merge tag 'u-boot-stm32-20240119' of ↵Tom Rini35-183/+307
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-19stm32mp2: Fix CONFIG_STM32MP25X flag usagePatrice Chotard1-1/+1
"#if" was used instead of "#ifdef" Fixes: 01a701994b05 ("stm32mp2: initial support") Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19stm32mp: Add dependencies on CMDLINE for command stm32keyPatrick Delaunay1-0/+1
We cannot use stm32key commands without CONFIG_CMDLINE so add the required condition. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-01-19ARM: stm32: Set stdio to serial on DH STM32MP15xx DHSOMMarek Vasut1-4/+7
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 <marex@denx.de> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-01-19Merge branch '2024-01-18-assorted-fixes'Tom Rini68-14320/+12107
- 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-19arm: Rename STM32MP15xPatrick Delaunay20-42/+42
CONFIG options must not use lower-case letter. Convert this and related ones to upper case. Signed-off-by: Simon Glass <sjg@chromium.org Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-01-19arm: Rename STM32MP13xPatrick Delaunay13-24/+24
CONFIG options must not use lower-case letter. Convert this and related ones to upper case. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@foundries.io>
2024-01-19board: st: stm32mp2: display the board identificationPatrick Delaunay1-0/+23
Add the display of the STMicroelectronics board identification saved in OTP in stm32mp2 checkboard function. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19board: st: stm32mp2: add checkboardPatrick Delaunay1-0/+14
Implement the weak function checkboard to identify the used board with compatible in device tree for the support of stm32mp2 STMicroelectronics boards. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19stm32mp: activate the command stboard for stm32mp25 boardsPatrick Delaunay3-1/+4
Activate the command stboard for stm32mp25 STMicroelectronics boards, add the default used OTP identifier and the associated board identifier: - stm32mp25xx-ev1 = MB1936 - stm32mp25xx-dk = MB1605 Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-01-19stm32mp: stm32prog: add support of stm32mp25Patrick Delaunay1-1/+9
Change OTP number to 364 for STM32MP25 as it is done in bsec driver. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-01-19smt32mp: add setup_mac_address for stm32mp25Patrick Delaunay3-57/+72
Add a function setup_mac_address() to update the MAC address from the default location in OTP for stm32mp2 platform. The max number of OTP for MAC address is increased to 8 for STM32MP25, defined with get_eth_nb() and checked in setup_mac_address. The MAC address FF:FF:FF:FF:FF:FF, the broadcast ethaddr, is a invalid value used for unused MAC address slot in OTP, for example for board with STM32MP25x part number allows up to 5 ethernet ports but it is not supported by the hardware, without switch; the associated variable "enetaddr%d" is not created. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19stm32mp: add setup_serial_number for stm32mp25Patrice Chotard4-27/+32
Add support of serial number for stm32mp25, gets from OTP with BSEC driver. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@foundries.io>
2024-01-19stm32mp: add soc.c filePatrick Delaunay4-22/+20
Add a new file soc.c for common functions between stm32mp1 and stm32mp2 family and move print_cpuinfo() in this new file. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@foundries.io>
2024-01-19configs: stm32mp25: add support of fuse commandPatrick Delaunay1-0/+1
Add support of the command fuse with CONFIG_CMD_FUSE to allow access on OTP with command line. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19stm32mp: bsec: add support of stm32mp25Patrick Delaunay2-1/+9
Add support of BSEC for STM32MP25x family to access OTP. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19stm32mp: bsec: add driver dataPatrick Delaunay1-8/+30
Add driver data in BSEC driver to test presence of OP-TEE TA, mandatory for STM32MP13 family and prepare the support of new device with more OTP than 95. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19arm: stm32mp: add Rev.B support for STM32MP25Yann Gautier1-0/+3
Add chip revision B support for STM32MP25, for displaying it in trace. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19arm64: dts: st: add bsec support to stm32mp25Patrick Delaunay2-0/+20
Add BSEC support to STM32MP25 SoC family with SoC information: - RPN = Device part number (BSEC_OTP_DATA9) - PKG = package data register (Bits 2:0 of BSEC_OTP_DATA122) Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
2024-01-19ARM: dts: stm32: Fix reset for usart1 in scmi configurationPatrice Chotard1-1/+1
In SCMI configuration, usart1 is secure, so all its resources are secured (clock and reset) and can't be set/unset by non-secure world but by OP-TEE. Fixes: 6cccc8d396bf ("ARM: dts: stm32: add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)") Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-01-19Merge tag 'u-boot-rockchip-20240119' of ↵Tom Rini89-703/+1815
https://source.denx.de/u-boot/custodians/u-boot-rockchip - Add board: rk3328 FriendlyARM NanoPi R2C Plus, rk3588 Turing RK1 SoM; - Enable SPI boot for rk3588 and rk3528; - Set boot device in SPL as common code; - other misc fixes;
2024-01-19rockchip: rk3128: remove noop fileQuentin Schulz2-14/+0
arch_cpu_init is already returning 0 in its weak definition in common/board_f.c so let's just remove the file entirely since nothing else is done in it. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19rockchip: remove unused global data ptrQuentin Schulz7-20/+0
Remove leftover import and global data ptr from files since they aren't used anymore. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19rockchip: find U-boot proper boot device by inverting the logic that sets itQuentin Schulz3-31/+80
BOOT_DEVICE_* is set by spl_node_to_boot_device() depending on the block device number associated with the MMC device the SPL used to load U-Boot proper from. It is NOT related to the mmc alias in the Device Tree. For SPI flashes, all SPI flashes will return BOOT_DEVICE_SPI so there's currently no way to know from which one the SPL loaded U-Boot proper from. Therefore, let's just find the first valid candidate in /chosen/u-boot,spl-boot-order that is a SPI flash and return that path. This is a best effort. While the original implementation may have worked, using the exact same mechanism but in inverted fashion makes it less likely to have surprising corner-cases or side-effects. A nice side-effect is that all existing and future Rockchip SoCs now automatically have their /chosen/u-boot,spl-boot-device set. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19rockchip: factor out spl_perform_fixups into common spl-boot-orderQuentin Schulz3-92/+49
All SoCs are susceptible to wanting to know which storage medium was used to load U-Boot SPL. So instead of reimplementing the same functions in SoCs over and over again (here just rk3399 and px30 but rk3588 is coming), let's just put all this in common into spl-boot-order.c allowing to support a new SoC just by defining the spl_boot_devices array in the appropriate SoC file. Note that spl_perform_fixups() now calls spl_image_fdt_addr() to get the address of the fdt instead of directly reading the spl_image_info->fdt_addr member, because that member is not guaranteed to be present (guarded with compile flags). This is essential because we move the logic away from px30 and rk3399 which had those compile flags enabled to code run for all Rockchip SoCs. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19rockchip: px30: simplify logic for getting SPL boot medium DT nodeQuentin Schulz1-12/+16
In preparation of moving spl_perform_fixups to spl-boot-order.c, let's simplify the logic around mapping the BOOT_DEVICE_x enum index to a DT node by using an instantiated array of chars instead of creating a new data structure on the fly. This will make it easier to factor out the code handling the SPL boot medium detection by having spl_decode_boot_device common to all SoCs. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19rockchip: rk3399: simplify logic for getting SPL boot medium DT nodeQuentin Schulz1-15/+19
In preparation of moving spl_perform_fixups to spl-boot-order.c, let's simplify the logic around mapping the BOOT_DEVICE_x enum index to a DT node by using an instantiated array of chars instead of creating a new data structure on the fly. This will make it easier to factor out the code handling the SPL boot medium detection by having spl_decode_boot_device common to all SoCs. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19doc: board: anbernic: Update rgxx3 to add new boardsChris Morgan1-6/+14
Update the RGxx3 documentation to note that it now supports the RG-ARC-D, RG-ARC-S, Powkiddy RK2023, and Powkiddy RGB30. Also update verbiage around panel detection to note that it is no longer hard coded to the RG503. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19board: rockchip: Add support for new boards to RGxx3Chris Morgan1-5/+39
Add support for the Anbernic RG-ARC-D, Anbernic RG-ARC-S, Powkiddy RK2023, and Powkiddy RGB30 to the Anbernic RGxx3. While the Powkiddy devices are manufactured by Powkiddy instead of Anbernic, the hardware is so similar they can all use the same bootloader. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19rockchip: board: Add board_rng_seed() for all Rockchip devicesChris Morgan2-29/+32
Allow all rockchip devices to use the hardware RNG to seed Linux RNG. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19board: rockchip: Refactor panel auto-detect codeChris Morgan1-41/+74
Make the inability to detect a panel using the auto detection code not fail the entire boot process. This means that if the panel ID cannot be read we don't set an environment variable for the panel, and if an environment variable for the panel is not set we don't attempt to update the compatible string. Changes to the code also ensure that when there are multiple compatible strings required for the panel we use them both, which solves some issues that will pop up soon for the Linux driver. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19rockchip: rk3328: Set efuse auto mode and timing controlJonas Karlman1-0/+38
Reading from efuse return zero when mainline TF-A is used. => dump_efuse 00000000: 00 00 00 00 .... 00000004: 00 00 00 00 .... 00000008: 00 00 00 00 .... 0000000c: 00 00 00 00 .... 00000010: 00 00 00 00 .... 00000014: 00 00 00 00 .... 00000018: 00 00 00 00 .... 0000001c: 00 00 00 00 .... However, when vendor TF-A blobs is used reading from efuse works. Change to use auto mode, enable finish and auto access err interrupts and set timing control using same values that vendor TF-A blob use to fix this. With this efuse can be read when either of mainline TF-A or vendor blob is used. => dump_efuse 00000000: 52 4b 33 82 RK3. 00000004: 00 fe 21 55 ..!U 00000008: 52 4b 57 34 RKW4 0000000c: 35 30 32 39 5029 00000010: 00 00 00 00 .... 00000014: 08 25 0c 0f .%.. 00000018: 02 0d 08 00 .... 0000001c: 00 00 f0 00 .... Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19rockchip: theobroma-systems: fix modified boot_targets detectionQuentin Schulz1-2/+6
U-Boot proper automatically modifies boot_targets to swap the order in which MMC storage media are used for standard boot based on which MMC storage medium was used to load U-Boot proper. This is however only done if the user has not changed it manually, therefore a check between the default and current value is done. This used to work fine until the migration to standard boot where boot_targets value size in the default environment went above the 32 characters that env_get_default function can return, thus resulting in a truncated variable. Therefore the check between default and current value would always fail. By using the newly added env_get_default_into function, a buffer of the appropriate size can be allocated on the stack to get the whole value of boot_targets in the default environment and thus fixing the check. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2024-01-19env: migrate env_get_default to call env_get_default_intoQuentin Schulz1-3/+5
Since both functions share a similar goal and env_get_default_into can do what env_get_default wants to do with specific arguments, let's make env_get_default call env_get_default_into so as to avoid code duplication. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>