Skip to content
Snippets Groups Projects
  1. May 05, 2019
    • Dinh Nguyen's avatar
      dm: cache: Create a uclass for cache · 84b124db
      Dinh Nguyen authored
      
      The cache UCLASS will be used for configure settings that can be found
      in a CPU's L2 cache controller.
      
      Add a uclass and a test for cache.
      
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      84b124db
    • Dinh Nguyen's avatar
      ARM: pl310: Add macro's for handling tag and data latency mask · 2bac27ce
      Dinh Nguyen authored
      
      Add the PL310 macros for latency control setup, read and write bits.
      
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      2bac27ce
    • Dinh Nguyen's avatar
      Documentation: dts: Add pl310 cache controller dts documentation · 5c66e1e8
      Dinh Nguyen authored
      
      Linux commit 8ecd7f5970c5 ("ARM: 8483/1: Documentation: l2c: Rename
      l2cc to l2c2x0")
      
      Linux docs:
      Documentation/devicetree/bindings/arm/l2c2x0.txt
      
      Copied from Linux kernel v5.0.
      
      "The documentation in the l2cc.txt is specific to the L2 cache
      controllers L2C210/L2C220/L2C310 (also known as PL210/PL220/PL310
      and variants) and not generic as the file name implies. It's not
      valid for integrated L2 controllers as found in e.g.
      Cortex-A15/A7/A57/A53."
      
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      5c66e1e8
    • Vignesh Raghavendra's avatar
      board: ti: am654: select SYS_DISABLE_DCACHE_OPS for arm64 build · c14f3c31
      Vignesh Raghavendra authored
      
      AM654 SoC is IO coherent wrt A53 cores, therefore enable
      SYS_DISABLE_DCACHE_OPS to avoid cache operations in A53
      SPL/U-Boot.
      
      Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
      c14f3c31
    • Vignesh Raghavendra's avatar
      arch: armv8: Provide a way to disable cache maintenance ops · add49671
      Vignesh Raghavendra authored
      
      On AM654 SoC(arm64) which is IO coherent and has L3 Cache, cache
      maintenance operations being done to support non-coherent platforms
      causes issues.
      
      For example, here is how U-Boot prepares/handles a buffer to receive
      data from a device (DMA Write). This may vary slightly depending on the
      driver framework:
      
      	Start DMA to write to destination buffer
      	Wait for DMA to be done (dma_receive()/dma_memcpy())
      	Invalidate destination buffer (invalidate_dcache_range())
      	Read from destination buffer
      
      The invalidate after the DMA is needed in order to read latest data from
      memory that’s updated by DMA write. Also, in case random prefetch has
      pulled in buffer data during the “wait for DMA” before the DMA has
      written to it. This works well for non-coherent architectures.
      
      In case of coherent architecture with L3 cache, DMA write would directly
      update L3 cache contents (assuming cacheline is present in L3) without
      updating the DDR memory. So invalidate after “wait for DMA” in above
      sequence would discard latest data and read will cause stale data to be
      fetched from DDR. Therefore invalidate after “wait for DMA” is not
      always correct on coherent architecture.
      
      Therefore, provide a Kconfig option to disable cache maintenance ops on
      coherent architectures. This has added benefit of improving the
      performance of DMA transfers as we no longer need to invalidate/flush
      individual cache lines(especially for buffer thats several KBs in size).
      
      In order to facilitate use of same Kconfig across different
      architecture, I have added the symbol to top level arch/Kconfig file.
      Patch currently disables cache maintenance ops for arm64 only.
      flush_dcache_all() and invalidate_dcache_all() are exclusively used
      during enabling/disabling dcache and hence are not disabled.
      
      Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
      add49671
    • Alex Kiernan's avatar
      Refactor IMAGE_ENABLE_VERIFY to handle builds without SPL verification · 89665f2e
      Alex Kiernan authored
      
      If building with SPL_LOAD_FIT_FULL and FIT_SIGNATURE, but without
      SPL_FIT_SIGNATURE then the build fails with:
      
        common/built-in.o: In function `fit_image_verify_with_data':
        common/image-fit.c:1220: undefined reference to `fit_image_verify_required_sigs'
        common/image-fit.c:1244: undefined reference to `fit_image_check_sig'
        common/built-in.o: In function `fit_image_load':
        common/image-fit.c:1857: undefined reference to `fit_config_verify'
      
      Refactor so that host builds still depend on FIT_SIGNATURE, but target
      builds check FIT_SIGNATURE/SPL_FIT_SIGNATURE dependent on the build.
      
      Signed-off-by: default avatarAlex Kiernan <alex.kiernan@gmail.com>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      89665f2e
    • Tom Rini's avatar
      Merge tag 'mips-pull-2019-05-03' of git://git.denx.de/u-boot-mips · 86f578ee
      Tom Rini authored
      - mscc: small fixes, enhance network support for Serval, Luton and Ocelot
      - mt7620: rename arch to more generic name mtmips
      - mips: pass initrd addresses via DT as physical addresses
      86f578ee
    • Tom Rini's avatar
  2. May 04, 2019
  3. May 03, 2019
Loading