Rev 873 | Rev 897 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 873 | Rev 877 | ||
---|---|---|---|
Line 109... | Line 109... | ||
109 | struct { |
109 | struct { |
110 | unsigned long : 39; /**< Implementation dependent. */ |
110 | unsigned long : 39; /**< Implementation dependent. */ |
111 | unsigned nf : 1; /**< Nonfaulting load. */ |
111 | unsigned nf : 1; /**< Nonfaulting load. */ |
112 | unsigned asi : 8; /**< ASI. */ |
112 | unsigned asi : 8; /**< ASI. */ |
113 | unsigned tm : 1; /**< TLB miss. */ |
113 | unsigned tm : 1; /**< TLB miss. */ |
114 | unsigned : 3; |
114 | unsigned : 1; |
115 | unsigned ft : 5; /**< Fault type. */ |
115 | unsigned ft : 7; /**< Fault type. */ |
116 | unsigned e : 1; /**< Side-effect bit. */ |
116 | unsigned e : 1; /**< Side-effect bit. */ |
117 | unsigned ct : 2; /**< Context Register selection. */ |
117 | unsigned ct : 2; /**< Context Register selection. */ |
118 | unsigned pr : 1; /**< Privilege bit. */ |
118 | unsigned pr : 1; /**< Privilege bit. */ |
119 | unsigned w : 1; /**< Write bit. */ |
119 | unsigned w : 1; /**< Write bit. */ |
120 | unsigned ow : 1; /**< Overwrite bit. */ |
120 | unsigned ow : 1; /**< Overwrite bit. */ |
121 | unsigned fv : 1; /**< Fayult Valid bit. */ |
121 | unsigned fv : 1; /**< Fault Valid bit. */ |
122 | } __attribute__ ((packed)); |
122 | } __attribute__ ((packed)); |
123 | }; |
123 | }; |
124 | typedef union tlb_sfsr_reg tlb_sfsr_reg_t; |
124 | typedef union tlb_sfsr_reg tlb_sfsr_reg_t; |
125 | 125 | ||
126 | /** Read MMU Primary Context Register. |
126 | /** Read MMU Primary Context Register. |
Line 259... | Line 259... | ||
259 | { |
259 | { |
260 | asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v); |
260 | asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v); |
261 | flush(); |
261 | flush(); |
262 | } |
262 | } |
263 | 263 | ||
- | 264 | /** Read IMMU TLB Tag Access Register. |
|
- | 265 | * |
|
- | 266 | * @return Current value of IMMU TLB Tag Access Register. |
|
- | 267 | */ |
|
- | 268 | static inline __u64 itlb_tag_access_read(void) |
|
- | 269 | { |
|
- | 270 | return asi_u64_read(ASI_IMMU, VA_IMMU_TAG_ACCESS); |
|
- | 271 | } |
|
- | 272 | ||
264 | /** Write DMMU TLB Tag Access Register. |
273 | /** Write DMMU TLB Tag Access Register. |
265 | * |
274 | * |
266 | * @param v Value to be written. |
275 | * @param v Value to be written. |
267 | */ |
276 | */ |
268 | static inline void dtlb_tag_access_write(__u64 v) |
277 | static inline void dtlb_tag_access_write(__u64 v) |
269 | { |
278 | { |
270 | asi_u64_write(ASI_DMMU, VA_DMMU_TAG_ACCESS, v); |
279 | asi_u64_write(ASI_DMMU, VA_DMMU_TAG_ACCESS, v); |
271 | flush(); |
280 | flush(); |
272 | } |
281 | } |
273 | 282 | ||
- | 283 | /** Read DMMU TLB Tag Access Register. |
|
- | 284 | * |
|
- | 285 | * @return Current value of DMMU TLB Tag Access Register. |
|
- | 286 | */ |
|
- | 287 | static inline __u64 dtlb_tag_access_read(void) |
|
- | 288 | { |
|
- | 289 | return asi_u64_read(ASI_DMMU, VA_DMMU_TAG_ACCESS); |
|
- | 290 | } |
|
- | 291 | ||
- | 292 | ||
274 | /** Write IMMU TLB Data in Register. |
293 | /** Write IMMU TLB Data in Register. |
275 | * |
294 | * |
276 | * @param v Value to be written. |
295 | * @param v Value to be written. |
277 | */ |
296 | */ |
278 | static inline void itlb_data_in_write(__u64 v) |
297 | static inline void itlb_data_in_write(__u64 v) |