1. 22 10月, 2018 5 次提交
    • B
      x86: Specify -march=core2 to build 64-bit U-Boot proper · a139cc18
      Bin Meng 提交于
      With newer kernel.org GCC (7.3.0 or 8.1.0), the u-boot.rom image
      built for qemu-x86_64 target does not boot. It keeps resetting
      soon after the 32-bit SPL jumps to 64-bit proper. Debugging shows
      that the reset happens inside env_callback_init().
      
      000000000113dd85 <env_callback_init>:
       113dd85:       41 54                   push   %r12
       113dd87:       55                      push   %rbp
       113dd88:       31 c0                   xor    %eax,%eax
       113dd8a:       53                      push   %rbx
       113dd8b:       0f 57 c0                xorps  %xmm0,%xmm0
      
      Executing "xorps %xmm0,%xmm0" causes CPU to immediately reset.
      However older GCC like 5.4.0 (the one shipped by Ubuntu 16.04)
      does not generate such instructions that utilizes SSE for this
      function - env_callback_init() and U-Boot boots without any issue.
      Explicitly specifying -march=core2 for newer GCC allows U-Boot
      proper to boot again. Examine assembly codes of env_callback_init
      and there is no SSE instruction in that function hence U-Boot
      continues to boot.
      
      core2 seems to be the oldest arch in GCC that supports 64-bit.
      Like 32-bit U-Boot build we use -march=i386 which is the most
      conservative cpu type so that the image can run on any x86
      processor, let's do the same for the 64-bit U-Boot build.
      Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      a139cc18
    • H
      x86/bootm: fix error handling in boot_prep_linux(...) · c74e3295
      Hannes Schmelzer 提交于
      Once we get a zero pointer from load_zimage(...) we must bunch out
      instead of continue boot.
      Signed-off-by: NHannes Schmelzer <hannes.schmelzer@br-automation.com>
      Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
      c74e3295
    • S
      Enable CONFIG_TIMER_EARLY with bootstage · 97d20f69
      Simon Glass 提交于
      In initr_bootstage() we call bootstage_mark_name() which ends up calling
      timer_get_us(). This call happens before initr_dm(), which inits driver
      model.
      
      On x86 we set gd->timer to NULL in the transition from board_init_f()
      to board_init_r(). See board_init_f_r() for this assignment. So U-Boot
      knows there is no timer available in the period immediately after
      relocation.
      
      On x86 the timer_get_us() call is implemented as calls to get_ticks() and
      get_tbclk(). Both of these call dm_timer_init() to set up the timer, if
      gd->timer is NULL and the early timer is not available.
      
      However dm_timer_init() cannot succeed before initr_dm() is called.
      
      So it seems that on x86 if we want to use CONFIG_BOOTSTAGE we must enable
      CONFIG_TIMER_EARLY. Update the Kconfig to handle this.
      
      Note: On most architectures we can rely on the pre-relocation memory still
      being available, so that gd->timer pointers to a valid timer device and
      everything works correctly. Admittedly this is not strictly correct since
      the timer device is set up by pre-relocation U-Boot, but normally this is
      fine. On x86 the 'CAR' (cache-as-RAM) memory used by pre-relocation U-Boot
      disappears in board_init_f_r() and any attempt to access it will hang.
      This is the reason why we must mark the timer as invalid when we get to
      board_init_f_r().
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
      97d20f69
    • S
      binman: Add support for Intel reference code · 27fb0cf1
      Simon Glass 提交于
      Some platforms use this instead of FSP to set up the platform, including
      memory. Add support for this in binman. This is needed for
      chromebook_samus, for example.
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
      27fb0cf1
    • S
      chromebook_samus: Increase pre-relocation memory · d7e84521
      Simon Glass 提交于
      With bootstage now allocating pre-relocation memory the current amount
      available is insufficient. Increase it a little.
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
      d7e84521
  2. 21 10月, 2018 4 次提交
  3. 20 10月, 2018 12 次提交
  4. 19 10月, 2018 12 次提交
  5. 17 10月, 2018 4 次提交
    • T
      Merge tag 'signed-efi-2018.11' of git://github.com/agraf/u-boot · e3beca3a
      Tom Rini 提交于
      Patch queue for efi - 2018-10-17
      
      A few bug fixes for the 2018.11 release:
      
        - Fix block seeking on 32bit
        - Fix execution with DEBUG set
        - Fix a few Coverity found bugs
        - Fix warnings
      
      Heinrich Schuchardt (13):
            efi_loader: fix relocation on x86_64
            efi_loader: correct signature of GetPosition, SetPosition
            efi_loader: execute efi_save_gd() first
            efi_loader: efi_allocate_pool(EFI_ALLOCATE_ANY_PAGES, ...)
            efi_loader: error handling in read_console()
            efi_loader: return type efi_console_register()
            efi_loader: superfluous statement in is_dir()
            efi_loader: memory leak in efi_set_variable()
            efi_loader: remove lcd.h from efi_net.c
            arm: do not include efi_loader.h twice
            efi_loader: fix typo in efi_boottime.c
            efi_selftest: creating new handle in controller test
            efi_loader: efi_dp_get_next_instance() superfluous statement
      
      Tom Rini (2):
            efi_loader: Fix warning in efi_load_image()
            fs: fat: Fix warning in normalize_longname()
      e3beca3a
    • H
      efi_loader: efi_dp_get_next_instance() superfluous statement · d081f27f
      Heinrich Schuchardt 提交于
      Remove a superfluous statement in efi_dp_get_next_instance().
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      d081f27f
    • H
      efi_selftest: creating new handle in controller test · b50f0752
      Heinrich Schuchardt 提交于
      When the last protocol interface is uninstalled the handle is deleted but
      this does not set the value of the handle to NULL.
      
      To create a new handle with OpenProtocolInterface the value of the handle
      must be NULL.
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      b50f0752
    • T
      Merge git://git.denx.de/u-boot-microblaze · d0423c44
      Tom Rini 提交于
      Xilinx changes for v2018.11-rc2-v2
      
      FPGA:
      - Fix SPL fpga loading from FIT
      
      ARM64:
      - Fix gic accesses in EL2/EL1
      
      Xilinx:
      - Add dlc20 board support
      - Add Versal board support
      - Sync defconfigs
      - Enable MP via Kconfig
      - Add missing efuse node
      - Enable CDC for zcu100
      
      cmd:
      - Fix kgdb Kconfig dependency
      d0423c44
  6. 16 10月, 2018 3 次提交