Skip to content
Snippets Groups Projects
  1. May 31, 2018
    • Alexey Brodkin's avatar
      ARC: Reset: Implement weak reset_cpu() · eb5c8539
      Alexey Brodkin authored
      
      This will allow for board-specific implementation of reset.
      Default version will just stop execution with help of BRK instruction.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      eb5c8539
    • Alexey Brodkin's avatar
      ARC: Reset: Use __builtin_arc_brk() instead of open-coded ASM · 8f187142
      Alexey Brodkin authored
      
      For quite some time we have a GCC's built-in which inserts BRK
      instruction so let's use it instead of simple insertion of in-line
      assembly.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      8f187142
    • Alexey Brodkin's avatar
      ARC: Improve relocation fix-ups · ce307128
      Alexey Brodkin authored
      
      We used to have the one and only linker script for all ARC boards
      and so we relied on a particular order of symbols there.
      
      Because of that we used __ivt_end as the marker of the end of all the
      code which won't be true any longer if we move .ivt section to any other
      place. That said we'd better check for each section separately.
      
      A couple of other improvements:
       1. There's no point to include the marker of section end in interested
          range because its address is beyond the section, i.e. we should
          compare with "<" but not "<=".
      
       2. .ivt section for ARCv2 cores is just an array of 32-bit ints and
          they are not swapped even on little-endia cores while in case of
          ARCompact cores .ivt contains valid code so swapping is required.
      
       3. Just in case add check for ARC600 which is also ARCompact
          and its .ivt is normal code.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      ce307128
    • Alexey Brodkin's avatar
      ARC: Cache: Don't compare I$ and D$ line lengths · d0a5023a
      Alexey Brodkin authored
      
      We don't care much about I$ line length really as there're
      no per-line ops on I$ instead we only do full invalidation of it
      on occasion of relocation and right before jumping to the OS.
      
      Also as compared to Linux kernel where we don't support different
      lengths of I$ and D$ lines in U-Boot we have to deal with such an
      exotic configs if the target board is not supposed to run Linux kernel.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      d0a5023a
  2. May 24, 2018
  3. May 07, 2018
    • Tom Rini's avatar
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini authored
      
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
      83d290c5
  4. Apr 17, 2018
  5. Mar 23, 2018
  6. Mar 21, 2018
  7. Feb 18, 2018
    • Alexey Brodkin's avatar
      fdt: Implement weak arch_fixup_fdt() · 4280342a
      Alexey Brodkin authored
      
      Only ARM and in some configs MIPS really implement arch_fixup_fdt().
      Others just use the same boilerplate which is not good by itself,
      but what's worse if we try to build with disabled CONFIG_CMD_BOOTM
      and enabled CONFIG_OF_LIBFDT we'll hit an unknown symbol which was
      apparently implemented in arch/xxx/lib/bootm.c.
      
      Now with weak arch_fixup_fdt() right in image-fdt.c where it is
      used we get both items highlighted above fixed.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: York Sun <york.sun@nxp.com>
      Cc: Stefan Roese <sr@denx.de>
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
      4280342a
  8. Jan 19, 2018
  9. Dec 11, 2017
    • Eugeniy Paltsev's avatar
      ARC: cache: explicitly initialize "*_exists" variables · 3cf23939
      Eugeniy Paltsev authored
      
      dcache_exists, icache_exists, slc_exists and ioc_exists global
      variables in "arch/arc/lib/cache.c" remain uninitialized if
      SoC doesn't have corresponding HW.
      
      This happens because we use the next constructions for their
      definition and initialization:
      -------------------------->>---------------------
      int ioc_exists __section(".data");
      
      if (/* condition */)
      		ioc_exists = 1;
      -------------------------->>---------------------
      
      That's quite a non-trivial issue as one may think of it.
      The point is we intentionally put those variables in ".data" section
      so they might survive relocation (remember we initilaize them very early
      before relocation and continue to use after reloaction). While being
      non-initialized and not explicitly put in .data section they would end-up
      in ".bss" section which by definition is filled with zeroes.
      But since we place those variables in .data section we need to care
      about their proper initialization ourselves.
      
      Also while at it we change their type to "bool" as more appropriate.
      
      Signed-off-by: default avatarEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      3cf23939
  10. Nov 24, 2017
  11. Aug 16, 2017
  12. Jun 29, 2017
    • Alexey Brodkin's avatar
      arcv2: Set IOC aperture so it covers available DDR · 97a63144
      Alexey Brodkin authored
      
      We used to use the same memory layout and size for a couple of
      boards and thus we just hardcoding IOC aperture start and size.
      
      Now when we're getting more boards with more memory on board we
      need to have an ability to set IOC so it matches real DDR layout
      and size.
      
      Even though it is not really a must but for simplicity we assume
      IOC covers all the DDR we have, that gives us a chance to not
      bother where DMA buffers are allocated - any part of DDR is OK.
      
      Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      97a63144
Loading