Lines Matching full:tcm

2 ARM TCM (Tightly-Coupled Memory) handling in Linux
7 Some ARM SoCs have a so-called TCM (Tightly-Coupled Memory).
11 Due to being embedded inside the CPU, the TCM has a
12 Harvard-architecture, so there is an ITCM (instruction TCM)
13 and a DTCM (data TCM). The DTCM can not contain any
19 location and size of TCM memories. arch/arm/include/asm/cputype.h
22 at http://infocenter.arm.com, search for "TCM Status Register"
27 There is further a TCM region register (search for "TCM Region
29 size of TCM memories at runtime. This is used to read out and modify
30 TCM location and size. Notice that this is not a MMU table: you
31 actually move the physical location of the TCM around. At the
34 the TCM.
36 The TCM memory can then be remapped to another address again using
37 the MMU, but notice that the TCM is often used in situations where
39 implementation will map the TCM 1 to 1 from physical to virtual
50 TCM is used for a few things:
63 There is an interface for using TCM on the ARM architecture
64 in <asm/tcm.h>. Using this interface it is possible to:
72 - Have the remaining TCM RAM added to a special
78 A machine that has TCM memory shall select HAVE_TCM from
79 arch/arm/Kconfig for itself. Code that needs to use TCM shall
80 #include <asm/tcm.h>
86 to have functions called locally inside the TCM without
98 To put assembler into TCM just use::
100 .section ".tcm.text" or .section ".tcm.data"
106 #include <asm/tcm.h>
138 printk("Hello TCM executed from ITCM RAM\n");
140 printk("TCM variable from testrun: %u @ %p\n", tcmvar, &tcmvar);
142 printk("TCM variable: 0x%x @ %p\n", tcmvar, &tcmvar);
144 printk("TCM assigned variable: 0x%x @ %p\n", tcmassigned, &tcmassigned);
146 printk("TCM constant: 0x%x @ %p\n", tcmconst, &tcmconst);
148 /* Allocate some TCM memory from the pool */
151 printk("TCM Allocated 20 bytes of TCM @ %p\n", tcmem);
158 printk("TCM tcmem[%d] = %08x\n", i, tcmem[i]);