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) |