Lines Matching +full:static +full:- +full:address
7 * SPDX-License-Identifier: Apache-2.0
14 #include <xtensa/config/core-isa.h>
103 /** Calculate the L2 page table position from a virtual address */
107 /** Calculate the L1 page table position from a virtual address */
115 * writable, may be cached in non-SMP contexts only
141 /** Number of data TLB ways [0-9] */
144 /** Number of instruction TLB ways [0-6] */
147 /** Number of auto-refill ways */
172 * Virtual address where the page table is mapped
177 * Find the PTE entry address of a given vaddr.
180 * the page spans from 0xE0000000 - 0xE03FFFFF
182 * address 0x00 is in 0xE0000000
183 * address 0x1000 is in 0xE0000004
185 * address 0xE0000000 (where the page is) is in 0xE0380000
187 * Generalizing it, any PTE virtual address can be calculated this way:
197 * RASID contains four 8-bit ASIDs, one per ring.
207 static ALWAYS_INLINE void xtensa_rasid_set(uint32_t rasid) in xtensa_rasid_set()
218 static ALWAYS_INLINE uint32_t xtensa_rasid_get(void) in xtensa_rasid_get()
232 static ALWAYS_INLINE void xtensa_rasid_asid_set(uint8_t asid, uint8_t ring) in xtensa_rasid_asid_set()
246 static ALWAYS_INLINE void xtensa_itlb_entry_invalidate(uint32_t entry) in xtensa_itlb_entry_invalidate()
257 static ALWAYS_INLINE void xtensa_itlb_entry_invalidate_sync(uint32_t entry) in xtensa_itlb_entry_invalidate_sync()
269 static ALWAYS_INLINE void xtensa_dtlb_entry_invalidate_sync(uint32_t entry) in xtensa_dtlb_entry_invalidate_sync()
281 static ALWAYS_INLINE void xtensa_dtlb_entry_invalidate(uint32_t entry) in xtensa_dtlb_entry_invalidate()
293 static ALWAYS_INLINE void xtensa_dtlb_entry_write_sync(uint32_t pte, uint32_t entry) in xtensa_dtlb_entry_write_sync()
306 static ALWAYS_INLINE void xtensa_dtlb_entry_write(uint32_t pte, uint32_t entry) in xtensa_dtlb_entry_write()
318 static ALWAYS_INLINE void xtensa_itlb_entry_write(uint32_t pte, uint32_t entry) in xtensa_itlb_entry_write()
330 static ALWAYS_INLINE void xtensa_itlb_entry_write_sync(uint32_t pte, uint32_t entry) in xtensa_itlb_entry_write_sync()
345 * a previously-used page table change. It does not need to be called
348 static inline void xtensa_tlb_autorefill_invalidate(void) in xtensa_tlb_autorefill_invalidate()
369 * The page tables is set writing ptevaddr address.
371 * @param ptables The page tables address (virtual address)
373 static ALWAYS_INLINE void xtensa_ptevaddr_set(void *ptables) in xtensa_ptevaddr_set()
381 * The page tables is obtained by reading ptevaddr address.
383 * @return ptables The page tables address (virtual address)
385 static ALWAYS_INLINE void *xtensa_ptevaddr_get(void) in xtensa_ptevaddr_get()
395 * @brief Get the virtual address associated with a particular data TLB entry.
399 static ALWAYS_INLINE void *xtensa_dtlb_vaddr_read(uint32_t entry) in xtensa_dtlb_vaddr_read()
408 * @brief Get the physical address associated with a particular data TLB entry.
412 static ALWAYS_INLINE uint32_t xtensa_dtlb_paddr_read(uint32_t entry) in xtensa_dtlb_paddr_read()
421 * @brief Get the virtual address associated with a particular instruction TLB entry.
425 static ALWAYS_INLINE void *xtensa_itlb_vaddr_read(uint32_t entry) in xtensa_itlb_vaddr_read()
434 * @brief Get the physical address associated with a particular instruction TLB entry.
438 static ALWAYS_INLINE uint32_t xtensa_itlb_paddr_read(uint32_t entry) in xtensa_itlb_paddr_read()
447 * @brief Probe for instruction TLB entry from a virtual address.
449 * @param vaddr Virtual address.
453 static ALWAYS_INLINE uint32_t xtensa_itlb_probe(void *vaddr) in xtensa_itlb_probe()
462 * @brief Probe for data TLB entry from a virtual address.
464 * @param vaddr Virtual address.
468 static ALWAYS_INLINE uint32_t xtensa_dtlb_probe(void *vaddr) in xtensa_dtlb_probe()
477 * @brief Invalidate an instruction TLB entry associated with a virtual address.
479 * This invalidated an instruction TLB entry associated with a virtual address
482 * @param vaddr Virtual address.
484 static inline void xtensa_itlb_vaddr_invalidate(void *vaddr) in xtensa_itlb_vaddr_invalidate()
494 * @brief Invalidate a data TLB entry associated with a virtual address.
496 * This invalidated a data TLB entry associated with a virtual address
499 * @param vaddr Virtual address.
501 static inline void xtensa_dtlb_vaddr_invalidate(void *vaddr) in xtensa_dtlb_vaddr_invalidate()