1 comment "Processor Features"
4 def_bool !CPU_LITTLE_ENDIAN
6 config CPU_LITTLE_ENDIAN
11 bool "hardware zero overhead loop support"
12 depends on CPU_D10 || CPU_D15
15 A set of Zero-Overhead Loop mechanism is provided to reduce the
16 instruction fetch and execution overhead of loop-control instructions.
17 It will save 3 registers($LB, $LC, $LE) for context saving if say Y.
18 You don't need to save these registers if you can make sure your user
19 program doesn't use these registers.
23 config CPU_CACHE_ALIASING
25 depends on CPU_N10 || CPU_D10 || CPU_N13 || CPU_V3
28 If this CPU is using VIPT data cache and its cache way size is larger
29 than page size, say Y. If it is using PIPT data cache, say N.
34 prompt "minimum CPU type"
37 The data cache of N15/D15 is implemented as PIPT and it will not cause
38 the cache aliasing issue. The rest cpus(N13, N10 and D10) are
39 implemented as VIPT data cache. It may cause the cache aliasing issue
40 if its cache way size is larger than page size. You can specify the
41 CPU type direcly or choose CPU_V3 if unsure.
43 A kernel built for N10 is able to run on N15, D15, N13, N10 or D10.
44 A kernel built for N15 is able to run on N15 or D15.
45 A kernel built for D10 is able to run on D10 or D15.
46 A kernel built for D15 is able to run on D15.
47 A kernel built for N13 is able to run on N15, N13 or D15.
53 select CPU_CACHE_ALIASING if ANDES_PAGE_SIZE_4KB
56 select CPU_CACHE_ALIASING
61 select CPU_CACHE_ALIASING
63 bool "AndesCore v3 compatible"
64 select CPU_CACHE_ALIASING
67 prompt "Paging -- page size "
68 default ANDES_PAGE_SIZE_4KB
69 config ANDES_PAGE_SIZE_4KB
70 bool "use 4KB page size"
71 config ANDES_PAGE_SIZE_8KB
72 bool "use 8KB page size"
75 config CPU_ICACHE_DISABLE
76 bool "Disable I-Cache"
78 Say Y here to disable the processor instruction cache. Unless
79 you have a reason not to or are unsure, say N.
81 config CPU_DCACHE_DISABLE
82 bool "Disable D-Cache"
84 Say Y here to disable the processor data cache. Unless
85 you have a reason not to or are unsure, say N.
87 config CPU_DCACHE_WRITETHROUGH
88 bool "Force write through D-cache"
89 depends on !CPU_DCACHE_DISABLE
91 Say Y here to use the data cache in writethrough mode. Unless you
92 specifically require this or are unsure, say N.
98 Say Y here to enable write-back memory with no-write-allocation policy.
100 config ALIGNMENT_TRAP
101 bool "Kernel support unaligned access handling by sw"
105 Andes processors cannot load/store information which is not
106 naturally aligned on the bus, i.e., a 4 byte load must start at an
107 address divisible by 4. On 32-bit Andes processors, these non-aligned
108 load/store instructions will be emulated in software if you say Y
109 here, which has a severe performance impact. With an IP-only
110 configuration it is safe to say N, otherwise say Y.
112 config HW_SUPPORT_UNALIGNMENT_ACCESS
113 bool "Kernel support unaligned access handling by hw"
114 depends on !ALIGNMENT_TRAP
117 Andes processors load/store world/half-word instructions can access
118 unaligned memory locations without generating the Data Alignment
119 Check exceptions. With an IP-only configuration it is safe to say N,
123 bool "High Memory Support"
124 depends on MMU && !CPU_CACHE_ALIASING
126 The address space of Andes processors is only 4 Gigabytes large
127 and it has to accommodate user address space, kernel address
128 space as well as some memory mapped IO. That means that, if you
129 have a large amount of physical memory and/or IO, not all of the
130 memory can be "permanently mapped" by the kernel. The physical
131 memory that is not permanently mapped is called "high memory".
133 Depending on the selected kernel/user memory split, minimum
134 vmalloc space and actual amount of RAM, you may not need this
135 option which should result in a slightly faster kernel.
140 bool "Support L2 cache"
143 Say Y here to enable L2 cache if your SoC are integrated with L2CC.
146 menu "Memory configuration"
149 prompt "Memory split"
151 default VMSPLIT_3G_OPT
153 Select the desired split between kernel and user memory.
155 If you are not absolutely sure what you are doing, leave this
159 bool "3G/1G user/kernel split"
160 config VMSPLIT_3G_OPT
161 bool "3G/1G user/kernel split (for full 1G low memory)"
163 bool "2G/2G user/kernel split"
165 bool "1G/3G user/kernel split"
170 default 0x40000000 if VMSPLIT_1G
171 default 0x80000000 if VMSPLIT_2G
172 default 0xB0000000 if VMSPLIT_3G_OPT