summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-26bootstd: Add test for Android boot image v2Guillaume La Roque
Rename actual android bootmethod test to specify it's for boot image version 4. Add a unit test for testing the Android bootmethod with boot image version 2. This requires another mmc image (mmc8) to contain the following partitions: - misc: contains the Bootloader Control Block (BCB) - boot_a: contains a fake generic kernel image we can test this with: $ ./test/py/test.py --bd sandbox --build -k test_ut # build the mmc8.img $ ./test/py/test.py --bd sandbox --build -k bootflow_android Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Guillaume La Roque <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-26configs: khadas-vim3_android{_ab}: move on bootmeth androidGuillaume La Roque
Actually khadas vim3 use distro command to boot android image. Move on new bootmeth android for A/B and non-A/B vim3 android. Reviewed-by: Mattijs Korpershoek <[email protected]> Acked-by: Neil Armstrong <[email protected]> Signed-off-by: Guillaume La Roque <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-26configs: khadas-vim3l_android{_ab}: move on bootmeth androidGuillaume La Roque
Actually khadas vim3l use distro command to boot android image. Move on new bootmeth android for A/B and non-A/B vim3l android. Reviewed-by: Mattijs Korpershoek <[email protected]> Acked-by: Neil Armstrong <[email protected]> Signed-off-by: Guillaume La Roque <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-26bootstd: android: add non-A/B image supportGuillaume La Roque
Update android bootmeth to support non-A/B image. Enable AB support only when ANDROID_AB is enabled. Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Guillaume La Roque <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-26bootstd: android: add support of bootimage v2Guillaume La Roque
Android bootmeth only support boot image v3/4. Add support of Android Boot Image version 2 [1]. Vendor boot image is only supported in version 3 and 4 so don't try to read it when header version is less than 3. [1] https://source.android.com/docs/core/architecture/bootloader/boot-image-header#header-v2 Tested-by: Julien Masson <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Guillaume La Roque <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-26usb: ci_udc: don't use "advance" feature when setting addressIon Agorria
In the older USB controllers like for example in ChipIdea controller used by the Tegra 2 the "USBADRA: Device Address Advance" bitflag does not exist, so the new device address set during SET_ADDRESS can't be deferred by hardware, which causes the host to not recognize the device and give an error. Instead store it until ep completes to apply the change into the hw register as Linux kernel does. This should fix regression on old and and be compatible with newer controllers. Inspired by: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef15e5490edc7edf808d3477ab32e0e320792f65 Signed-off-by: Ion Agorria <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-11-25board: phytec: phycore-imx8mm: Add EEPROM detection initialisationYunus Bas
Add EEPROM detection initialisation for phyCORE-i.MX8MM. Signed-off-by: Yunus Bas <[email protected]>
2024-11-25board: phytec: imx93: Add phyCORE-i.MX 93 support for all SOM variantsChristoph Stoidner
The phyCORE-i.MX 93 is available in various variants (e.g. different ram sizes, eMMC HS400 yes/no). Enable hardware introspection for the imx93-phyboard-segin_defconfig, so that during startup the SOM module variant can be detected, and the hardware can be configured accordingly. The resulting SPL and u-boot binary shall able to boot each phyCORE-i.MX 93 module variant on each carrier board. Finally rename imx93-phyboard-segin_defconfig to imx93-phycore_defconfig, to highlight its SOM scope. Signed-off-by: Christoph Stoidner <[email protected]> Reviewed-by: Wadim Egorov <[email protected]> Reviewed-by: Yannic Moog <[email protected]>
2024-11-25board: phytec: imx93: Add eeprom-based hardware introspectionChristoph Stoidner
The phyCORE-i.MX 93 is available in various variants. Relevant variant options for the spl/u-boot are: - with or without HS400 support for the eMMC - with 1GB ram chip, or 2GB ram chip The phyCORE's eeprom contains all information about the existing variant options. Add evaluation of the eeprom data to the spl/u-boot to enable/disable HS400 and to select the appropriate ram configuration at startup. Signed-off-by: Christoph Stoidner <[email protected]> Reviewed-by: Wadim Egorov <[email protected]> Reviewed-by: Yannic Moog <[email protected]> Tested-by: Primoz Fiser <[email protected]>
2024-11-25board: phytec: phycore-imx93: Add 2GB LPDDR4X RAM timingsChristoph Stoidner
The phyCORE-i.MX 93 is available with a 1GB ram chip or a 2GB ram chip. Add the ram timings for the 2GB chip, in form of a diff compared to the existing LPDDR4X 1GB timings. With that, the SPL can select the appropriate timings at startup. Update also the 1GB ram timings with new version of the DDR Tool. Signed-off-by: Christoph Stoidner <[email protected]> Tested-by: Primoz Fiser <[email protected]>
2024-11-25siemens: capricorn: update maintainersEnrico Leto
update MAINTAINERS file, add some more board maintainers. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: add ddr signal integrity testEnrico Leto
The signal integrity test generates pattern on DDR lines for certification. The signals must be as fast as possible and unidirectional. The test is required from our HW team. The available u-boot memory test doesn't full fill the our requirements. The test is planed to be used in all new siemens boards. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: add ddr full memory testEnrico Leto
Add siemens specific memory test. Enable it through Kconfig option SPL_CMT. The test is required from our HW team. It runs over temperature during many days: * must run indefinitively through the *whole* DDR area, so we cannot use linux memtest for example. * must write/read/check all values Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: get module name from eepromEnrico Leto
The eeprom contains the information on which module we are running, so read it from the eeprom and print it on the console. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: get ram size from system controllerEnrico Leto
Get the memory region information from system controller to reduce the number of platform specific headers. We were aligned on NXP mek board implementation. This need at least 1 header per memory configuration. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: add HW version information to boot logAlessandro Zini
Add the HW version read directly from EEPROM. EEPROM chip data structure is now in a .h file common to draco and capricorn. Therefore move out the definitions in draco board to siemens common place. From: Alessandro Zini <[email protected]> Signed-off-by: Alessandro Zini <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: small board updatesHeiko Schocher
with newest SCFW build_info() works now, so call it from checkboard() now. As we only use uart2 as console, do not init uart0. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: imx8-capricorn.dtsi: add wdt deviceHeiko Schocher
add wdt device Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: sync spl code with 8qxp-mekHeiko Schocher
sync spl code with 8qxp-mek board. Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: configs/capricorn_cxg3_defconfig: updatesHeiko Schocher
make savedefconfig and add SCU_WDT and fix environment offsets, as since silicon c0 the boot container takes place at offset 0 and so the u-boot-env must be moved outside of the boot container area. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: imximage.cfg: sync image namesHeiko Schocher
sync the image names in imximage.cfg with the ones used in arch/arm/dts/imx8qxp-u-boot.dtsi Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: imximage.cfg: correct commentHeiko Schocher
fix wrong comment. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: capricorn: use DCD_SKIP entryHeiko Schocher
Boards which use DCD data in SCFW can drop SPL. We tried in our mainline rework to use this approach too as other imx8qxp boards do in mainline. But we failed ... it was a hard way to understand the reason! We cannot use DCD image in container as the SCFW from siemens, does the RAM init on boot itself! Siemens SCFW reads the RAM config from i2c eeprom and dependent on this settings, initializes the RAM. Adding DCD data to the bootcontainer will result in hang of the SCFW, also DCD data in container image is static which do not fit our needs. So we must drop DCD data image, and this has the side effect that we need SPL, as the task which loads the images from the container only loads the images to addresses, and if executed bit is set, starts them. As now RAM is not initialized from it, and there is no option to "wait until SCFW has setup RAM", we can only load SPL into internal RAM at this point, as than SPL and SCFW boot parallel. The SPL itself then uses the SCU API to communicate with the SCFW and it seems that SCFW only responds to this API requests when RAM setup is already done by the SCFW, which has a side-effect of a "sync" for the RAM setup is done by SCFW! We checked if SPL is always save in accessing RAM for loading images to it! For tests, we added in our RAM init part in the SCFW long delays (10 seconds and more) as we thought there is such a sync missing, and we can break the board through delaying RAM setup... but we did not managed to fail booting U-Boot from SPL! Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: imx8qxp-capricorn-u-boot.dtsi: fix bootHeiko Schocher
current generated flash.bin image does not longer boot on cxg3 board. Rename bootph-pre-ram to bootph-all so flash.bin boots again! Add u-boot specific change (add bootph-all property) in A35_0 node to imx8qxp-capricorn-u-boot.dtsi Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: capricorn: move to cxg3 reference project with deneb boardEnrico Leto
We have many HW with capricorn i.MX8X boards. The difference in u-boot is at all by the display of the LEDs. * put upstream a reference project & board for DT and defconfig * use the capricorn prefix outside the board/siemens/capricorn folder Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25imx8qxp: Fix build when using SPLHeiko Schocher
imx8qxp based boards which use SPL drop error when calling make all: """ Writing image to './flash.bin' Node '/binman/imx-boot/spl': GetData: size 0x0 Node '/binman/imx-boot': GetPaddedDataForEntry: size 0x0 Node '/binman/imx-boot': GetData: 1 entries, total size 0x0 Node '/binman/imx-boot': GetPaddedDataForEntry: size 0x0 Wrote 0x0 bytes Image 'imx-boot' is missing external blobs and is non-functional: spl /binman/imx-boot/spl (spl.bin): Missing blob Some images are invalid """ Guard creation of flash.bin with CONFIG_XPL_BUILD option. Signed-off-by: Heiko Schocher <[email protected]> Fixes: c9713c155127 ("imx8-u-boot: Fix SPL guard option")
2024-11-25imx: imx_cntr_image.sh: prevent warning for missing splHeiko Schocher
when building U-Boot on imx8qxp and the board port uses SPL, U-boot build shows WARNING '.../spl/u-boot-spl.bin' not found, resulting binary is not-functional This is because U-Boot binary is build first and Makefile calls script imx_cntr_image.sh which checks if files exists... but of course as spl is not yet build the file `spl/u-boot-spl.bin` does not exist yet, so prevent this warning. Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25tools: imx8image: Improve error messageHeiko Schocher
Improve error message "header tag mismatched" Add filename to error message to see, which file is wrong. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25net: fec_mxc: fix probing for imx8qxpHeiko Schocher
probing on capricorn board (imx8qxp based) brings: Can't find FEC0 clk rate: -19 Cause is that when probing fec_mxc driver, fec_mii_setspeed() is called which calls fec_get_clk_rate(). fec_mii_setspeed() calls fec_get_clk_rate with NULL pointer for udev and so as in IMX8QXP case CLK_CCF is enabled udev gets searched with: uclass_get_device_by_seq(UCLASS_ETH, idx, &dev); but we do not have yet a UCLASS_ETH ! as we just probing it! Prevent this by passing udev to fec_get_clk_rate() Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25wdt: imx8qxp: add option to control external PMIC wdt via IMX8 SCUHeiko Schocher
Driver for a PMIC watchdog timer controlled via Siemens SCU firmware extensions. Only useful on some Siemens i.MX8-based platforms as special SCFW is needed which provides the needed SCU API. Signed-off-by: Andrej Valek <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-11-25Merge tag 'v2025.01-rc3' into nextTom Rini
Prepare v2025.01-rc3
2024-11-25Prepare v2025.01-rc3v2025.01-rc3Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-11-25Merge branch 'master-asix' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-usb - Fix two issues with the asix88179 driver
2024-11-25spi: Fix missed rename from SPI_ADVANCE to SPI_STACKED_PARALLELDominik Wernberger
Fix missed rename from SPI_ADVANCE to SPI_STACKED_PARALLEL. This fixes an issue encountered while testing the Zynq-7000 QSPI parallel Flash implementation. Fixes: f896aa656774 ("mtd: spi-nor: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL") Reviewed-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Dominik Wernberger <[email protected]>
2024-11-25Merge https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
- Support for Microchip USB5744 hub
2024-11-25ast2600: spl: Use readl for reading mmioJoel Stanley
u-boot was crashing in qemu as the modeled hardware enforced overly strict memory reads. While this code will work on existing hardware, fix to avoid future issues. Fixes: 12770d0df0e8 ("ast2600: spl: Add boot mode detection") Link: https://gitlab.com/qemu-project/qemu/-/issues/2636 Signed-off-by: Joel Stanley <[email protected]>
2024-11-25mtd: Drop superfluous const qualifierAndy Shevchenko
The compiler will ignore it anyway: include/linux/mtd/mtd.h:342:15: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-11-25eth: asix88179: packet drop when receiving large fragmented packetsKhoa Hoang
The ASIX 88179A drops packets when receiving fragmented packets larger than the MTU size due to an insufficient URB buffer size. This change synchronizes the URB buffer size with the configuration used in the Linux kernel, resolving the packet drop issue. To reproduce the issue, set the following configuration: CONFIG_IP_DEFRAG=y CONFIG_TFTP_BLOCKSIZE=16352 Then, run the `tftp` command. It will fail with a timeout error: U-Boot> tftp zero.bin Using ax88179_eth device TFTP from server 10.0.0.196; our IP address is 10.0.0.18 Filename 'zero.bin' Load address: 0x10000000 Loading: T T T T T T T T T T T Retry count exceeded; starting again Signed-off-by: Khoa Hoang <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25eth: asix88179: Fix ASIX AX88179A PHY hangKhoa Hoang
The ASIX AX88179A locks up when the ADVERTISE_NPAGE bit is set in the MII_ADVERTISE register, suggesting that this feature may be broken or unsupported on this chip. In the Linux kernel, this bit is not set, and enabling it also causes the PHY to lock up and stay in a link-down state. Additionally, the AX88179 and AX88179A variants do not appear to support the ADVERTISE_LPACK bit, as setting it consistently reads back as 0. This patch removes the ADVERTISE_NPAGE and ADVERTISE_LPACK bits from the MII_ADVERTISE register configuration. It also resets the PHY before modifying the MII_ADVERTISE register, then restarts auto-negotiation, following the same flow used in the U-Boot asix.c driver. Signed-off-by: Khoa Hoang <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25usb: onboard-hub: Bail out if peer hub is already probedVenkatesh Yadav Abbarapu
The .bind function is implemented to bind the correct "half" of the hub that the driver wants to bind, and returning -ENODEV for the other "half". Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25usb: onboard-hub: Add i2c initialization for usb5744 hubVenkatesh Yadav Abbarapu
Add i2c initialization hook and set usb5744 platform data with function having required i2c initialization sequence. Apart from the USB command attach, prevent the hub from suspend. when the “USB Attach with SMBUS (0xAA56)” command is issued to the hub, the hub is getting enumerated and then it puts in a suspend mode. This causes the hub to NAK any SMBUS access made by the SMBUS Master during this period and not able to see the hub's slave address while running the "i2c probe" command. Prevent the MCU from the putting the HUB in suspend mode through register write. The BYPASS_UDC_SUSPEND bit (Bit 3) of the RuntimeFlags2 register at address 0x411D controls this aspect of the hub. The BYPASS_UDC_SUSPEND bit in register 0x411Dh must be set to ensure that the MCU is always enabled and ready to respond to SMBus runtime commands. This register needs to be written before the USB attach command is issued. The byte sequence is as follows: Slave addr: 0x2d 00 00 05 00 01 41 1D 08 Slave addr: 0x2d 99 37 00 Slave addr: 0x2d AA 56 00 Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25usb: onboard-hub: add support for Microchip USB5744Venkatesh Yadav Abbarapu
Add support for the Microchip USB5744 USB3.0 and USB2.0 Hub. The usb5744 driver trigger hub reset signal after soft reset. The usb5744 hub need to reset after the phy initialization, which toggles the gpio. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25usb: onboard-hub: Fix the return values of regulator APIsVenkatesh Yadav Abbarapu
Don't error out if there is no vdd regulator supply, as these are optional properties. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-25usb: onboard-hub: Add reset-gpio supportVenkatesh Yadav Abbarapu
As part of the reset, sets the direction of the pin to output before toggling the pin. Delay of millisecond is added in between low and high to meet the setup and hold time requirement of the reset. Update the usb2514 hub_data with the reset delay and power on delay values. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-11-24Merge patch series "Fix device removal order for Apple dart iommu"Tom Rini
Janne Grunau <[email protected]> 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/[email protected]
2024-11-24dm: Add dm_remove_devices_active() for ordered device removalJanne Grunau
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 <[email protected]>
2024-11-24iommu: apple: Mark device with DM_FLAG_VITALJanne Grunau
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 <[email protected]> Signed-off-by: Janne Grunau <[email protected]>
2024-11-24Merge tag 'efi-2025-01-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi 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
2024-11-24lmb: Correctly unmap and free memory on errorsIlias Apalodimas
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 22f2c9ed9f53 ("efi: memory: use the lmb API's for allocating and freeing memory") Reviewed-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2024-11-23Merge tag 'u-boot-imx-master-20241123' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx 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.