Changeset 92778f2 in mainline for kernel/arch/sparc64/src/mm
- Timestamp:
- 2006-12-04T21:14:07Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4b43f86
- Parents:
- 3d76996
- Location:
- kernel/arch/sparc64/src/mm
- Files:
-
- 1 added
- 3 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/mm/as.c
r3d76996 r92778f2 48 48 #include <bitops.h> 49 49 #include <macros.h> 50 #endif 50 #endif /* CONFIG_TSB */ 51 52 #ifdef CONFIG_VIRT_IDX_DCACHE 53 #include <arch/mm/cache.h> 54 #endif /* CONFIG_VIRT_IDX_DCACHE */ 51 55 52 56 /** Architecture dependent address space init. */ … … 159 163 dtsb_base_write(tsb_base.value); 160 164 #endif 165 #ifdef CONFIG_VIRT_IDX_DCACHE 166 if (as->dcache_flush_on_install) { 167 /* 168 * Some mappings in this address space are illegal address 169 * aliases. Upon their creation, the flush_dcache_on_install 170 * flag was set. 171 * 172 * We are now obliged to flush the D-cache in order to guarantee 173 * that there will be at most one cache line for each address 174 * alias. 175 * 176 * This flush performs a cleanup after another address space in 177 * which the alias might have existed. 178 */ 179 dcache_flush(); 180 } 181 #endif /* CONFIG_VIRT_IDX_DCACHE */ 161 182 } 162 183 … … 193 214 } 194 215 #endif 216 #ifdef CONFIG_VIRT_IDX_DCACHE 217 if (as->dcache_flush_on_deinstall) { 218 /* 219 * Some mappings in this address space are illegal address 220 * aliases. Upon their creation, the flush_dcache_on_deinstall 221 * flag was set. 222 * 223 * We are now obliged to flush the D-cache in order to guarantee 224 * that there will be at most one cache line for each address 225 * alias. 226 * 227 * This flush performs a cleanup after this address space. It is 228 * necessary because other address spaces that contain the same 229 * alias are not necessarily aware of the need to carry out the 230 * cache flush. The only address spaces that are aware of it are 231 * those that created the illegal alias. 232 */ 233 dcache_flush(); 234 } 235 #endif /* CONFIG_VIRT_IDX_DCACHE */ 195 236 } 196 237 -
kernel/arch/sparc64/src/mm/tlb.c
r3d76996 r92778f2 112 112 data.l = locked; 113 113 data.cp = cacheable; 114 #ifdef CONFIG_VIRT_IDX_ CACHE114 #ifdef CONFIG_VIRT_IDX_DCACHE 115 115 data.cv = cacheable; 116 #endif /* CONFIG_VIRT_IDX_ CACHE */116 #endif /* CONFIG_VIRT_IDX_DCACHE */ 117 117 data.p = true; 118 118 data.w = true; … … 149 149 data.l = false; 150 150 data.cp = t->c; 151 #ifdef CONFIG_VIRT_IDX_ CACHE151 #ifdef CONFIG_VIRT_IDX_DCACHE 152 152 data.cv = t->c; 153 #endif /* CONFIG_VIRT_IDX_ CACHE */153 #endif /* CONFIG_VIRT_IDX_DCACHE */ 154 154 data.p = t->k; /* p like privileged */ 155 155 data.w = ro ? false : t->w; … … 185 185 data.l = false; 186 186 data.cp = t->c; 187 #ifdef CONFIG_VIRT_IDX_CACHE188 data.cv = t->c;189 #endif /* CONFIG_VIRT_IDX_CACHE */190 187 data.p = t->k; /* p like privileged */ 191 188 data.w = false; -
kernel/arch/sparc64/src/mm/tsb.c
r3d76996 r92778f2 101 101 tsb->data.pfn = t->frame >> FRAME_WIDTH; 102 102 tsb->data.cp = t->c; 103 #ifdef CONFIG_VIRT_IDX_CACHE104 tsb->data.cv = t->c;105 #endif /* CONFIG_VIRT_IDX_CACHE */106 103 tsb->data.p = t->k; /* p as privileged */ 107 104 tsb->data.v = t->p; … … 143 140 tsb->data.pfn = t->frame >> FRAME_WIDTH; 144 141 tsb->data.cp = t->c; 145 #ifdef CONFIG_VIRT_IDX_ CACHE142 #ifdef CONFIG_VIRT_IDX_DCACHE 146 143 tsb->data.cv = t->c; 147 #endif /* CONFIG_VIRT_IDX_ CACHE */144 #endif /* CONFIG_VIRT_IDX_DCACHE */ 148 145 tsb->data.p = t->k; /* p as privileged */ 149 146 tsb->data.w = ro ? false : t->w;
Note:
See TracChangeset
for help on using the changeset viewer.