Changeset e25eca80 in mainline for kernel/arch/sparc64


Ignore:
Timestamp:
2008-06-13T20:36:38Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d5087aa
Parents:
80dabb8d
Message:

Add smc_coherence() macro to all architectures.
So far, only amd64, ia32, ia64 and sparc64 are implemented.

Location:
kernel/arch/sparc64
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/barrier.h

    r80dabb8d re25eca80  
    5858        asm volatile ("membar #StoreStore\n" ::: "memory")
    5959
     60static inline void flush(uintptr_t addr)
     61{
     62        asm volatile ("flush %0\n" :: "r" (addr) : "memory");
     63}
     64
    6065/** Flush Instruction Memory instruction. */
    61 static inline void flush(void)
     66static inline void flush_blind(void)
    6267{
    6368        /*
     
    8085}
    8186
     87#define smc_coherence(a)        \
     88{                               \
     89        write_barrier();        \
     90        flush((a));             \
     91}
     92
    8293#endif
    8394
  • kernel/arch/sparc64/include/mm/tlb.h

    r80dabb8d re25eca80  
    161161{
    162162        asi_u64_write(ASI_DMMU, VA_PRIMARY_CONTEXT_REG, v);
    163         flush();
     163        flush_blind();
    164164}
    165165
     
    180180{
    181181        asi_u64_write(ASI_DMMU, VA_SECONDARY_CONTEXT_REG, v);
    182         flush();
     182        flush_blind();
    183183}
    184184
     
    210210        reg.tlb_entry = entry;
    211211        asi_u64_write(ASI_ITLB_DATA_ACCESS_REG, reg.value, value);
    212         flush();
     212        flush_blind();
    213213}
    214214
     
    280280{
    281281        asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v);
    282         flush();
     282        flush_blind();
    283283}
    284284
     
    319319{
    320320        asi_u64_write(ASI_ITLB_DATA_IN_REG, 0, v);
    321         flush();
     321        flush_blind();
    322322}
    323323
     
    348348{
    349349        asi_u64_write(ASI_IMMU, VA_IMMU_SFSR, v);
    350         flush();
     350        flush_blind();
    351351}
    352352
     
    401401                                                         * address within the
    402402                                                         * ASI */
    403         flush();
     403        flush_blind();
    404404}
    405405
  • kernel/arch/sparc64/src/mm/cache.S

    r80dabb8d re25eca80  
    2828
    2929#include <arch/arch.h>
    30 
    31 #define DCACHE_SIZE             (16 * 1024)
    32 #define DCACHE_LINE_SIZE        32     
     30#include <arch/mm/cache_spec.h>
    3331
    3432#define DCACHE_TAG_SHIFT        2
Note: See TracChangeset for help on using the changeset viewer.