1. 26 7月, 2021 19 次提交
  2. 25 7月, 2021 2 次提交
  3. 24 7月, 2021 19 次提交
    • C
      serial: pl011: Enable DEBUG_UART_PL011 in SPL · 91a04389
      Chen Baozi 提交于
      Commit b81406db ("arm: serial: Add debug UART capability to the
      pl01x driver") add supports to use pl01x as a debug UART. However,
      due to CONFIG_IS_ENABLED macro requires CONFIG_SPL_* prefix, the
      _debug_uart_init() would not choose TYPE_PL011 in SPL build. This
      patch fixes the bug by judging CONFIG_DEBUG_UART_PL011 explicitly.
      Signed-off-by: NChen Baozi <chenbaozi@phytium.com.cn>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      91a04389
    • C
      reset: ast2600: Fix missing reference operator · bc7b3845
      Chia-Wei Wang 提交于
      Fix missing reference operator '&' to correctly get
      HW register addresses for writel().
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      bc7b3845
    • A
      MAINTAINERS: correct the path of UEFI docs · d75f48a8
      AKASHI Takahiro 提交于
      Change the path from doc/uefi to doc/develop/uefi.
      
      Fixes: commit d1ceeeff ("doc: Move UEFI under develop/")
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      d75f48a8
    • A
      test/py: efi_capsule: align with efidebug syntax changes · 67778ff8
      AKASHI Takahiro 提交于
      After the commit c70f4481 ("efi_loader: simplify 'printenv -e'"),
      "-all" option is no longer necessary.
      Just remove them in the test script.
      
      Fixes: c70f4481 ("efi_loader: simplify 'printenv -e'")
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      67778ff8
    • A
      efi_loader: remove asm/setjmp.h from efi_api.h · 86a3d43b
      AKASHI Takahiro 提交于
      In the commit c982874e ("efi_loader: refactor
      efi_setup_loaded_image()"), setjmp-related definitions were moved to
      efi_loaded_image_obj in efi_loader.h. So setjmp.h is no longer
      refererenced in efi_api.h.
      
      This also fixes some error when efi_api.h will be included in
      mkeficapsule.c.
      
      Fixes: c982874e ("efi_loader: refactor efi_setup_loaded_image()")
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      86a3d43b
    • A
      efi_loader: capsule: remove authentication data · c2cc60c1
      AKASHI Takahiro 提交于
      If capsule authentication is disabled and yet a capsule file is signed,
      its signature must be removed from image data to flush.
      Otherwise, the firmware will be corrupted after update.
      
      Fixes: 04be98bd ("efi: capsule: Add support for uefi capsule
      	authentication")
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      c2cc60c1
    • A
      efi_loader: capsule: remove unused guid · ef890f63
      AKASHI Takahiro 提交于
      efi_guid_capsule_root_cert_guid is never used.
      Just remove it.
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      ef890f63
    • H
      smbios: error handling for invalid addresses · c193d9bd
      Heinrich Schuchardt 提交于
      SMBIOS tables only support 32bit addresses. If we don't have memory here
      handle the error gracefully:
      
      * on x86_64 fail to start U-Boot
      * during UEFI booting ignore the missing table
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      c193d9bd
    • P
      smbios: Fix calculating BIOS Release Date · 11275e4f
      Pali Rohár 提交于
      BIOS Release Date must be in format mm/dd/yyyy and must be release date.
      U-Boot currently sets BIOS Release Date from U_BOOT_DMI_DATE macro which is
      generated from current build timestamp.
      
      Fix this issue by setting U_BOOT_DMI_DATE macro to U-Boot version which is
      better approximation of U-Boot release date than current build timestamp.
      Current U-Boot versioning is in format yyyy.mm so as a day choose 01.
      
      Some operating systems are using BIOS Release Date for detecting when was
      SMBIOS table filled or if it could support some feature (e.g. BIOS from
      1990 cannot support features invented in 2000). So this change also ensures
      that recompiling U-Boot from same sources but in different year does not
      change behavior of some operating systems.
      
      Macro U_BOOT_DMI_DATE is not used in other file than lib/smbios.c
      so remove it from global autogenerated files and also from Makefile.
      Signed-off-by: NPali Rohár <pali@kernel.org>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      11275e4f
    • H
      doc: fix board/openpiton/riscv64.rst · 13640292
      Heinrich Schuchardt 提交于
      * remove duplicate heading to avoid build error with 'make htmldocs'
      * length of underlines must match header
      * use appropriate header levels
      * fix type %s/linux/Linux/
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      13640292
    • H
      doc: remove qemu_capsule_update from index · 30c5cbf3
      Heinrich Schuchardt 提交于
      Commit 316ab801 ("doc: Update CapsuleUpdate READMEs") deleted file
      doc/board/emulation/qemu_capsule_update.rst. Update the index. this avoids
      
          doc/board/emulation/index.rst:6: WARNING:
          toctree contains reference to nonexisting document
          'board/emulation/qemu_capsule_update'
      
      Fixes: 316ab801 ("doc: Update CapsuleUpdate READMEs")
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      30c5cbf3
    • S
      doc: Bring in Makefile documentation · 00ac4b41
      Simon Glass 提交于
      U-Boot uses the Linux Kbuild build system. Add the associated
      documentation so that people can understand the Makefiles better.
      
      This is taken from Linux v5.12
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      00ac4b41
    • C
      serial: pl011: Resend the character if FIFO is full in debug uart · 19820150
      Chen Baozi 提交于
      pl01x_putc() might return -EAGAIN if there was no space in FIFO. In that
      case, high-level caller should wait until there is space and resend the
      character.
      Signed-off-by: NChen Baozi <chenbaozi@phytium.com.cn>
      Reviewed-by: NStefan Roese <sr@denx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      19820150
    • S
      command: Fix SMC and HVC maximum number of arguments · 8f20c480
      Siew Chin Lim 提交于
      smc and hvc commands take upto 8 user input arguments, the maximum
      number of arguments of the U_BOOT_CMD macro should set to 9.
      
      Besides, fix the typo (arg7 -> arg6) in hvc command's help message.
      Signed-off-by: NSiew Chin Lim <elly.siew.chin.lim@intel.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      8f20c480
    • P
      armv8: Initialize CNTFRQ if at highest exception level · c48fec6e
      Peter Hoyes 提交于
      CNTFRQ_EL0 is only writable from the highest supported exception
      level on the platform. For Armv8-A, this is typically EL3, but
      technically EL2 and EL3 are optional so it may need to be
      initialized at EL2 or EL1. For Armv8-R, the highest exception
      level is always EL2.
      
      This patch moves the initialization outside of the switch_el
      block and uses a new macro branch_if_not_highest_el which
      dynamically detects whether it is at the highest supported
      exception level.
      
      Linux's docs state that CNTFRQ_EL0 should be initialized by the
      bootloader. If not set, the the U-Boot prompt countdown hangs.
      Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
      c48fec6e
    • S
      serial: serial_msm: Delay initialization to let pins stabilize · ad7e9677
      Stephan Gerhold 提交于
      For some reason, the DragonBoard 410c aborts autoboot immediately if
      U-Boot is started without LK. It looks like it picks up a single broken
      character via serial and therefore believes a key was pressed to abort
      autoboot.
      
      After some debugging, it seems like adding some delay after pinctrl
      setup but before UART initialization fixes the issue. It's also worth
      mentioning that unlike when booting from LK, the pinctrl setup is
      actually necessary when booting U-Boot without LK since UART is broken
      if the pinctrl line is removed.
      
      I suspect that reconfiguring the pins might take some time to stabilize
      and if the UART controller is enabled too quickly it will pick up some
      random noise. Adding a few milliseconds of delay fixes the issue and
      shouldn't have any other negative side effects.
      
      3ms seems to be the minimum delay required in my tests, use 5ms instead
      just to be sure.
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      ad7e9677
    • S
      board: dragonboard410c: Fix fastboot · ccb8de23
      Stephan Gerhold 提交于
      At the moment pressing the volume down key does not actually launch
      fastboot. This is because setting "bootdelay" to "-1" actually
      disables autoboot and drops to the U-Boot console. It does not execute
      the "bootcmd".
      
      The correct value for "bootdelay" here would be "-2", which disables
      the delay and key checking and would immediately execute the "bootcmd".
      
      However, even better in this case is using "preboot" to trigger Fastboot.
      The advantage is that running "fastboot continue" will actually continue
      the autoboot process instead of ending up in the U-Boot shell.
      
      Also make sure to unset "preboot" again immediately in case the user
      saves the environment after triggering fastboot.
      
      Cc: Ramon Fried <rfried.dev@gmail.com>
      Fixes: aa043ee9 ("db410c: automatically launch fastboot")
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      Reviewed-by: NRamon Fried <rfried.dev@gmail.com>
      ccb8de23
    • S
      board: dragonboard410c: Fix PHYS_SDRAM_1_SIZE · 1d667227
      Stephan Gerhold 提交于
      The DragonBoard 410c has proprietary firmware from Qualcomm that
      reserves 8 MiB of memory for tz/smem/hyp/rmtfs/rfsa from 0x86000000
      to 0x86800000. I'm not aware of any ATF (ARM Trusted Firmware) port
      for DB410c that would reserve 30 MiB of memory at the end of RAM.
      I suspect the comment might have been copied from hikey.h which has
      a very similar comment (and which actually does have an ATF port).
      
      Reducing the memory size just prevents U-Boot from using the end of
      the RAM, not the reserved region inbetween. Therefore we might as well
      display the correct DRAM size (1 GiB) instead of strange 986 MiB.
      
      Fixes: 626f048b ("board: Add Qualcomm Dragonboard 410C support")
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      Reviewed-by: NRamon Fried <rfried.dev@gmail.com>
      1d667227
    • S
      board: dragonboard410c: Load U-Boot directly without LK · 0204d1b5
      Stephan Gerhold 提交于
      At the moment the U-Boot port for the DragonBoard 410c is designed
      to be loaded as an Android boot image after Qualcomm's Little Kernel (LK)
      bootloader. This is simple to set up but LK is redundant in this case,
      since everything done by LK can be also done directly by U-Boot.
      
      Dropping LK entirely has at least the following advantages:
        - Easier installation/board code (no need for Android boot images)
        - (Slightly) faster boot
        - Boot directly in 64-bit without a round trip to 32-bit for LK
      
      So far this was not possible yet because of unsolved problems:
      
        1. Signing tool: The firmware expects a "signed" ELF image with extra
           (Qualcomm-specific) ELF headers, usually used for secure boot.
           The DragonBoard 410c does not have secure boot by default but the
           extra ELF headers are still required.
      
        2. PSCI bug: There seems to be a bug in the PSCI implementation
           (part of the TrustZone/tz firmware) that causes all other CPU cores
           to be started in 32-bit mode if LK is missing in the boot chain.
           This causes Linux to hang early during boot.
      
      There is a solution for both problems now:
      
        1. qtestsign (https://github.com/msm8916-mainline/qtestsign)
           can be used as a "signing" tool for U-Boot and other firmware.
      
        2. A workaround for the "PSCI bug" is to execute the TZ syscall when
           entering U-Boot. That way PSCI is made aware of the 64-bit switch
           and starts all other CPU cores in 64-bit mode as well.
      
      Simplify the dragonboard410c board by removing all the extra code that
      is only used to build an Android boot image that can be loaded by LK.
      This allows dropping the custom linker script, special image magic,
      as well as most of the special build/installation instructions.
      
      CONFIG_REMAKE_ELF is used to build a new ELF image that has both U-Boot
      and the appended DTB combined. The resulting u-boot.elf can then be
      passed to the "signing" tool (e.g. qtestsign).
      
      The PSCI workaround is placed in the "boot0" hook that is enabled
      with CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK. The extra check for EL1 allows
      compatibility with custom firmware that enters U-Boot in EL2 or EL3,
      e.g. qhypstub (https://github.com/msm8916-mainline/qhypstub).
      
      As a first step these changes apply only to DragonBoard410c.
      Similar changes could likely also work for the DragonBoard 820c.
      
      Note that removing LK wouldn't be possible that easily without a lot of
      work already done three years ago by Ramon Fried. A lot of missing
      initialization, pinctrl etc was already added back then even though
      it was not strictly needed yet.
      
      Cc: Ramon Fried <rfried.dev@gmail.com>
      Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      0204d1b5