Skip to content
Snippets Groups Projects
  1. Jan 22, 2017
    • Masahiro Yamada's avatar
      ARM: uniphier: make SPL optional for ARVv8 SoCs · 561ca649
      Masahiro Yamada authored
      
      We may want to run different firmware before running U-Boot.  For
      example, ARM Trusted Firmware runs before U-Boot, making U-Boot
      a non-secure world boot loader.  In this case, the SoC might be
      initialized there, which enables us to skip SPL entirely.
      
      This commit removes "select SPL" to make it configurable.  This
      also enables the Multi SoC support for the UniPhier ARMv8 SoCs.
      (CONFIG_ARCH_UNIPHIER_V8_MULTI)  Thanks to the driver model and
      Device Tree, the U-Boot proper part is now written in a generic way.
      The board/SoC parameters reside in DT.  The Multi SoC support
      increases the memory footprint a bit, but the U-Boot proper does
      not have strict memory constraint.  This will mitigate the per-SoC
      (sometimes per-board) defconfig burden.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      561ca649
  2. Jan 20, 2017
    • Tom Rini's avatar
      ARM: Default to using optimized memset and memcpy routines · 40d5534c
      Tom Rini authored
      
      We have long had available optimized versions of the memset and memcpy
      functions that are borrowed from the Linux kernel.  We should use these
      in normal conditions as the speed wins in many workflows outweigh the
      relatively minor size increase.  However, we have a number of places
      where we're simply too close to size limits in SPL and must be able to
      make the size vs performance trade-off in those cases.
      
      Cc: Philippe Reynes <tremyfr@yahoo.fr>
      Cc: Eric Jarrige <eric.jarrige@armadeus.org>
      Cc: Heiko Schocher <hs@denx.de>
      Cc: Magnus Lilja <lilja.magnus@gmail.com>
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: Chander Kashyap <k.chander@samsung.com>
      Cc: Akshay Saraswat <akshay.s@samsung.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Stefan Roese <sr@denx.de>
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      Acked-by: default avatarStefan Roese <sr@denx.de>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      40d5534c
  3. Jan 18, 2017
  4. Jan 05, 2017
  5. Dec 27, 2016
    • Masahiro Yamada's avatar
      ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and Tegra · 085be482
      Masahiro Yamada authored
      
      Commit be72591b ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to
      Kconfig") is misconversion.
      
      The original logic in include/configs/uniphier.h was as follows:
      
        #if !defined(CONFIG_SPL_BUILD) && !defined(CONFIG_ARM64)
        #define CONFIG_USE_ARCH_MEMSET
        #define CONFIG_USE_ARCH_MEMCPY
        #endif
      
      This means those configs were enabled when building U-Boot proper,
      but disabled when building SPL.  Likewise for Tegra.
      
      Now "depends on !SPL" prevents any boards with SPL support
      from reaching these options.  This changed the behavior for
      UniPhier and Tegra SoC family.
      
      Please notice these two options only control the U-Boot proper
      build.  As you see arch/arm/Makefile, ARM-specific memset/memcpy
      are never compiled for SPL.  So, __HAVE_ARCH_MEMCPY/MEMSET should
      not set for SPL.
      
      Fixes: be72591b ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to Kconfig")
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: default avatarFabio Estevam <fabio.estevam@nxp.com>
      085be482
  6. Dec 16, 2016
  7. Dec 11, 2016
  8. Dec 06, 2016
    • Marek Vasut's avatar
      ARM: socfpga: Add boot0 hook to prevent SPL corruption · beee6a30
      Marek Vasut authored
      
      Valid Altera SoCFPGA preloader image must contain special data at
      offsets 0x40, 0x44, 0x48 and valid instructions at address 0x4c or
      0x50. These addresses are by default used by U-Boot's vector table
      and a piece of reset handler, thus a valid preloader corrupts those
      addresses slightly. While this works most of the time, this can and
      does prevent the board from rebooting sometimes and triggering this
      issue may even depend on compiler.
      
      The problem is that when SoCFPGA performs warm reset, it checks the
      addresses 0x40..0x4b in SRAM for a valid preloader signature and
      header checksum. If those are found, it jumps to address 0x4c or
      0x50 (this is unclear). These addresses are populated by the first
      few instructions of arch/arm/cpu/armv7/start.S:
      
      ffff0040 <data_abort>:
      ffff0040:       ebfffffe        bl      ffff0040 <data_abort>
      
      ffff0044 <reset>:
      ffff0044:       ea000012        b       ffff0094 <save_boot_params>
      
      ffff0048 <save_boot_params_ret>:
      ffff0048:       e10f0000        mrs     r0, CPSR
      ffff004c:       e200101f        and     r1, r0, #31
      ffff0050:       e331001a        teq     r1, #26
      
      Without this patch, the CPU will enter the code at 0xffff004c or
      0xffff0050 , at which point the value of r0 and r1 registers is
      undefined. Moreover, jumping directly to the preloader entry point
      at address 0xffff0000 will also fail, because address 0xffff004.
      is invalid and contains the preloader magic.
      
      Add BOOT0 hook which reserves the area at offset 0x40..0x5f and
      populates offset 0x50 with jump to the entry point. This way, the
      preloader signature is stored in reserved space and can not corrupt
      the SPL code.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Chin Liang See <clsee@altera.com>
      Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
      Cc: Stefan Roese <sr@denx.de>
      Tested-by: default avatarDinh Nguyen <dinguyen@opensource.altera.com>
      beee6a30
  9. Dec 05, 2016
  10. Dec 04, 2016
  11. Nov 29, 2016
  12. Nov 28, 2016
    • Yann E. MORIN's avatar
      arm: sunxi: do not force USB for arch-sunxi · 2997ee50
      Yann E. MORIN authored
      
      Currently, USB is forced-enabled for the sunxi familly, and there is no
      way to disable it.
      
      However, USB takes a long time to initiliase, delaying the boot by up to
      5 seconds (without any USB device attached!). This is a very long delay,
      especially in cases where USB booting is not wanted at all, and where
      the device is expected to boot relatively often (even in production).
      
      Change the way the dependencies are handled, by only forcibly selecting
      USB when CONFIG_DISTRO_DEFAULTS ("defaults suitable for booting general
      purpose Linux distributions") is set. This option defaults to y for the
      sunxi familly, so the current default behaviour is kept unchanged. Users
      interested in boot time and/or size will be able to disable this to
      further disable USB.
      
      With USB disabled, the time spent in U-Boot before handing control to
      the Linux kernel is about 1s now, down from ~5s (Nanopi Neo, sunxi H3).
      
      Signed-off-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
      Cc: Ian Campbell <ijc@hellion.org.uk>
      Cc: Hans De Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      2997ee50
  13. Nov 22, 2016
  14. Nov 21, 2016
  15. Oct 10, 2016
  16. Oct 06, 2016
  17. Oct 02, 2016
  18. Sep 27, 2016
    • Stefan Roese's avatar
      arm64: mvebu: Add basic support for the Marvell Armada 7K/8K SoC · 21b29fc6
      Stefan Roese authored
      
      Compared to the Armada 3700, the Armada 7K and 8K are much more on the
      high-end side: they use a dual Cortex-A72 or a quad Cortex-A72, as
      opposed to the Cortex-A53 for the Armada 3700.
      
      The Armada 7K and 8K also use a fairly unique architecture, internally
      they are composed of several components:
      
      - One AP (Application Processor), which contains the processor itself
        and a few core hardware blocks. The AP used in the Armada 7K and 8K
        is called AP806, and is available in two configurations:
        dual Cortex-A72 and quad Cortex-A72.
      - One or two CP (Communication Processor), which contain most of the I/O
        interfaces (SATA, PCIe, Ethernet, etc.). The 7K family chips have one
        CP, while the 8K family chips integrate two CPs, providing two times
        the number of I/O interfaces available in the CP.
        The CP used in the 7K and 8K is called CP110.
      
      All in all, this gives the following combinations:
      
      - Armada 7020, which is a dual Cortex-A72 with one CP
      - Armada 7040, which is a quad Cortex-A72 with one CP
      - Armada 8020, which is a dual Cortex-A72 with two CPs
      - Armada 8040, which is a quad Cortex-A72 with two CPs
      
      This patch adds basic support for this ARMv8 based SoC into U-Boot.
      Future patches will integrate other device drivers and board support,
      starting with the Marvell DB-88F7040 development board.
      
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Neta Zur Hershkovits <neta@marvell.com>
      Cc: Kostya Porotchkin <kostap@marvell.com>
      Cc: Omri Itach <omrii@marvell.com>
      Cc: Igal Liberman <igall@marvell.com>
      Cc: Haim Boot <hayim@marvell.com>
      Cc: Hanna Hawa <hannah@marvell.com>
      21b29fc6
    • Stefan Roese's avatar
      arm64: mvebu: Add support for the Marvell Armada 3700 SoC · f61aefc1
      Stefan Roese authored
      
      The Armada 3700 integrates the following interfaces (not complete list):
      - Dual Cortex-A53 ARMv8
      - USB 3.0
      - SATA 3.0
      - PCIe 2.0
      - 2 x Gigabit Ethernet 1Gbps / 2.5Gbps
      - ...
      
      This patch adds basic support for this ARMv8 based SoC into U-Boot.
      Future patches will integrate other device drivers and board support
      for the Marvell DB-88F3720 development board.
      
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Kostya Porotchkin <kostap@marvell.com>
      Cc: Wilson Ding <dingwei@marvell.com>
      Cc: Victor Gu <xigu@marvell.com>
      Cc: Hua Jing <jinghua@marvell.com>
      Cc: Terry Zhou <bjzhou@marvell.com>
      Cc: Hanna Hawa <hannah@marvell.com>
      Cc: Haim Boot <hayim@marvell.com>
      f61aefc1
  19. Sep 26, 2016
  20. Sep 22, 2016
  21. Sep 18, 2016
  22. Sep 14, 2016
Loading