diff options
author | marius <marius@FreeBSD.org> | 2008-03-09 15:53:34 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2008-03-09 15:53:34 +0000 |
commit | f77ece5c7e5eda03f7b9e1dbcc22007202cf22e4 (patch) | |
tree | 2771af3dcaecc52b058a16450fa3f868c74eec25 /sys/sparc64/include/tlb.h | |
parent | 64e94f5fa6c0cbab4bb9e0260fb07d7ae8decb6a (diff) | |
download | FreeBSD-src-f77ece5c7e5eda03f7b9e1dbcc22007202cf22e4.zip FreeBSD-src-f77ece5c7e5eda03f7b9e1dbcc22007202cf22e4.tar.gz |
- Do as the comment in pmap_bootstrap() suggests and flush all non-locked
TLB entries possibly left over by the firmware and also do so while
bootstrapping APs.
- Use __FBSDID.
MFC after: 1 month
Diffstat (limited to 'sys/sparc64/include/tlb.h')
-rw-r--r-- | sys/sparc64/include/tlb.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/sparc64/include/tlb.h b/sys/sparc64/include/tlb.h index 235a186..3d54ef8 100644 --- a/sys/sparc64/include/tlb.h +++ b/sys/sparc64/include/tlb.h @@ -59,6 +59,8 @@ #define TLB_DEMAP_TYPE_SHIFT (6) #define TLB_DEMAP_TYPE_PAGE (0) #define TLB_DEMAP_TYPE_CONTEXT (1) +/* US-III and greater only */ +#define TLB_DEMAP_TYPE_ALL (2) #define TLB_DEMAP_VA(va) ((va) & ~PAGE_MASK) #define TLB_DEMAP_ID(id) ((id) << TLB_DEMAP_ID_SHIFT) @@ -66,6 +68,7 @@ #define TLB_DEMAP_PAGE (TLB_DEMAP_TYPE(TLB_DEMAP_TYPE_PAGE)) #define TLB_DEMAP_CONTEXT (TLB_DEMAP_TYPE(TLB_DEMAP_TYPE_CONTEXT)) +#define TLB_DEMAP_ALL (TLB_DEMAP_TYPE(TLB_DEMAP_TYPE_ALL)) #define TLB_DEMAP_PRIMARY (TLB_DEMAP_ID(TLB_DEMAP_ID_PRIMARY)) #define TLB_DEMAP_SECONDARY (TLB_DEMAP_ID(TLB_DEMAP_ID_SECONDARY)) @@ -93,6 +96,7 @@ #define MMU_SFSR_W (1UL << MMU_SFSR_W_SHIFT) #define MMU_SFSR_FV (1UL << MMU_SFSR_FV_SHIFT) +typedef void tlb_flush_nonlocked_t(void); typedef void tlb_flush_user_t(void); struct pmap; @@ -105,9 +109,13 @@ void tlb_context_demap(struct pmap *pm); void tlb_page_demap(struct pmap *pm, vm_offset_t va); void tlb_range_demap(struct pmap *pm, vm_offset_t start, vm_offset_t end); +tlb_flush_nonlocked_t cheetah_tlb_flush_nonlocked; tlb_flush_user_t cheetah_tlb_flush_user; + +tlb_flush_nonlocked_t spitfire_tlb_flush_nonlocked; tlb_flush_user_t spitfire_tlb_flush_user; +extern tlb_flush_nonlocked_t *tlb_flush_nonlocked; extern tlb_flush_user_t *tlb_flush_user; #endif /* !_MACHINE_TLB_H_ */ |