summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-11iommu: apple: Manage IOVA separately from global LMB mem mapJanne Grunau
There is no overlap between the IOVA space managed by the iommu (here the 32-bit address space) and physical RAM on Apple silicon systems. The RAM starts at 0x10_0000_0000 or 0x100_0000_0000 so it's not possible to manage the IOVA with the global memory LMB and use 1:1 translation. In addition each device has its own iommu and does not need to share the address space with all other devices. This should not be problem for u-boot's limited use and hardware support. Restore the private per instance LMB IOVA map. Fixes: ed17a33fed2 ("lmb: make LMB memory map persistent and global") Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11lmb: Add basic io_lmb functionalityJanne Grunau
These functions can be used with struct lmb pointers and will be used to manage IOVA space in the apple_dart iommu driver. This restores part of the pointer base struct lmb API from before commit ed17a33fed29 ("lmb: make LMB memory map persistent and global"). io_lmb_add() and io_lmb_free() can trivially reuse exisiting lmb functions. io_lmb_setup() is separate for unique error log messages. io_lmb_alloc() is a simplified copy of _lmb_alloc_base() since the later has unused features and internal use of the global LMB memory map. Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11lmb: cosmetic: reorder functions and global LMB variableJanne Grunau
Low lovel LMB functionality will be used to manage IOVA space in the Apple dart iommu driver. This reordering ensures that those function can not access the global LMB memory map variable. Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11lmb: Do not use global LMB variable in _lmb_free()Janne Grunau
It will be re-used with a lmb list pointer as argument for IOVA allocations in the apple_dart iommu driver. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-09Merge tag 'u-boot-imx-master-20241105' 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/23262 - Improve imx9 boot medium autodection. - Add possibility to skip DCD on i.MX8. - Switch to using upstream DT on DH i.MX6 DHCOM. - Add support for i.MX6DL DHCOM SoM on PDK2 carrier board. - Handle FIELD_RETURN on i.MX HAB.
2024-11-09Merge tag 'efi-2025-01-rc2-2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2025-01-rc2-2 Documentation: * correct title and author of rst2pdf generated pdf * describe CONFIG_DEBUG_SBI_CONSOLE * remove vile language UEFI * correct printf codes in mkeficapsule * add an EFI test app * move default filename to a function * move get_efi_pxe_arch() to efi_helper * allow reporting the host defaults in efidebug * drop sandbox PXE architecture Other: * do not reserve extra 16 KiB of stack in lmb * disable the sandbox virtio blk device * provide -N command line flag to control EFI default boot file name on the sandbox * provide a unit test for the efi bootmeth
2024-11-09arm: mach-imx: imx8m: re-use SNVS init routineIan Ray
Working with HAB on the i.MX8MP we've encountered a case where a board that successfully authenticates u-boot when booting Linux subsequently fails to properly bring up the RTC. The RTC registers live in the low-power block of the Secure Non-Volatile Storage (SNVS) block. The root cause of the error has been traced to the HAB handing off the SNVS-RTC in a state where HPCOMR::NPSWA_EN = 0 in other words where the Non-Privileged Software Access Enable bit is zero. Configure SNVS to allow unpriv access to SNVS LP for imx8m and imx8mp. This commit generalizes 723f8359c1 ("imx: mx7: snvs: Add an SNVS init routine") to also be used on i.MX8M SoCs, and was testeed on i.MX8MP. Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
2024-11-09arm: mach-imx: move snvs moduleIan Ray
Commit 723f8359c1 ("imx: mx7: snvs: Add an SNVS init routine") noted that the init_snvs() call likely applies to other i.MX processors, and this has been found to be true for i.MX8MP. Move snvs module for future re-use. Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
2024-11-09ARM: dts: imx: Switch to using upstream DT on DH i.MX6 DHCOMMarek Vasut
Enable OF_UPSTREAM to use upstream DT and add nxp/imx/ prefix to the DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/ including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory. Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-09ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier boardMarek Vasut
Add support for the DH electronics i.MX6DL DHCOM SoM and a PDK2 evaluation board. The evaluation board features three serial ports, USB OTG, USB host with an USB hub, Fast or Gigabit ethernet, eMMC, uSD, SD, analog audio, PCIe and HDMI video output. All of the aforementioned features except for mSATA are supported, mSATA is not available on i.MX6DL and is only available on DHCOM populated with i.MX6Q SoC which is already supported upstream. Backport from linux-next commit c3f5d76a6e03 ("ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christoph Niedermaier <cniedermaier@dh-electronics.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2024-11-09tools: imx8image: add possibility to skip dcdHeiko Schocher
Currently U-Boot always adds DCD Image to boot container. On imx8qxp SoC it is possible to init RAM from within SCFW, and adding a DCD image type to the boot container in this case breaks booting (No debug output anymore from SCFW! Nor any output from SPL), so we need to configure a dcd skip somehow. This patch adds a new imx8image_cmd entry CMD_DCD_SKIP and a new entry in imximage.cfg "DCD_SKIP". If set to "true" no DCD image type will be added to the container. Signed-off-by: Heiko Schocher <hs@denx.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-11-09imx9: Improve boot mode autodetectionBenjamin Szőke
Improve "mmcautodetect=yes" boot mode autodetection to able to use it if CONFIG_ENV_IS_NOWHERE=y is used for i.MX9 SoCs and i.MX93 EVK board. If both CONFIG_ENV_IS_IN_MMC=y and CONFIG_ENV_IS_NOWHERE=y are in the defconfig, CONFIG_ENV_IS_IN_MMC=y will be overiden default CONFIG_ENV_IS_NOWHERE settings. Goal is in this patch to able to use the boot mode autodetection if defconfig use only CONFIG_ENV_IS_NOWHERE=y option (without CONFIG_ENV_IS_IN_MMC) for any i.MX9 SoC. Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
2024-11-09imx: hab: Make imx_hab_is_enabled dependent on FIELD_RETURNPaul Geurts
The decision on whether HAB is enabled is solely based on the SEC_CONFIG fuse. The HAB FIELD_RETURN feature is able to permanently disable HAB on a CPU, after which it is able to boot unsigned firmware. U-Boot however does not take into account the FIELD_RETURN mode, and refuses to boot unsigned software when the feature is enabled. Also take the FIELD_RETURN fuse into account when deciding whether HAB is enabled. When The FIELD_RETURN fuse is blown, HAB is not enabled. Tested on i.MX8M Mini, i.MX8M Plus, i.MX8M Nano and i.MX6ULL Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
2024-11-09imx: hab: rename imx_sec_config_fuse_t to imx_fusePaul Geurts
The imx_sec_config_fuse_t structure is not specific to the sec_config fuse, but can be used for all fuse words. Rename the structure to a more generic name to be reused for other fuses. Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
2024-11-09test: efi: boot: Add a test for the efi bootmethSimon Glass
Add a simple test of booting with the EFI bootmeth, which runs the app and checks that it can call 'exit boot-services' (to check that all the device-removal code doesn't break anything) and then exit back to U-Boot. This uses a disk image containing the testapp, ready for execution by sandbox when needed. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09test: efi: boot: Set up an image suitable for EFI testingSimon Glass
Create a new disk for use with tests, which contains the new 'testapp' EFI app specifically intended for testing the EFI loader. Attach it to the USB device, since most testing is currently done with mmc. Initially this image will be used to test the EFI bootmeth. Fix a stale comment in prep_mmc_bootdev() while we are here. For now this uses sudo and a compressed fallback file, like all the other bootstd tests. Once this series is in, the patch which moves this to use user-space tools will be cleaned up and re-submitted. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09sandbox: virtio: Disable the sandbox virtio blk deviceSimon Glass
This is not implemented so cannot actually be used to read blocks. Disable it until it is implemented, to avoid causing a hang with EFI, which probes every available BLK device. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> Issue: https://source.denx.de/u-boot/u-boot/-/issues/37
2024-11-09efi_loader: Drop sandbox PXE architectureSimon Glass
Rather than returning 0, just return an error, since sandbox is not used with PXE at present. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09sandbox: Report host default-filename in native modeSimon Glass
When the --native flag is given, pretend to be running the host architecture rather than sandbox. Allow the same control for PXE too. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09efi_loader: Allow reporting the host defaultsSimon Glass
Add an 'efidebug filename' command to report the default filename and PXE architecture. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09efi_loader: Move get_efi_pxe_arch() to efi_helperSimon Glass
Move this function from the EFI bootmeth to the common efi_helper file. No functional change is intended. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09efi: Move default filename to a functionSimon Glass
Use a function to obtain the device EFI filename, so that we can control how sandbox behaves. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09sandbox: Add a -N flag to control on-host behaviourSimon Glass
Sandbox is its own architecture, but sometimes we want to mimic the host architecture, e.g. when running an EFI app not built by U-Boot. Add a -N/--native flag which tells sandbox to reflect the architecture of the host. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09efi_loader: Add a test appSimon Glass
Add a simple app to use for testing. This is intended to do whatever it needs to for testing purposes. For now it just prints a message and exits boot services. There was a considerable amount of discussion about whether it is OK to call exit-boot-services and then return to U-Boot. This is not normally done in a real application, since exit-boot-services is used to completely disconnect from U-Boot. For now, this part is skipped. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09doc: qemu-riscv: describe CONFIG_DEBUG_SBI_CONSOLEHeinrich Schuchardt
In main U-Boot the SBI DBCN extension can be used to supply a debug console. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09doc: conf.py: correct title and author of generated pdfHeinrich Schuchardt
Adjust the PDF output options for rst2pdf: * Set start document to 'index'. * Set title to 'Das U-Boot'. * Set author to 'The U-Boot development community'. Correct documentation link. Remove obsolete FIXME. Link: https://rst2pdf.org/static/manual.html Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09efi_loader: Change efi_dp_from_mem() to use sizeMoritz Fischer
All call sites are using size rather than end addresses, so instead - as previously done - calculating an end address everywhere, just modify the function to use size and internally calculate the end address Cc: Heinrich Schuchardt <xypron.glpk@gmx.de> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> Cc: Patrick Wildt <pwildt@google.com> Signed-off-by: Moritz Fischer <moritzf@google.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-09tools: mkeficapsule: use %zd to print ssize_t.Heinrich Schuchardt
For printing a ssize_t variable we must use %zd and not %ld to avoid a -Wformat error on 32-bit systems. Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09doc: remove vile languagemason1920
2024-11-09lmb: Drop extra 16KB of stack spaceSimon Glass
There is already a defined stack-size which is used to reserve space for the stack. It is confusing to add more in the lmb module, since then the memory map (with meminfo command) seems to have a hole in it. Drop this unnecessary feature. Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-06Merge https://source.denx.de/u-boot/custodians/u-boot-riscvTom Rini
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23239 - configs: visionfive2 defconfig: re-enable SPL_SYS_MMCSD_RAW_MODE - driver: sifive ccache: enable TRUNKCLOCKGATE & REGIONCLOCKGATE - board: support 64bit Microblaze V
2024-11-06riscv: Introduce configuration for 64bit version Microblaze VMichal Simek
The commit 7576ab2facae ("riscv: Add support for AMD/Xilinx MicroBlaze V") added support for 32bit version. 64bit version is also available that's why wire it up too. DT is providing description for generic QEMU target. Signed-off-by: Michal Simek <michal.simek@amd.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06xilinx: mbv: Align smode_defconfig with upstream QEMUMichal Simek
Align smode defconfig with upstream QEMU. It could be the part of commit 9d688e6da5c9 ("riscv: mbv: Align DT with QEMU"). Signed-off-by: Michal Simek <michal.simek@amd.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06xilinx: mbv: Place DTB by default to DDR locationMichal Simek
DTB should be also placed to DDR. It should be the part of commit 9d688e6da5c9 ("riscv: mbv: Align DT with QEMU"). Signed-off-by: Michal Simek <michal.simek@amd.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06configs: visionfive2: re-enable SPL_SYS_MMCSD_RAW_MODEAndreas Schwab
To restore MMC boot, enable SPL_SYS_MMCSD_RAW_MODE and recover SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION. Fixes: 2a00d73d081 ("spl: mmc: Try to clean up raw-mode options") Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06driver: sifive ccache: enable TRUNKCLOCKGATE and REGIONCLOCKGATENick Hu
Enable the clock gating bit of ccache when the platform has the ccache0. Signed-off-by: Nick Hu <nick.hu@sifive.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-04bios_emulator: fix first argument of pci_{read,write}_config_* function callsYuri Zaporozhets
When compiling for riscv64, a bunch of warning is produced for the file drivers/bios_emulator/besys.c. This patch fixes a portion of those warnings, caused by incorrect first argument to pci_{read,write}_config_* functions. Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04drivers/video/vesa: use MTRRs only on x86Yuri Zaporozhets
MTRR functionality is available only on x86, so this driver cannot be compiled on other architectures. Fix this with preprocessor directives. Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04bios_emulator: define the comment symbol for RISC-V assembler tooYuri Zaporozhets
The bios_emulator driver cannot be compiled for RISC-V because the x86emu.h header file doesn't define the comment symbol ("#") for the assembler. With this patch, use the same symbol as for e.g. x86. Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04bootmenu: add reprint checkWeijie Gao
Record the last active menu item and check if it equals to the current selected item before reprint. Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Daniel Golle <daniel@makrotopia.org>
2024-11-04menu: add support to check if menu needs to be reprintedWeijie Gao
This patch adds a new callback named need_reprint for menu. The need_reprint will be called before printing the menu. If the callback exists and returns FALSE, menu printing will be canceled. This is very useful if the menu was not changed. It can save time for serial-based menu to handle more input data. Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Daniel Golle <daniel@makrotopia.org>
2024-11-04menu: fix the logic checking whether ESC key is pressedWeijie Gao
It's observed that the bootmenu on a serial console sometimes incorrectly quitted with superfluous characters filled to command line input: > *** U-Boot Boot Menu *** > > 1. Startup system (Default) > 2. Upgrade firmware > 3. Upgrade ATF BL2 > 4. Upgrade ATF FIP > 5. Load image > 0. U-Boot console > > > Press UP/DOWN to move, ENTER to select, ESC to quit >MT7988> [B Analysis shows it was caused by the wrong logic of bootmenu_loop: At first the bootmenu_loop received the first ESC char correctly. However, during the second call to bootmenu_loop, there's no data in the UART Rx FIFO. Due to the low baudrate, the second char of the down array key sequence hasn't be fully received. But bootmenu_loop just did a mdelay(10), and then treated it as a single ESC key press event. It didn't even try tstc() again after the 10ms timeout. This patch fixes this issue by letting bootmenu_loop check tstc() twice. Tested-By: E Shattow <lucent@gmail.com> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Daniel Golle <daniel@makrotopia.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-04Merge patch series "U-boot: arm: Refine the booting on Total Compute"Tom Rini
Leo Yan <leo.yan@arm.com> says: This patch series is to refine the booting on Arm Total Compuate platform. It changes to use the info passed in DTB for initialization DRAM info, and dynamically initializes the booting envoironment variables. Another big change is to use an envoironment file for boot commands, based on it, the series extends to support multiple block devices (MMC and virtio). And the env file is extended for booting Debian. The last commit is to update memory mapping info based on the DRAM info passed via DT binding. Link: https://lore.kernel.org/r/20241025171821.624702-1-leo.yan@arm.com
2024-11-04arm: total_compute: Update memory mapping infoLeo Yan
This commit introduces build_mem_map() function for updating the mem_map structure with copying info from gd->bd->bi_dram, so that it can keep the consistence for DRAM info passed via DT. The page table size is calculated prior to mem_map is ready, introduce the get_page_table_size() function for a predefined table size. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Support Debian bootLeo Yan
Add booting option for Debian system. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Dynamically detect block deviceLeo Yan
Dynamically detect block device in the boot command, this allows to support both MMC and virtio block devices. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Minor improvement for boot argumentsBoyan Karatotev
Tell the AVB command that is loading from MMC. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: move the boot command to an env fileBoyan Karatotev
The boot command for Total Compute has many aspects and changes from time to time. So move it to an .env file where it can be a proper script. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Remove unused bootm_sizeBoyan Karatotev
The whole DRAM bank is used for loading and U-boot can detect the overlap between the kernel and initramfs. So it is safe to drop bootm_size. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Initialize environment variablesBoyan Karatotev
Initialize the environment variables 'fdt_addr_r' and 'kernel_addr_r' during the misc init phase. The static configurations are not needed, remove them. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>