summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2023-04-05blk: blkmap: Add linear device mapping supportTobias Waldekranz
Allow a slice of an existing block device to be mapped to a blkmap. This means that filesystems that are not stored at exact partition boundaries can be accessed by remapping a slice of the existing device to a blkmap device. Signed-off-by: Tobias Waldekranz <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-05blk: blkmap: Add memory mapping supportTobias Waldekranz
Allow a slice of RAM to be mapped to a blkmap. This means that RAM can now be accessed as if it was a block device, meaning that existing filesystem drivers can now be used to access ramdisks. Signed-off-by: Tobias Waldekranz <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-05blk: blkmap: Add basic infrastructureTobias Waldekranz
blkmaps are loosely modeled on Linux's device mapper subsystem. The basic idea is that you can create virtual block devices whose blocks can be backed by a plethora of sources that are user configurable. This change just adds the basic infrastructure for creating and removing blkmap devices. Subsequent changes will extend this to add support for actual mappings. Signed-off-by: Tobias Waldekranz <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-04android: boot: support bootconfigSafae Ouajih
Support Bootconfig feature. - The bootconfig feature replaces the androidboot.* kernel cmdline options. This was adapted from downstream [1] commit : 7af0a0506d4d ("cuttlefish: support bootconfig parameters"). Link:[1] https://android.googlesource.com/platform/external/u-boot/ Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: support boot image header version 3 and 4Safae Ouajih
Enable the support for boot image header version 3 and 4 using abootimg command. In order to use version 3 or 4: 1- Vendor boot image address should be given to abootimg cmd. abootimg addr $1 $vendor_boot_load_addr 2- "ramdisk_addr_r" env variable (ramdisk address) should be set to host the ramdisk : generic ramdisk + vendor ramdisk Replace "struct andr_boot_img_hdr_v0*" by "void *" in some functions since v3 and v4 are now supported as well. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: ramdisk: support vendor ramdiskSafae Ouajih
Version 3 and 4 of boot image header introduced vendor boot ramdisk: Please check include/android_image.h for details. The ramdisk is now split into a generic ramdisk in boot image and a vendor ramdisk in vendor boot image. Support the new vendor ramdisk. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: update android_image_get_data to support v3, v4Safae Ouajih
Since boot image header version 3 and 4 introduced vendor boot image, use the following functions to fill the generic android structure : andr_image_data: - android_boot_image_v3_v4_parse_hdr() - android_vendor_boot_image_v3_v4_parse_hdr() Update android_image_get_data() to support v3 and v4 Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: add vendor boot image to prepare for v3, v4 supportSafae Ouajih
Introduce vendor boot image for version 3 and 4 of boot image header. The vendor boot image will hold extra information about kernel, dtb and ramdisk. This is done to prepare for boot image version 3 and 4 support. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: kcomp: support andr_image_dataSafae Ouajih
andr_image_data structure is used as a global representation of boot image header structure. Introduce this new structure to support all boot header versions : v0,v1.v2.v3.v4 and to support v3 and v4 while maitaining support for v0,v1,v2. The need of using andr_image_data comes from the change of header structure in both version 3 and 4. Rework android_image_get_kcomp() to support this new struct. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: add boot image header v3 and v4 structuresSafae Ouajih
Add support for v3/v4 boot image format by adding the following structures: - andr_boot_img_hdr_v3 : describes boot image header - andr_vnd_boot_img_hdr : describes vendor boot image header These definitions have been copied over from the AOSP documentation at [1] and [2] Boot arg sizes are taken from [3]: commit: 35fb6262bc3f (ANDROID: Support for vendor boot) This also adds documentation for boot image header v3/v4 structure that was imported from [4], file: include/bootimg/bootimg.h commit: 8d0922bfb932 (Adding GKI signature in boot.img v4) Link:[1] https://source.android.com/docs/core/architecture/bootloader/boot-image-header Link:[2] https://source.android.com/docs/core/architecture/bootloader/partitions/vendor-boot-partitions#vendor-boot-header Link:[3] https://android.googlesource.com/platform/external/u-boot Link:[4] https://android.googlesource.com/platform/system/tools/mkbootimg Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: replace android_image_check_headerSafae Ouajih
With the new vendor boot image introduced in versions 3 and 4 of boot image header, the header check must be done for both boot image and vendor boot image. Thus, replace android_image_check_header() by is_android_boot_image_header() to only refer to boot image header check. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04android: boot: rename andr_img_hdr -> andr_boot_img_hdr_v0Safae Ouajih
Android introduced boot header version 3 or 4. The header structure change with version 3 and 4 to support the new updates such as: - Introducing Vendor boot image: with a vendor ramdisk - Bootconfig feature (v4) Change andr_img_hdr struct name to maintain support for version v0, v1 and v2 while introducing version 3 and 4. Signed-off-by: Safae Ouajih <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]>
2023-04-04linker_lists: Rework start/end macros to not rely on undefined behaviorTom Rini
Per the GCC bug listed below, the way we do linker lists is relying on undefined behavior that seems to work in gcc, but doesn't always work in clang. Andrew suggests rewriting our start/end macros in a different way (as implemented here, from what he said in comment 1) to avoid these problems. Reported-by: AdityaK <[email protected]> Suggested-by: Andrew Pinski <[email protected]> Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108915 Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Andrew Pinski <[email protected]>
2023-04-04Merge tag 'u-boot-imx-next-20230404' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx u-boot-imx-next-20230404 ------------------------ CI : https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/15887 - boards : DH-Electronics, Toradex, imx8mp-beacon-kit
2023-04-04arm64: imx: Add support for imx8mp-beacon-kitAdam Ford
Beacon Embedded has an i.MX8M Plus development kit which consists of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet PHY. The device trees are already queued for inclusion in Linux 6.3. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-04-04ARM: dts: imx: Add support for Data Modul i.MX8M Plus eDM SBCMarek Vasut
Add support for Data Modul i.MX8M Plus eDM SBC board. This is an evaluation board for various custom display units. Currently supported are serial console, ethernet, eMMC, SD, SPI NOR, USB. Signed-off-by: Marek Vasut <[email protected]>
2023-04-04ARM: imx: Enable SDP download in SPL on DH i.MX6 DHSOMMarek Vasut
Enable SDP protocol support in SPL for DH i.MX6 DHSOM, now that those components fit into the SPL due to LTO. To start U-Boot via SDP upload on i.MX6 DHSOM based board, proceed as follows: - Compile imx_usb [1] . - Power off the i.MX6 DHSOM based board. - Connect both USB-serial console and USB-OTG miniB ports to host PC. - Switch board to USB boot mode. - Power on the board. - Verify using '$ dmesg' that a new device has been detected as follows: New USB device found, idVendor=15a2, idProduct=0054, bcdDevice= 0.01 New USB device strings: Mfr=1, Product=2, SerialNumber=0 Product: SE Blank ARIK Manufacturer: Freescale SemiConductor Inc - Upload U-Boot SPL: $ imx_usb u-boot-with-spl.imx - Wait for SPL to come up, the following print ought to be the last on UART console: SDP: handle requests... - Upload U-Boot proper: $ imx_usb u-boot.img [1] https://github.com/boundarydevices/imx_usb_loader.git Signed-off-by: Marek Vasut <[email protected]>
2023-04-03Merge branch 'next'Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2023-04-03Merge tag 'u-boot-imx-20230403' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-imx Fixes for 2023.04 ------------------ CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/15831 - fix for imx8mn_bsh_smm_s2
2023-04-01efi_loader: correct shortening of device-pathsHeinrich Schuchardt
We use short device-paths in boot options so that a file on a block device can be found independent of the port into which the device is plugged. Usb() device-path nodes only contain port and interface information and therefore cannot identify a block device. UsbWwi() device-path nodes contain the serial number of USB devices. Signed-off-by: Heinrich Schuchardt <[email protected]>
2023-03-31Merge tag 'u-boot-imx-next-20230331' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next u-boot-imx-next-20230331 for next --------------------------------- CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/15819 i.MX patches queued for next: - Conversions to DM_SERIAL - Fixes for Toradex boards - Gateworks Boards - i.MX8ULP - EQoS support / fixes, changes in boards
2023-03-31configs: imx8mn_bsh_smm_s2: remove console from bootargsDario Binacchi
The Linux kernel device tree already specifies the device to be used for boot console output with a stdout-path property under /chosen. Commit 36b661dc919da ("Merge branch 'next'") re-added the console setting that commit bede82f750752 ("configs: imx8mn_bsh_smm_s2: remove console from bootargs") had previously removed. Fixes: 36b661dc919da ("Merge branch 'next'") Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2023-03-30cli: run_commandf(): small fixupsEvgeny Bachinin
* vsnprintf() can truncate cmd, hence it makes no sense to launch such command (it's broken). Moreover, it's better to signalize to the caller about such case (for facilitating debugging or bug hunting). * Fix kernel-doc warnings: include/command.h:264: info: Scanning doc for run_commandf include/command.h:268: warning: contents before sections include/command.h:271: warning: No description found for return value of 'run_commandf' * Add printf-like format attribute to validate at compile-time the format string against parameters's type. * Fix compilation error in case of -Wall, -Werror, -Wextra: error: variable ‘i’ set but not used [-Werror=unused-but-set-variable] * Drop extra ret variable. Signed-off-by: Evgeny Bachinin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-03-30include: kernel.h: port find_closest() from LinuxChris Packham
The find_closest() macro can be used to find an element in a sorted array that is closest to an input value. Bring in this macro from Linux v6.3-rc1-2-g8ca09d5fa354. Signed-off-by: Chris Packham <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-03-30gpio: allow passing NULL to gpio_request_by_line_name() to search all gpio ↵Rasmus Villemoes
controllers The API is more convenient to use if one doesn't have to know upfront which gpio controller has a line with the name one is searching for, and arrange to look that device up somehow. Or implement this loop oneself. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-03-30test: Add test for new command pci_mpsStephen Carlson
Adds a test for the new pci_mps command to ensure that it can set the Maximum Payload Size (MPS) of all devices to 256 bytes in the sandbox environment. Enables the pci_mps command in the sandbox environment so that this test can be run. Signed-off-by: Stephen Carlson <[email protected]>
2023-03-30cmd: pci: Add command to set MPS of all PCIe devicesStephen Carlson
Enable tuning of the PCI Express MPS (Maximum Payload Size) of each device. The Maximum Read Request Size is not altered. The SAFE method uses the largest MPS value supported by all devices in the system for each device. This method is the same algorithm as used by Linux pci=pcie_bus_safe. The PEER2PEER method sets all devices to the minimal (128 byte) MPS, which allows hot plug of devices later that might only support the minimum size, and ensures compatibility of DMA between two devices on the bus. Signed-off-by: Stephen Carlson <[email protected]>
2023-03-30colibri-imx8x: set bootaux memory base and sizeAndrejs Cainikovs
Move i.MX auxiliary core memory base and size configuration to defconfig where it should belong. Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: update env memory layoutMarcel Ziswiler
Update the distro config env memory layout for the Colibri iMX8X: - kernel_comp_addr_r=0xb0000000 temporary area for uncompressing (ie FIT images or Image.gz booted using booti) - kernel_comp_size=0x08000000 - loadaddr=0x95400000 avoiding any reserved areas located before that - fdt_addr_r = loadaddr + 128MB - allows for 128MB kernel - scriptaddr = fdt_addr_r + 512KB - allows for 512KB fdt - ramdisk_addr_r = scriptaddr + 512KB - allows for 512KB script Idea of memory layout taken from commit a9f1e35bedc4 ("apalis-imx8: update env memory layout"). Note that for our regular BSP Layers and Reference Images for Yocto Project an updated distro boot script is required (see meta-toradex-bsp-common/recipes-bsp/u-boot/u-boot-distro-boot). Signed-off-by: Marcel Ziswiler <[email protected]> Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: switch from fatload to loadAndrejs Cainikovs
Make sure M4 binary loading works equally well on ext4 as well as fat file systems. Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: drop obsolete environment variablesAndrejs Cainikovs
Drop obsolete environment variables boot_file, bootcmd_mfg, fdt_addr, finduuid, image, mfgtool_args, mmcargs, mmcdev, mmcpart, panel, sec_boot, vidargs. Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: construct fdtfile dynamicallyAndrejs Cainikovs
The following expression is used to construct the device tree name: fdtfile=${soc}-colibri-${fdt_board}.dtb - soc is set dynamically (either imx8qxp or imx8dx) - fdt_board can be modified by the user (eval-v3, aster, iris/iris-v2) Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: update update_uboot confirmation messageMarcel Ziswiler
Update update_uboot confirmation message. Signed-off-by: Marcel Ziswiler <[email protected]> Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: remove obsolete sdhc related config definesMarcel Ziswiler
Remove obsolete SDHC related config defines. Nowadays, all SDHC related hardware configuration comes from the device tree. Signed-off-by: Marcel Ziswiler <[email protected]> Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: remove obsolete net usb startMarcel Ziswiler
Remove obsolete net USB start. While at it also add a comment about enabling distro-boot. Signed-off-by: Marcel Ziswiler <[email protected]> Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30colibri-imx8x: Remove baudrate from console argumentPhilippe Schenker
This commit does remove the options argument from the console kernel-argument as it prevents the serial driver from outputting anything. Do this by switchting to use the variable "setup" as it is done on other Toradex modules. Signed-off-by: Philippe Schenker <[email protected]> Signed-off-by: Andrejs Cainikovs <[email protected]>
2023-03-30ARM: imx: Include on-SoM microSD in list of i.MX6 DHCOM boot devicesMarek Vasut
Add mmc1, which is mapped to optional on-SoM microSD socket, to the list of distro boot command boot devices. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2023-03-30power: pmic: Add NXP PCA9451A PMIC supportYe Li
PCA9451A uses similar BUCKs and LDO regulators as PCA9450B/C but has LDO2 and LDO3 removed. So reuse pca9450 PMIC and regulator driver and add new type for PCA9451A. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2023-03-29mx6sabresd: Convert to DM_PMICFabio Estevam
The usage of DM_PMIC is preferred, so convert to it. This also brings the benefit of causing a significant amount of code removal. Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2023-03-29mx6sabreauto: Convert to DM_PMICFabio Estevam
The usage of DM_PMIC is preferred, so convert to it. This also brings the benefit of causing a significant amount of code removal. Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2023-03-29include: configs: am65x_evm: Change to using .envNikhil M Jain
Move to using .env file for setting up environment variables for am65x. Signed-off-by: Nikhil M Jain <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-29include: configs: am62ax: Change to using .envNikhil M Jain
Move to using .env file for setting up environment variables for am62ax. This patch depends on https://lore.kernel.org/all/[email protected]/ Signed-off-by: Nikhil M Jain <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-29include: configs: j721e_evm: Change to using .envNeha Malcom Francis
Move to using .env file for setting up environment variables for J721E and J7200. Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-29include: configs: j721s2_evm: Change to using .envNeha Malcom Francis
Move to using .env file for setting up environment variables for J721S2. Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-29include: environment: ti: Use .env for environment variablesNeha Malcom Francis
Add K3 common environment variables to .env. We retain the old-style C environment .h files to maintain compatibility with other K3 boards that have not moved to using .env yet. Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-29iot2050: Add support for configuring M.2 connectorJan Kiszka
The M.2 slots of the related IOT2050 variant need to be configured according to the plugged cards. This tries to detect the card using the M.2 configuration pins of the B-key slot. If that fails, a U-Boot environment variable can be set to configure manually. This variable is write-permitted also in secure boot mode as it is not able to undermine the integrity of the booted system. The configuration is then applied to mux the serdes and to fix up the device tree passed to or loaded by the bootloader. The fix-ups are coming from device tree overlays that are embedded into the firmware image and there also integrity protected. The OS remains free to load a device tree to which they do not apply: U-Boot will not fail to boot in that case. Based on original patch by Chao Zeng. Signed-off-by: Jan Kiszka <[email protected]>
2023-03-29iot2050: Add CFG_ENV_FLAGS_LIST_STATICJan Kiszka
Will be needed when CONFIG_ENV_WRITEABLE_LIST is enabled. The listed variables shall remain writable, for informational purposes - they have to be considered untrusted because the persistent U-Boot env is not protected. Signed-off-by: Jan Kiszka <[email protected]>
2023-03-29iot2050: Migrate settings into board env fileJan Kiszka
Anything that is not boot-env related is better kept there by now. At this chance, also drop a stale comment from iot2050.h Signed-off-by: Jan Kiszka <[email protected]>
2023-03-28cli: Correct handling of invalid escape sequences in cread_line()Simon Glass
The second call to cli_ch_process() is in the wrong place, meaning that the one of the characters of an invalid escape sequence is swallowed instead of being returned. Fix the bug and add a test to cover this. This behaviour matches that of the code before cli_getch() was introduced. This was verified on the commit before b08e9d4b66 i.e.: 7d850f85aad ("sandbox: Enable mmc command and legacy images") Signed-off-by: Simon Glass <[email protected]> Reported-by: Heinrich Schuchardt <[email protected]>
2023-03-27Merge branch 'master' into nextTom Rini