1. 22 10月, 2018 8 次提交
    • B
      x86: doc: Remove stale sections of 64-bit support · 0e028bf9
      Bin Meng 提交于
      There are some sections in current doc saying 64-bit is unsupported.
      This apparently is out of date. Remove it.
      Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      0e028bf9
    • B
      x86: doc: Mention qemu-x86_64 support · 6feb2ff5
      Bin Meng 提交于
      Currently only 32-bit U-Boot for QEMU x86 is documented. Mention
      the 64-bit support.
      Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      6feb2ff5
    • B
      x86: Ensure no instruction sets of MMX/SSE are generated in 64-bit build · dd4611de
      Bin Meng 提交于
      With the '-march=core2' fix, it seems that we have some luck that
      the 64-bit U-Boot boots again. However if we examine the disassembly
      codes there are still SSE instructions elsewhere which means passing
      cpu type to GCC is not enough to prevent it from generating these
      instructions. A simple test case is doing a 'bootefi selftest' from
      the U-Boot shell and it leads to a reset too.
      
      The 'bootefi selftest' reset is even seen with the image created by
      the relative older GCC 5.4.0, the one shipped by Ubuntu 16.04.
      
      The reset actually originates from undefined instruction exception
      caused by these SSE instructions. To keep U-Boot as a bootloader as
      simple as possible, we don't want to handle such advanced SIMD stuff.
      To make sure no MMX/SSE instruction sets are generated, tell GCC not
      to do this. Note AVX is out of the question as CORE2 is old enough
      to support AVX yet.
      Signed-off-by: NBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      dd4611de
    • 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