1. 02 9月, 2021 29 次提交
    • P
      armv8: Ensure EL1&0 VMSA is enabled · 37a757e2
      Peter Hoyes 提交于
      On Armv8-R, the EL1&0 memory system architecture is configurable as a
      VMSA or PMSA, and resets to an "architecturally unknown" value.
      
      Add code to armv8_switch_to_el1_m which detects whether the MSA at
      EL1&0 is configurable using the id_aa64mmfr0_el1 register MSA fields.
      If it is we must ensure the VMSA is enabled so that a rich OS can boot.
      
      The MSA and MSA_FRAC fields are described in the Armv8-R architecture
      profile supplement (section G1.3.7):
      https://developer.arm.com/documentation/ddi0600/latest/Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
      37a757e2
    • P
      armv8: Disable pointer authentication traps for EL1 · 53b40e8d
      Peter Hoyes 提交于
      The use of ARMv8.3 pointer authentication (PAuth) is governed by fields
      in HCR_EL2, which trigger a 'trap to EL2' if not enabled. The reset
      value of these fields is 'architecturally unknown' so we must ensure
      that the fields are enabled (to disable the traps) if we are entering
      the kernel at EL1.
      
      The APK field disables PAuth instruction traps and the API field
      disables PAuth register traps
      
      Add code to disable the traps in armv8_switch_to_el1_m. Prior to doing
      so, it checks fields in the ID_AA64ISAR1_EL1 register to ensure pointer
      authentication is supported by the hardware.
      
      The runtime checks require a second temporary register, so add this to
      the EL1 transition macro signature and update 2 call sites.
      Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
      53b40e8d
    • M
      Revert "configs: synquacer: Make U-Boot binary position independent" · 99a2bd65
      Masami Hiramatsu 提交于
      This reverts commit f7e16bb0, since
      the U-Boot doesn't boot if it is booted directly from SPI-NOR with
      CONFIG_POSITION_INDEPENDENT=y. Unless fixing this issue, it is better
      to revert this change.
      Signed-off-by: NMasami Hiramatsu <masami.hiramatsu@linaro.org>
      99a2bd65
    • A
      lib: add crc16.o if CONFIG_MMC_SPI_CRC_ON for SPL build · c8291f53
      Andreas Schwab 提交于
      CONFIG_MMC_SPI_CRC_ON needs the crc16 functions, but it was not included
      in an SPL build.  For non-SPL builds, crc16.o is already added
      unconditionally.  This also removes CONFIG_SPL_YMODEM_SUPPORT from the
      sifive board configs, which is only relevant for some ARM boards and was
      only set for its side effect of adding crc16.o.
      c8291f53
    • H
      cmd/part: correct alignment of partition list · d9d88491
      Heinrich Schuchardt 提交于
      When running 'part list' for an ISO partition the numbers are not under the
      labels.
      
      Correct the alignment of the ISO partition list. With the patch the
      output looks like:
      
          Part   Start     Sect x Size Type
            1     3720     5024    512 U-Boot
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      d9d88491
    • S
      arm: mach-snapdrgon: misc: Simplify msm_generate_mac_addr() · 15dd9412
      Stephan Gerhold 提交于
      The logic in msm_generate_mac_addr() was originally taken from the LK
      bootloader where the serial number is a string and must be parsed first.
      However, in U-Boot msm_board_serial() returns an u32 and
      msm_generate_mac_addr() has quite complicated code that will first
      print it as a hex string and then immediately parse it again.
      
      What this function actually does at the end is to put the serial number
      encoded as big endian (the order used for the hex string) into the u8 *mac.
      Use put_unaligned_be32() to do that with bit shifts instead of going
      through the string format.
      
      This should be slightly more efficient and cleaner but does not result
      in any functional difference.
      
      Cc: Ramon Fried <rfried.dev@gmail.com>
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      Reviewed-by: NRamon Fried <rfried.dev@gmail.com>
      15dd9412
    • S
      arm: mach-snapdragon: misc: Initialize eMMC if necessary · 1eb00624
      Stephan Gerhold 提交于
      At the moment U-Boot produces an empty MAC address (02:00:00:00:00:00)
      if the eMMC is not used by anything in U-Boot (e.g. with
      CONFIG_ENV_IS_NOWHERE=y instead of having the environment on eMMC).
      This happens because then there is nothing that actually initializes
      the eMMC and reads the "cid" that is later accessed.
      
      To fix this, call mmc_init() to ensure the eMMC is initialized.
      There is no functional difference if the eMMC is already initialized
      since then mmc_init() will just return without doing anything.
      Reviewed-by: NRamon Fried <rfried.dev@gmail.com>
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      1eb00624
    • C
      armv7: Add Position Independent Execution support · cd82f199
      Chia-Wei Wang 提交于
      A U-Boot image could be loaded and executed at a different
      location than it was linked at.
      
      For example, Aspeed takes a stable release version of U-Boot image
      as the golden one for recovery purposes. When the primary storage
      such as flash is corrupted, the golden image would be loaded to any
      SRAM/DRAM address on demands through ethernet/UART/etc and run for
      rescue.
      
      To deal with this condition, the PIE is needed as there is only one
      signed, golden image, which could be however executed at different
      places.
      
      This patch adds the PIE support for ARMv7 platform.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      cd82f199
    • C
      arm: Fix option dependency with Kconfig language · aa29b21d
      Chia-Wei Wang 提交于
      Use Kconfig 'depends on' instead of #if macro to
      express the option depdencies.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      aa29b21d
    • T
      Merge branch '2021-09-02-assorted-fixes' into next · 4bb7de1b
      Tom Rini 提交于
      - Drop old OpenSSL support
      - Add DM_HASH support, use it.
      - Assorted "stemmy" platform updates
      - Various bugfixes
      4bb7de1b
    • P
      ata: ahci-pci: Add new option CONFIG_SPL_AHCI_PCI · 73059529
      Pali Rohár 提交于
      This new option allows to disable ahci-pci driver in SPL. Disabling it is
      needed when SPL_PCI is not enabled as ahci-pci depends on PCI.
      
      This change fixes following compile error when CONFIG_SPL_SATA_SUPPORT is
      enabled and SPL_PCI is disabled.
      
          LD      spl/u-boot-spl
        arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.o: in function `ahci_probe_scsi_pci':
        drivers/ata/ahci.c:1205: undefined reference to `dm_pci_map_bar'
        arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1215: undefined reference to `dm_pci_read_config16'
        arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1216: undefined reference to `dm_pci_read_config16'
        arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1220: undefined reference to `dm_pci_map_bar'
        make[1]: *** [scripts/Makefile.spl:512: spl/u-boot-spl] Error 1
        make: *** [Makefile:1977: spl/u-boot-spl] Error 2
      
          LD      spl/u-boot-spl
        arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci-pci.o: in function `ahci_pci_probe':
        drivers/ata/ahci-pci.c:21: undefined reference to `ahci_probe_scsi_pci'
        make[1]: *** [scripts/Makefile.spl:512: spl/u-boot-spl] Error 1
        make: *** [Makefile:1977: spl/u-boot-spl] Error 2
      Signed-off-by: NPali Rohár <pali@kernel.org>
      Reviewed-by: NStefan Roese <sr@denx.de>
      73059529
    • P
      ata: ahci-pci: Fix dependency on DM_PCI · 20aa320a
      Pali Rohár 提交于
      File drivers/ata/ahci-pci.c calls function ahci_probe_scsi_pci() which is
      compiled only when DM_PCI is enabled. So add missing dependency into
      Kconfig.
      Signed-off-by: NPali Rohár <pali@kernel.org>
      Reviewed-by: NStefan Roese <sr@denx.de>
      20aa320a
    • C
      rtc: ds1307: Fix incorrect clock reset for DS13xx · 223c4490
      Callum Sinclair 提交于
      The ds1307 driver also supports the DS1339 and DS1340.
      However, in ds1307_rtc_reset the register writes assume that the chip
      is a DS1307. This is evident in the writing of bits SQWE, RS1, RS0 to
      the control register. While this applies correctly to the DS1307, on a
      DS1340 the control register doesn't contain those bits (instead, the
      register is used for clock calibration). By writing these bits the
      clock calibration will be changed and the chip can become
      non-functional after a reset call.
      Signed-off-by: NCallum Sinclair <callum.sinclair@alliedtelesis.co.nz>
      223c4490
    • S
      arm: u8500: Prefer building in thumb mode by default · 8956854d
      Stephan Gerhold 提交于
      Enabling CONFIG_SYS_THUMB_BUILD produces a significantly smaller
      U-Boot binary (250 KiB vs 320 KiB) that still seems to be fully
      functional. Make use of that by default but keep it as "imply" so it
      can be disabled for testing in case this causes trouble for someone.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      8956854d
    • S
      board: stemmy: Update documentation · f629895f
      Stephan Gerhold 提交于
      Over the time, the "stemmy" U-Boot board was tested on several other
      Samsung smartphones based on ST-Ericsson NovaThor Ux500. Convert the
      documentation to reStructuredText at doc/board/ste/stemmy.rst and
      make the device list complete. Also note that the board now boots
      into USB Fastboot instead of just ending up at the U-Boot prompt.
      
      The device table is mostly taken from the postmarketOS wiki article
      (https://wiki.postmarketos.org/wiki/ST-Ericsson_NovaThor_U8500).
      All the newly added devices were tested by Linus Walleij.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      f629895f
    • S
      board: stemmy: Add basic Fastboot support · f64011e1
      Stephan Gerhold 提交于
      Make use of the new drivers for ARM U8500 introduced in the U-Boot
      2021.10 merge window by adding basic support for USB Fastboot with
      the "stemmy" board. As a first step this will always boot directly
      into USB Fastboot for now with the console displayed on the screen
      to make that obvious.
      
      Samsung uses quite strange GPT partition labels on these boards,
      so also add a bunch of fastboot_partition_alias_* to make this more
      easy to use.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      f64011e1
    • S
      arm: dts: u8500: u-boot: Add fixed clock for eMMC · fc9d4b12
      Stephan Gerhold 提交于
      So far there is no need for a clock driver in U-Boot because the
      previous boot stage leaves all the necessary clocks on. However,
      some drivers in U-Boot (e.g. arm_pl180_mmci) depend on having a clock
      driver to obtain the clock frequency.
      
      Setting up the clock drivers properly is a bit tricky on U8500,
      so for now add a simple fixed-clock for the eMMC that allows obtaining
      the clock frequency. This should be replaced eventually if some board
      actually requires enabling some of the clocks.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      fc9d4b12
    • S
      arm: dts: u8500: Update from Linux ux500-dts-for-v5.15 · 1ae43a0e
      Stephan Gerhold 提交于
      Update ste-dbx5x0.dtsi, ste-ab8500.dtsi and ste-ab8505.dtsi with
      the changes made in upstream Linux. They are taken from
      https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/
      branch "ux500-dts-for-v5.15" (pending merge for Linux 5.15).
      
      The only relevant change for U-Boot here is
      "ARM: dts: ux500: ab8500: Link USB PHY to USB controller node" [1]
      which links the USB PHY to the USB controller. This is necessary on
      U-Boot because the PHY driver is implemented as part of the generic
      PHY subsystem that makes use of these bindings.
      
      [1]: https://lore.kernel.org/linux-arm-kernel/20210709182234.47232-1-stephan@gerhold.net/Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      1ae43a0e
    • S
      arm: u8500: Imply options for new drivers · 9f78ccf1
      Stephan Gerhold 提交于
      Imply the options for new drivers added for ARM U8500 during the
      U-Boot 2021.10 merge window. Adding these as "imply" in the Kconfig
      avoids having to add them to all the board defconfigs but still allows
      disabling them if wanted.
      
      Also select DM_USB_GADGET if DM_USB is selected because otherwise
      the Ux500 MUSB glue driver does not show up in the configuration.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      9f78ccf1
    • S
      MAINTAINERS: Add new drivers for ARM U8500 · 7093df3c
      Stephan Gerhold 提交于
      Update MAINTAINERS with various drivers for ARM U8500 that were
      added during the U-Boot 2021.10 merge window.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      7093df3c
    • P
      loadb: Properly indicate aborted kermit transfer · 51538141
      Pali Rohár 提交于
      When k_recv() returns zero it indicates that kermit transfer was aborted.
      Function do_load_serial_bin() (caller of load_serial_bin()) interprets
      value ~0 as aborted transfer, so properly propagates information about
      aborted transfer from k_recv() to do_load_serial_bin().
      Signed-off-by: NPali Rohár <pali@kernel.org>
      51538141
    • T
      scripts/checkpatch.pl: Resync with v5.13 · e199fb35
      Tom Rini 提交于
      This resyncs us with the version found in v5.13 of the Linux kernel with
      the following exceptions:
      - Keep our u-boot specific tests / code area.
      - Change the location of checkpatch.rst (which we now import)
      - Drop the "use strscpy" test as we don't have that, but do have strlcpy
        and want that used now.
      - Keep debug/printf in the list for $logFunctions
      
      And note that we now also include the spdxcheck.py tool that
      checkpatch.pl supports calling out to, and include upstream's
      checkpatch.rst in our develop section of the documentation.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      e199fb35
    • T
      mkimage: clarify error message for empty input files · eaa6442e
      Thomas Hebb 提交于
      Currently, an empty imput file causes `mmap()` to fail, and you get an
      error like "mkimage: Can't read file.img: Invalid argument", which is
      extremely unintuitive and hard to diagnose if you don't know what to
      look for. Add an explicit check for an empty file and provide a clear
      error message instead.
      
      We already bounds check the image size when listing and re-signing
      existing images, so we only need this check here, when opening data
      files going into a image.
      Signed-off-by: NThomas Hebb <tommyhebb@gmail.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      eaa6442e
    • H
      lib: -Wformat-truncation in rsa_engine_get_priv_key · 295ab733
      Heinrich Schuchardt 提交于
      With glibc 2.33 (Ubuntu package glibc6 2.33-0ubuntu9) building
      sifive_unmatched_defconfig results in:
      
      In file included from /usr/include/stdio.h:866,
                        from ././include/compiler.h:26,
                        from <command-line>:
      In function ‘snprintf’,
           inlined from ‘rsa_engine_get_priv_key’ at ./tools/../^:273:4:
      /usr/include/riscv64-linux-gnu/bits/stdio2.h:71:10: warning:
      ‘%s’ directive argument is null [-Wformat-truncation=]
          71 |   return __builtin___snprintf_chk (__s, __n,
      __USE_FORTIFY_LEVEL - 1,
             |
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          72 |        __glibc_objsize (__s), __fmt,
             |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          73 |        __va_arg_pack ());
             |        ~~~~~~~~~~~~~~~~~
      
      Avoid passing a NULL string.
      Signed-off-by: NHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      295ab733
    • C
      fit: Use DM hash driver if supported · ca47955a
      Chia-Wei Wang 提交于
      Calculate hash using DM driver if supported.
      For backward compatibility, the call to legacy
      hash functions is reserved.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      ca47955a
    • C
      crypto: hash: Add software hash DM driver · e5d870fa
      Chia-Wei Wang 提交于
      Add purely software-implmented drivers to support multiple
      hash operations including CRC, MD5, and SHA family.
      
      This driver is based on the new hash uclass.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      e5d870fa
    • C
      dm: hash: Add new UCLASS_HASH support · 4deaff79
      Chia-Wei Wang 提交于
      Add UCLASS_HASH for hash driver development. Thus the
      hash drivers (SW or HW-accelerated) can be developed
      in the DM-based fashion.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      4deaff79
    • C
      lib/md5: Export progressive APIs · 74bda4fe
      Chia-Wei Wang 提交于
      Export the MD5 hash init/update/finish progressive APIs
      for better flexibility.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      74bda4fe
    • A
      lib/rsa: Remove support for OpenSSL < 1.1.0 and libressl < 2.7.0 · fe68a67a
      Alexandru Gagniuc 提交于
      Older OpenSSL and libressl versions have a slightly different API.
      This require #ifdefs to support. However, we still can't support it
      because the ECDSA path does not compile with these older versions.
      These #ifdefs are truly a vestigial appendage.
      
      Alternatively, the ECDSA path could be updated for older libraries,
      but this requires significant extra code, and #ifdefs. Those libraries
      are over three years old, and there concerns whether it makes sense to
      build modern software for real world use against such old libraries.
      
      Thusly, remove #ifdefs and code for old OpenSSL and LibreSSL support.
      Signed-off-by: NAlexandru Gagniuc <mr.nuke.me@gmail.com>
      fe68a67a
  2. 01 9月, 2021 11 次提交