summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-15Merge tag 'u-boot-stm32-20231215' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm into next _ run savedefconfig on all STM32 defconfig STM32 MCU: _ Sync stm32f469-disco DT with Linux 6.5 _ rework ltdc node for stm32f769-disco _ clk: stm32f: Fix settings for LCD_CLK _ Support display on stm32f469-disco board STM32 MPU: _ stm32mp_dfu : Fix board_get_alt_info_mtd() _ stm32mp_dfu : Simplify MTD device parsing
2023-12-15Merge patch series "bootm: Handle compressed arm64 images with bootm"Tom Rini
To quote the author: This little series corrects a problem I noticed with arm64 images, where the kernel is not recognised if compression is used: U-Boot> tftp image.fit Using ethernet@7d580000 device TFTP from server 192.168.4.7; our IP address is 192.168.4.147 Filename 'image.fit'. Load address: 0x1000000 Loading: ################################################## 23 MiB 20.5 MiB/s done Bytes transferred = 24118272 (1700400 hex) U-Boot> bootm ## Loading kernel from FIT Image at 01000000 ... Using 'conf-768' configuration Trying 'kernel' kernel subimage Description: Linux Type: Kernel Image (no loading done) Compression: gzip compressed Data Start: 0x01000120 Data Size: 13662338 Bytes = 13 MiB Verifying Hash Integrity ... OK Bad Linux ARM64 Image magic! With this series: U-Boot> tftp 20000000 image.fit Using ethernet@7d580000 device TFTP from server 192.168.4.7; our IP address is 192.168.4.147 Filename 'image.fit'. Load address: 0x20000000 Loading: ################################################## 23.5 MiB 20.8 MiB/s done Bytes transferred = 24642560 (1780400 hex) U-Boot> bootm 0x20000000 ## Loading kernel from FIT Image at 20000000 ... Using 'conf-768' configuration Trying 'kernel' kernel subimage Description: Linux Type: Kernel Image (no loading done) Compression: zstd compressed Data Start: 0x20000120 Data Size: 14333475 Bytes = 13.7 MiB Verifying Hash Integrity ... OK Using kernel load address 80000 ## Loading fdt from FIT Image at 20000000 ... Using 'conf-768' configuration Trying 'fdt-768' fdt subimage Description: Raspberry Pi 4 Model B Type: Flat Device Tree Compression: zstd compressed Data Start: 0x215f820c Data Size: 9137 Bytes = 8.9 KiB Architecture: AArch64 Verifying Hash Integrity ... OK Uncompressing Flat Device Tree to 3aff3010 Booting using the fdt blob at 0x3aff3010 Working FDT set to 3aff3010 Uncompressing Kernel Image (no loading done) to 80000 Moving Image from 0x80000 to 0x200000, end=2b00000 Using Device Tree in place at 000000003aff3010, end 000000003afff4c4 Working FDT set to 3aff3010 Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083] The problem is that the arm64 magic is checked before the image is decompressed. However this is only part of it. The kernel_noload image type doesn't work with compression, since the kernel is not loaded. So this series deals with that by using an lmb-allocated buffer for the uncompressed kernel. Another issue is that the arm64 handling is done too early, before the image is loaded. This series moves it to after loading, so that compression can be handled. A patch is included to show the kernel load-address, so it is easy to see what is going on. One annoying feature of arm64 is that the image is often copied to another address. It might be possible for U-Boot to figure that out earlier and decompress it to the right place, but perhaps not. With all of this it should be possible to boot a compressed kernel on any of the 990 arm64 boards supported by Linux, although I have only tested two.
2023-12-15bootm: Support kernel_noload with compressionSimon Glass
It is not currently possible to execute the kernel in-place without loading it. Use lmb to allocate memory for it. Co-developed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Simon Glass <sjg@chromium.org> Suggested-by: Tom Rini <trini@konsulko.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2023-12-15bootm: Move arm64-image processing laterSimon Glass
If the image is compressed, then the existing check fails, since the header is wrong. Move the check later in the boot process, after the kernel is decompressed. This allows use of bootm with compressed kernels, while still permitting an uncompressed kernel to be used. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-12-15image: Show the load address when decompressingSimon Glass
The destination address for decompression (or copying) is useful information. Show this to the user while booting, e.g.: Uncompressing Kernel Image (no loading done) to 2080000 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-12-15image: Correct load_bug typoSimon Glass
Correct a typo in the function comment for image_decomp(). Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-12-15configs: stm32: Apply savedefconfigPatrice Chotard
Apply savedefconfig on all stm32 defconfig. Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15board: st: common: simplify MTD device parsingPatrice Chotard
Simplify the way all MTD devices are parsed. Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2023-12-15board: st: common: Fix board_get_alt_info_mtd()Patrice Chotard
Since MTD devices are partioned, we got the following error when command "dfu 0" is executed: DFU alt info setting: done ERROR: Too many arguments for nor0 ERROR: DFU entities configuration failed! ERROR: (partition table does not match dfu_alt_info?) Fixes: 31325e1b8b9c ("stm32mp1: dynamically build DFU_ALT_INFO") Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2023-12-15board: stm32f469-disco: add splash screen with stmicroelectronics logoDario Binacchi
Display the STMicroelectronics logo with features VIDEO_LOGO and SPLASH_SCREEN on stm32f469-disco board. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15board: stm32f469-disco: add support to displayDario Binacchi
Add support to Orise Tech OTM8009A display on stm32f469-disco board. It was necessary to retrieve the framebuffer address from the device tree because the address returned by the video-uclass driver pointed to a memory area that was not usable. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15ARM: dts: stm32: support MIPI DSI on stm32f469-disco boardDario Binacchi
Unlike Linux, the DSI driver requires the LTDC clock to be properly probed. Hence, the changes made to the DSI node. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15ARM: dts: stm32: make the DSI clock usable by the clock driverDario Binacchi
As described in [1], the "clocks" property contains "a phandle to the clock device node, an index selecting between gated clocks (0) and other clocks (1), and an index specifying the clock to use." The current version of the clock driver, unlike the kernel, is currently able to properly handle nodes with "clocks" properties with an index set to 0. This patch is preparatory for future developments that require the use of the DSI clock. [1] Documentation/devicetree/bindings/clock/st,stm32-rcc.txt Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15ARM: dts: stm32: make the LTDC clock usable by the clock driverDario Binacchi
As described in [1], the "clocks" property contains "a phandle to the clock device node, an index selecting between gated clocks (0) and other clocks (1), and an index specifying the clock to use." The current version of the clock driver, unlike the kernel, is currently able to properly handle nodes with "clocks" properties with an index set to 0. This patch is preparatory for future developments that require the use of the LTDC clock. [1] Documentation/devicetree/bindings/clock/st,stm32-rcc.txt Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15ARM: dts: stm32f469-disco: sync with Linux 6.5Dario Binacchi
Sync the devicetree with linux 6.5 for stm32f746-disco board. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15clk: stm32f: fix setting of LCD clockDario Binacchi
Set pllsaidivr only if the PLLSAIR output frequency is an exact multiple of the pixel clock rate. Otherwise, we search through all combinations of pllsaidivr * pllsair and use the one which gives the rate closest to requested one. Fixes: 5e993508cb25 ("clk: clk_stm32f: Add set_rate for LTDC clock") Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15clk: stm32f: fix setting of division factor for LCD_CLKDario Binacchi
The value to be written to the register must be appropriately shifted, as is correctly done in other parts of the code. Fixes: 5e993508cb25 ("clk: clk_stm32f: Add set_rate for LTDC clock") Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-15ARM: dts: stm32f769-disco: rework ltdc nodeDario Binacchi
With commit f479f5dbb7ac ("ARM: dts: stm32: add ltdc support on stm32f746 MCU"), which adds the 'ltdc' node in stm32f746.dtsi, we can simplify stm32f769-disco-uboot.dtsi and align stm32f769-disco.dtsi with the kernel version. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2023-12-14Merge tag 'xilinx-for-v2024.04-rc1' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze into next Xilinx changes for v2024.04-rc1 zynqmp: - Introduce Kria specific defconfig - Calculate SPI image location based on boot offset - DT updates zynqmp-clk: - Fix topsw_lsbus_clock for DP axi-enet: - Support older DT binding mailbox: - Add support for multiple mailboxes pcie-xilinx: - Covert driver to newer interface - Enable MMIO region zynq: - dfu updates - Enable capsule update for Antminer S9 - DT updates xilinx_spi: - Add new xfer callback and support runtime fifo depth discovery
2023-12-14Merge tag 'u-boot-imx-next-20231214' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next - Add TPM support for venice boards - Add networking support for imx93-evk - Enable TCP, IPv6, wget for DHCOM and Data Modul boards - Enable fastboot support for Toradex boards - Allow pico-imx7d to boot from SD - Enable fastboot for beacon imx8m beacon boards, disabled SYS_CONSOLE_IS_IN_ENV - Fix mxsboot to prevent NAND blocks being reported as bad - Add imx8mm PWM clock support - Several devicetree syncs with the kernel - Add support for i.MX8MP Polyhex Debix Model A SBC - Reworked ddr_load_train_firmware() to get a 50ms boot time improvement
2023-12-14arm64: imx8mp: Enable TCP, IPv6, wget on Data Modul i.MX8M eDM SBCMarek Vasut
Enable support for TCP protocol, wget, and IPv6 on this platform. The former two allow users download payload into the U-Boot from a web server, which may be more convenient or easier to set up than TFTP server. The later is enabled to future proof the IP stack on this platform. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2023-12-14arm64: imx8mp: Enable TCP, IPv6, wget on DH i.MX8MP DHCOMMarek Vasut
Enable support for TCP protocol, wget, and IPv6 on this platform. The former two allow users download payload into the U-Boot from a web server, which may be more convenient or easier to set up than TFTP server. The later is enabled to future proof the IP stack on this platform. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2023-12-14arm: imx6: Enable TCP, IPv6, wget on DH i.MX6 DHCOMMarek Vasut
Enable support for TCP protocol, wget, and IPv6 on this platform. The former two allow users download payload into the U-Boot from a web server, which may be more convenient or easier to set up than TFTP server. The later is enabled to future proof the IP stack on this platform. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2023-12-13Merge tag 'dm-next-13dec23' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-dm into next minor improvements to test, acpi updates for new PyPl release
2023-12-13test: vboot: Using variable 'old_dtb' before assignmentHeinrich Schuchardt
old_dtb can only be assumed initialized in the finally block if it is assigned a value before the try statement. Avoid a pylint error reported by current pylint. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13test: fit: Using variable 'old_dtb' before assignmentHeinrich Schuchardt
old_dtb can only be assumed initialized in the finally block if it is assigned a value before the try statement. Avoid a pylint error reported by current pylint. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13binman: elf: Using variable 'old_val' before assignmentHeinrich Schuchardt
old_val can only be assumed initialized in the finally block if it is assigned a value before the try statement. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13cmd: check argc for acpi dumpHeinrich Schuchardt
'acpi dump' without parameter results in a NULL dereference. Check the number of arguments. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13bootstd: Fix a memory leak in the efi manager bootflowIlias Apalodimas
efi_get_var() allocates memory which has to be freed after the value of the variable is consumed. Free the memory properly Fixes: f2bfa0cb1794 ("bootstd: Make efi_mgr bootmeth work for non-sandbox setups") Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
2023-12-13doc: board: ti: k3: Mention TI_DM argumentNeha Malcom Francis
Mention TI_DM argument can be used to fetch a custom DM binary in the A72 build instructions for K3 devices. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2023-12-13arm: dts: k3-*-binman: Move to using ti-dm entry typeNeha Malcom Francis
Move the DM entry in tispl.bin FIT image from default fetching an external blob entry to fetching using ti-dm entry type. This way, the DM entry will be populated by the TI_DM pathname if provided. Else it will resort to the ti-dm.bin file. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13binman: etype: dm: Add entry type for TI DMNeha Malcom Francis
K3 devices introduces the concept of centralized power, resource and security management to System Firmware. This is to overcome challenges by the traditional approach that implements system control functions on each of the processing units. The software interface for System Firmware is split into TIFS and DM. DM (Device Manager) is responsible for resource and power management from secure and non-secure hosts. This additional binary is necessary for specific platforms' ROM boot images and is to be packaged into tispl.bin Add an entry for DM. The entry can be used for the packaging of tispl.bin by binman along with ATF and TEE. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13binman: doc: fix typoDario Binacchi
s/use set/set/ Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-By: Michael Trimarchi <michael@amarulasolutions.com>
2023-12-13cmd: acpi: fix acpi list commandHeinrich Schuchardt
ACPI tables may comprise either RSDT, XSDT, or both. The current code fails to check the presence of the RSDT table before accessing it. This leads to an exception if the RSDT table is not provided. The XSDT table takes precedence over the RSDT table. The return values of list_rsdt() and list_rsdp() are always zero and not checked. Remove the return values. Addresses in the XSDT table are 64-bit. Adjust the output accordingly. As the RSDT table has to be ignored if the XSDT command is present there is no need to compare the tables in a display command. Anyway the specification does not require that the sequence of addresses in the RSDT and XSDT table are the same. The FACS table header does not provide revision information. Correct the description of dump_hdr(). Adjust the ACPI test to match the changed output format of the 'acpi list' command. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13acpi: fix struct acpi_xsdtHeinrich Schuchardt
The size of the ACPI table header is not a multiple of 8. We have to mark struct acpi_xsdt as packed to correctly access field Entry. Add a unit test for the offsets of field Entry in the RSDT and XSDT tables. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13tools: Move python tools to version 0.0.6Simon Glass
A new release has been done with this version, so update it. Use the version numbers in dependencies also. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13patman: Update the run scriptSimon Glass
Patman now has its main program in a function, so update the toml file to match. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13tools/make_pip: Add mention of u_boot_pylib in tool listSimon Glass
This is not a tool but it is handled by the script, so update the help to include it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13u_boot_pylib: Correct files used for pip releaseSimon Glass
The files list is incorrect and dates from a time when the script was run from a different directory. Update it to match all the other tools. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13tools: Keep test_util and patman test files in the pip releaseSimon Glass
The test_util module is actually imported by some tools, e.g. binman so include it in the pip release. The patman tool uses its test code when starting up, so keep that too. Show a list of deleted files so it is clear what is happening. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13u_boot_pylib: Correct readme formattingSimon Glass
Correct a heading which is too short in the readme. Fixes: 75554dfac29 ("patman: Add support for building a u_boot_tools...") Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13doc: Update documentation URLSimon Glass
Update to use the new docs.u-boot.org URL for documentation. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13test: unit test for acpi_find_table()Heinrich Schuchardt
Provide a unit test for acpi_find_table() Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13acpi: consider XSDT in acpi_find_table()Heinrich Schuchardt
The RSDT table is deprecated and does not exist on all systems. By preference scan XSDT for the table to find. If no XSDT table exists, try to use the RSDT table. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-12-13acpi: simplify acpi_write_ssdt()Heinrich Schuchardt
* Converting to void * is superfluous when calling memset(). * acpi_fill_header() already fills oem_table_id. Fixes: d953137526cc ("x86: Move SSDT table to a writer function") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13acpi: cannot have RSDT above 4 GiBHeinrich Schuchardt
The field RsdtAddress has only 32 bit. The RSDT table cannot be located beyond 4 GiB. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-12-13fdt: Move ft_verify_fdt() before the final fixupsSimon Glass
Move this check before the FDT fixups so that we can use a livetree after this point. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13fdt: Drop the confusing casts in lmb_free()Simon Glass
Just use map_to_sysmem() instead of all the casting. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13boot: Move adding initrd earlier in image_setup_libfdt()Simon Glass
This may as well happen before the general event is emitted, so move it. This will allow us to use the livetree for the event part, but the flattree for the earlier part. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-12-13fdt: ppc: Drop extra size for ramdiskSimon Glass
This code dates from around 2008: 56844a22b76 powerpc: Fix bootm to boot up again with a Ramdisk Since then we have added FDT relocation which provides enough space for expansion. We have also added all sorts of fixups earlier in image_setup_libfdt() which require more space, with ramdisk being the least of them. Therefore this extra hack for ramdisk seems unnecessary. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>