9bef24d0 | 03-Aug-2016 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: No need in sections defined in sources with newer tools
Starting from arc-2016.03 GNU tools linker properly works with symbols defined in linker script and so external declarations are no longe
arc: No need in sections defined in sources with newer tools
Starting from arc-2016.03 GNU tools linker properly works with symbols defined in linker script and so external declarations are no longer required, dump them.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
699c4e59 | 04-Aug-2016 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: Update exception & interrupt handling for ARCv2
Initially IVT for ARCv2 was simply copypasted from ARCompact with some selected fixes so basic stuff works.
Now we update it with more ARCv2 spe
arc: Update exception & interrupt handling for ARCv2
Initially IVT for ARCv2 was simply copypasted from ARCompact with some selected fixes so basic stuff works.
Now we update it with more ARCv2 specific vectors like * Software Interrupt * Division by zero * Data cache consistency error * Misaligned access
Also normal interrupts are now implemented properly and extened to all possible 240 items.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
a4a43fcf | 08-Jun-2016 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc/cache: Flush & invalidate all caches right before enabling IOC
According to ARC HS databook it is required to flush and disable caches prior programming IOC registers. Otherwise ongoing coherent
arc/cache: Flush & invalidate all caches right before enabling IOC
According to ARC HS databook it is required to flush and disable caches prior programming IOC registers. Otherwise ongoing coherent memory operations may not observe the coherency protocols as expected.
But since in ARC HS v2.1 there's no way to disable SLC (AKA L2 cache) we're doing our best flushing and invalidating it.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
db6ce231 | 14-Dec-2015 |
Alexey Brodkin <Alexey.Brodkin@synopsys.com> |
arc: cache - utilize IO coherency (AKA IOC) engine
With release of ARC HS38 v2.1 new IO coherency engine could be built-in ARC core. This hardware module ensures coherency between DMA-ed data from p
arc: cache - utilize IO coherency (AKA IOC) engine
With release of ARC HS38 v2.1 new IO coherency engine could be built-in ARC core. This hardware module ensures coherency between DMA-ed data from peripherals and L2 cache.
With L2 and IOC enabled there's no overhead for L2 cache manual maintenance which results in significantly improved IO bandwidth.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
ef639e6f | 18-May-2015 |
Alexey Brodkin <Alexey.Brodkin@synopsys.com> |
arc: significant cache rework
[1] Align cache management functions to those in Linux kernel. I.e.: a) Use the same functions for all cache ops (D$ Inv/Flush) b) Split cache ops in 3 sub-func
arc: significant cache rework
[1] Align cache management functions to those in Linux kernel. I.e.: a) Use the same functions for all cache ops (D$ Inv/Flush) b) Split cache ops in 3 sub-functions: "before", "lineloop" and "after". That way we may re-use "before" and "after" functions for region and full cache ops.
[2] Implement full-functional L2 (SLC) management. Before SLC was simply disabled early on boot. It's also possible to enable or disable L2 cache from config utility.
[3] Disable/enable corresponding caches early on boot. So if U-Boot is configured to use caches they will be used at all times (this is useful in partucular for speed-up of relocation).
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
a811492e | 10-Apr-2015 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: fix separate compilation of start.o
While testing "arc: make sure _start is in the beginning of .text section" I haven't done proper clean-up of built binaries and so missed another tiny bit th
arc: fix separate compilation of start.o
While testing "arc: make sure _start is in the beginning of .text section" I haven't done proper clean-up of built binaries and so missed another tiny bit that lead to the following error: --->8--- LD u-boot arc-linux-ld.bfd: cannot find arch/arc/lib/start.o Makefile:1107: recipe for target 'u-boot' failed make: *** [u-boot] Error 1 --->8---
Fix is trivial: put "start.o" in "extra-y".
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
6eb15e50 | 30-Mar-2015 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: add support for SLC (System Level Cache, AKA L2-cache)
ARCv2 cores may have built-in SLC (System Level Cache, AKA L2-cache). This change adds functions required for controlling SLC: * slc_enab
arc: add support for SLC (System Level Cache, AKA L2-cache)
ARCv2 cores may have built-in SLC (System Level Cache, AKA L2-cache). This change adds functions required for controlling SLC: * slc_enable/disable * slc_flush/invalidate
For now we just disable SLC to escape DMA coherency issues until either: * SLC flush/invalidate is supported in DMA APIin U-Boot * hardware DMA coherency is implemented (that might be board specific so probably we'll need to have a separate Kconfig option for controlling SLC explicitly)
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|
3fb80163 | 24-Feb-2015 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: clean-up init procedure
Intention behind this work was elimination of as much assembly-written code as it is possible.
In case of ARC we already have relocation fix-up implemented in C so why
arc: clean-up init procedure
Intention behind this work was elimination of as much assembly-written code as it is possible.
In case of ARC we already have relocation fix-up implemented in C so why don't we use C for U-Boot copying, .bss zeroing etc.
It turned out x86 uses pretty similar approach so we re-used parts of code in "board_f.c" initially implemented for x86.
Now assembly usage during init is limited to stack- and frame-pointer setup before and after relocation.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org>
show more ...
|
8ee28251 | 24-Feb-2015 |
Alexey Brodkin <abrodkin@synopsys.com> |
arc: move low-level interrupt and exception handlers in a separate file
This separation makes maintenance of code easier because those low-level interrupt- or exception handling routines are pretty
arc: move low-level interrupt and exception handlers in a separate file
This separation makes maintenance of code easier because those low-level interrupt- or exception handling routines are pretty static and usually require not much care while start-up code is a subject of modifications and enhancements.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
show more ...
|