Changeset 29b2bbf in mainline for kernel/arch/sparc64/include/mm


Ignore:
Timestamp:
2006-09-18T22:10:20Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
19dba2b
Parents:
57da95c
Message:

sparc64 work:

  • Experimental support for TSB (Translation Storage Buffer).
Location:
kernel/arch/sparc64/include/mm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/mm/mmu.h

    r57da95c r29b2bbf  
    4949
    5050/* Virtual Addresses within ASI_IMMU. */
    51 #define VA_IMMU_TAG_TARGET              0x0     /**< IMMU tag target register. */
     51#define VA_IMMU_TSB_TAG_TARGET          0x0     /**< IMMU TSB tag target register. */
    5252#define VA_IMMU_SFSR                    0x18    /**< IMMU sync fault status register. */
    5353#define VA_IMMU_TSB_BASE                0x28    /**< IMMU TSB base register. */
     
    6565
    6666/* Virtual Addresses within ASI_DMMU. */
    67 #define VA_DMMU_TAG_TARGET              0x0     /**< DMMU tag target register. */
     67#define VA_DMMU_TSB_TAG_TARGET          0x0     /**< DMMU TSB tag target register. */
    6868#define VA_PRIMARY_CONTEXT_REG          0x8     /**< DMMU primary context register. */
    6969#define VA_SECONDARY_CONTEXT_REG        0x10    /**< DMMU secondary context register. */
  • kernel/arch/sparc64/include/mm/tsb.h

    r57da95c r29b2bbf  
    3636#define KERN_sparc64_TSB_H_
    3737
    38 #include <arch/mm/tte.h>
    39 #include <arch/mm/mmu.h>
    40 #include <arch/types.h>
    41 #include <typedefs.h>
    42 
    4338/*
    4439 * ITSB abd DTSB will claim 64K of memory, which
     
    5247#define DTSB_ENTRY_COUNT                (512*(1<<TSB_SIZE))
    5348
     49#define TSB_TAG_TARGET_CONTEXT_SHIFT    48
     50
     51#ifndef __ASM__
     52
     53#include <arch/mm/tte.h>
     54#include <arch/mm/mmu.h>
     55#include <arch/types.h>
     56#include <typedefs.h>
     57
     58/** TSB Tag Target register. */
     59union tsb_tag_target {
     60        uint64_t value;
     61        struct {
     62                unsigned invalid : 1;   /**< Invalidated by software. */
     63                unsigned : 2;
     64                unsigned context : 13;  /**< Software ASID. */
     65                unsigned : 6;
     66                uint64_t va_tag : 42;   /**< Virtual address bits <63:22>. */
     67        } __attribute__ ((packed));
     68};
     69typedef union tsb_tag_target tsb_tag_target_t;
     70
     71/** TSB entry. */
    5472struct tsb_entry {
    55         tte_tag_t tag;
     73        tsb_tag_target_t tag;
    5674        tte_data_t data;
    5775} __attribute__ ((packed));
     
    110128
    111129extern void tsb_invalidate(as_t *as, uintptr_t page, count_t pages);
     130extern void itsb_pte_copy(pte_t *t);
     131extern void dtsb_pte_copy(pte_t *t, bool ro);
     132
     133#endif /* !def __ASM__ */
    112134
    113135#endif
  • kernel/arch/sparc64/include/mm/tte.h

    r57da95c r29b2bbf  
    5151#include <arch/types.h>
    5252
     53#define VA_TAG_PAGE_SHIFT       22
     54
    5355/** Translation Table Entry - Tag. */
    5456union tte_tag {
Note: See TracChangeset for help on using the changeset viewer.