- Nov 24, 2024
-
-
Tom Rini authored
Janne Grunau <j@jannau.net> says: Starting with v2024.10 dev_iommu_dma_unmap calls during device removal trigger a NULL pointer dereference in the Apple dart iommu driver. The iommu device is removed before its user. The sparsely used DM_FLAG_VITAL flag is intended to describe this dependency. Add it to the driver. Adding this flag is unfortunately not enough since the boot routines except the arm one simply remove all drivers. Add and use a new function which calls dm_remove_devioce_flags(DM_REMOVE_ACTIVE_ALL | DM_REMOVE_NON_VITAL); dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL); to ensure this order dependency is head consistently. Link: https://lore.kernel.org/r/20241123-iommu_apple_dart_ordering-v2-0-cc2ade6dde97@jannau.net
-
Janne Grunau authored
This replaces dm_remove_devices_flags() calls in all boot implementations to ensure non vital devices are consistently removed first. All boot implementation except arch/arm/lib/bootm.c currently just call dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL). This can result in crashes when dependencies between devices exists. The driver model's design document describes DM_FLAG_VITAL as "indicates that the device is 'vital' to the operation of other devices". Device removal at boot should follow this. Instead of adding dm_remove_devices_flags() with (DM_REMOVE_ACTIVE_ALL | DM_REMOVE_NON_VITAL) everywhere add dm_remove_devices_active() which does this. Fixes a NULL pointer deref in the apple dart IOMMU driver during EFI boot. The xhci-pci (driver which depends on the IOMMU to work) removes its mapping on removal. This explodes when the IOMMU device was removed first. dm_remove_devices_flags() is kept since it is used for testing of device_remove() calls in dm. Signed-off-by:
Janne Grunau <j@jannau.net>
-
Janne Grunau authored
Avoids NULL pointer dereferences in apple_dart_unmap when the iommu device is removed before its user. U-boot's device model does not track dependencies between devices. Observed on a M1 Ultra Mac Studio with v2024.10. Acked-by:
Mark Kettenis <kettenis@openbsd.org> Signed-off-by:
Janne Grunau <j@jannau.net>
-
https://source.denx.de/u-boot/custodians/u-boot-efiTom Rini authored
CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/23529 - Documentation: - Document wget syntax enhancements with lwIP network stack - Move README.kconfig to HTML documentation - Remove redundant README.TPL - UEFI: - Simplify efi_tcg2_hash_log_extend_event() - Allow EFI_LOADER_BOUNCE_BUFFER on all architectures - Correctly unmap and free memory on errors - Other: - Enable EFI_LOADER_BOUNCE_BUFFER on StarFive VisionFive 2
-
Ilias Apalodimas authored
We never free and unmap the memory on errors and we never unmap it when freeing it. The latter won't cause any problems even on sandbox, but for consistency always use unmap_sysmem() Fixes: commit 22f2c9ed ("efi: memory: use the lmb API's for allocating and freeing memory") Reviewed-by:
Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
- Nov 23, 2024
-
-
https://gitlab.denx.de/u-boot/custodians/u-boot-imxTom Rini authored
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23523 - Fix a imx8mn clock driver regression where the 32kHz clock can not be found in SPL.
-
Heinrich Schuchardt authored
Our MMC driver for JH7110 boards only supports reading to the low 4 GiB of memory. Booting boards with more memory requires EFI_LOADER_BOUNCE_BUFFER. Reported-by:
E Shattow <lucent@gmail.com> Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Tested-by:
Loic Devulder <ldevulder@suse.com>
-
Heinrich Schuchardt authored
Commit 775f7657 ("Kconfig: clean up the efi configuration status") by mistake revoked commit dcd1b63b ("efi_loader: allow EFI_LOADER_BOUNCE_BUFFER on all architectures"). Fixes: 775f7657 ("Kconfig: clean up the efi configuration status") Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Tested-by:
Loic Devulder <ldevulder@suse.com>
-
Jerome Forissier authored
The lwIP version of wget supports a different syntax with a URL, in addition to the legacy syntax. Document that. While we're at it, fix a couple of minor issues in the legacy syntax: - hostIPaddr can be a DNS name if CONFIG_CMD_DNS is enabled - path is mandatory Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Heinrich Schuchardt authored
doc/develop/spl.rst describes SPL, TPL, VPL. Remove the outdated README.TPL document. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Heinrich Schuchardt authored
* format according to Sphinx style * add link to Linux Kconfig documentation * sort table alphabetically in 'Conversion from boards.cfg to Kconfig' Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Heinrich Schuchardt authored
The value of variable nt is never used. Just use NULL when calling efi_check_pe(). The API function is not expected to write to the console. Such output might have unwanted side effects on the screen layout of an EFI application. Leave error handling to the caller. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Marek Vasut authored
Since 50cdd3f7 ("clk: imx: clk-imx8mn Fix nand and spi clock parent"), drivers/clk/imx/clk-imx8mn.c clk_get_by_name(dev, "osc_24m", &osc_24m_clk) fails with error -22 EINVAL in SPL. This is because clk_get_by_name() in the end calls fdtdec_parse_phandle_with_args(), which iterates over all phandles in clock-controller@30380000 { clocks = <&osc_32k>, <&osc_24m>, ... } node 'clocks' property in an attempt to find the "osc_24m" clock, but fails to resolve the &osc_32k phandle and returns with -EINVAL. Include the osc_32k clock in SPL DTs as a low risk fix for v2025.01 release. This way, fdtdec_parse_phandle_with_args() can resolve both the osc_32k and following osc_24m phandle and successfully look up the osc_24m clock. Fixes: 50cdd3f7 ("clk: imx: clk-imx8mn Fix nand and spi clock parent") Signed-off-by:
Marek Vasut <marex@denx.de> Tested-by: Adam Ford <aford173@gmail.com> #imx8mn-beacon
-
- Nov 22, 2024
-
-
Tom Rini authored
- Assorted additional lwIP fixes - Assorted test fixes - Assorted other localized fixes
-
Heinrich Schuchardt authored
Users might not know what 'CDP' refers to. Provide basic information. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Heinrich Schuchardt authored
Provide a unit test for the hextoull() function. Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Jerome Forissier authored
The dhcp command is supposed to have the following syntax as per "help dhcp": dhcp [loadAddress] [[hostIPaddr:]bootfilename] In other words, any arguments should be passed to an implicit tftpboot command after the DHCP exchange has occurred. Add the missing code to the lwIP version of do_dhcp(). Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org>
-
Ilias Apalodimas authored
We currently provide entropy to mbedTLS using 8b chunks. Take into account the 'len' parameter passed by MBed TLS to the entropy gathering function instead. Note that the current code works because len is always 128 (defined at compile time), therefore mbedtls_hardware_poll() is called repeatedly and the buffer is filled correctly. But passing 'len' to dm_rng_read() is both better and simpler. Reviewed-by:
Jerome Forissier <jerome.forissier@linaro.org> Suggested-by:
Simon Glass <sjg@chromium.org> Signed-off-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Jerome Forissier authored
The lwIP version of wget also supports the legacy syntax. Document it in the help string. Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Jerome Forissier authored
The local variables ipstr, maskstr and gwstr in static function get_udev_ipv4_info() cannot be pointers to read-only data, since they may be written to in case the device index is > 0. Therefore make them char arrays allocated on the stack. Reported-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Reported-by:
Adriano Cordova <adrianox@gmail.com> Link: https://lists.denx.de/pipermail/u-boot/2024-November/572066.html Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Udit Kumar authored
OSPI boot is broken due to missing bootph property in pin mux of OSPI. So add bootph to fix OSPI boot. Signed-off-by:
Udit Kumar <u-kumar1@ti.com>
-
Ben Horgan authored
The previous maintainer is no longer involved in total compute. Signed-off-by:
Ben Horgan <ben.horgan@arm.com> Reviewed-by:
Peter Robinson <pbrobinson@gmail.com> Reviewed-by:
Leo Yan <leo.yan@arm.com>
-
Tom Rini authored
While at the base level, this conversion looks equivalent, we now see both of these tests failing (due to exceeding their allowed margin for being too slow) in Azure with a very high frequency. This reverts commit 88db4fc5. Signed-off-by:
Tom Rini <trini@konsulko.com> Tested-by:
Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Jerome Forissier authored
The local variables ipstr, maskstr and gwstr in static function dhcp_loop() cannot be pointers to read-only data, since they may be written to in case the device index is > 0. Therefore make them char arrays allocated on the stack. Reported-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Mattijs Korpershoek authored
We make fewer calls to dm_test_restore() since commit fbdac815 ("test: Expand implementation of ut_list_has_dm_tests()") Because of this some valid test combinations are now broken: $ ./test/py/test.py --bd sandbox --build -k test_ut $ ./test/py/test.py --bd sandbox --build -k "bootflow_android or bootflow_cros" Shows: Expected ' 2 cros ready mmc 4 mmc5.bootdev.part_4 ', got ' 2 cros ready mmc 2 mmc5.bootdev.part_2 ' Here prep_mmc_bootdev() is called twice and it will bind bootmeth_cros twice. Since bootmeth_cros is bound twice, 'bootflow scan' will find 2x the expected bootflows. Before commit fbdac815 ("test: Expand implementation of ut_list_has_dm_tests()") this did not happen because a cleanup was called each time. Add UTF_DM and UTF_SCAN_FDT flags to both tests to make sure that the bootmeths are unbound after the test finishes. Fixes: fbdac815 ("test: Expand implementation of ut_list_has_dm_tests()") Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
- Nov 20, 2024
-
-
https://source.denx.de/u-boot/custodians/u-boot-snapdragonTom Rini authored
CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/23474 - UFS support is enabled for SC7280 and SM8150 platforms. - Qualcomm dt-bindings headers are all dropped in favour of dts/upstream. - The SMMU driver now correctly handles stream ID 0 and is disabled in EL2. - Initial support for capsule updates (using the new dynamic UUIDs) is added for the RB3 Gen 2 board alongside a new SCSI backend for DFU. - CONFIG_PINCONF is enabled in qcom_defconfig. - The vqmmc supply is now enabled for sdcard support on boards that need it. - A quirk is added for reading GPIOs on the PM8550 PMIC
-
Caleb Connolly authored
Some dt-binding headers mask the upstream ones which can lead to build failures, or worse: super weird bugs, if they get out of sync. Remove these headers so our devicetree and binding headers will both be in sync with upstream. Reviewed-by:
Sumit Garg <sumit.garg@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
We only need to configure the SMMU when running in EL1. In EL2 the hypervisor isn't running so peripherals can just do DMA as they wish. Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
It turns out this is a very real stream ID. Who woulda thought? Drop the 0 check on the SID, there's no reason for it to be there in the first place. Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
Enable all the necessary options for capsule updates to work, as well as a few additional EFI features. Capsule updates themselves are only enabled for the RB3 Gen 2, since the exact details on where to flash U-Boot (or how to handle multiple boot methods) has not been finalised for other boards. Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
Qualcomm boards flash U-Boot a variety of partitions, implement support for determining which slot U-Boot is running from, finding the correct partition for that slot and configuring the appropriate DFU string. Initially, we only support the RB3 Gen 2 where U-Boot is flashed to the UEFI partition, and ignore handling of slots. In the future we will additionally support booting U-Boot from other partitions (e.g. boot) and correct handling for A/B. Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org> Acked-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
GPT partition tables include two bytes worth of vendor defined attributes, per partition. ChromeOS and Qualcomm both use these (with different encoding!) to handle A/B slot switching with a retry counter. Expose these via the disk_partition struct so that they can be parsed by the relevant board code. This will be used on Qualcomm boards to determine which slot we're booting on so that we can flash capsule updates to the correct one. Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Caleb Connolly authored
This is extremely similar to the MMC backend, but there are some notable differences. Works with a DFU string like scsi 4=u-boot-bin part 11 Where "4" is the SCSI dev number (sequential LUN across all SCSI devices) and "11" is the partition number. Reviewed-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Acked-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Julius Lehmann authored
Copy PHY tables over from Linux to support SM8150 Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org>
-
Caleb Connolly authored
Add configuration for the SC7280, copied from Linux 6.11 Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Neil Armstrong authored
Now the Qualcomm controller and PHY drivers were accepted, enable then in the qcom_defconfig file. Signed-off-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Neil Armstrong authored
The upstream version has new defines use to build DT, drop it in favor of the dts/upstream more recent one. Signed-off-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Sumit Garg <sumit.garg@linaro.org> Reviewed-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Neil Armstrong authored
The ufsphy_v2_regs_layout is not used, drop it and fix: phy-qcom-qmp-ufs.c:87:27: warning: ‘ufsphy_v2_regs_layout’ defined but not used [-Wunused-const-variable=] Signed-off-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Neil Armstrong authored
The qcom_pmic code is broken for new PMICs and should be fixed, without the QUIRK the code is broken and the GPIOs don't work anymore on SM8550 and SM8650 platforms. Partially revert the revert and only add the quirk on the PM8550 PMIC, making the buttons and MMC detect gpio work again. Signed-off-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Caleb Connolly <caleb.connolly@linaro.org>
-
Neil Armstrong authored
On earlier platforms, the vqmmc regulator was enabled by the previous bootloader, but on the newest (SM8650) it's not and we need vqmmc to be enabled in order to have the card to respond. Signed-off-by:
Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by:
Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by:
Caleb Connolly <caleb.connolly@linaro.org>
-