Skip to content
Snippets Groups Projects
  1. Nov 29, 2016
    • Eric Nelson's avatar
      ARM: mx6: ddr: use Kconfig for inclusion of DDR calibration routines · a425bf72
      Eric Nelson authored
      
      The DDR calibration routines are gated by conditionals for the
      i.MX6DQ SOCs, but with the use of the sysinfo parameter, these
      are usable on at least i.MX6SDL and i.MX6SL variants with DDR3.
      
      Also, since only the Novena board currently uses the dynamic
      DDR calibration routines, these routines waste space on other
      boards using SPL.
      
      Add a KConfig entry to allow boards to selectively include the
      DDR calibration routines.
      
      Signed-off-by: default avatarEric Nelson <eric@nelint.com>
      a425bf72
    • Eric Nelson's avatar
      mx6: ddr: add routine to return DDR calibration data · 48c7d437
      Eric Nelson authored
      
      Add routine mmdc_read_calibration() to return the output of DDR
      calibration. This can be used for debugging or to aid in construction
      of static memory configuration.
      
      This routine will be used in a subsequent patch set adding a virtual
      "mx6memcal" board, but could also be useful when gathering statistics
      during an initial production run.
      
      Signed-off-by: default avatarEric Nelson <eric@nelint.com>
      48c7d437
    • Eric Nelson's avatar
      mx6: ddr: pass mx6_ddr_sysinfo to calibration routines · 7f17fb74
      Eric Nelson authored
      
      The DDR calibration routines have scattered support for bus
      widths other than 64-bits:
      
      -- The mmdc_do_write_level_calibration() routine assumes the
      presence of PHY1, and
      -- The mmdc_do_dqs_calibration() routine tries to determine
      whether one or two DDR PHYs are active by reading MDCTL.
      
      Since a caller of these routines must have a valid struct mx6_ddr_sysinfo
      for use in calling mx6_dram_cfg(), and the bus width is available in the
      "dsize" field, use this structure to inform the calibration routines which
      PHYs are active.
      
      This allows the use of the DDR calibration routines on CPU variants
      like i.MX6SL that only have a single MMDC port.
      
      Signed-off-by: default avatarEric Nelson <eric@nelint.com>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      7f17fb74
    • Eric Nelson's avatar
      mx6: ddr: allow 32 cycles for DQS gating calibration · b33f74ea
      Eric Nelson authored
      
      The DDR calibration code is only setting flag DG_CMP_CYC (DQS gating sample
      cycle) for the first PHY.
      
      Set the 32-cycle flag for both PHYs and clear when done so the MPDGCTRL0
      output value isn't polluted with calibration artifacts.
      
      Signed-off-by: default avatarEric Nelson <eric@nelint.com>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      b33f74ea
  2. Nov 22, 2016
  3. Nov 21, 2016
  4. Nov 17, 2016
  5. Nov 16, 2016
  6. Nov 15, 2016
    • Michal Simek's avatar
      ARM64: zynqmp: Fix secondary bootmode enabling · 47359a03
      Michal Simek authored
      
      Do not setup use_alt bit which copy alternative boot mode to
      boot mode. The reason is that this bit is cleared after POR
      but not after any software reset which will cause
      that after SW reset bootrom will look for different boot image.
      
      This patch setups alternative boot mode selection (purely SW
      handling) and extends code to read this alternative boot mode first and
      use it if it is setup.
      
      Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
      47359a03
    • Mike Looijmans's avatar
      tools: mkimage: Add support for initialization table for Zynq and ZynqMP · 3b646080
      Mike Looijmans authored
      
      The Zynq/ZynqMP boot.bin file contains a region for register initialization
      data. Filling in proper values in this table can reduce boot time
      (e.g. about 50ms faster on QSPI boot) and also reduce the size of
      the SPL binary.
      
      The table is a simple text file with register+data on each line. Other
      lines are simply skipped. The file can be passed to mkimage using the
      "-R" parameter.
      
      It is recommended to add reg init file to board folder.
      For example:
      CONFIG_BOOT_INIT_FILE="board/xilinx/zynqmp/xilinx_zynqmp_zcu102/reg.int
      
      Signed-off-by: default avatarMike Looijmans <mike.looijmans@topic.nl>
      Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
      3b646080
  7. Nov 14, 2016
  8. Nov 07, 2016
  9. Nov 05, 2016
    • Andre Przywara's avatar
      armv8: define get_ticks() for the ARMv8 Generic Timer · 68fd5c13
      Andre Przywara authored
      
      For 64-bit ARM systems we provide just a timer_read_counter()
      implementation and rely on the generic non-uclass get_ticks() function
      in lib/time.c to call the former.
      However this function is actually not 64-bit safe, as it assumes a
      "long" to be 32-bit. Beside the fact that the resulting uint64_t
      isn't bigger than "long" on 64-bit architectures and thus combining two
      counters makes no sense, we get all kind of weird results when we try
      to OR in the high value shifted by _32_ bits.
      So let's avoid that function at all and provide a straight forward
      get_ticks() implementation for ARMv8, which also is in line with ARMv7.
      
      This fixes occasional immediate time-out expiration issues I see on the
      Pine64 board. The root cause of this needs to be investigated, but this
      fix looks like the right thing anyway.
      
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      68fd5c13
  10. Oct 30, 2016
  11. Oct 26, 2016
    • Jagan Teki's avatar
      engicam: icorem6: Add DM_GPIO, DM_MMC support · f160c5c8
      Jagan Teki authored
      
      Add DM_GPIO, DM_MMC support for u-boot and disable for SPL.
      
      Cc: Peng Fan <peng.fan@nxp.com>
      Cc: Stefano Babic <sbabic@denx.de>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Matteo Lisi <matteo.lisi@engicam.com>
      Cc: Michael Trimarchi <michael@amarulasolutions.com>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      f160c5c8
    • Jagan Teki's avatar
      arm: imx6q: Add devicetree support for Engicam i.CoreM6 DualLite/Solo · e88edc7b
      Jagan Teki authored
      i.CoreM6 DualLite/Solo modules are system on module solutions
      manufactured by Engicam with following characteristics:
      CPU           NXP i.MX6 DL, 800MHz
      RAM           1GB, 32, 64 bit, DDR3-800/1066
      NAND          SLC,512MB
      Power supply  Single 5V
      MAX LCD RES   FULLHD
      
      and more info at
      http://www.engicam.com/en/products/embedded/som/sodimm/i-core-m6s-dl-d-q
      
      
      
      Cc: Peng Fan <peng.fan@nxp.com>
      Cc: Stefano Babic <sbabic@denx.de>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Matteo Lisi <matteo.lisi@engicam.com>
      Cc: Michael Trimarchi <michael@amarulasolutions.com>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      e88edc7b
    • Jagan Teki's avatar
      arm: imx: Add Engicam i.CoreM6 QDL Starter Kit initial support · f4b7532f
      Jagan Teki authored
      
      Boot Log for i.CoreM6 DualLite/Solo Starter Kit:
      -----------------------------------------------
      
      U-Boot SPL 2016.09-rc2-30739-gd1fa290 (Sep 17 2016 - 00:37:46)
      Trying to boot from MMC1
      
      U-Boot 2016.09-rc2-30739-gd1fa290 (Sep 17 2016 - 00:37:46 +0530)
      
      CPU:   Freescale i.MX6SOLO rev1.3 at 792MHz
      CPU:   Industrial temperature grade (-40C to 105C) at 31C
      Reset cause: POR
      DRAM:  256 MiB
      MMC:   FSL_SDHC: 0
      *** Warning - bad CRC, using default environment
      
      In:    serial
      Out:   serial
      Err:   serial
      Net:   CPU Net Initialization Failed
      No ethernet found.
      Hit any key to stop autoboot:  0
      switch to partitions #0, OK
      mmc0 is current device
      switch to partitions #0, OK
      mmc0 is current device
      reading boot.scr
      ** Unable to read file boot.scr **
      reading zImage
      6741808 bytes read in 341 ms (18.9 MiB/s)
      Booting from mmc ...
      reading imx6dl-icore.dtb
      30600 bytes read in 19 ms (1.5 MiB/s)
         Booting using the fdt blob at 0x18000000
         Using Device Tree in place at 18000000, end 1800a787
      
      Starting kernel ...
      
      [    0.000000] Booting Linux on physical CPU 0x0
      
      Boot Log for i.CoreM6 Quad/Dual Starter Kit:
      --------------------------------------------
      
      U-Boot SPL 2016.09-rc2-30739-gd1fa290 (Sep 17 2016 - 00:37:46)
      Trying to boot from MMC1
      
      U-Boot 2016.09-rc2-30739-gd1fa290 (Sep 17 2016 - 00:37:46 +0530)
      
      CPU:   Freescale i.MX6Q rev1.2 at 792MHz
      CPU:   Industrial temperature grade (-40C to 105C) at 28C
      Reset cause: POR
      DRAM:  512 MiB
      MMC:   FSL_SDHC: 0
      *** Warning - bad CRC, using default environment
      
      In:    serial
      Out:   serial
      Err:   serial
      Net:   CPU Net Initialization Failed
      No ethernet found.
      Hit any key to stop autoboot:  0
      icorem6qdl>
      
      Cc: Stefano Babic <sbabic@denx.de>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Matteo Lisi <matteo.lisi@engicam.com>
      Cc: Michael Trimarchi <michael@amarulasolutions.com>
      Acked-by: default avatarPeng Fan <peng.fan@nxp.com>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      f4b7532f
  12. Oct 19, 2016
  13. Oct 18, 2016
Loading