Skip to content
Snippets Groups Projects
  1. Feb 10, 2020
    • Sean Anderson's avatar
      riscv: Fix breakage caused by linker relaxation · d9f1cee2
      Sean Anderson authored
      Due to the two-instruction sequence needed to access arbitrary memory
      locations, the RISC-V linker aggressively optimises memory accesses and
      jumps at link-time. This is called "linker relaxation," and is discussed
      in this SiFive article
      <https://www.sifive.com/blog/all-aboard-part-3-linker-relaxation-in-riscv-toolchain
      
      >.
      One of the optimizations in place is to assume that the __global_pointer
      symbol is placed in the gp register. To quote the article:
      
      "...The magic __global_pointer$ symbol is defined to point 0x800 bytes
      past the start of the .sdata section. The 0x800 magic number allows
      signed 12-bit offsets from __global_pointer$ to address symbols at the
      start of the .sdata section. The linker assumes that if this symbol is
      defined, then the gp register contains that value, which it can then use
      to relax accesses to global symbols within that 12-bit range. The
      compiler treats the gp register as a constant so it doesn't need to be
      saved or restored, which means it is generally only written by _start,
      the ELF entry point."
      
      However, U-Boot instead keeps the global data pointer in gp. This causes
      memory accesses and jumps optimized to use the gp pointer to fail. To
      fix this problem, we undefine the __global_pointer symbol.
      
      Signed-off-by: default avatarSean Anderson <seanga2@gmail.com>
      Reviewed-by: default avatarBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: default avatarRick Chen <rick@andestech.com>
      d9f1cee2
  2. Feb 07, 2020
  3. Feb 05, 2020
    • Marek Vasut's avatar
      ddr: altera: Add DDR2 support to Gen5 driver · 9a5a90ad
      Marek Vasut authored
      
      Add DDR2 support to Gen5 DRAM driver. As the DDR2 macro names generated
      by Quartus are named differently than the DDR3 ones, use anon unions to
      store them in the same structures, without growing their size.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Ley Foon Tan <ley.foon.tan@intel.com>
      Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
      9a5a90ad
    • Marek Vasut's avatar
      watchdog: designware: Convert to DM and DT probing · cf8c8367
      Marek Vasut authored
      
      Convert the designware watchdog timer driver to DM and add DT probing
      support. Perform minor coding style clean up, like drop superfluous
      braces. These ought to be no functional change.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Chin Liang See <chin.liang.see@intel.com>
      Cc: Dalon Westergreen <dwesterg@gmail.com>
      Cc: Dinh Nguyen <dinguyen@kernel.org>
      Cc: Jagan Teki <jagan@amarulasolutions.com>
      Cc: Ley Foon Tan <ley.foon.tan@intel.com>
      Cc: Philipp Tomisch <philipp.tomisch@theobroma-systems.com>
      Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
      Cc: Tien Fong Chee <tien.fong.chee@intel.com>
      Reviewed-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Tested-by: Jagan Teki <jagan@amarulasolutions.com> # roc-rk3399-pc
      cf8c8367
  4. Feb 04, 2020
  5. Feb 03, 2020
  6. Jan 31, 2020
  7. Jan 30, 2020
Loading