Message ID | 1399007180-20680-2-git-send-email-sachin.kamat@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 02 May 2014 10:36:20 Sachin Kamat wrote: > + sram@02020000 { > + compatible = "mmio-sram"; > + reg = <0x02020000 0x54000>; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x02020000 0x54000>; > + That is actually quite a lot of unused SRAM. Since it came up this morning in another thread, there may be value in using this for coherent DMA allocations for some devices. Not sure about how to best hook this up, but there could be some serious performance improvements. A typical case would be DMA descriptors for a gigabit ethernet adapter, which are a pain to maintain on platforms without cache-coherent DMA. You could check what drivers you have that call dma_alloc_coherent, and see if any of them are performance-critical, then hack them up to use this memory instead as an experiment. Arnd
diff --git a/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt new file mode 100644 index 000000000000..c9ff2f58f9b6 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt @@ -0,0 +1,38 @@ +Samsung Exynos SRAM for SMP bringup: +------------------------------------ + +Samsung SMP-capable Exynos SoCs use part of the SRAM for the bringup +of the secondary cores. Once the core gets powered up it executes the +code that is residing at some specific location of the SRAM. + +Therefore reserved section sub-nodes have to be added to the mmio-sram +declaration. These nodes are of two types depending upon secure or +non-secure execution environment. + +Required sub-node properties: +- compatible : depending upon boot mode, should be + "samsung,exynos4210-sram" : for Secure SYSRAM + "samsung,exynos4210-sram-ns" : for Non-secure SYSRAM + +The rest of the properties should follow the generic mmio-sram discription +found in ../../misc/sram.txt + +Example: + + sram@02020000 { + compatible = "mmio-sram"; + reg = <0x02020000 0x54000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x02020000 0x54000>; + + smp-sram@0 { + compatible = "samsung,exynos4210-sram"; + reg = <0x0 0x1000>; + }; + + smp-sram@53000 { + compatible = "samsung,exynos4210-sram-ns"; + reg = <0x53000 0x1000>; + }; + };